发新话题
打印

[MT指标及EA] 这段代码不能按照指令开仓,请高手指点,谢谢

这段代码不能按照指令开仓,请高手指点,谢谢

//检查并开空仓
void CheckForOpenSell()
{
  int    res;
  res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Blue);
  if(res>0)
    {
      if(OrderSelect(res,SELECT_BY_TICKET,MODE_TRADES)) Print("Sell order opened : ",OrderOpenPrice());
    }
  else Print("Error opening SELL order : ",GetLastError());

  return;
}

//检查并开多仓
void CheckForOpenBuy()
{
  int    res;
  
  res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Red);
  if(res > 0)
    {
      if(OrderSelect(res,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
    }
  else  Print("Error opening BUY order : ",GetLastError());

  return;
}

//检查并平仓
void CheckForClose()
{
      int cnt,total;
   
      total=OrdersTotal();
      
      for(cnt=0;cnt<total;cnt++){
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
          if(OrderType()==OP_BUY && ma.Sell.Open(0)){
            OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
          }
      
         if(OrderType()==OP_SELL && ma.Buy.Open(0))
         {  
           OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
        }  
      }
      return;
}

TOP

total=OrdersTotal();
for(cnt=0;cnt<total;cnt++){
这里有个问题。应该是for(cnt=0;cnt<total-1;cnt++)
其他的似乎没什么问题。

TOP

谢谢,我再测试一下

谢谢,我再测试一下

TOP

发新话题