探秘“国九条”下的中小市值轮动策略:如何实现年化99%与夏普3.3+

2025年度报告已生成 10w+人浏览 365人参与

在量化投资领域,找到一个逻辑清晰、回测稳健且易于理解的策略并非易事。今天,我们将深入剖析一个在聚宽平台回测表现亮眼的策略:它实现了年化收益率近99%、最大回撤27%、胜率0.72、夏普比率超过3.3的优异成绩。更重要的是,它的核心逻辑紧密结合了最新的“国九条”政策精神,为我们提供了在当下市场环境中一个极具参考价值的量化投资框架。

一、策略背景与核心思想

策略类型:本策略是一个典型的小市值轮动策略,同时融合了趋势择时的动态仓位调整与价值过滤的选股思想,可以归类为多因子策略的一种。

核心思想通俗来讲就是:“在财务健康的中小盘股票中,挑选市值最小的一批,并在市场趋势向好时多买几只,趋势走弱时少买几只,同时设置严格的风控线以防大跌。”

它主要解决了两个问题:

  1. 如何规避问题公司:策略严格遵循“国九条”精神,通过财务指标(净利润、营收)和审计意见过滤,旨在剔除有“暴雷”风险的公司,专注于基本面相对健康的标的。
  2. 如何控制波动与回撤:通过多层次的止盈止损、特定月份空仓机制以及对涨停股的特殊处理,力求在捕捉小盘股高弹性的同时,有效管理下行风险。
    该策略尤其适用于市场风格偏向中小盘、且投资者追求相对稳健超额收益的环境

二、策略原理拆解(重点)

下面我们分步拆解这个策略的每一个逻辑环节。

第1步:准备与初始化
策略在每周二上午10点进行主要调仓。在交易日前,它会先做两件事:

  • 识别持仓中的昨日涨停股:记录下这些股票,因为在调仓日会给予它们特殊的“观察待遇”,不轻易卖出,以博取更大的上涨空间。
  • 判断今日是否可交易:策略设定每年的1月和4月为潜在的“空仓月份”。在这两个月里,只有当创业板综指(399303)短期走势较强时才会交易,否则会直接持有货币ETF,以规避财报季和年初可能的波动。

第2步:构建基础股票池
策略以中小板指数(399101) 的全部成分股作为初选池。这样做的好处是,天然过滤掉了主板大盘股和科创板、北交所等高波动或交易制度不同的股票,聚焦于传统的中小盘领域。

第3步:严格过滤与精选
这是策略的核心选股环节,代码逻辑清晰:

  1. 硬性条件过滤:剔除停牌、ST、退市、涨停(未持仓时)、跌停、次新股(上市不满375天)以及科创板、北交所等市场的股票。这保证了交易标的的流动性与基本安全性。
    # 代码片段:基础过滤
    if current_data[stock].paused:  # 停牌
        continue
    if current_data[stock].is_st:  # ST
        continue
    if '退' in current_data[stock].name:  # 退市
        continue
    # ... 其余条件
    
  2. “国九条”财务过滤:这是策略的亮点。它要求股票:
    • 归属于母公司所有者的净利润 > 0
    • 净利润 > 0
    • 营业收入 > 1亿元
    • 总市值在10亿至100亿之间(可调参数)
    # 代码片段:“国九条”财务过滤
    q = query(valuation.code).filter(
        valuation.code.in_(initial_list),
        valuation.market_cap.between(g.min_mv,g.max_mv),
        income.np_parent_company_owners > 0,
        income.net_profit > 0,
        income.operating_revenue > 1e8  # 1亿元
    )
    
  3. 排序与最终筛选:对通过上述过滤的股票,按照总市值从小到大的顺序进行排序。最后,选取排名最靠前的 N 只股票(N由动态仓位模块决定),同时剔除单价过高的股票。

第4步:动态仓位管理(调仓数量)
策略并非固定持有固定数量股票。它会根据中小板指数(399101)的收盘价与其10日均线的偏离度来动态决定持股数量(g.stock_num)。

  • 指数远高于均线(趋势强):持仓数量减少(如3只),相对集中。
  • 指数在均线附近震荡:持仓数量适中(如4-5只)。
  • 指数远低于均线(超跌):持仓数量增加(如6只),分散布局。
# 代码片段:动态调整持股数量
diff = last_row - ma  # 最新收盘价与10日均线的差值
result = 3 if diff >= 500 else \
         3 if 200 <= diff < 500 else \
         4 if -200 <= diff < 200 else \
         5 if -500 <= diff < -200 else \
         6

这种设计体现了趋势择时的思想:市场情绪高涨时偏向止盈集中,市场超跌时偏向抄底分散。

第5步:执行调仓
每周调仓时,策略将当前持仓与最新选出的目标列表对比:

  • 卖出:卖出那些不在目标列表且昨日未涨停的持仓股。
  • 保留:保留在目标列表内或昨日涨停的股票。
  • 买入:用剩余现金等权买入目标列表中的新股票,直至达到预设的持仓数量。

第6步:盘中风控与精细调整

  • 涨停股处理:对于昨日涨停的持仓股,会在下午2点观察其是否依然封死涨停。若打开涨停板,则立即卖出,锁定利润,避免回调。
  • 止损机制
    • 个股止损:任一持仓股从买入成本价下跌超过 g.stoploss_limit(默认9%)时,触发止损卖出。
    • 市场止损:若中小板指数成分股当日开盘平均跌幅超过 g.stoploss_market(默认5%),则视为市场极端情况,清空所有持仓。
    • 止盈:个股盈利达到100%时自动止盈卖出。
  • 现金管理:每日收盘前,任何闲置现金都会自动买入货币ETF(如银华日利),充分利用资金。

三、策略逻辑流程图

开始每日/每周运行
       ↓
[9:05] prepare_stock_list: 识别昨日涨停股,判断当月是否为空仓月份
       ↓
[周二10:00] weekly_adjustment (核心调仓):
       ├─ 根据指数趋势 → adjust_stock_num → 动态计算本周应持股数量 N
       ├─ get_stock_list 精选股票:
       │     ├─ 初选: 获取中小板指成分股
       │     ├─ 过滤: 剔除停牌、ST、次新、涨跌停等
       │     ├─ 核心筛选: 应用“国九条”财务指标(净利润>0, 营收>1亿)
       │     └─ 排序: 按市值升序,取前 N*3 只,再剔除单价过高者,得最终目标列表
       ├─ 调仓操作:
       │     ├─ 卖出: 持仓中不在目标列表且昨日未涨停的股票
       │     └─ 买入: 等权买入目标列表中的新股票至 N 只
       └─ 若为空仓月,则全仓买入货币ETF
       ↓
[盘中] 风控与调整:
       ├─ [10:00] stop_loss: 检查个股盈亏与大盘跌幅,执行止损/止盈
       ├─ [14:00] trade_afternoon: 检查昨日涨停股是否开板,若开板则卖出
       └─ [14:50] close_account: 空仓月份检查,若非交易信号则清仓股票
       ↓
结束

四、策略优势

  1. 逻辑透明,易于复现:策略每一步都有明确的代码对应,选股、过滤、排序、风控逻辑清晰,没有“黑箱”操作,非常适合初学者学习和复现。
  2. 交易频率低,成本友好:主要调仓周期为每周一次,极大地降低了交易摩擦成本,也减轻了普通投资者的跟盘压力。
  3. 风险控制机制立体完善:融合了“宏观”(空仓月份)、“中观”(市场趋势止损)、“微观”(个股止损、涨停板卖出)三层风控,有效约束了最大回撤。
  4. 选股逻辑具有现实支撑:紧密贴合“国九条”对上市公司质量的指导精神,通过财务指标过滤潜在劣质公司,使策略逻辑具备基本面支撑和政策契合度。
  5. 适合普通投资者执行:低换手、逻辑清晰,且无需复杂的算法或高频数据,在主流量化平台即可实现,具备较强的可操作性。

五、策略潜在风险

  1. 小市值风格暴露:策略本质上是小市值因子策略,当市场风格极度偏向大盘蓝筹时,策略可能经历较长的低迷期。
  2. 历史回测依赖:优异的回测业绩(年化99%)建立在历史数据之上,市场结构、政策、流动性变化可能导致未来表现不及预期。
  3. 政策变化风险:“国九条”相关细则或未来新的监管政策,可能会改变现有财务筛选标准的有效性。
  4. 黑天鹅与流动性风险:尽管有财务过滤,但小市值股票仍可能遭遇个股突发事件。在极端市场情况下,小盘股的流动性可能枯竭,影响卖出。
  5. 调仓周期滞后:每周调仓的频率可能无法及时应对市场突发的大幅波动,存在一定的反应滞后性。

六、策略优化方向

  1. 引入更多辅助因子
    • 为什么有效:单一市值因子波动较大。可以加入质量因子(如ROE、毛利率改善)或交易行为因子(如换手率、资金流入),在市值排序后进行二次筛选或加权,可能提升组合的稳定性和选股有效性。
  2. 调整调仓周期与触发机制
    • 为什么有效:将固定的每周调仓改为不定期调仓,例如当持仓股有超过一定数量触发止损/止盈,或市场波动率突破阈值时再调仓。这样可以进一步降低无谓交易,让策略更“被动”地应对市场。
  3. 优化资金分配方式
    • 为什么有效:当前的等权分配方式简单但未必最优。可改为基于波动率倒数预期风险贡献进行权重分配,使得波动率高的股票占组合权重更低,有望进一步降低整体组合的回撤。
  4. 扩大或优化选股池
    • 为什么有效:当前仅限于中小板成分股。可以尝试扩展至全A股(但保留市值上下限),或纳入中证500、中证1000等指数成分股,以捕捉更广泛的中小盘机会,但需要同步优化过滤条件以控制股票数量和质量。
  5. 细化止盈策略
    • 为什么有效:当前100%止盈是固定阈值。可以尝试移动止盈(如从最高点回撤一定比例止盈)或结合技术指标(如跌破重要均线止盈),可能更好地捕捉大牛股的趋势,提高单笔盈利。

七、总结

总的来说,这个策略为我们展示了一个如何将经典的小市值轮动逻辑当下的监管政策导向动态的仓位管理以及严格的交易纪律相结合的优秀案例。它不仅在历史回测中取得了高风险调整后收益,更重要的是其清晰、可解释、可执行的框架,为量化爱好者提供了极佳的学习和迭代起点。量化策略的价值不仅在于漂亮的回测曲线,更在于其逻辑的严谨性与对市场理解的深度。


📌 策略完整源码暗号 G9smallpro

免责声明:本文分享策略仅供学习交流,不构成任何投资建议。市场有风险,投资需谨慎。策略回测表现不代表未来收益,实盘前请充分测试验证。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值