在外汇交易中,市场的信息瞬息万变。根据市场的变化,我们往往要及时跟进修改自己交易的策略。当然这是建立在已有的基础上。比如EA在市场符合一定的条件之后开了一个单子并设定了止盈止损。那么如果中途根据市场的改变而想相应地改变止盈止损的设置,就有会用到OrderModify() 函数。
它的完整构成为: bool OrderModify(int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)
这个函数可以修改即时单和挂单的参数值。 当函数返回TRUE时,表明修改已经成功。如果返回的值为FALSE,则说明修改失败。
注意:只有挂单才能修改开仓价位和单子的有效时间。
一个标准的市场单包含止赢和止损价位以用来保护盈利或者控制损失。如果不用EA,用户也可以随时改变单子的止损。那就是通过使用平台提供的追踪止损这个功能。当然,OrderModify()函数很大地拓展了改单的功能。它不仅可以改变止损止盈价位,还可以取消他们。但是要注意的是市场单修改时要有范围的限制。这个限制就是止损价位和现价要有一定的距离。这个最小的差价是交易商设定的。可能每个交易商会有不一样。如果用这个函数设置了一个比交易商规定的最小止损差价还要小的差价,那么这个请求将会被客户终端拒绝,导致修改失败。
修改挂单和市场单有一点区别。就是挂单的价位也是可以修改的。但是要注意的是,如果只修改进场价位而不改动止盈止损价位的话,有可能会造成上面提到的小于交易商规定的最小差价的问题。如果这种现象发生,那么命令的修改也将失败。 |
|