在编写MT4 EA或脚本时,尤其在对接外汇跟单平台的订单管理逻辑中,经常遇到因止损、止盈值低于平台最小限制而导致下单失败的情况。一个有效的处理方式是借助MessageBox弹出提示框,让用户自行决定是否调整参数。
以下是实现该功能的代码示例:
double 冻结点位=MathMax(MarketInfo(Symbol(),MODE_FREEZELEVEL),MarketInfo(Symbol(),MODE_STOPLEVEL));//获取平台标的最小止损值。
if(止损点数<冻结点位 || 止盈点数<冻结点位 || 移动点数<冻结点位 || 平保点数<冻结点位 )
{
if(MessageBox("是否把他们都设为最小止损值??","警告!止损,止盈,移损,平保都需要大于最小止损值。",MB_YESNO|MB_ICONQUESTION)==IDYES) //选择是,则执行下方赋值。
{
止损点数 = 冻结点位;
止盈点数 = 冻结点位;
移动点数=冻结点位; //移动止损点数
平保点数= 冻结点位;
}
}