分享

MT4智能交易 (OrderModify()函数)

 禁忌石 2018-06-24

在外汇交易中,市场的信息瞬息万变。根据市场的变化,我们往往要及时跟进修改自己交易的策略。当然这是建立在已有的基础上。比如EA在市场符合一定的条件之后开了一个单子并设定了止盈止损。那么如果中途根据市场的改变而想相应地改变止盈止损的设置,就有会用到OrderModify() 函数。

 

它的完整构成为:

bool OrderModify(int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)

 

这个函数可以修改即时单和挂单的参数值。

当函数返回TRUE时,表明修改已经成功。如果返回的值为FALSE,则说明修改失败。

ticket - 这个命令的编号

price - 更改后的挂单或市场单的新价位

stoploss - 新的止损价位

takeprofit - 新的止盈价位

expiration - 挂单的过期时间

arrow_color - 修改的止损止盈箭头在图表上的颜色。如果这个参数没有设置或者等于 CLR_NONE,箭头将不会在图标上显示。

注意:只有挂单才能修改开仓价位和单子的有效时间。


市场单的修改

一个标准的市场单包含止赢和止损价位以用来保护盈利或者控制损失。如果不用EA,用户也可以随时改变单子的止损。那就是通过使用平台提供的追踪止损这个功能。当然,OrderModify()函数很大地拓展了改单的功能。它不仅可以改变止损止盈价位,还可以取消他们。但是要注意的是市场单修改时要有范围的限制。这个限制就是止损价位和现价要有一定的距离。这个最小的差价是交易商设定的。可能每个交易商会有不一样。如果用这个函数设置了一个比交易商规定的最小止损差价还要小的差价,那么这个请求将会被客户终端拒绝,导致修改失败。


挂单的修改

修改挂单和市场单有一点区别。就是挂单的价位也是可以修改的。但是要注意的是,如果只修改进场价位而不改动止盈止损价位的话,有可能会造成上面提到的小于交易商规定的最小差价的问题。如果这种现象发生,那么命令的修改也将失败。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多