回溯测试多货币EA

 

我目前正在MT5策略测试器中回测一个多货币对的EA,当把它连接到不同的货币对时,我得到了不同的结果。该EA在澳元兑美元和英镑兑瑞士法郎上交易。

当我把它连接到澳元兑美元时,它获得了10K的利润。

当我把它连接到GBPCHF时,它获得了超过3万的利润。

当我把它附加到USDCHF(我认为OnTick()函数会在跟踪USDCHF时对AUDUSD和GBPCHF的变化做出反应),它得到了大约17000的利润。

这是使用OnTick()函数的问题吗?还是在回测多币种EA时存在一些隐藏的问题?或者只是我的代码中的一些混乱?

 
enivid:

我目前正在MT5策略测试器中回测一个多货币对的EA,当把它连接到不同的货币对时,我得到了不同的结果。该EA在澳元兑美元和英镑兑瑞士法郎上交易。

当我把它连接到澳元兑美元时,它获得了10K的利润。

当我把它连接到GBPCHF时,它获得了超过3万的利润。

当我把它附加到USDCHF(我认为OnTick()函数会在跟踪USDCHF时对AUDUSD和GBPCHF的变化做出反应),它得到了大约17000的利润。

这是使用OnTick()函数的问题吗?还是在回测多币种EA时存在一些隐藏的问题?或者只是我的代码中的一些混乱?

如果你把代码复制到这里就更好了,也许会有帮助。
 
代码其实并不重要。如果所有的交易都是在两个预定义的货币对上进行的,而且所有的交易都是在新条形图上进行的,而不是每一个tick,那么为什么测试器会对所附的货币对 有任何区别。
 
enivid:

代码其实并不重要。如果所有的交易都是在两个预定义的货币对上进行的,而且所有的交易都是在新的条形图上进行的,而不是每一个tick,为什么Tester会对所附的货币对有任何区别。

"打勾 "功能 不是只针对图表中的货币吗?我想说的是,对于99%的人来说,它是。我想你可以创建一个无限循环,每秒钟左右刷新一次报价,以获得更准确的刻度。但这将改变应用程序的整个结构。

 
enivid:

这段代码其实并不重要。如果所有的交易都是在两个预定义的货币对上进行的,而且所有的交易也是在新的条形图开盘时进行的,而不是每一个tick,为什么Tester会对所附的货币对有任何区别。

也许你应该尝试OnBookEvent()而不是OnTick()?- OnTick()只在当前符号tick到达时被触发。

书籍事件(OnBookEvent

OnBookEvent()函数是BookEvent 处理程序。只有当市场深度发生变化时,专家顾问才会产生BookEvent。它必须是无效类型,有一个字符串类型的参数。

voidOnBookEvent(conststring&symbol)。

要接收任何符号的BookEvent事件,你只需要使用MarketBookAdd() 函数预先订阅接收该符号的这些事件。为了取消订阅接收某一特定符号的BookEvent事件,请调用MarketBookRelease()

与其他事件不同,BookEvent事件是广播的。这意味着,如果一个专家顾问使用MarketBookAdd订阅接收BookEvent事件,所有其他拥有OnBookEvent()处理程序的专家顾问都会收到这个事件。 因此,有必要分析符号的名称,它作为 const string& symbol 参数传递给处理程序

 

我遇到了同样的问题:回测一个多货币EA时,我得到了完全不同的行为,这取决于我在策略测试面板中选择的符号。

这是非常令人烦恼的事情。罗什?有谁能评论一下吗?

即使on tick只适用于选定的图表,envid和我都是在新条形图的开盘时操作。在我的案例中,我使用的是日线,所以即使各种货币的新条形图的开盘时间不同,也不应该出现我所经历的这种巨大的差异。

由于明显的原因,我没有包括我的EA。 让我们看看在这里发布的EA是否有同样的问题:https://www.mql5.com/en/articles/105。

我很高兴听到有人成功地构建了一个多币种的EA,特别是没有受到这种差异的影响。

Creating an Expert Advisor, which Trades on a Number of Instruments
  • 2010.07.08
  • Nikolay Kositsin
  • www.mql5.com
The concept of diversification of assets on financial markets is quiet old, and has always attracted beginner traders. In this article, the author proposes a maximally simple approach to a construction of a multi-currency Expert Advisor, for an initial introduction to this direction of trading strategies.
 
investeo:

也许你应该尝试OnBookEvent()而不是OnTick()?- OnTick()只在当前符号tick到达时被触发。

书籍事件(OnBookEvent

OnBookEvent()函数是BookEvent 处理程序。只有当市场深度发生变化时,专家顾问才会产生BookEvent。它必须是无效类型,有一个字符串类型的参数。

voidOnBookEvent(conststring&symbol)。

要接收任何符号的BookEvent事件,你只需要使用MarketBookAdd() 函数预先订阅接收该符号的这些事件。为了取消订阅接收某一特定符号的BookEvent事件,请调用MarketBookRelease()

与其他事件不同,BookEvent事件是广播的。这意味着,如果一个专家顾问使用MarketBookAdd订阅接收BookEvent事件,所有其他拥有OnBookEvent()处理程序的专家顾问都会收到这个事件。 因此,有必要分析符号的名称,它作为 const string& symbol 参数传递给处理程序

我试着使用OnBookEvent(),但它根本没有工作(至少在回测中)。我在OnInit()函数中为我的两个交易对使用了MarketBookAdd()。
 

下面是一个例子。使用来自https://www.mql5.com/en/articles/105 的TEMA EA,我们得到以下不同的行为。

你只需要EA exp_tema_en.mq5和指标multistochastic_en.mq5。

在这个例子中,我使用了附件中的参数设置文件。该EA交易欧元兑美元、美元兑瑞士法郎和美元兑日元(使用这些参数)。

当你把它连接到欧元兑美元时,你会得到

连接到欧元兑美元时的权益

当你连接到USDCHF时,你会得到

USDCHF

然后,对于USDJPY,我们得到

美国

更好的是,当在澳元兑美元上运行该EA时,结果是

稽查

同样的EA,同样的时间框架(H1),同样的交易对,同样的日期(2009.01.01-2009.03.01)。

是这样吗?如果是这样,谁能告诉我们这是什么意思?

我们真的准备好进行多货币回测/优化了吗?

Creating an Expert Advisor, which Trades on a Number of Instruments
  • 2010.07.08
  • Nikolay Kositsin
  • www.mql5.com
The concept of diversification of assets on financial markets is quiet old, and has always attracted beginner traders. In this article, the author proposes a maximally simple approach to a construction of a multi-currency Expert Advisor, for an initial introduction to this direction of trading strategies.
 
trendick:

下面是一个例子。使用来自https://www.mql5.com/en/articles/105 的TEMA EA,我们得到以下不同的行为。

你只需要EA exp_tema_en.mq5和指标multistochastic_en.mq5。

在这个例子中,我使用了附件中的参数设置文件。该EA交易欧元兑美元、美元兑瑞士法郎和美元兑日元(使用这些参数)。

当你把它连接到欧元兑美元时,你会得到


当你连接到USDCHF时,你会得到


然后,对于USDJPY,我们得到

更好的是,当在澳元兑美元上运行该EA时,结果是

同样的EA,同样的时间框架(H1),同样的交易对,同样的日期(2009.01.01-2009.03.01)。

是这样吗?如果是这样,谁能告诉我们这是什么意思?

我们真的准备好进行多货币回测/优化了吗?




嗨,我有同样的问题(不同的结果),但用IsNewBar()解决了这个问题。

我同意baq的观点,那么我们应该怎么做呢?"获取报价 "和 "这个函数 "都可以。

只有当IsNewBar(一些符号),然后胡说八道

对于我的EA,我得到了同样的结果,附加到不同的符号。

我从这里得到这个函数的文章是:https://www.mql5.com/en/articles/105

Creating an Expert Advisor, which Trades on a Number of Instruments
  • 2010.07.08
  • Nikolay Kositsin
  • www.mql5.com
The concept of diversification of assets on financial markets is quiet old, and has always attracted beginner traders. In this article, the author proposes a maximally simple approach to a construction of a multi-currency Expert Advisor, for an initial introduction to this direction of trading strategies.
 
Ali2e7a:

嗨,我有同样的问题(不同的结果),但用IsNewBar()解决了这个问题。

我同意baq的观点,那么我们应该怎么做呢?获得引号,这个函数是

只有当IsNewBar(some symbol)时,才会出现blah blah blah。

对于我的EA,我得到了同样的结果,附加到不同的符号。

我从这里得到这个函数的文章是:https://www.mql5.com/en/articles/105

阿里,我上面提到的例子是你提到的EA,它是你提到的IsNewBar()函数 的来源,并且已经使用了它。

你如何解释这个问题?

 

另请参见https://www.mql5.com/en/forum/1520 的多货币同步线程

Multi-Currency synchronization
  • www.mql5.com
Here some tests results and below details:.