程序库: RL 算法 - 页 3

 
Maxim Dmitrievsky:

将使用不同的变量进行更多试验.....。

我正在用一组指标和一种混合物(指标+收盘价)尝试这些算法。如果可能,并与您的研究一致,请实现对相关数据的初始剔除,即检查相关性。使用您的方法,将选择两个接近的指标(如果它们对结果的影响足够大的话),不过其中一个指标应该让位于一个独立指标。

 
mov:

我正在用一组指标和一组混合指标(指标+收盘价)尝试这些算法。如果可能并与您的研究相符,请对相关数据进行初始剔除,即检查相关性。根据您的方法,将选择两个接近的指标(如果它们对结果的影响足够大),但其中一个指标应让位于一个独立指标。

可以试一试。目前,递归和逻辑递归(用 logit 回归代替 RDF)版本实现了对价格增量的选择,即在给定的 1000 个收盘价 的预测数组中,例如,用每个后续价格值除以零柱,从而得到一大组具有不同滞后期的增量,并选择其中最好的。也就是说,在这种情况下,为不同的震荡指标(如动量指标或 rsi 指标)提供不同的周期并没有太大意义。

 
Maxim Dmitrievsky:

不妨一试...

如果我的推理(价格)有错,请指正:

有几种发布的方法使用了类似于

CDForest::DFBuildRandomDecisionForest(m,RDFpolicyMatrix.Size(),1,2,trees,r,RDFinfo,mRDF,mRep); 

用最小误差进行选择。这可以看作是对结果相关性的测试。

假设有一个波浪过程(走廊、楔形等)。一小时时间框架上的 100 个值约为 4 天,很有可能在这个时间区间内存在不止一个波浪。那么我们就有 2 个(或更多)相关点。如果其中一个点对结果有很大影响,那么第二个点也会通过测试。此外,还有负相关的半波。因此,在为进一步构建而选择的 10 个读数中,有 2-3 个是独立的(其余读数与之密切相 关,对识别效果的改善甚微)。这就需要首先选择相互关联度较低的读数(计算所有读数对不成问题,但如何从这头猪身上切下一块火腿,我还没有什么头绪)。

作为间接的证实,在严肃的手册中提到,树丛法的结果比随机森林(bagging)少几个百分点。不过,这在很大程度上取决于实现方法和内部树构建算法(在上述结果中,两种方法都使用了 CART)。

因此,一种方法的效率在很大程度上取决于测试期的选择。顺便说一下,通道坡度也不能完全避免这个问题。
 

为了迎头赶上、

也许我们应该使用相同的对数回归或其他方法,而不是平均特工读数?我认为理论上是可行的。

 
mov:

追赶、

也许我们应该使用相同的对数回归或其他方法,而不是平均特工读数?我的意思是,从理论上讲,这就是工作方法。

你可以使用任何方法,但纯粹从理论上讲,有些东西根本不明显,也不清楚是否值得在这些方面(以及整个方法上)花时间。至少,这将是一本如何不这样做的手册:)

关于预测因子的多重共线性--我同意。有必要建立一个协方差矩阵,并在此基础上进行选择。

 
谢谢,我等着你。
 
Igor Makanu:

我对它进行了测试,但印象模糊不清。我在使用 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 中的符号库

Unbite Weierstrass on one-two,略有改动的版本,整个图都是 oos。我觉得没必要再继续下去了,这已经很明显了。但我觉得很有趣)

当然,这在市场上是行不通的。谢谢你的脚本,顺便说一句,这个测试非常有用,因为我一开始无法理解逻辑中是否存在错误,而在实际报价中,结果要适中得多。


线性模型同样可以轻松应对,也就是说,预测这个函数甚至不需要神经网络。


反向交易,检查一下。

至于是否存在亏损交易--这个问题纯属虚构,是准确性和过度拟合之间的权衡。

 
Maxim Dmitrievsky:

谢谢你的脚本,顺便说一句,检查非常有用,因为我一开始无法理解逻辑中是否存在错误,而 在实际报价,结果要适中得多。

;) ...我已经讨论这个问题半年了。

我在 "咀嚼 "数学,我有非标准的想法--非平滑分析,而且我惊讶地发现,读 R. Lowenstein 所著的《当天才失败时》是一本相当有趣的小说--我读它是为了分散自己的注意力。

我对您的代码很感兴趣,如果可以的话,请通过邮件告诉我您的代码。

 
Igor Makanu:

;) ...这件事我已经说了六个月了。

我正在 "啃 "数学,我有一些非标准的想法--非平滑分析,我惊讶地发现 R. Lowenstein 写的一本相当有趣的小说《当天才失败时》--我读它是为了分散注意力。

我对你的代码很感兴趣,如果可以的话,请通过邮件告诉我你的代码。

不平滑、不毛糙?晚上我将收集一个文件,分享共同的项目......也许我们可以一起做点什么。

 
Maxim Dmitrievsky:

......关于预测因子的多重共线性 - 我同意。有必要建立协方差矩阵并对其进行选择,稍后我会考虑如何做得更好

我可能是在敲一扇敞开的门,但既然没有......

他们建议在转换到 [0,1] 范围之前进行预处理:

1. 去除周期性,我在 periodicityArrays() 中做到了这一点--从范围中减去一个月中由星期 和小时组成的轮廓(不过我只尝试了一个小时的时间范围)。

2.按照建议在 linearTrendArrays() 中删除线性趋势 a[i]=a[i]-a[i+1]。

3.这里应该是自相关性检查(尚未实现)


经过 1 次和 2 次操作后,可预测性明显提高。代码附后。
附加的文件: