老周 发表于 2017-3-16 15:18:16

获取指定货币对订单数量及全部平仓的完整函数

该函数获取指定货币对订单数量及执行全部平仓。是两个函数模块,一个获取指定的货币对订单数量,一个是全部平仓,可以自行添加其它过滤条件调用到EA中。

#define MagicNumber 123456

extern string sym ="EURUSD";
int openorders = 0;

int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
return(buys+sells);
}

openorders=CalculateCurrentOrders(sym);

bool CloseALL()
{

int ot = OrdersTotal();

for(int i=0;i<ot;i++)
{
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==false) return(false);
if(OrderMagicNumber()!=MagicNumber|| OrderSymbol()!=sym) continue;

if(OrderType()==OP_BUY)
{

if (!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
{
Print("OrderClose with error #" + GetLastError() + OrderTicket());
return(false);
}
}
if(OrderType()==OP_SELL)
{
if (!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
{
Print("OrderClose with error #" + GetLastError() + OrderTicket());
return(false);
}
}
}
openorders=0;
return(true);
}

jiasououk 发表于 2018-9-11 12:26:11

找到好贴不容易,我顶你了,谢了

hsqnslr 发表于 2018-9-26 20:08:28

学习了,谢谢分享、、、
页: [1]
查看完整版本: 获取指定货币对订单数量及全部平仓的完整函数