文章 "利用 CatBoost 算法寻找外汇市场的季节性模式"

 

新文章 利用 CatBoost 算法寻找外汇市场的季节性模式已发布:

本文探索了用时间过滤器建立机器学习模型,并讨论了这种方法的有效性。现在,只要简单地指示模型在一周中某一天的某个时间进行交易,就可以消除人为因素。模式搜索可以由单独的算法提供。

您可以在函数中设置要检查的小时数列表。在我的例子中,所有的24小时都设置好了。为了实验的纯度,我通过将“min”和“max”(开启仓位的最小和最大水平)设置为15来禁用采样。“iterations”变量负责每小时的再训练周期数。增加这个参数可以得到更可靠的统计数据。操作完成后,函数将显示下图:


X轴以小时的序号为特征。Y轴表示每次迭代的R^2分数(使用10次迭代,这意味着每小时进行一次模型再培训)。如您所见,4小时、5小时和6小时的通行证位于更近的位置,这使您对找到的模式的质量更有信心。选择原则很简单 - 点的位置和密度越高,模型就越好。例如,在9-15点的时间间隔内,图中显示了大量的点分散,模型的平均质量下降到0.6。您可以进一步选择所需的小时数,重新训练模型并在自定义测试器中查看其结果。

作者:Maxim Dmitrievsky

 

干得好,马克西姆!

举个例子,这是一位在外汇市场上大肆套现的奇才的图表。它们在这里:

https://smart-lab.ru/blog/666149.php

非常像这样...

所以,你们走的是大致相同的 "圣杯之路"。

Философия фундаментальных принципов движения цены
Философия фундаментальных принципов движения цены
  • smart-lab.ru
Рынок манит своими возможностями. Мозг большинства трейдеров отказывается мыслить рационально и заставляет как можно быстрее получить дозу адреналина. Какая альтернатива? Проверить формализованную идею на всей доступной истории и, осознав результаты, не торговать никогда. Что же мешает этому? тяга к игре на эфемерных неэффективностях нежелание...
 
Alexander_K2:

干得好,马克西姆!

举个例子,这是一位在外汇市场上大肆套现的奇才的图表。它们在这里

https://smart-lab.ru/blog/666149.php

非常像....

所以,你们走的大致是同一条圣杯之路。

嗯,还不清楚是关于什么的。

如果你把机器学习应用于外汇交易,那么用于训练的数据永远是不够的。这是需要规避的关键点。

在我的文章中,我通过生成新的可信样本来部分规避这一问题,但我们可以进一步探讨这一话题。
 
Maxim Dmitrievsky:

嗯,还不清楚是关于什么的。

如果将机器学习应用于外汇交易,那么用于训练的数据总会不足。这是需要规避的关键点。

好吧,这个向导确信外汇报价是一个在时间上扭曲的人造伪随机序列。如果我对他的演讲理解正确的话,它还能用于时间滤波器
 
Alexander_K2:
这位巫师确信,外汇报价是一个人为伪随机序列,在时间上被扭曲了。如果我没听错的话,他还会使用时间过滤器。

现在是时候让这些巫师一探究竟了:)

 

读出来。音节不错)。

问题来了,除了临时过滤器,还有什么过滤器是合理的。对增量、价格运动速度、烛台或刻度线形态的过滤要比临时过滤随机得多。假设在同一时间,价格的表现与其他时间相同,这看起来是合乎逻辑的。其他迹象有什么不能说的呢?

即使是定期发布的新闻,也是有时间限制的。

 
Valeriy Yastremskiy:

读一读。漂亮的音节)

问题来了,除了临时过滤器,还有什么过滤器是合理的。对增量、价格运动速度、烛台或刻度线形态的过滤要比临时过滤随机得多。假设同一时间的价格表现与其他时间段的价格表现相同,看起来是合乎逻辑的。其他迹象有什么不能说的呢?

即使是定期发布的新闻,也是有时间限制的。

在给定的历史深度下,对增量的离散性进行过滤效果很好。也许使用熵滤波器来估计当前序列的规律性(可预测性)更有意义。您也可以使用新闻过滤器,但必须从某个地方下载。

如果还有其他假设,只需几行代码就能轻松内置并测试。
 
Maxim Dmitrievsky:

在一定的历史深度下,增量分散滤波器效果很好。你可以做新闻,但必须从某个地方下载

如果有任何其他假设,都可以很容易地内置和测试。

恰恰是其他假设经不起批评。增量应该有效,但误报率会更高。如果我们对它们进行时间过滤 就好了)。

对于新闻而言,在准备数据、对数据进行排序以及总体上分离和理解如何进行排序方面是很困难的。

 
Valeriy Yastremskiy:

其他假设经不起推敲。增量应该有效,但会有更多的误报。如果我们对它们进行时间过滤就好了)。

对于新闻,在准备数据、对其进行排序以及总体上分离和理解如何去做等方面都很困难。

新闻的难度更大,是的,这就是为什么我仍然没有这样做的原因

 
马克西姆,在您的 python 代码中进行测试时,是否考虑了点差?比如说,如果你把一个模型放到 mql5 机器人中,它会在 MT5 测试仪中显示相同或类似的图表吗?我只是想知道这些模型的五位数点位期望值是多少。根据图表,如果您选择最好的第一个模型,600 笔交易 5 个点,那么 600 笔交易的五位数 点数为 50 点,每笔交易的五位数 点数为 0.083。也许我误解了什么?
 
Evgeniy Ilin:
马克西姆,在您的 python 代码中进行测试时,是否考虑了点差?比如说,如果你把一个模型放到 mql5 机器人中,它会在 MT5 测试仪中显示相同或类似的图表吗?我只是想知道这些模型的五位数点位期望值是多少。根据您的图表,如果您选择最好的第一个模型,600 笔交易 5 个点,那么 600 笔交易的五位数 点数为 50 点,每笔交易的五位数点数为 0.083。也许我误解了什么?

点差在自定义测试器中已考虑在内,然后在 MT5 测试器中对模型进行检查(参见本系列的第一篇文章)。

也就是说,逻辑很容易(相对)转移到 MT5 中,几乎是自动的。