程序库: RL 算法

 

RL 算法:

基于文章 "Random decision forest in reinforcement learning (强化学习中的随机决策森林)"的开发库。

RL 算法

作者: Maxim Dmitrievsky

 
训练结果文件越大,拟合的可能性就越大。
 
fxsaber:
也许,训练结果文件越大,拟合概率就越高。

如果样本不具代表性(在外汇交易中总是如此),那么是的。可以通过减少正则化来降低概率。

此外,目标超采样的问题尚未解决,结合输入超采样应该会得到更有趣的结果。

 
Maxim Dmitrievsky:

如果样本不具代表性(在外汇交易中总是如此),那么是的。您可以通过降低正则化程度来减少代表性。

此外,目标搜索的问题尚未解决,而目标搜索和输入搜索会带来更有趣的结果。

学习结果文件的大小 越接近价格历史记录的大小,您在模型中需要做的事情就越少。

例如,如果学习文件与 OHLC 文件的大小相等,那么模型就是历史记录本身。也就是说,学习文件(使用的部分)最好比历史记录小几个数量级。

 
fxsaber:

训练结果文件的大小越接近价格历史记录的大小,模型中需要做的事情就越少。

例如,如果学习文件与 OHLC 文件的大小相等,那么模型就是历史记录本身。也就是说,精益文件(使用的部分)的大小最好小于历史数据的大小。

这样就能保留随机森林,但文件总是很大,无法缩小。你可以使用线性方法,这样文件中就只包含回归系数,重新训练的次数也会减少。

我最初只是对使用 RF 感兴趣。但它太喜欢在任何情况下过度训练了

 
Maxim Dmitrievsky:

这样保存的随机森林文件总是很大,无法缩小。你可以使用线性方法,这样文件中就只有回归系数,重新训练的次数也会减少。

我最初只是对使用 RF 感兴趣。但在任何情况下,它都喜欢重新训练。

问题的关键是,最好只保存 learn=false 时使用的信息。如果信息太多,工作几乎就白费了。

打个比方,保存 BestInterval 数据。如果这些数据很少,你仍然可以不费吹灰之力地查看它们。但如果数量很多,就只能看图片了。

 
fxsaber:

问题是,最好只保存 learn=false 时使用的信息。如果有很多信息,工作几乎就白费了。

打个比方,保存 BestInterval 数据。如果数量很少,你仍然可以不费吹灰之力地查看。但如果数量很多,那就只能看图片了。

嗯,是的,尤其是当解释性信息多于可解释性信息时--这是一个笑话:)

我稍后会提供该库的其他变体

 

我对它进行了测试,但印象模糊不清。我在使用 Weierstrass 函数公式 生成的自定义图表上进行了测试。

理论上,在这个自定义图表上,RandomForest 应该能找到非常接近 ZigZag 的入场点,或者至少不会出现亏损订单,在 TF H1 上,周期性被清晰地追踪到,但 RF 算是找到了这种模式,但也出现了亏损订单。

早些时候,我在 MT4 上用相同的数据测试了旧的 GoldWarrior Expert Advisor(在英文论坛上找到的)--一个 ZigZag 上的顾问,在 MT4 优化器中,在所有 TF(直到 M15)上都能清晰地找到模式,并且完全是 + 所有订单。

我测试了一个关于回归线交叉的指标智能交易系统(唉,我做的是订单,不能提供代码),这个智能交易系统在优化器中很快发现了 Weierstrass 函数的模式。

为什么要举这些例子呢?- 如果原始方法可以找到规律性,那么机器学习就更有义务找到它们。

恕我直言,作者的成果值得怀疑,或者说使用 RandomForest 的示例非常出色,但仍有努力的余地;)。

ZY:从 2000.01.01 到 2001.01.01 进行了训练 从 2001.01.01 到 2002.01.01 进行了测试

ZY: 附有自定义图表脚本,符号库在 KB 中

附加的文件:
 
Igor Makanu:

SZY:附加的自定义图表脚本,KB 中的符号库

// CustomRatesReplace(WrstName,0,LONG_MAX,rates);
      SymbDB.CloneRates(rates);
 
fxsaber:

啊哈,谢谢!

我花了 20 分钟看了你的库,但还是没想明白,我今天不太专心,目的是测试作者的代码,看看 RandomForest 看到了什么。

更新了我的脚本,并附在上面

 
Igor Makanu:

我在一个由 Weierstrass 函数生成的自定义图表上进行了测试,使用的公式

理论上,在这个自定义图表上,RandomForest应该能找到 非常接近之字形的入场点,或者至少不会出现亏损订单,而在 H1 TF 上,周期性是明显可追踪的,但 RF 发现了这种模式,但也出现了亏损订单。

早些时候,我在 MT4 上用相同的数据测试了旧版 GoldWarrior Expert Advisor(在英文论坛上找到)--ZigZag Expert Advisor,在 MT4 优化器中,在 M15 以下的所有 TF 上,它都明显发现了规律性,而且所有订单都是 +。

我测试了一个关于回归线交叉的指标顾问(唉,我做的是订单,不能提供代码),这个顾问在优化器中的 Weierstrass 函数上很快找到了规律性。

为什么要举这些例子呢?- 如果原始方法可以找到规律性,那么机器学习就更有义务找到它们。

恕我直言,作者的这一结果值得商榷,或者说使用 RandomForest 的例子非常好。)

SZY: 训练时间 2000.01.01 至 2001.01.01 测试时间 2001.01.01 至 2002.01.01

ZY:附带自定义图表脚本,KB 中的符号库

不,现在不是这样工作的。它不寻找任何谐波模式。输出是随机和频繁采样的,然后它会尽量逼近策略。为了逼近任何模式,它需要根据其他逻辑对输出进行采样,也许是相同的之字形。

这一切都很容易在 reward f-i 中改变。只是我现在没有那么多时间去做几百次实验。也许你可以通过优化器想出办法。

无论如何,你都需要定义一定范围的条件,在这些条件中寻找最佳变体。因为变体的数量是无限的。