MT5EA下不了单求助

 
 MqlTradeRequest request={0};
   MqlTradeResult  result={0};
//--- 请求的参数
   request.action   =TRADE_ACTION_DEAL;                     // 交易操作类型
   request.symbol   =Symbol();                              // 交易品种
   request.volume   =1;                                   // 0.1手交易量 
   request.type     =ORDER_TYPE_BUY;                        // 订单类型
   request.price    =0; // 持仓价格
   request.deviation=555;                                     // 允许价格偏差
   request.magic    =123;                          // 订单幻数
//--- 发送请求
   if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());     // 如果不能发送请求,输出错误代码
//--- 操作信息

   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);

帮助文件的源码,也无法下单.

也无法下单:提示

2017.09.07 16:01:32.894 cheshi (XAUUSD,H1) OrderSend error 4756

2017.09.07 16:01:32.894 cheshi (XAUUSD,H1) retcode=10030  deal=0  order=0


日志:

2017.09.07 16:01:33.050 Trades '52964751': failed market buy 1.00 XAUUSD [Unsupported filling mode]



是什么原因,新人学习,卡在这里一天了.


 

 MqlTradeRequest request={0};

   MqlTradeResult  result={0};

//--- 请求的参数

   request.action   =TRADE_ACTION_DEAL;                     // 交易操作类型

   request.symbol   =Symbol();                              // 交易品种

   request.volume   =1;                                   // 0.1手交易量 

   request.type     =ORDER_TYPE_BUY;                        // 订单类型

   request.price    =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // 持仓价格

   request.deviation=5;                                     // 允许价格偏差

  // request.magic    =EXPERT_MAGIC;                          // 订单幻数

//--- 发送请求

   if(!OrderSend(request,result))

      PrintFormat("OrderSend error %d",GetLastError());     // 如果不能发送请求,输出错误代码

//--- 操作信息

   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);


上面的源码价格有问题.这个是正确的.

 

滑点也改过了.应该不是滑点的问题

 

还有一个栏位没有正确填充: request.type_filling = ???

如果要正确填充,可以参考这篇贴子里面的方法:

 
Jian Chen:

还有一个栏位没有正确填充: request.type_filling = ???

如果要正确填充,可以参考这篇贴子里面的方法:



谢谢版主,加了一句代码后可以执行了.

request.type_filling    =ORDER_FILLING_IOC;

帮助文件讲的不详细,我再研究一下.谢谢你.

 
zrahzz:

谢谢版主,加了一句代码后可以执行了.

request.type_filling    =ORDER_FILLING_IOC;

帮助文件讲的不详细,我再研究一下.谢谢你.


不客气 :) 那个帮助里面的例子程序写的确实不好,问题解决就好了 :)

 
谢谢,确实可以解决问题
 
zrahzz #:

 MqlTradeRequest request={0};

   MqlTradeResult  result={0};

//--- 请求的参数

   request.action   =TRADE_ACTION_DEAL;                     // 交易操作类型

   request.symbol   =Symbol();                              // 交易品种

   request.volume   =1;                                   // 0.1手交易量 

   request.type     =ORDER_TYPE_BUY;                        // 订单类型

   request.price    =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // 持仓价格

   request.deviation=5;                                     // 允许价格偏差

  // request.magic    =EXPERT_MAGIC;                          // 订单幻数

//--- 发送请求

   if(!OrderSend(request,result))

      PrintFormat("OrderSend error %d",GetLastError());     // 如果不能发送请求,输出错误代码

//--- 操作信息

   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);


上面的源码价格有问题.这个是正确的.

大侠,复制这个代码运行好像还是不行,27个报错,不知道什么意思怎么弄?
附加的文件:
原因: