新手请教!EA程序中,如何判断订单是被止损出场,还是止赢出场?

 

请教各位高手。

请问,EA程序中,如何判断订单是被止损出场,还是止赢出场?

 

在用ordersend語句時候就可以定義好止損是止盈了。還有就是用orderclose語句強行平倉。

 

如果是多仓,就用当前时间柱的最低价位(iLow)和止损价位(StopLoss*Point)比较,如果最低价位小于等于止损价位,可以确定在这个时间柱内,达到了止损。

同理, 用当前时间柱的最高价位(iHigh)和止赢价位(TakeProfit*Point)比较,如果最高价位大于等于止赢价位,可以确定在这个时间柱内,达到了止赢。

空仓判断方法类推即可。

至于是否有库函数可以返回索引中的单子是止损还是止赢出场,在下不得而知。

 

哈哈,我发现我也是大师了。

这个问题可以这样解决。

1.查找最后平仓的历史单子。

2.再判断它是否盈利。

 
for(int i=0; i<OrdersHistoryTotal; i++)
{
   OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
   {
     if(OrderProfit() > 0)
     {
       //此单为赢利单
      }
     if(OrderProfit() < 0)
     {
       //此单为亏损单
      }
  }
}
 
dmgy:

学习了!谢谢!

原因: