失败的市场买入0.02 audusd sl: 0.66952 tp: 0.67552[不支持的填充模式]

 
各位大神这个问题怎么办 在欧美就可以用放在别的货币对就不行了
 

这是因为不同的品种的filling mode可能不一样,你的EA中要根据品种来设置单子的filling type,这样编写的EA就有普适性。

标准库trade.mqh已解决这个问题了,建议用标准库来编写EA。

在你的EA的初始化函数中调用这个 SetTypeFillingBySymbol(...)

//+------------------------------------------------------------------+
//| Set order filling type according to symbol filling mode          |
//+------------------------------------------------------------------+
bool CTrade::SetTypeFillingBySymbol(const string symbol)
  {
//--- get possible filling policy types by symbol
   uint filling=(uint)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
   if((filling&SYMBOL_FILLING_FOK)==SYMBOL_FILLING_FOK)
     {
      m_type_filling=ORDER_FILLING_FOK;
      return(true);
     }
   if((filling&SYMBOL_FILLING_IOC)==SYMBOL_FILLING_IOC)
     {
      m_type_filling=ORDER_FILLING_IOC;
      return(true);
     }
//---
   return(false);
  }
 
Ziheng Zhuang:

这是因为不同的品种的filling mode可能不一样,你的EA中要根据品种来设置单子的filling type,这样编写的EA就有普适性。

标准库trade.mqh已解决这个问题了,建议用标准库来编写EA。

在你的EA的初始化函数中调用这个 SetTypeFillingBySymbol(...)

谢谢

原因: