算法那么多,AI量化交易策略如何选择最佳算法?
常见算法优劣比较
算法没有最好,只有更好。 这个问题的答案取决于许多因素,例如股票市场的条件,数据集的质量和特征工程的有效等。接下来,我们来看看这些算法的优势和劣势:
神经网络:适用于复杂的非线性问题,可以有效地捕捉市场的非线性特征和复杂关系。
决策树:适用于数据量较小、特征维度较少的情况,可以很好地解释模型的决策过程。
随机森林:适用于处理高维度、复杂数据集,具有很好的鲁棒性和准确性。
支持向量机:适用于数据量较小、特征维度较高的情况,可以有效地处理非线性和线性可分问题。
正常情况下,在处理少量的股票量价数据的时候,stockranker排序算法就已经有很好的表现,初步制定策略的时候不妨先考虑从stockranker下手(BigQuant量化交易平台可支持stockranker策略)。
如何选择算法
然而,一般来说,深度学习算法比机器学习算法可能会获得更好的收益和效果。 原因如下:
深度学习算法对于非线性模型的拟合效果更好。在选股策略中,非线性模型更符合实际情况。
深度学习算法可以处理更复杂的数据结构。 对于股票数据,深度学习算法可以更好地挖掘和处理时间序列数据,自然语言处理和图像数据等多种数据结构。
深度学习算法可以进行端到端学习。深度学习算法可以直接从原始数据中进行学习,而不需要进行手动特征工程,这样可以更好地挖掘数据的潜在信息。
但是,在实际场景中,对于某些较为单一的选股条件,或者特征因子,没有经过大量细节优化修正的神经网络模型,效果有可能不及预期。(回测乃至实盘的绩效甚至不如普通的机器学习模型,模型对收益率的可解释性不强,难以验证)
我们来看看一些主流的机器学习算法 对相同的特征因子训练后的收益表现图:
训练集:14-2018年-01-14
测试集: 18-2019-01-10
日频调仓:每天1只股票半仓轮动

StockRanker VS DNN
我们可以看到下面的stockranker回测图,stockranker算法 的回测净值收益达到 1.3 高于 svm算法净值 1.2 。
与此同时,我们同样可以看出在相同的因子和训练数据中,未经过深度调整的DNN神经网络模型表现不佳,回测收益为负数。
  StockRanker表现(文末获取源码)
StockRanker表现(文末获取源码)
 
 DNN表现
从对比结果上来看:理论上深度学习算法的上限很高,同时下限也很低。如果从稳定性和实用性来讲,我们较多会选用stockranker这样的算法来制作选股策略。
综上所述,深度学习算法可能会获得更好的收益和效果。但是,需要注意的是,深度学习算法的学习过程通常需要较长时间,并且需要更多的计算资源。因此,在实际应用中,需要评估复杂性和可行性,并根据具体情况选择适当的算法。
 From:如何给策略选择最佳的算法 - AI量化知识库 ,原地址可以领取源码。
算法那么多,AI量化交易策略如何选择最佳算法?的更多相关文章
- 3. 量化交易策略 - https://github.com/3123958139/blog-3123958139/README.md
		3. 量化交易策略 * 输入数据 - 只取最原始可靠的,如 * date * open * high * low * close * volume * 输出数据 - 根据数理统计取权重,把 o, h, ... 
- 金融量化分析【day112】:量化交易策略基本框架
		摘要 策略编写的基本框架及其实现 回测的含义及其实现 初步学习解决代码错误 周期循环的开始时间 自测与自学 通过前文对量化交易有了一个基本认识之后,我们开始学习做量化交易.毕竟就像学游泳,有些东西讲是 ... 
- 股票数据获取到了,导入MT4中,是否可以做出很好的量化交易策略呢?
		寻找了很久,看到有tushare这个python的类库,但研究了几个小时都没有研究明白,anaconda安装和pycharm的使用都不是特别顺手,最后也是失败告终.还有就是我的低配的平板suerfac ... 
- QuantStart量化交易文集
		Over the last seven years more than 200 quantitative finance articles have been written by members o ... 
- 量化投资学习笔记01——初识Pyalgotrade量化交易回测框架
		年初学习量化投资,一开始想自己从头写,还是受了C/C++的影响.结果困在了计算回测数据那里,结果老也不对,就暂时放下了.最近试了一下python的各个量化投资框架,发现一个能用的——pyalgotra ... 
- python做量化交易干货分享
		http://www.newsmth.NET/nForum/#!article/Python/128763 最近程序化交易很热,量化也是我很感兴趣的一块. 国内量化交易的平台有几家,我个人比较喜欢用的 ... 
- Python量化交易
		资料整理: 1.python量化的一个github 代码 2.原理 + python基础 讲解 3.目前发现不错的两个量化交易 学习平台: 聚宽和优矿在量化交易都是在15年线上布局的,聚宽是15年的新 ... 
- 深入浅出 1 - AI量化策略快速理解
		我们在用AI来编写量化策略过程中,主要用到了机器学习,先来从一张图直观理解什么是机器学习:人类对新问题做出有效决策依靠的是过去积累的许多经验,并对经验进行利用,而对机器来说,“经验”以“数据”方式 ... 
- 量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python)(转)
		量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python) 原文地址:http://blog.csdn.net/u012234115/article/details/728300 ... 
- Python进阶量化交易场外篇4——寻找最优化策略参数
		新年伊始,很荣幸笔者的<教你用 Python 进阶量化交易>专栏在慕课专栏板块上线了,欢迎大家订阅!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外会陆续推出一些手记来辅助同学们学习 ... 
随机推荐
- 使用GPU训练Pytorch模型
			如何使用GPU训练Pytorch模型 这两天的深度学习实验真实让人头疼,传说中的"猫狗大战",对模型的训练用CPU的话9h起步,12h是常态,大学生哪耗得起,因此查找资料搭建了GP ... 
- 推荐免费的svn空间(SVN代码托管)
			推荐免费的svn空间(SVN代码托管) 最近研究了国内和国外的免费svn空间,SVN代码托管,SVN在线,代码托管中心,有所心得. 1.http://www.svn999.com/ [推荐]国内的,免 ... 
- Jmeter中使用BeanShell获取接口返回的指定值
			第一步:先引入jar包编写代码的时候,引入了一个jar包,是需要把它添加在测试计划中的 第一种:获取data中的paramName和paramVal值 //获取当前请求响应结果 String res ... 
- Linux 中如何安全地抹去磁盘数据?
			哈喽大家好,我是咸鱼 离过职的小伙伴都知道,离职的时候需要上交公司电脑,但是电脑里面有许多我们的个人信息(聊天记录.浏览记录等等) 所以我们就需要先把这些信息都删除,确保无法恢复之后才上交 即有些情况 ... 
- 维修道路(repair)
			维修道路(repair) 时间限制: 1 Sec 内存限制: 128 MB 题目描述 由于在十多年前道路改建时的突出贡献, Bob 被任命为维修道路的承包商, 他可以任意 选择两条路径去修理. Bo ... 
- 【Python微信机器人】第一篇:在windows11上编译python
			前言 我打算写一个系列,内容是将python注入到其他进程实现inline hook和主动调用.本篇文章是这个系列的第一篇,后面用到的案例是注入python到PC微信实现基本的收发消息.文章着重于py ... 
- 再学Blazor——组件
			Blazor 应用基于组件,组件可以复用和嵌套.本文内容如下: 组件类 组件嵌套 组件参数 组件对象 1. 组件类 所有组件都是继承 ComponentBase 组件基类,razor 文件默认继承 C ... 
- LAMP搭建流程与应用
			LAMP搭建流程 1.环境准备 [root@localhost opt]# systemctl stop firewalld.service [root@localhost opt]# seten ... 
- 不同角度理解线程的状态(操作系统 & Java API)
			3.12 五种状态 ( 操作系统 层面) 这是从 操作系统 层面来描述的 [初始状态]仅是在语言层面创建了线程对象,还未与操作系统线程关联 [可运行状态](就绪状态)指该线程已经被创建(与操作系统线程 ... 
- 浅谈一下go语言中的slice及其一些小坑
			数组 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成.虽然数组元素可以被修改,但是数组长度是固定的,而且在go语言中数组的长度也是数组类型的组成部分,所以不同长度或不同 ... 
