没有一个顾问不在Metatrader 5的任何货币对中工作。 - 页 7

 

而原因就在这里。

10030

交易_retcode_invalid_fill

指定了不支持的平衡订单执行类型

这一点已经提到过了。

关于交易、自动交易系统和交易策略测试的论坛

没有一个顾问能在metatrader 5的任何货币对中工作

sandex, 2015.04.29 12:56

换成美元,公司内部的EA不工作,我的则工作。

订单执行类型应该是ORDER_FILLING_RETURN


 
Karputov Vladimir:

而原因就在这里。

10030

交易_retcode_invalid_fill

指定了不支持的平衡订单执行类型

这一点已经提到过了。


如何使执行类型成为?ORDER_FILLING_RETURN
 
所以正确的ORDER_FILLING_有可能是FOG到RETURN...我也用MT5试过--在交易过程中,代码有一点干扰,我就在上面损失了100美元,新的代码也不能在演示中工作,直到我增加了一些功能--也许它是这样设计的......我不知道为了什么...我很久以前就放弃了MT5,尽管我一开始就用它--它似乎更安全、更简单......
 
chipo:
所以正确的ORDER_FILLING_有可能是FOG到RETURN...我也用MT5试过--在交易过程中,代码有一点干扰,我就在上面损失了100美元,新的代码也不能在演示中工作,直到我增加了一些功能--也许它是这样设计的......我不知道为了什么...我很久以前就放弃了MT5,尽管我已经开始使用它--它似乎更可靠,更容易使用......
在1个标准专家顾问中没有ORDER_FILLING-ORDER_FOK- FOK线。
 
所有的标准EA都是建立在一个标准库上 的,你需要编辑这个库。
 
Alexander Bereznyak:
所有的标准EA都是建立在标准库上 的,该库应该被纠正。

没有必要编辑标准库--这是一个错误的方法。你应该用一个新的名字保存该EA,并对代码进行一些修改。例如,将Moving Averages.mq5保存在一个新名字Moving Averages1.mq5下。

在标题中添加说明,该EA使用ORDER_FILLING_RETURN执行策略。

#property version   "1.00"
#property description "Политика исполнения: ORDER_FILLING_RETURN"
#include <Trade\Trade.mqh>

在关闭和打开位置的功能中添加一行代码

//+------------------------------------------------------------------+
//| Check for open position conditions                               |
//+------------------------------------------------------------------+
void CheckForOpen(void)
  {
   .
   .
   .
//--- additional checking
   if(signal!=WRONG_VALUE)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
           }
//---
  }
//+------------------------------------------------------------------+
//| Check for close position conditions                              |
//+------------------------------------------------------------------+
void CheckForClose(void)
  {
   .
   .
   .
//--- additional checking
   if(signal)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionClose(_Symbol,3);
           }
//---
  }
 
Karputov Vladimir:

没有必要编辑标准库--这是一个错误的方法。你应该用一个新的名字保存该EA,并对代码进行一些修改。例如,将Moving Averages.mq5保存在一个新名字Moving Averages1.mq5下。

在标题中添加说明,该EA使用ORDER_FILLING_RETURN执行策略。

添加一行代码来关闭和打开头寸

很好!一切正常。感谢你的辛勤工作和解释!你是一个很好的例子。
 
该主题不会被删除吗?我将来可能需要它 :)