小市值策略复现(A股选股框架回测系统)

相关config配置

https://quantkt.com/forumDetail?id=201043

很早就知道了小市值模型,正好量化选股回测框架出来了,把最裸的小市值复现下,顺便验证下框架逻辑。

科普:

小市值策略基于 "小市值效应",即从历史数据来看,在较长一段时间内,小市值公司的股票收益率往往高于大市值公司的股票收益率。其背后的逻辑可能是小市值公司具有更大的成长潜力,它们可能处于发展初期,业务增长速度较快,一旦获得市场认可或取得技术突破,股价可能大幅上涨。此外,小市值公司的股票相对容易被资金推动,一些机构或投资者可能通过买入小市值股票来获取较高的收益。

微盘股天然的就应有更高的期望收益,因为微盘股有更大的风险,如果期望收益和A50,沪深300一样,那所有人都会选择更安全的红利股。

框架设置几个参数:

将target_holding_count改成['0%','1%']表示持有整个市场的前1%小市值的股票

期望持股天数为10天。

过滤ST和退市以及北交所股票。

过滤3块以下低价股,避免低价股退市。

一些注意点:

1.测试微盘股相关,回测框架中一定要考虑退市股,因为A股已经有快300个退市股,微盘又很容易踩雷。

2.回测框架所采用的数据集一定要考虑股票的更名历史,即加st去掉st等,不然对策略真实影响较大。

回测区间:2009.1.1->2025.3.31

点击运行框架

回测结果

从结果来看符合预期,裸小市值09到25这十五年大概是650倍收益,10万块变6500万。最大回撤53点。

最大回撤出现在24年初的流动性枯竭,事后各种解释都有,但是回测结果来看其实就是策略在18-23年一直有效,导致各类机构的各种策略很容易有意无意掺点这个因子或者相关联的因子,导致策略内部挤进了太多的资金。

第二第三大回撤为18年一整年的熊市和15年的牛市A杀。

关于市值因子的月度相关性:

可以看到1月4月一片绿,且12月份也是个对市值因子较为不利的月,看着确实像业内共识了,很明显策略如果停掉这三个月会猛的多,但是这里就不测了,后续可以专门弄点细化分析。

关于小市值的分箱图, 为了方便快速测试,我这里选了市值区间[5%,6%],[15%,16%],[25%,26]...[95%,96%]...[99,100%]

分成11组进行分组测试与对比




这个分箱图还有各类指标分离度都达标,证明了这个因子过去在市场中的有效性确实存在。

关于市值因子的长期有效性:

由于市值因子是很底层因子,其有效性很难失效,更多会体现在周期性之上。

A股市场一直生效的市场规律,一旦被公众所熟知,并被广泛使用之后,这个规律就会变异,从而失去原有的预测效果。

随着策略规模的增加,波动会增加,直到一次黑天鹅将参与者收割。

相关推荐
IT北辰7 分钟前
Python数据处理:文件的自动化重命名与整合
数据库·python·自动化
沉到海底去吧Go1 小时前
【图片识别改名】批量读取图片区域文字识别后批量改名,基于Python和腾讯云的实现方案
开发语言·python·腾讯云
百锦再2 小时前
Python深度挖掘:openpyxl和pandas的使用详细
java·开发语言·python·框架·pandas·压力测试·idea
Jackilina_Stone2 小时前
【论文阅读/复现】RT-DETR的网络结构/训练/推理/验证/导出模型
论文阅读·python·目标检测·rt-detr
编程自留地2 小时前
第10次:电商项目配置开发环境
python·django·商城
IT技术员2 小时前
【Java学习】动态代理有哪些形式?
java·python·学习
q_q王2 小时前
本地知识库工具FASTGPT的安装与搭建
python·大模型·llm·知识库·fastgpt
lanboAI2 小时前
基于卷积神经网络的蔬菜水果识别系统,resnet50,mobilenet模型【pytorch框架+python源码】
pytorch·python·cnn
一刀到底2112 小时前
ai agent(智能体)开发 python3基础8 网页抓取中 selenium 和 Playwright 区别和联系
人工智能·python
剑哥在胡说2 小时前
Python三大Web框架对比:Django、Flask、Tornado的异步实现方式详解
数据库·python·django·flask·tornado