在金融市场预测中使用什么ML模型?


由于我是算法交易和机器学习的新手,我将分享我迄今为止所做的事情,并希望获得一些提示,并了解其他人正在使用什么。

我目前为我的模型使用了两种特征类型:

  • 一种是使用 LSTM的技术特征,
  • 另一种是使用 AI 评级的新闻数据,用于确定其对多个领域的影响程度,同样使用 LSTM,但当我考虑它时,它是多余的,我会将其更改为随机森林

NN 将两个流分离,然后在规范化层和一些多头注意力之后将它们融合。

到目前为止,我取得了一些不错的结果,但过了一段时间,我似乎遇到了瓶颈并出现了过度拟合。

因此,模型架构还有很长的路要走,我需要改变它,添加一些统计特征以及我能想到的任何东西。

讨论1:
作为一名整天与 ML 模型打交道的数据科学家,我可以告诉你:你把所有东西(LSTM、随机森林、情绪数据、多头注意力)都扔进搅拌机,希望出现奇迹:结果出现过度拟合并不奇怪;这表明你的输入很嘈杂,你的方法过于复杂。

简化!

从线性回归或 XGBoost 等基本模型开始,正确验证(时间分割,而非随机),并关注特征质量。
如果基础不牢固,花哨的架构也救不了你。

讨论2:
真的不明白为什么这么多人使用ML/AI,将其视为算法交易的圣杯,当90%的时间他们只是在特定的样本数据集上创建一些随机模型时...... .需要扩大你在算法交易其他领域的知识。还有其他方法可以在没有ML/AI/NN/LLM/NLP的情况下编写算法交易机器人:)

讨论3:
你经常在一片噪声中寻找百分之几的信号。如果你有太多的参数或样本外交易太少,模型只会记住噪音,你会绝望地过拟合。

我主要使用遗传算法。交易的误差表面不像大多数问题那样平滑,而梯度下降假设计算斜率是有用的,并希望它指向全局最小误差。我发现避免适应性中的尖峰并更多地搜索适应性更高的宽区域是有用的。

什么是“好”的资本曲线?
Sharpe 真的是比较系统的最佳方法吗?还是我们的偏好不对称?我们更关心提款?

讨论4:
当 ML/AI 呈现随机结果时,您可能不知道它在黑箱中做什么,而且您几乎没有办法得出您的方法是否有效或无效的结论。无法验证您的策略对交易员来说是最可怕的事情,而使用 ML/AI 很有可能最终导致这种情况。

讨论5:
你必须记住,像 LSTM 和 Transformers这样的大型复杂模型有两个主要优点:

  • 它们的“偏差”或欠拟合误差非常小,这意味着它们可以高度准确地学习非常复杂的预测关系。
  • 它们可以吸收大量原始数据并学习自己的特征提取以产生高质量的预测。
问题是,你没有利用任何一项优势。因此,与其他更简单的模型相比,你不太可能发现它们有用。

为了能够利用 #1,您需要大量数据。您没有指定数据集大小,但我假设它可能规模较小。增加数据集的大小总是会减少模型预期的过度拟合误差或“方差”。

为了能够利用 #2,您需要为其提供大量不同的原始输入数据。您说您使用技术指标作为输入数据,但为什么呢?这些模型可以学习更具预测性的自身技术指标。

您应该只输入原始输入数据,例如价格历史。此外,您可能需要更多样化的数据源,而不仅仅是简单的新闻摘要。

以 EMA 特征为例:
EMA_15 使用最近 15 天的价格计算,EMA_30 使用最近 30 天的价格计算,等等。

您现在做的是获取原始数据(历史每日价格)并对其执行不同的特征提取。
相反,您反而应该简单地使用最近 30 天的价格并将其用作原始输入!

然后,神经网络模型可以学习自行提取 EMA_15 或 EMA_30(如果这些是有用的特征)等。

另外,关于您的数据集大小:
您有 500 只股票 5 年的每日价格数据,这意味着您有大约 100 万个数据点,可以认为是“小数据点”。
您的模型可以从拥有 1000 万个或 1 亿个数据点中受益。

改为 15 分钟作为价格间隔会有所帮助,因为您应该拥有更多数据点。
但如果您可以回溯到 5 年以前,这将进一步增加您的数据集大小。

如果您已经拥有过去 45 天的历史价格作为特征/输入数据,那么您可能不需要 EMA 特征,因为它们是从原始数据中得出的。
如果您可以在 1 亿个或更多数据点上对其进行训练,您可能会开始看到这些复杂的 NN 模型开始胜过传统的 ML 方法,如 XGBoost 等。

请考虑使用基于 Transformer的模型而不是 LSTM。事实证明,它们学习效率更高