返回列表 发布新帖

从一个小白的视角,拆解一套5年30倍的小市值策略

21 0
最近在聚宽社区看到 Mean.Saint 老师分享的小市值策略,回测5年收益30倍、最大回撤仅17%,这个数据震撼到我了。于是我花了整整两个周末,逐行拆读了这份将近1200行的代码。今天把我的学习笔记分享出来,希望能帮到和我一样正在入门的朋友。

一、第一眼:这不只是一个选股策略
刚打开代码的时候,我以为小市值策略就是"选市值最小的股票买入"。但读完之后我才发现,选股只占了整个策略的20%,剩下80%全是风控。
这是我学到的第一个认知:好的量化策略,不是"怎么赚更多",而是"怎么少亏"。
策略的整体架构大致是这样的:
每周二执行:  1. 早盘 9:05  → 预处理(一致性检查、昨日涨停记录)  2. 早盘 9:31  → 顶背离检测  3. 早盘 9:40  → 卖出不在目标列表的持仓  4. 早盘 9:45  → 买入新的目标股票  5. 盘中 10:00 → 止盈止损检查  6. 盘中 10:30ATR止损价更新 + 放量换手检测  7. 尾盘 14:00 → 涨停打开检测 + ATR再次更新  8. 尾盘 14:50 → 成交额宽度防御检查
看到这个时间表的时候,我第一次意识到:一个成熟策略,是在盘中不断"巡检"的,而不是开盘买了就不管了。

二、选股模块:三代进化,越来越"讲究"
策略提供了三个版本的选股逻辑(v1/v2/v3),默认使用 v3。我逐个读了一遍,能清晰看到作者的思路演变:
v1 — 最朴素的想法
从中证1000成份股里选流通市值最小的50只,再按总市值排序取前30只,最后做行业分散(每个二级行业只选1只)。
我的理解:v1的核心思想很简单——"买最小的,但别都买同一个行业"。
v2 — 加入了财务门槛
在v1基础上增加了ROE>15%、ROA>10%、归母净利润>0、营业收入>1亿等条件,并且限制股价≤20元。
我的理解:开始有"排雷"意识了,不再是无脑买最小的,而是要求公司"真的在赚钱"。
v3 — 终极版本
v3最大的亮点是引入了一个九项年报排雷系统(apply_nine_point_audit),我觉得这是整个策略里最值得学习的模块之一。它会检查:
排雷项
检查内容
踩雷扣分

1
年报是否晚于4月20日才披露
+1

2
业绩预告是否预减/亏损
+1

3
审计意见是否非标(直接剔除)
直接OUT

4
扣非净利润是否为负或占比过低
+1

5
净利润为正但经营性现金流为负
+1

6
商誉占净资产超过30%
+1

7
负债率>70%或短期借款>现金
+1

8
大股东质押比例超80%
+1

9
近一年是否被监管立案调查
+1
累计扣分≥2分的股票直接剔除。
读到这里的时候我非常感慨——很多初学者(包括之前的我)只关心"这只股票能涨多少",但这套排雷系统关心的是"这只股票会不会爆雷"。在小市值的世界里,一颗雷就可能把所有收益炸没。
另外v3还有一个细节让我印象深刻:2025年1月1日之前用简单的审计意见筛选,之后才切换到九项排雷。这说明作者是在持续迭代策略的,不是一蹴而就的。

三、风控体系:五道防线,层层设防
这是我花时间最久、也收获最大的部分。策略一共有五道防线:
第一道:固定止损 + 成本保护止损
最基础的风控——亏损9%直接卖出。但在此基础上,策略还增加了一个阶梯式成本保护:
盈利 ≥ 15% → 止损线提升到成本价(保本)盈利 ≥ 30% → 止损线提升到 +10%(锁定利润)盈利 ≥ 100% → 直接止盈卖出
这让我想到一句话:"让利润奔跑,但给它系上安全绳。"以前我做手动交易的时候,经常眼看着30%的浮盈变成亏损,如果当时有这套逻辑,至少能保住10%。
第二道:ATR动态止损
这是我第一次在实际策略中看到ATR的用法。策略用14日ATR计算一个动态止损价:
止损价 = 买入成本 - 2倍ATR
关键是这个止损价只会往上移,不会往下移(trailing stop)。股价涨的时候,止损价跟着涨;股价跌的时候,止损价不动。一旦跌破就卖出。
这比固定止损线聪明太多了——波动大的股票,止损线会自动放宽;波动小的股票,止损线会自动收紧。
第三道:MACD顶背离检测
策略会检测中证1000指数(399101)的MACD顶背离信号:价格创新高、但DIF没有创新高,同时MACD柱由正转负。
一旦检测到顶背离,直接清仓所有非涨停股票,并且在接下来10个交易日内暂停买入。
我的感受:这是一个"大势判断"的模块。无论个股多好,大盘不行的时候就不玩了。
第四道:微盘股一致性风控
这个模块我读了三遍才理解。它的思路是:
  • 取全市场最小5%市值的股票,看它们昨天的涨跌幅
  • 计算这些股票涨跌幅的一致性(在均值±标准差范围内的比例)
  • 用120日布林带动态计算一致性的上轨
  • 如果中位数跌幅>2% 且 一致性超过上轨→ 全场微盘在同步暴跌 → 清仓!
翻译成人话就是:如果所有小股票都在一起跌,说明是系统性风险,赶紧跑。
但如果大盘均线是向上的(牛市环境),这个检查直接跳过。作者的意思是:牛市里的同步回调是机会,熊市里的同步下跌是灾难。
第五道:放量换手检测
日内实时监控持仓股票的换手率。如果今日换手率 > 10% 且超过20日均值的2倍,判定为异常放量,立即卖出。
我之前只知道"放量上涨是好事",看了这段代码才明白:对于小市值股票来说,突然放量可能意味着主力在出货。

四、两个让我"恍然大悟"的细节1. 冷却期机制
止损卖出的股票,2天内不能再买回来:
g.no_buy_after_day = 2  # 止损后不买入的窗口期
这个设计太人性化了。我以前手动交易的时候,经常止损后心怀不甘又买回来,结果亏得更多。策略相当于强制给自己"冷静"的时间。
2. 动态持股数量
策略根据中证1000的10日均线偏离度,动态调整持股数量:
指数偏离 ≥ +200点 → 只持3只(市场过热,集中持仓)偏离 ≥ -200点   → 持4只偏离 ≥ -500点   → 持5只偏离 < -500点   → 持6只(市场低迷,分散风险)
市场越弱,持仓越分散;市场越强,持仓越集中。 这个思路我之前完全没想过,一直以为"分散就是好的"。但仔细想想,牛市里集中持仓才能抓住涨幅最大的票。

五、我从这个策略中学到了什么
读完这1163行代码,我最大的感悟是:
  • 风控不是"加上去"的,而是"长出来"的。 每一道防线背后,可能都有作者一次惨痛的亏损经历。
  • 好的策略是不断迭代的。 从v1到v3,从简单的审计筛选到九项排雷,这不是一天就写出来的。
  • 框架比参数重要。 与其纠结"止损线到底设8%还是9%",不如先把多层防御体系搭起来。
  • 小市值策略的核心不是选到牛股,而是活得够久。 30倍收益不是靠一两只翻倍股实现的,而是靠五年如一日地避开地雷、控制回撤积累出来的。


六、学完之后,拿去实战PK一下?
读完这个策略之后,我一直在想一个问题:回测30倍的策略,拿到真实市场里到底能排第几?
后来我发现了一个叫 9db量化竞技场 的网站。它的玩法很有意思——你可以把自己看好的策略上传交割单,然后和其他人的策略同台PK,按**/模拟收益率实时排名。
我把这个小市值策略参与竞技上去之后,发现:
  • 有些周期确实能排进前10,说明策略的爆发力是真的强
  • 但也有些周期排名靠后,尤其是大盘连续下跌的时候
这给了我一个很大的启发:单看5年的回测收益率是不够的,还要看策略在不同市场环境下的稳定性。 在9db上和几百个策略一起比,能够更客观地评估自己策略的水平。
如果你也在学习量化,推荐去 9db.com 看看,不用注册就能浏览排行榜,看看大佬们的策略都是什么水平。知道差距,才知道努力的方向。

我知道这篇文章可能有很多理解不到位的地方,毕竟我还是一个入门半年的新手。如果哪里理解有误,欢迎大佬们在评论区指正。
也特别感谢 Mean.Saint 老师的无私分享,让我这样的新手有机会学习到一套如此完整的策略框架。对我来说,学到的不仅是代码,更是一种"敬畏市场、系统思考"的量化思维方式。
最后,如果你也是刚入门的朋友,我的建议是:先别急着跑策略赚钱,找一个好的策略,一行一行读下去。 你会发现,最好的教材不在书本里,而在社区大佬的代码里。

以上是一个量化小白的学习笔记,欢迎交流讨论 ?

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2026 迅投QMT社区 版权所有 All Rights Reserved. 京ICP备2025122616号-3
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表