交易中的机器学习:理论、模型、实践和算法交易 - 页 3272

 
fxsaber #:

我为自己的任务制作了它,并分享了工作代码。需要的人可以看看。

在哪里可以看到最终代码?

 

有人尝试过处理 "异常值 "吗?我说的 "异常值 "不是错误,而是罕见事件。

有趣的是,在某些样本串中,50% 以上的预测器都记录了异常值....。

事实证明,这些异常值很容易进入模型。

因此,看来这不仅对 NS 至关重要....。

 
fxsaber #:

我不做比较,我提供一个代码,每个人都可以根据自己的情况进行测量。

字符串长度 100 就是模式的长度。你可能不需要更多。

15000 个样本的内存有限,因为相关矩阵的大小是二次方。样本越多越好。所以我自制了一个程序,可以有一百万个样本。

我既不想也没有时间去做客观比较。我只是为了完成自己的任务,并分享了工作代码。谁需要它,谁就能看到它。

加速度的变量 - 输出矩阵应存储在 uchar 中。通常情况下,我们以 1%的增量改变百分比并查看某些内容。uchar - 最多为 +- 128。您可以针对 uchar 和 alglib 修改自己的设计,相关代码可供使用。在内存相同的情况下,矩阵总数可以增加 8 倍。

 
Aleksey Vyazmikin #:

有人尝试过处理 "异常值 "吗?我说的 "异常值 "不是错误,而是罕见事件。

有趣的是,事实证明,在某些样本字符串中,50% 以上的预测器都能固定异常值....

事实证明,这些异常值是否被包含在模型中是很愿意的。

这样看来,这不仅对 NS 至关重要....。

白天鹅/黑天鹅...fxsaber 在他的博客中写道。在众多变体中,我也有过这样的变体:每隔几年交易一周左右。一般来说,专家坐等动静。但这只是测试仪中的理想表现。在现实生活中,滑点(运动过程中的滑点非常大)会毁掉一切。

 
Forester #:

白天鹅/黑天鹅.....fxsaber 在他的博客中写道。在众多变体中,我有以下几种:每隔几年交易一周左右。一般来说,专家坐等动静。但这只是测试仪中的理想表现。在现实生活中,滑点(运动过程中的滑点非常大)会毁掉一切。

我试着从样本中删除有大量异常值的线条。

而且,训练结果也发生了根本性的变化。

如果说之前的测试结果平均为正数,而考试结果几乎全部为负数--这是在 100 个模型中得出的结果,那么清除异常值后,结果就发生了变化--测试结果大为恶化(平均利润接近于零),而考试结果恰恰相反--很多模型都变成了正数。

我还不能说这是一种规律,我将尝试在其他样本中进行检验。

此外,如何更好地确定离群值对我来说还是个问题。现在,只要排名不超过 2.5%,我就对双方各取 2.5%。

 
一般来说,人们的感觉是,模型在训练后会有一个几年的周期,通过这个周期,模型开始在新数据中突然发现一些模式。
 
Aleksey Vyazmikin #:

我尝试从样本中删除有大量异常值的行。

结果,训练结果发生了翻天覆地的变化。

如果说之前的测试结果平均为正,而考试结果几乎全部为负,这是从 100 个模型中得出的结果,那么清除异常值后,结果就发生了变化--测试结果变得更糟(平均利润接近零),而考试结果恰恰相反--许多模型都变成了正。

我还不能说这是一种规律,我将尝试在其他样本中进行检验。

此外,如何最好地确定离群值对我来说还是个问题。现在,只要等级不超过 2.5%,我只取每一方的最高值。

如果只取 2.5%(或其他),离群值的数量取决于分布,这是不对的。

最好是取一个有 100 个图的量值,并且不删除 1%之前和 99%之后的值,而是用 1%和 99%的值代替。不能删除任何内容。

 
fxsaber #:
NumPy 的算法似乎与 ALglib 不同,因为它在性能上有很大差异。但很明显,在整个庞大的 Python 社区中,有一些非常强大的算法专家投入了相当多的时间来研究这个问题。

源代码是公开的,你可以看一看。计算相关性的函数,在右侧有 [源代码],点击后将进入代码。我们感兴趣的是第 2885-2907 行。第 2889 行使用了协方差,点击 cov 后,代码中所有提到 cov 的地方都会出现在右侧。的行后,将跳转到协方差函数,以此类推。MQL 类 C 语言,所有类 C 语言都有 ~90% 的相似性,您可以毫不费力地理解 C#、Java、Python、JavaScript。

 
СанСаныч Фоменко #:

如果只取 2.5%(或其他比例),那么删除的数量就取决于分布情况,这是不对的。

最好是取一个有 100 个图的量值,并且不删除 1%之前和 99%之后的值,而是用 1%和 99%的值代替。不能删除任何内容。

我取的是数据的百分比,而不是范围的百分比。因此,如果数据量很大(很密集),在范围尺度上停止的速度会很快。

从均值和方差跳转的效果很小。

刚刚探讨了用其他值替换的问题(但我这样做只是为了量化),我喜欢用剩余子集中的随机值替换,同时考虑到概率。

 
Aleksey Vyazmikin #:

我采取的是数据的百分比,而不是范围的百分比。 因此,如果数据量很大(很密集),在范围刻度上停止的速度会很快。

从平均值和方差跳转的效果甚微。

刚刚探讨了用其他值替换的问题(但我这样做只是为了量化),我喜欢用剩余子集中的随机值替换,同时考虑到概率。

量化是一种概率。因此,我们要删除/替换概率小于 1%/大于 99% 或其他值的数据。你不能切断数量--我们有倾斜和有尾的分布。

他们写道,最好将替换值作为 MOE 对该数量的预测值。但在我看来,这似乎有点矫枉过正。