PLUS会员

算法那么多,如何给策略选择最佳的算法?

由small_q创建,最终由small_q 被浏览 252 用户

\

作者

徐耀杰(woshisilvio)

常见算法优劣比较

算法没有最好,只有更好。 这个问题的答案取决于许多因素,例如股票市场的条件,数据集的质量和特征工程的有效等。接下来,我们来看看这些算法的优势和劣势:

  1. 神经网络:适用于复杂的非线性问题,可以有效地捕捉市场的非线性特征和复杂关系。
  2. 决策树:适用于数据量较小、特征维度较少的情况,可以很好地解释模型的决策过程。
  3. 随机森林:适用于处理高维度、复杂数据集,具有很好的鲁棒性和准确性。
  4. 支持向量机:适用于数据量较小、特征维度较高的情况,可以有效地处理非线性和线性可分问题。

正常情况下,在处理少量的股票量价数据的时候,stockranker排序算法就已经有很好的表现,初步制定策略的时候不妨先考虑从stockranker下手。

如何选择算法

然而,一般来说,深度学习算法比机器学习算法可能会获得更好的收益和效果。 原因如下:

  1. 深度学习算法对于非线性模型的拟合效果更好。在选股策略中,非线性模型更符合实际情况。
  2. 深度学习算法可以处理更复杂的数据结构。 对于股票数据,深度学习算法可以更好地挖掘和处理时间序列数据,自然语言处理和图像数据等多种数据结构。
  3. 深度学习算法可以进行端到端学习。深度学习算法可以直接从原始数据中进行学习,而不需要进行手动特征工程,这样可以更好地挖掘数据的潜在信息。

但是,在实际场景中,对于某些较为单一的选股条件,或者特征因子,没有经过大量细节优化修正的神经网络模型,效果有可能不及预期。(回测乃至实盘的绩效甚至不如普通的机器学习模型,模型对收益率的可解释性不强,难以验证)

我们来看看一些主流的机器学习算法 对相同的特征因子训练后的收益表现图:

  • 训练集:14-2018年-01-14
  • 测试集: 18-2019-01-10
  • 日频调仓:每天1只股票半仓轮动


{w:100}{w:100}

StockRanker VS DNN

我们可以看到下面的stockranker回测图,stockranker算法 的回测净值收益达到 1.3 高于 svm算法净值 1.2 。

与此同时,我们同样可以看出在相同的因子和训练数据中,未经过深度调整的DNN神经网络模型表现不佳,回测收益为负数。

StockRanker表现{w:100}{w:100} DNN表现{w:100}{w:100}

从对比结果上来看:理论上深度学习算法的上限很高,同时下限也很低。如果从稳定性和实用性来讲,我们较多会选用stockranker这样的算法来制作选股策略。

综上所述,深度学习算法可能会获得更好的收益和效果。但是,需要注意的是,深度学习算法的学习过程通常需要较长时间,并且需要更多的计算资源。因此,在实际应用中,需要评估复杂性和可行性,并根据具体情况选择适当的算法。

视频讲解

https://www.bilibili.com/video/BV18k4y1J7BH/

策略源码

https://bigquant.com/experimentshare/70d07ded087d4c4f970cd4e110ae263c


\

标签

神经网络股票市场特征工程
{link}