评论

收藏

如何检测一张交易单是否已经被打止损或打止盈

avatar 老周 | 2154 人阅读 | 0 人评论 | 2016-10-26

OrderCloseTime()这个函数返回的是订单的收盘时间。如果订单正在交易中而未平仓,此函数
返回的是0,如果平仓,此值就会变成平仓当时的服务器时间,是一个很大的正整数。

//-----------------检测是否平仓-----------------+
string IsClosed(int tik)
  {
   OrderSelect(tik, SELECT_BY_TICKET);
   //--若为未平仓
   if(OrderCloseTime()<1)
      return("未平");

   //--若为买单 被止盈
   if(OrderType()==OP_BUY){
      if(OrderClosePrice()>=OrderTakeProfit())
         return("已被止盈");
     }

   //--若为卖单 被止盈
   if(OrderType()==OP_SELL){
      if(OrderClosePrice()<=OrderTakeProfit())
         return("已被止盈");
     }

   //--其它为被止损
   return("已被止损");
  }

//------------------------------------------------+
有的朋友可能会质疑,打止损或打止盈的订单,其OrderComment()会包含sl或tp字样,检测这个不是
更方便吗?你要这样说我完全同意,不过上面的函数也完全可以实现功能,这个例子同时说明编程不
是死的,我们可以用不同的方式完成同一件任务。

""
还没有人打赏,支持一下
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则