mt5策略测试器的刻度 - 页 4

 
RaptorUK:
我说的不是在策略测试器中漏掉的点,而是在你记录时漏掉的点。 如果你在记录数据时计算你看到的点,而你漏掉了点,那么你的计数就会比它应该的要低。 判断你在记录时是否漏掉了点非常简单,我只是想知道你是否这样做了,当你发现你漏掉了点时你做了什么?

正如我所写的,我相信在我的真实记录时间数据是完整的。这方面的原因。

1、有时每分钟有近千个刻度(相当于每秒钟有十多个刻度!)的记录。这个数字很高,足以让我相信EA的性能没有问题。(因为这个数字,我不认为有未记录的跳动,EA无法跟上节奏)。

2,该EA运行在专用的Metatrader VPS上,该VPS由专业的服务提供商维护,专门为交易定制(即尽量减少连接中断)。

 
NyemaSanya:

正如我所写的,我相信我在VPS上的真实记录时间数据是完整的。这方面的原因是。

1、有时每分钟记录了近千次点击(相当于每秒钟十多次点击!)。这个数字很高,足以让我相信EA的性能没有问题。

2,该EA运行在专用的Metatrader VPS上,该VPS由专业的服务提供商维护,专门为交易定制的。


顺便说一下,我很好奇,你怎么能确定在记录时是否有一个缺失的刻度?

好吧,你不检查,所以你不知道你的计数是否正确 ... ...你为什么不直接说。 你的OnTick()需要多长时间执行? 如果它在下一个tick到来之前还没有完成,你就不会错过一个tick?

如何检查?好吧 ... ...在你进行的过程中保持一个点数,当一个新的条形图开始时,这个计数器归零,并在每个条形图中增加它,将你的计数与条形图0的成交量相比较,如果你的计数不同,你至少错过了一个点。

 
RaptorUK:

好吧,你没有检查,所以你不知道你的计数是否正确......你为什么不直接说。 你的OnTick()需要多长时间执行? 如果它在下一个tick到来之前还没有完成,你就不会错过一个tick?

如何检查?好吧 ... ...在你进行的过程中保持一个点数,当一个新的条形图开始时,这个计数器归零,并在每个条形图中增加它,将你的计数与条形图0的成交量相比较,如果你的计数不同,你至少错过了一个点。

所以,你刚刚为自己找到了一个好任务!;-)
 
RaptorUK:

好吧,你没有检查,所以你不知道你的计数是否正确......你为什么不直接说。 你的OnTick()需要多长时间执行? 如果它在下一个tick到来之前还没有完成,你就不会错过一个tick?

如何检查?好吧 ... ...在你进行的过程中保持一个点数,当一个新的条形图开始时,这个计数器归零,并在每个条形图中增加它,将你的计数与条形图0的成交量相比较,如果你的计数不同,你至少错过了一个点。

为什么你坚持这一点?
 
angevoyageur:

你为什么坚持这一点?


我只是想到了另一件事,表明他的坚持是多么的荒谬。为了得到测试者的tick数据,我确实在没有可视化的情况下运行了EA。这比现实生活中的速度要快得多,获得一天的数据需要不到半分钟。即使在这种情况下,所有的ticks都记录在....。

 
NyemaSanya:

我又想到了一件事,说明他的坚持是多么的可笑。为了得到测试者的tick数据,我确实在没有可视化的情况下运行了EA。这比现实生活中的速度要快得多,获得一天的数据需要不到半分钟。即使在这种情况下,所有的ticks都记录在....。

在正向测试中,你总是会错过一些点位(在相当长的测试时间内)。对此你无能为力,这些刻度线根本没有到达你的脚本/EA。请看文档。

如果有新的报价,NewTick 事件就会产生,它由附加的Expert Advisors的OnTick() 处理。如果在收到新的报价时,正在处理前一个报价的OnTick函数,新的报价将被智能交易系统忽略,因为相应的事件不会被排队

在测试器中,所有的都是内部生成的,所以你不会错过任何一个刻度。这就是问题所在。
 
angevoyageur:

在正向测试中,你总是会错过一些点(在一个显著的测试时间)。对此你无能为力,这些刻度线根本不会到达你的脚本/EA。请看文档。

如果有新的报价,NewTick 事件就会产生,它由附加的Expert Advisors的OnTick() 处理。如果在收到新的报价时,正在处理前一个报价的OnTick函数,那么新的报价将被专家顾问忽略,因为相应的事件不会被排队

在测试器中,所有的都是内部生成的,所以你不会错过任何一个刻度。这就是问题所在。


对不起,Angevoyageur


我不同意你和RaptorUK 的观点。在我看来,你忽略了基本的逻辑。在运行测试器时,该EA能够在几分钟的时间范围内记录几十万个点。这意味着Ontick()函数已经在几分之一秒内完成。

但是你坚持认为EA可能无法实时记录更少的点数,因为有更多的时间来执行Ontick()?

我很抱歉,但我认为现在这成了一个完全没有意义的对话,所以我退出。
 

@NyemaSanya:你显然没有 意识到,你可以在录音时错过一个Tick。RaptorUK 已经告诉你了。Ticks是经纪商的服务器广播的新报价。mt5在处理你的Tick_Recorder时可以忽略新的报价。Ticks是数据包,它必须在网络空间旅行并到达你的终端,你可能因为数据包丢失而错过Ticks。现在Ubzen 已经告诉你了。

所有mql4的传奇成员,mql4|mql5的创造者似乎都得出了同样的结论。Tick曲线拟合接近于随机性。

- 如果你仍然认为在现实生活中不能错过一个刻度,那么在进一步争论之前你需要研究你的东西。

- 如果你确实意识到你可以错过一个刻度,那么你需要回答为什么你的方法更好的问题。

总之,这只是一遍又一遍的相同争论。阅读这个 主题。

 
NyemaSanya:


对不起,Angevoyageur


我不同意你和RaptorUK 的观点。在我看来,你忽略了基本的逻辑。在运行测试器时,EA能够在几分钟的时间范围内记录几十万个tick。这意味着Ontick()函数已经在几毫秒内完成。

但是你一直坚持认为,EA可能无法实时记录更少的点数,有更多的时间来执行Ontick()?

我很抱歉,但我认为现在这成了一个无意义的对话,所以我退出。

为什么 有这样的反应 ?这里没有什么个人的东西。

这不是一个同意与否的问题。一个正向测试的EA总是会错过点位,这是事实。我发现你的第一条评论非常有趣,因为我从来没有注意到策略测试器 不会错过一个点,因为它们是根据成交量来模拟的。我问RaptorUk他为什么坚持,因为我发现这个问题是次要的, 没有意识 你不知道 什么是 tick

 

我昨天(9/4)在欧元兑美元上做了一个测试,用一个只计算刻度和比较MqlTick 数据的EA。

点数
MT5终端在D1图表上显示的交易量(刻度)。
46 645
正向测试D1
46 106
日线上的回测46 489


  • 因此,即使几乎什么都不做,EA在正向测试中,每天仍然错过了数百个点。
  • 对回测产生的点数比日常交易量少的事实有点好奇。
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Structure for Current Prices
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Structure for Current Prices
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Structure for Current Prices - Documentation on MQL5