1分钟OHLC与每个tick的对比--结果相反 - 页 2

 
laplacianlab:

我完全同意ugo58的观点。大的条形图可以触发OnTick事件很多次,而小的条形图触发的次数就少得多。

这可能会对你的自动交易策略产生影响,所以我们的开发人员必须寻找解决方案,以减轻你的OnTick事件可能在每个条形上执行许多次的事实。

我认为我之前发送的只是一个解决方案。 ugo50提出了另一个解决方案:在最近的一个柱子上运行你的OnTick逻辑。不管怎么说,如果你想在当前条上运行你的OnTick逻辑,也许你可以使用与我之前发送的类似的东西。

我们正试图实现类似OnBar事件的东西。

你对此有什么看法?

laplacianlab:
也许这个链接也是有用的,https://www.mql5.com/en/articles/159

你发布的代码与文章中的代码基本相同。这并不是什么新鲜事,而且对于在封闭的条形图上交易的EA来说,这是最好的方法。

虽然与这个话题没有直接关系,但这篇文章 可能会让你感兴趣。

 
michelino:

我在测试每格或1分钟OHLC时得到完全相反的结果。EA和输入参数完全相同,但在1分钟OHLC的情况下,我得到50000的利润,而在每格我得到-7000的损失。

这种情况发生在许多货币对的测试中,测试时间为2年0811-0813。

有人遇到过同样的问题吗?我不明白这里的问题是什么,当我进行真正的资金交易时,我应该怎么做。

以下是两张图

1分钟OHLC

每一个刻度

嗨,交易数量也一定很不一样,是吗? 如果你选择每一个tick,这意味着你的onTick函数是每隔x秒执行一次。对我来说也是如此,结果很糟糕。

2013.08.21 08:54:04    Core 1    EURUSD.e,M3: 72488 ticks (6230 bars) 



 
Florew:

嗨,交易次数也一定很不一样,是吗? 如果你选择每一个tick,这意味着你的onTick函数是每隔x秒执行一次。对我来说也是如此,结果不好。



我试着解释一下我的方法。

价格运动就像地震仪。在最小的规模下观察,它介于混乱和不可预测之间,但随着我们增加观察的规模,价格变得越来越有确定性。无论如何,我们必须始终牢记,价格条只是价格运动的任意离散。

这将是理论上的解释。你对此有何看法?如果你愿意,你可以反驳。

 
michelino:

有人遇到过同样的问题吗?我不明白这里的问题是什么,在进行真钱交易时我应该怎么做。


请原谅我坚持参与这个话题,我只是想帮忙。事实证明,现在我参与了一个策略,这个问题非常重要。

简而言之,如果价格运动通过条形图定义的路径对你的策略非常重要,那么MQL5的OnTick模式是必不可少的。另一方面,如果您的交易策略在更大的范围内移动,可以说,OnTick模式可能没有必要。在这种情况下,你不需要浪费你的电脑资源来测试你的策略。你应该阅读这个https://www.mql5.com/en/docs/runtime/testing

也就是说,分析你的交易策略,发现发生了什么,会很有意思。是什么构建了你的系统?它是基于哪个想法?你是如何建立它的?

看起来你的系统的基本部分是基于短期的(非常短的时间框架,分钟条),在一个规模上,一分钟就有很大的区别。你应该分析一下这些部分。

谢谢!

Documentation on MQL5: MQL5 programs / Testing Trading Strategies
Documentation on MQL5: MQL5 programs / Testing Trading Strategies
  • www.mql5.com
MQL5 programs / Testing Trading Strategies - Documentation on MQL5
 
laplacianlab:

我试图解释我的方式。

价格运动就像地震仪。在最小的尺度下观察,它介于混乱和不可预测之间,但随着我们增加观察的尺度,价格变得越来越有确定性。无论如何,我们必须始终牢记,价格条只是价格运动的任意离散。

这将是理论上的解释。你对此有何看法?如果你愿意,你可以反驳。


我不是研究蜡烛形成过程的专家,但从我的角度看,你的解释似乎是正确的。

我的理解是,模拟EA设置的每一个tick选项(不是1分钟的OHLC)的行为或多或少与真实的市场情况相同。好吧,除了如果EA有一些代码说要等待1分钟OHLC蜡烛的完成形成。OHLC蜡烛,正如我所理解的,你在这里提到的。我不确定这段代码的含义,对吗?)


*** 编辑 ***


对于你们来说,必须采取什么预防措施才能使EA在真实市场条件下(演示或真实)表现得像1分钟。OLHC模拟选项(最赚钱的)?

 
Florew:


对于你们来说,如果一个EA在真实的市场条件下(演示或真实)表现得像1分钟的样子,必须采取什么预防措施。OLHC模拟选项(最赚钱的)?

也许你应该问自己哪个模拟是正确的,为什么?
 
RaptorUK:
也许你应该问自己哪个模拟是正确的?为什么?然后你能在实际交易中重现这个模拟数据吗?


我同意你的观点。我得到了第一个和第二个问题的答案,但不是最后一个。

在这篇文章中,第一个例子的支撑点数量没有错误吗?我可以看到开盘影线和收盘影线都只有一个支撑点。它说的是三个:/


如果影子是用三个支撑点 产生的,并且整数值3/4的影子大小和1/2的影子大小相等(当 开盘 低点 开盘 高点 之间的差值不大于2点时,就会发生这种情况),那么影子的产生就会以如下方式改变:


如果影子是由两个支撑点产生的,那么控制点的排列方式是:

 
Florew:

嗨,交易次数也一定很不一样,是吗? 如果你选择每一个tick,这意味着你的onTick函数是每隔x秒执行一次。对我来说也是如此,结果很糟糕。



但我明白为什么会发生这种情况,因为当价格低于移动平均线一定点数时,EA进入市场做多(与空头相反),当交易ohlc时,它正好在低点买入,而在每一个tick 上,它在低点和收盘之间买入,所以它获得了很多通常不会有的利润。

因此,不幸的是,没有办法重现这种性能。

 
Florew:


在这篇文章中,第一个例子的支持点的数量没有错误吗?我看到开影和闭影都只有一个支持点。它说的是三个 :/


我认为概念和术语之间有一些不匹配。在你发送的数字中,你在哪里看到唯一的支持点?

无论如何,我也认为该算法的细节对我们来说太多,因为历史上的tick序列是如何建立的并不重要。获取这些信息是非常好和有趣的,但我的意思是,我们对这些信息什么都不做!我们只能意识到这些坑。我们只能意识到计算机在处理离散事物时的隐患。总有一些地方你会失去一些准确性,这对浮点值来说是同样的事情。这里的区别是,我们也在处理非常小范围内的人类行为。

顺便说一下,我们还讨论了经纪人的历史数据是不一样的,而且这种差异在短时间内变得更大。

你对这一切怎么看?这是否正确?你认为是否值得关注那些在小范围内运作良好的策略?

 

michelino:

所以不幸的是,没有办法重现这种性能。


我不确定是否理解你的观点。在我看来,一定可以重现1分钟的OHLC模式模拟。

文件说:

在 "1分钟OHLC "模式下,tick序列仅由 分钟条的OHLC价格构建 ,生成的控制点数量大大减少--因此,测试时间也会减少。OnTick()函数 的启动是在所有控制点上进行的,这些控制点是由OHLC分钟条的价格构建的

然后:

为了测试交易策略,我们需要一连串的点,在这些点上将模拟专家顾问的工作。因此,对于每一个分钟条,我们知道 4个控制点,价格肯定在那里。如果一个条形图只有4个点,那么这些信息就足以进行测试,但通常情况下,条形图的数量要大于4。

问题是:OHLC分钟条中有多少个控制点,如何修改onTick()函数 以对每个控制点起作用?

根据两个引文中的文字,我理解第一个问题的答案总是4个,因为如果一个条形图有4个以上的刻度,它就会 "大大 "减少,以加快测试时间。 对于下一个问题,事情是在实际市场条件下确定1分钟OHLC条形图的4个控制点,然后要求onTick()对它们工作。