小市值策略复现(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股市场一直生效的市场规律,一旦被公众所熟知,并被广泛使用之后,这个规律就会变异,从而失去原有的预测效果。

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

相关推荐
一人の梅雨20 分钟前
亚马逊 MWS 关键字 API 实战:关键字搜索商品列表接口深度解析与优化方案
python·spring
唐叔在学习2 小时前
pip安装太慢?一键切换国内镜像源,速度飞起!
后端·python
Gz、2 小时前
Spring Boot 常用注解详解
spring boot·后端·python
起风了___2 小时前
Python 自动化下载夸克网盘分享文件:基于 Playwright 的完整实现(含登录态持久化与提取码处理)
后端·python
我是华为OD~HR~栗栗呀3 小时前
测试转C++开发面经(华为OD)
java·c++·后端·python·华为od·华为·面试
mldong3 小时前
保姆级教程!手把手教你搭建FastAPI + Vue3前后端分离项目
vue.js·python·全栈
Q_Q5110082854 小时前
python+uniapp基于微信小程序美食点餐系统
spring boot·python·微信小程序·django·flask·uni-app·node.js
小关会打代码4 小时前
关于Pycharm中在运行出现语法错误:Non-UTF-8 code starting with
ide·python·pycharm
用户3721574261354 小时前
Python 高效将 PDF 转换为 HTML 的实用指南
python
深栈4 小时前
机器学习:编码方式
人工智能·python·机器学习·编码