如何检测一张交易单是否已经被打止损或打止盈
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字样,检测这个不是
更方便吗?你要这样说我完全同意,不过上面的函数也完全可以实现功能,这个例子同时说明编程不
是死的,我们可以用不同的方式完成同一件任务。
页:
[1]