核心通用自定義函數(shù)-平調(diào)所有持倉單(含掛單) [MT4]
- void CloseAllOrder()//平掉所有倉位包括掛單
{
int tick[200];
PingFlag=0;
int j=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{j=j+1;
tick[j]=OrderTicket();
Print("全部平倉! :",tick[j]);
}
}
if (j!=0)
{
for(i=1;i<=j;i++)
{
OrderSelect(tick, SELECT_BY_TICKET);
if(OrderType()==OP_BUY)
{
if(OrderClose(OrderTicket(),OrderLots(),Bid,滑點(diǎn)可接受范圍)==false)
{
PingFlag=1;
Print("多頭平倉失敗"+GetLastError());
}
}
//OrderSelect(tick, SELECT_BY_TICKET);
if(OrderType()==OP_BUYSTOP)
{
if(OrderDelete(OrderTicket(),CLR_NONE)==false)
{
PingFlag=1;
Print("多頭掛單撤銷失敗"+GetLastError());
}
}
//OrderSelect(tick, SELECT_BY_TICKET);
if(OrderType()==OP_BUYLIMIT)
{
if(OrderDelete(OrderTicket(),CLR_NONE)==false)
{
PingFlag=1;
Print("多頭掛單撤銷失敗"+GetLastError());
}
}
if(OrderType()==OP_SELL)
{
if(OrderClose(OrderTicket(),OrderLots(),Ask,滑點(diǎn)可接受范圍)==false)
{
PingFlag=1;
Print("空頭平倉失敗"+GetLastError());
}
}
if(OrderType()==OP_SELLSTOP)
{
if(OrderDelete(OrderTicket(),CLR_NONE)==false)
{
PingFlag=1;
Print("空頭掛單撤銷失敗"+GetLastError());
}
}
if(OrderType()==OP_SELLLIMIT)
{
if(OrderDelete(OrderTicket(),CLR_NONE)==false)
{
PingFlag=1;
Print("空頭掛單撤銷失敗"+GetLastError());
}
}
}
}
if (PingFlag==0) PingStop=1;
}
相關(guān)文章
-
沒有相關(guān)內(nèi)容