对于订单的选定问题很多。
对于你的问题我不准备完全解答。我贴两个子程序,你研究下其中的代码。有问题再说。
还有昨晚不小心把你的关仓问题的帖子分割合并搞错了都删掉了,对不起。发信息今天起来一看发给自己了。
复制内容到剪贴板
代码:
//+------------------------------------------------------------------+
//| SearchOrder 订单查询 函数 |
//+------------------------------------------------------------------+
int SearchOrder (int MAGIC,int K)
{
//----
int i=0;
for ( int z = OrdersTotal() - 1; z >= 0; z -- )
{
if ( !OrderSelect( z, SELECT_BY_POS ) )
{
Print("OrderSelect(", z, ",SELECT_BY_POS) - Error #",GetLastError() );
continue;
}
if (OrderSymbol()!=Symbol())continue;
if (OrderMagicNumber() != MAGIC )continue;
if ( OrderType()==K ) i=OrderTicket();
}
//----
return(i);
}这个搜索程序搜索以MAGIC标记的类型为K的订单。
复制内容到剪贴板
代码:
//+------------------------------------------------------------------+
//| CloseOrderBuy function |
//+------------------------------------------------------------------+
int CloseOrderBuy(int MAGIC)//CloseOrderBuy(Magic)
{
//----
for ( int z = OrdersTotal() - 1; z >= 0; z -- )
{
if ( !OrderSelect( z, SELECT_BY_POS ) )
{
Print("OrderSelect(", z, ",SELECT_BY_POS) - Error #",GetLastError() );
continue;
}
if (OrderSymbol()!=Symbol())continue;
if (OrderMagicNumber() != MAGIC )continue;
if (OrderType()==OP_BUY)
{
if (!OrderClose(OrderTicket(), OrderLots(), Bid, 3))
Print("OrderClose(",OrderTicket(), ",Buy) - Error #",GetLastError() );
}
}
//----
return(0);
}这是一个买单关仓函数,关闭以MAGIC标记的成交买单。