HHH🌳 发布于2023-12-26
回复 19
浏览 1116
22
本篇开始,借鉴最近看到的量化社区的[量化课堂-因子研究系列](https://www.joinquant.com/view/community/detail/5e51216da634147ae4171c1513fb2c7e)文章结构,采用【导语+系列链接】的形式,提升知识的体系性和延续性。
导语:延续【基础知识+实践结果】的形式,本文首先在知识层面回答一个“有哪些指标“的问题,帮助大家在选择指标时有一个体系化的认知;其次分享一个学习各位大神代码之后总结的代码框架,以帮助大家更好更快速的上手回测体系;最后在实践层面延续系列第二篇文章,结合wy大神的思路在此前基础上加上PEG指标,并对结果进行相应的分析。
本文是一系列因子研究中的第三篇文章。本系列的文章有:
1、[量化初学学习笔记——小市值策略](https://www.joinquant.com/view/community/detail/20f13b0e198c18852d9b511bd3065dca):简单分享初步写第一个策略的感受
2、[量化初学学习笔记——低价小市值策略](https://www.joinquant.com/view/community/detail/df679e83692e1cf322cae71ea9bb231a):意识到体系化知识对策略优化的意义,确立【基础知识+实践结果】的分享形式,并分享了策略大致分类的总结与加入低股价条件后策略的优化结果
3、量化初学学习笔记——PEG低价小市值策略:一方面继续知识体系构建,分享一下因子分类和代码框架,另一方面结合大神的研究和宽友的指点,展示一下实际的策略优化效果,并加上分析思路
## 基础知识
> 这么多因子,到底分哪几类?我该如何选?
首先感谢聚宽提供了丰富的因子库让宽客们可以省去因子构造时间,专心于挖掘因子的价值、构造效果更优的模型。但是面对这么多因子,他们到底谁是谁,谁是哪家的?
这里参考Alpha191中引用的研报,从大类上分,按照因子是否对绝大多数股票价格波动都有影响,将因子分为风格因子和特质因子
风格因子(Style Factors):指影响证券表现的共同特征;这个里面又分成不同的子类,比如
1、基本面因子(Fundamental Factors):
- 估值因子(Valuation Factors):市盈率(P/E)、市净率(P/B)等。
- 盈利能力因子(Profitability Factors):净利润率、毛利润率、营业利润率等。
- 成长因子(Growth Factors):营收增长率、盈利增长率、每股收益增长率等。
- 质量因子(Quality Factors):资产负债表因子、盈利质量因子等。
2、技术因子(Technical Factors):
- 价格趋势因子(Price Trend Factors):移动平均线、相对强度指数(RSI)等。
- 交易量因子(Volume Factors):成交量的变化和波动等。
3、市场因子(Market Factors):
- 市场风险因子(Market Risk Factors):市场收益率、市场波动率等。
- 行业因子(Industry Factors):特定行业的整体表现。
4、情绪因子(Sentiment Factors):
- 投资者情绪因子(Investor Sentiment Factors):舆论分析、新闻情绪等。
5、宏观经济因子(Macroeconomic Factors):
- 利率因子(Interest Rate Factors):短期和长期利率的变动。
- 通货膨胀因子(Inflation Factors):通货膨胀对股票的影响。
另一大类是特质因子(Specific Factors):指影响个别证券的因素,比如
1、公司特质因子(Company-Specific Factors):
- 内部经营状况(Internal Operations):管理层质量、公司治理等。
- 行业地位(Industry Position):市场份额、竞争力等。
有了这个分类,才能在选择因子的过程中有一个更概括的底层思考,比如我是要针对大的股票池构建一个长期有效的策略,那我首先考虑拿风格因子,其次应该拿一些逻辑更强的基本面因子作为基础,然后添加一些技术因子作为择时、止盈止损的细节优化。有了这样的思考,然后再去一步步的构造自己的策略会让思路更加清晰。
> 我有了一个策略,那我该如何着手完成一个整体框架呢
关于这个问题,平台的教程[量化交易策略基本框架](https://www.joinquant.com/view/community/detail/7fe7e01ebbe6082101b4c57a4daaac57)已经有了一个很好的引入,我就结合在社区里学习的wy大神的代码,总结了一套代码框架

代码基本上分成六大模块,其中初始化、过滤、交易和复盘模块为比较基本和固定的操作,策略的核心思想就在这个选股模块中得以体现,而操作模块更体现策略的工程化实现思路,也是很重要的部分。
有了这个思路,我每次写代码的时候都是先把内容往这六个模块上靠,充实好每个模块的内容后再做代码实现,这样效率会提高不少
## 策略实践
结果还没出来,先分享一下思路,学习初期,更多是有思考和借鉴别人的——先学,再创新嘛:
- 看了一下之前结果的回撤,发现2022和2023年都发生在4月份,并且在社区中发现了这篇宝藏分析[小市值四月持仓/空仓收益对比](https://www.joinquant.com/view/community/detail/c7f8759da28a57dbe2c953500325f477#327581),复现一下策略
- 看了wy大神的[PEG+EBIT对小市值因子的优化](https://www.joinquant.com/view/community/detail/00c02003540f63f1f11a73b743590495),尝试复现一下加入PEG,看看是否有优化;
关于这两个优化的结果:
- **4月空仓**
4月空仓:

4月持仓:

相比之下,由于避开了4月的一波大幅度回撤,策略有了一定程度的提升。而如果拉长到2022年,会发现策略的效果尤其的好

这当然是因为引入了未来函数的结果:提前知道什么时候亏钱而平仓,这和总是买第二天会涨停的标的属于换汤不换药。结合分析引用文章的结果,长期来看四月空仓和持仓的收益并没有太大区别。
这个优化的重点在于:
1、实践一下如果通过研究回撤结果探索优化策略的思路;
2、长期来看4月均值回归,但是为什么会出现连续几年的亏损和上涨?背后的逻辑探索会为提升策略的使用提供参考,那回顾本系列的第二期,这一步达到策略的高阶阶段,即什么时候用这个策略。这里体现了知识体系化与实践相结合的意义
而回到策略本身,4月的表现起伏有以下几个可能原因:
1、1-4月是上市公司发布年报的时候,所以这期间如果大市值公司的表现好,则可能带来资金向大盘股转移,小市值策略的短期失效。这个点可以启发后续对大盘股策略、大小盘轮动策略的学习和应用
2、如果深挖到持仓详情,可能小市值企业所在行业恰好疲软、或者交易者情绪波动等都会影响策略效果。但是这种因素就太多太杂,暂时还没有想好。希望评论区有大佬指点迷津。
- **PEG**
随着代码逻辑的复杂程度增高,越来越觉得之前拼拼凑凑的框架很乱(因为懒);所以这次按照上面提到的框架进行了严格的整理,真的对debug很有帮助,并且能把思路更严谨的映射到代码上,对于反过来优化策略也有帮助。
言归正传,加上PEG因子,效果居然显著下降(以下图2),这部分在检查过原理和代码后发现,这里对PEG进行升序排列,但是由于忽略了应该首先排除PE和增长率均为负的标的,导致选出来的标的本身的成长潜力并不如人意;因此加上此约束之后,可以看到有一定的恢复(以下图3),并且稳定优于策略,且在4月之前优于未添加PEG的策略。但是未解决回撤的问题,所以整体效果依然不好。可能是PEG与低价、小市值所蕴含的信息有所冲突,且可能PEG所蕴含的成长潜力信息更需要长期的验证。就此回测结果来看,暂时并不适合用于实盘。
4月空仓:

4月空仓+PEG(未剔除负增长标的):

4月空仓+PEG(剔除负增长标的):

以上的优化:
一方面是对于基础策略在「进阶」阶段丰富选股因子,但是明显可见效果不如人意,原因一是新增因子本身的效果不佳,二是新增因子与原有因子包含的信息重复。因此后面对于因子的组合、各因子的作用需要有更深入的学习和汇总,并朝着“稳定超额+低回撤”的方向进行尝试
另一方面则已经是「高阶」阶段的尝试,加入一些简单的择时条件,尽管有一些事后诸葛亮的思维,但是也是一个不错的尝试;更启发后面对择时因子的使用
评论
感谢分享,聚宽就是这样分享的老师多,所以社区无敌
2023-12-28
@迪克医生 很多东西也是从社区的的大佬那儿学的
2023-12-28