【量化交易笔记】13.实盘交易策略制定与实施

2023-12-24 21:10:52

前言

最近一段时间在研究实盘策略,将研究成果分享大家。之前的两篇文章 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 (至今)回测情况
NO1

以下为上述的基础上进行小市值的选择回测情况NO2

由于集练为前4个月的,所以以下剔除前4个月的数据,从2023-5-1开始回测至今回测情况

图3
还做了其他的一些回测结果就不一一展示了。

总结

  1. 在建模的过程中,没有将训练集和验证集的 M S E MSE MSE R 2 R^2 R2 ,对于验证集的结果非常不理想,不好意思贴出来,但不影响最终的回测结果,这个可能会颠覆在研究机器学习的同学的认识,我当时看到结果也被惊讶到。
  2. 尽管在训练时选择的标的沪深300,在验证时,沪深300在训练中有非常良好的表现,1-4月份,回测收益率达到50%左右,可之后的走势完全与沪深300走势一致,毫无意义。
  3. 上述策略再一次证明了这段时间的小市值的有效性。
  4. 还有一种大胆的想法,这个策略根本是无效的,有效的只是小市值的作用,也可能是我运气好。
  5. 不管怎么样,以上作为一种量化策略框架,还有更多的扩展和补充。

文章来源:https://blog.csdn.net/cndrip/article/details/135179262
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。