下单问题,哪位大哥可以指点一下

 

代码如下:

      MqlTradeRequest request;

      MqlTradeResult  result;

      request.action=TRADE_ACTION_DEAL;

      request.symbol=Symbol();

      request.type=ORDER_TYPE_BUY;

      request.volume=0.01;

      request.deviation=30;

      request.type_filling=ORDER_FILLING_IOC;

      request.type_time=ORDER_TIME_DAY;

      request.price=SymbolInfoDouble(Symbol(),SYMBOL_ASK);

      request.sl=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-100*SymbolInfoDouble(Symbol(),SYMBOL_POINT);

      request.tp=SymbolInfoDouble(Symbol(),SYMBOL_ASK)+200*SymbolInfoDouble(Symbol(),SYMBOL_POINT);

      request.comment="开多";

      request.magic=123456;

      result.retcode;

      OrderSend(request,result);


但总是无效的,哪里的问题??

谢谢

附加的文件:
001.jpg  259 kb
 
HX2019:

代码如下:

      MqlTradeRequest request;

      MqlTradeResult  result;

      request.action=TRADE_ACTION_DEAL;

      request.symbol=Symbol();

      request.type=ORDER_TYPE_BUY;

      request.volume=0.01;

      request.deviation=30;

      request.type_filling=ORDER_FILLING_IOC;

      request.type_time=ORDER_TIME_DAY;

      request.price=SymbolInfoDouble(Symbol(),SYMBOL_ASK);

      request.sl=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-100*SymbolInfoDouble(Symbol(),SYMBOL_POINT);

      request.tp=SymbolInfoDouble(Symbol(),SYMBOL_ASK)+200*SymbolInfoDouble(Symbol(),SYMBOL_POINT);

      request.comment="开多";

      request.magic=123456;

      result.retcode;

      OrderSend(request,result);


但总是无效的,哪里的问题??

谢谢

ORDER_FILLING_IOC;    填充类型有三种,换一个试一试

 
ulong buy(string symbol,double lots,int slpoint,int tppoint,string com,int magic)
   {
      MqlTradeRequest request={0};
      MqlTradeResult  result={0};
      request.action=TRADE_ACTION_DEAL;
      request.symbol=symbol;
      request.type=ORDER_TYPE_BUY; 
      request.volume=lots; 
      request.deviation=100; 
      request.type_filling=ORDER_FILLING_IOC;
      request.price=SymbolInfoDouble(symbol,SYMBOL_ASK);
      if(slpoint>SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL)) 
       { 
          request.sl=SymbolInfoDouble(symbol,SYMBOL_ASK)-slpoint*SymbolInfoDouble(symbol,SYMBOL_POINT);
       }
      if(tppoint>SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))
       {
          request.tp=SymbolInfoDouble(symbol,SYMBOL_ASK)+tppoint*SymbolInfoDouble(symbol,SYMBOL_POINT);
       } 
      request.comment=com;
      request.magic=magic;
     //--- 发送请求
      if(!OrderSend(request,result))//如果不能完成 
            PrintFormat("OrderSend error %d",GetLastError());     // 如果不能发送请求,输出错误代码
      //--- 操作信息
      PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);
      return(result.order);
   }
 
K God Martin:

不行啊

有“ request={0}; ”这个就报错了

 
HX2019:

不行啊

有“ request={0}; ”这个就报错了 request={0};


request={};

mt5更新后,做了衰整. 把 {0}中的 0去掉就行了。

 
改成 request={1} 或 request={}; ;
 
Wen Tao Xiong:
改成 request={1} 或 request={}; ;
谢谢,我现在用zero那个重设request就可以用了
 
用CTrade更简单
原因: