双击锁仓
int start()
{
//----
int positions=0;
int result=0;
int i=0;
while(OrderSelect(i,SELECT_BY_POS)==true)
{
if((OrderSymbol()==Symbol())&&(OrderType()==OP_BUY))
{
positions+=OrderLots();
}
else if((OrderSymbol()==Symbol())&&(OrderType()==OP_SELL))
{
positions-=OrderLots();
}
i++;
}
//如果总头寸是空头
if(positions<0)
{
Alert("商品"+Symbol()+"总头寸为空,持仓量是:"+(-positions)+"。下面开多头仓位来对冲");
result=OrderSend(Symbol(),OP_BUY,-positions,Ask,3,0,0);
}
//如果总头寸是多头
else if(positions>0)
{
Alert("商品"+Symbol()+"总头寸为多头,持仓量是:"+positions+"。下面开多头仓位来对冲");
result=OrderSend(Symbol(),OP_BUY,-positions,Bid,3,0,0);
}
//以下是总头寸平衡的情形,不用进行特殊处理
if(result<0)
{
Alert("对冲仓开仓失败");
}
else
{
Alert("商品"+Symbol()+"已经平衡");
}
//----
return(0);
}
int start()
{
//----
int positions=0;
int result=0;
int i=0;
while(OrderSelect(i,SELECT_BY_POS)==true)
{
if((OrderSymbol()==Symbol())&&(OrderType()==OP_BUY))
{
positions+=OrderLots();
}
else if((OrderSymbol()==Symbol())&&(OrderType()==OP_SELL))
{
positions-=OrderLots();
}
i++;
}
//如果总头寸是空头
if(positions<0)
{
Alert("商品"+Symbol()+"总头寸为空,持仓量是:"+(-positions)+"。下面开多头仓位来对冲");
result=OrderSend(Symbol(),OP_BUY,-positions,Ask,3,0,0);
}
//如果总头寸是多头
else if(positions>0)
{
Alert("商品"+Symbol()+"总头寸为多头,持仓量是:"+positions+"。下面开多头仓位来对冲");
result=OrderSend(Symbol(),OP_BUY,-positions,Bid,3,0,0);
}
//以下是总头寸平衡的情形,不用进行特殊处理
if(result<0)
{
Alert("对冲仓开仓失败");
}
else
{
Alert("商品"+Symbol()+"已经平衡");
}
//----
return(0);
}