// 关闭持仓单
for(int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
bool matchComment = (StringLen(CommentFilter)==0 || StringFind(OrderComment(), CommentFilter) != -1);
if(matchComment && (OrderType()==OP_BUY || OrderType()==OP_SELL))
{
double price = (OrderType()==OP_BUY) ? Bid : Ask;
bool closed = OrderClose(OrderTicket(), OrderLots(), price, Slippage, clrNONE);
if(!closed) Print("平仓失败 #", OrderTicket(), " 错误码:", GetLastError());
}
}
}
这上面是部分平仓逻辑
|