【量化交易笔记】13.实盘交易策略制定与实施
前言
最近一段时间在研究实盘策略,将研究成果分享大家。之前的两篇文章 7.基于随机森林预测股票价格
8.基于深度学习(LSTM)预测股票价格 关注度比较高,可是这些仅仅是理论的,在实际的操作是无从下手,用这些理论去指导实践,结果是天差地别。
基于以上的问题,我们从实际出发,不管理论数据有多难看,只要实际结果理想,可以进一步实践测试。因此我们换一种思路,即所有的验证不用机器学习的验证结果,而是用交易回测作为标准。
模型框架
既然用机器学习预测股票不可行,那我们就用截面数据与收益率建立相关模型,即用截面数据(因子)预测收益率。之前的预测的数据都是时间序列,这里用的是截面数据(不明白这个词,可自行百度),有本质的区别。
框架图如下:
这个图虽然简单了一些,但是简单明了。一句话,把股票的因子,输入到建立好的模型,预测出该股票的收益率。
这里其实有一大堆问题,股票的因子如何选择,需要多少个因子,模型如何建立,收益率是指哪个区间,日收益,周收益还是月收益。
如果学习编程的小伙伴,都明白框架越简单越好,适用性越强越好,因此以上仅仅框架而已。会在以后的文章里会逐一讲明白。
因子
可以分以下几类
? ‘quality’: 质量类
? ‘basics’: 基础类
? ‘emotion’: 情绪类
? ‘growth’: 成长类
? ‘risk’: 风险类
? ‘pershare’: 每股类
? ‘style’: 风险因子 - 风格因子
? ‘technical’: 技术类
? ‘momentum’: 动量类
收益率
- 以周,月为周期单独计算
- 以周,月为周期组合计算
模型
- 线性回归
- 随机森林
- 支持向量机
- xgboot
其他
- 测试周期区间
- 标的
量化交易的实际操作过程
目前的市场上的量化基金现在已经非常多了,那他们是如何运作的呢? 是通过模型预测股价,那他们是如何选股呢?
现在我来说说操作流程。
假设上述的模型已经建立好了,暂设定交易周期为每周的周一操作一次,以下操作也可以每周一开盘前进行。
1.选择标的
这里的标的是一个大范围,比如沪深300的300支票,或 深沪的A股(4000多支)等
2.筛选标的
根据相应要求(自定义),剔除一些不符条件的股票,这些条件有 ST,停牌,涨停或跌停的,科创板,北交所,次新股等
3.获取所需的因子
将上述所选的标的,获取前一交易的相关因子,获取的方法很多,可以直接计算,也可以有相关量化平台(聚宽、掘金、宽邦、米筐、开拓者、优矿、万矿、果仁)查询。
4.预测收益率
将这些因子输入到已建立好的模型来预测这些标的收益率
5.结果入池
将这些收益率从大到小进行排序,选择前N个放也目标股票池中(这里的N可以根据个人资金量做选择,如果是10W资金量,采用等权重的方式,可以设N=10,即一支票1W 为一个单位资金量)
6.每周一开盘,将目标股票池的N支票,以开盘价买入一个单位的资金量,如果该票已经持仓,就不进行操作。如果持仓的票,不在目标股票池,以开盘价卖出该票。
以后每周一次操作,实现量化交易完整过程,以上没有设定风险措施,你也可以增加止盈或止损相关内容。
框架实现过程(实例)
具体实现上述过程。
我现在使用的是聚宽平台。
用完整的策略给大家分享一下。
建立模型
1.选择因子,
'operating_revenue_growth_rate', #成长类因子 营业收入增长率
'total_profit_growth_rate', #成长类因子 利润总额增长率
'net_profit_growth_rate', #成长类因子 净利润增长率
'earnings_growth' #风格因子 5年盈利增长率
2.收益率:月收益率
3.模型:随机森林
测试周期:以2023-01-01~2023-04-30为测试集,2023-05-01至今天为验证集
标的:沪深300
上述策略只是策略框架的一种简单的实现,在实际操作中,可以选择更多的因子,收益率有更多选择,更复杂的模型,更大的数据集,仅仅是把框架实现的一个过程,将上述训练成一个随机森林模型,保存为“randomfores.pkl” 回测调用。
进行回测
具体策略内容参照 量化交易的实际操作过程
选择资金量为10W,股票池数量为10,交易成本万分之三,过滤ST,停牌,涨停或跌停的,科创板,北交所,次新股。
以下分不同标的回测结果。
以下为从2023-01-01~2023-12-23 (至今)回测情况
以下为上述的基础上进行小市值的选择回测情况
由于集练为前4个月的,所以以下剔除前4个月的数据,从2023-5-1开始回测至今回测情况
还做了其他的一些回测结果就不一一展示了。
总结
- 在建模的过程中,没有将训练集和验证集的 M S E MSE MSE和 R 2 R^2 R2 ,对于验证集的结果非常不理想,不好意思贴出来,但不影响最终的回测结果,这个可能会颠覆在研究机器学习的同学的认识,我当时看到结果也被惊讶到。
- 尽管在训练时选择的标的沪深300,在验证时,沪深300在训练中有非常良好的表现,1-4月份,回测收益率达到50%左右,可之后的走势完全与沪深300走势一致,毫无意义。
- 上述策略再一次证明了这段时间的小市值的有效性。
- 还有一种大胆的想法,这个策略根本是无效的,有效的只是小市值的作用,也可能是我运气好。
- 不管怎么样,以上作为一种量化策略框架,还有更多的扩展和补充。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!