算法那么多,如何给策略选择最佳的算法?
由small_q创建,最终由small_q 被浏览 258 用户
\
作者
徐耀杰(woshisilvio)
常见算法优劣比较
算法没有最好,只有更好。 这个问题的答案取决于许多因素,例如股票市场的条件,数据集的质量和特征工程的有效等。接下来,我们来看看这些算法的优势和劣势:
- 神经网络:适用于复杂的非线性问题,可以有效地捕捉市场的非线性特征和复杂关系。
- 决策树:适用于数据量较小、特征维度较少的情况,可以很好地解释模型的决策过程。
- 随机森林:适用于处理高维度、复杂数据集,具有很好的鲁棒性和准确性。
- 支持向量机:适用于数据量较小、特征维度较高的情况,可以有效地处理非线性和线性可分问题。
正常情况下,在处理少量的股票量价数据的时候,stockranker排序算法就已经有很好的表现,初步制定策略的时候不妨先考虑从stockranker下手。
如何选择算法
然而,一般来说,深度学习算法比机器学习算法可能会获得更好的收益和效果。 原因如下:
- 深度学习算法对于非线性模型的拟合效果更好。在选股策略中,非线性模型更符合实际情况。
- 深度学习算法可以处理更复杂的数据结构。 对于股票数据,深度学习算法可以更好地挖掘和处理时间序列数据,自然语言处理和图像数据等多种数据结构。
- 深度学习算法可以进行端到端学习。深度学习算法可以直接从原始数据中进行学习,而不需要进行手动特征工程,这样可以更好地挖掘数据的潜在信息。
但是,在实际场景中,对于某些较为单一的选股条件,或者特征因子,没有经过大量细节优化修正的神经网络模型,效果有可能不及预期。(回测乃至实盘的绩效甚至不如普通的机器学习模型,模型对收益率的可解释性不强,难以验证)
我们来看看一些主流的机器学习算法 对相同的特征因子训练后的收益表现图:
- 训练集:14-2018年-01-14
- 测试集: 18-2019-01-10
- 日频调仓:每天1只股票半仓轮动
StockRanker VS DNN
我们可以看到下面的stockranker回测图,stockranker算法 的回测净值收益达到 1.3 高于 svm算法净值 1.2 。
与此同时,我们同样可以看出在相同的因子和训练数据中,未经过深度调整的DNN神经网络模型表现不佳,回测收益为负数。
从对比结果上来看:理论上深度学习算法的上限很高,同时下限也很低。如果从稳定性和实用性来讲,我们较多会选用stockranker这样的算法来制作选股策略。
综上所述,深度学习算法可能会获得更好的收益和效果。但是,需要注意的是,深度学习算法的学习过程通常需要较长时间,并且需要更多的计算资源。因此,在实际应用中,需要评估复杂性和可行性,并根据具体情况选择适当的算法。
视频讲解
https://www.bilibili.com/video/BV18k4y1J7BH/
策略源码
https://bigquant.com/experimentshare/70d07ded087d4c4f970cd4e110ae263c
\