精华帖子

小市值多因子风控策略

由bqy4a9le创建,最终由bqy4a9le 被浏览 17 用户

一、策略原理: 中小盘 + 多风控

过去 10 年,中小盘股的收益其实更有优势。

以中证 1000 指数(中小盘股的核心代表)和沪深 300 指数(大盘股代表)为例,2014 年到 2024 年这 10 年间,中证 1000 的年化收益率约 12%,而沪深 300 只有 7% 左右,中小盘股每年能多赚 5 个百分点。这背后不是运气,而是有两个核心逻辑支撑:

第一,成长空间差异。中小盘股大多是细分行业的龙头企业,比如某个领域的专精特新公司,业务还在快速扩张期 —— 就像一家刚起步的小公司,从 1 亿营收做到 10 亿,比一家已经 100 亿营收的大公司再翻倍容易得多,业绩增长带来的股价弹性自然更大。

第二,估值修复机会。由于机构持仓比例低(很多基金有 “市值门槛”,不投太小的股票),中小盘股容易被市场低估。一旦出现政策利好(比如行业扶持政策)、业绩超预期等催化剂,估值就能快速修复,带来可观的收益。

但大家一定要注意,“高收益” 永远和 “高风险” 绑定,中小盘股的风险比大盘股要突出得多,这也是我们必须做 “多维度风控” 的根本原因:

首先是波动风险。中小盘股流通盘小,比如一只股票流通市值只有 20 亿,只要有 1 亿资金买卖,就能带动 5% 以上的股价波动,单日涨跌 5%、甚至 8% 都很常见,对投资者的心理承受能力是极大考验。

其次是踩雷风险。部分中小盘股业绩稳定性差,有的依赖单一客户,有的靠政府补贴度日,一旦行业景气度下降、客户流失,或者年报披露时暴雷(比如业绩亏损、商誉减值),股价可能直接腰斩,甚至面临退市风险。

最后是流动性风险。极端行情下,比如遇到股灾、行业利空,中小盘股可能出现 “想买买不到、想卖卖不出” 的情况 —— 比如一只股票跌停,你挂了卖单,但全天没有一笔买单,只能看着股价天天跌,却无法止损。

所以,这个策略的核心逻辑绝不是 “赌中小盘股会涨”,而是 “在赚取中小盘股收益的同时,用严密的风控对冲它的风险”—— 就像我们开车,既要踩油门加速,也要会踩刹车避险,这是整个策略设计的底层出发点,也是大家理解后续内容的关键。

二、策略逻辑:收益与风险的平衡

2.1 选股模块:怎么选 “优质中小盘股”?

很多人觉得 “选中小盘股就是找市值小的股票”,其实完全不是这样。选股是整个策略的基础,必须有严格的标准,核心思路是 “先排除风险,再优选标的”,分三步走:

第一步:定范围 —— 只从中证 1000 指数成分股里选

为什么我们不选全市场的中小盘股,而只从中证 1000 里选?这里有两个关键原因:

一是市值区间匹配。中证 1000 指数覆盖的是 A 股市值排名 801-1800 名的股票,流通市值大多在 20 亿到 100 亿之间,刚好是 “中小盘股” 的核心区间 —— 比中证 500(市值 301-800 名)更贴近 “小盘”,收益弹性更大;比中证 2000(市值 1801 名以后)流动性好,不会出现 “卖不出去” 的情况。

二是成分股质量有保障。中证 1000 的成分股会定期调整,会把市值变大的、业绩变差的股票剔除,纳入新的符合标准的中小盘股,相当于已经帮我们做了一轮 “初步筛选”,避免我们选到市值已经脱离中小盘范畴、或者业绩持续恶化的股票。

第二步:筛风险 ——5 个硬性条件剔除 “坏股票”

这一步是选股的核心,相当于 “排除法”,我们会用 5 个条件把有潜在风险的股票全部去掉,只留下 “安全边际高” 的标的:

第一个条件是上市时间满 1 年(代码里对应

list_days > 375

)。次新股刚上市时,股价容易被炒作,比如一只股票上市后连续涨停,估值被炒到很高,一旦炒作结束,可能连续跌停,套牢后很难解套。而且次新股没有完整的年报数据,无法判断业绩稳定性,所以必须排除。

第二个条件是非 ST 股、无退市风险(代码里对应

st_status = 0

)。ST 股是指财务状况异常、存在退市风险的股票,比如连续两年亏损的公司,这类股票一旦退市,投资者的本金可能血本无归,所以直接排除,不管它市值多小、看起来多有 “重组机会”。

第三个条件是非停牌股(代码里对应

 suspended = 0

)。停牌股无法交易,万一复牌时遇到大盘大跌、或者公司出了利空消息,可能直接跌停,我们连止损的机会都没有。比如某只股票停牌前股价 10 元,复牌后连续 5 个跌停到 6.5 元,等能卖出时,已经亏了 35%,远远超过我们能承受的风险。

第四个条件是非涨跌停股(代码里对应

price_limit_status = 2

)。涨停的股票买不进,强行挂单可能买到时就是涨停打开、开始下跌的时候;跌停的股票卖不出,挂单也只能看着股价继续跌,所以涨跌停股都不参与,确保我们能正常买卖。

第五个条件是主板或创业板股票(代码里对应

list_sector IN (1,2)

)。排除北交所、科创板的股票,因为北交所股票市值更小、流动性更差,科创板股票波动更大、退市风险更高,不符合我们 “平衡收益与风险” 的目标。

第三步:定数量 —— 选前 10 只 “最小市值” 股票

经过前两步筛选后,剩下的都是 “安全的中小盘股”,这一步我们按 “流通市值” 升序排序,选前 10 只。这里有两个关键考虑:

一是坚持 “小市值效应”。为什么选 “最小市值” 的?因为中小盘股的收益优势,本质就是 “小市值效应”—— 市值越小,成长空间越大,被机构关注后估值修复的潜力也越大。比如两只同样符合条件的中小盘股,一只流通市值 30 亿,一只 50 亿,长期来看,30 亿的股票收益大概率比 50 亿的高。

二是分散风险。为什么选 10 只,而不是 1 只、3 只或者 20 只?选 1 只、3 只,单只股票的风险太大,比如 1 只股票跌 10%,整个组合就跌 10%;选 20 只,虽然分散,但调仓成本太高,而且中小盘股之间相关性较高,多到一定数量后,分散风险的效果会减弱。10 只是我们测试后发现的 “最优解”—— 单只股票跌 10%,整个组合只跌 1%,既能有效分散风险,又不会增加太多交易成本。

\

2.2 调仓模块:何时买、何时卖?不是 “凭感觉”,是 “按规则”

选好股票后,什么时候买、什么时候卖,比选股更重要 —— 很多人选对了股票,但因为 “卖早了”“卖晚了” 或者 “不止损”,最后还是亏了钱。我们的调仓模块分 “定时调仓” 和 “触发调仓” 两种,前者赚趋势的钱,后者控突发的险,完全按规则执行,不凭感觉。

定时调仓:每 5 个交易日调一次(目标是 “周二调仓”)

首先要明确,为什么是 “每 5 个交易日调一次”,而不是每天调、每周调或者每月调?这是我们在回测中反复验证的 “最优周期”:

如果调仓太频繁,比如每天调,会产生很高的交易成本 —— 买卖一次股票,手续费(佣金 + 印花税)约 0.16%,一年如果调 200 次,光手续费就占本金的 32%,直接吃掉大部分收益,甚至可能导致亏损。

如果调仓太稀疏,比如每月调一次,又会错过市场趋势。比如一只股票在月初符合条件,我们买入,但月中时它市值变大、不再符合 “中小盘” 标准,或者业绩出现问题,我们却要等到月底才调仓,可能会眼睁睁看着股价从涨 10% 跌到亏 5%,错过止盈机会,甚至产生亏损。

每 5 个交易日调一次,差不多就是每周调一次(接近 “周二调仓” 的目标),既能跟踪市场趋势,确保我们始终持有当前符合标准的中小盘股,又能把交易成本控制在合理范围(一年调约 50 次,手续费约 8%,在可承受范围内)。

具体操作很简单,分两步:

第一步是 “卖”:把不在 “当日选股池” 的股票全部卖掉,不管这只股票现在是赚还是亏。为什么不管盈亏都要卖?因为它已经不符合我们的 “优质中小盘股” 标准了,比如市值变大了、或者流动性变差了,继续持有会增加风险,不如及时卖掉,把资金腾出来买新的符合条件的股票。

第二步是 “买”:把 “当日选股池” 的 10 只股票买进来,每只股票买 10% 的仓位(等权重分配)。为什么要等权重?因为我们无法预测哪只股票未来会涨得更好,等权重分配能避免 “重仓某一只股票” 的风险 —— 比如如果重仓一只股票,它刚好暴雷,整个组合会亏很多;等权重的话,单只股票的影响被降到最低。

触发调仓:4 种情况 “必须卖”,不犹豫、不扛单

定时调仓是 “按计划来”,但市场总是有突发情况,比如股票涨停打开、换手率异常,这时候就需要 “触发调仓”,不管有没有到调仓日,必须马上卖,这是控制风险的关键。我们设定了 4 种必须卖的情况:

第一种情况是涨停打开。昨天涨停的股票,今天下午 14:25 和 14:55 这两个时间点,我们会检查它的价格,如果收盘价低于涨停价的 99.5%(比如涨停价是 10 元,收盘价低于 9.95 元),就说明涨停打开了,必须立即卖出。为什么要这么做?因为涨停打开往往意味着买盘不足,之前的炒作资金开始出逃,再拿着可能会跌更多。比如一只股票昨天涨停,今天开盘涨停,下午突然跌到 9.5 元,这时候不卖,可能收盘会跌到 9 元,甚至明天继续跌,之前的收益就全没了。

第二种情况是换手率异常。每天 10:00 我们会检查持仓股票的换手率,有两种情况要卖:一是 “缩量”——20 天平均换手率低于 0.3%,说明这只股票没人关注,流动性太差,万一遇到风险,想卖都卖不出去,不如早点卖掉;二是 “放量”—— 实时换手率超过 0.1%,而且是 20 天平均换手率的 2 倍以上,说明可能有大资金在出逃,比如机构在减持,这时候不卖,可能会跌很多。

第三种情况是个股止损。每天 10:00 我们会计算每只股票的成本价,如果当前股价跌到成本价的 91%(比如成本价 10 元,跌到 9.1 元),必须强制止损。这是一条 “铁律”,不能因为 “觉得股票会反弹” 就扛着。为什么是 91%?因为如果单只股票亏损超过 9%,要回本需要涨 10% 以上(比如亏 9%,股价从 10 元跌到 9.1 元,要涨回 10 元需要涨 9.89%),难度很大;而且如果不止损,亏损可能会扩大到 15%、20%,甚至更多,对整个组合的影响太大。

第四种情况是大盘止损。每天 10:00 我们会计算中证 1000 成分股的平均开盘跌幅,如果平均跌幅超过 5%(也就是

market_change <= 0.95

),说明市场出现恐慌,系统性风险来了,这时候必须全仓卖出,不管持仓股票是赚是亏。为什么要这么做?因为系统性风险下,几乎所有股票都会跌,比如 2020 年疫情大跌时,中证 1000 指数几天内跌了 15%,这时候扛着会亏很多,不如先卖出来,等市场稳定后再进场。

2.3 防御模块:极端行情下,“活下去” 比 “赚更多” 重要

做投资有一句话很重要:“赚多少取决于行情,亏多少取决于防御”。哪怕你平时赚得再多,只要一次极端行情没做好防御,之前的收益可能全部亏光。我们的防御模块主要应对两种极端情况,确保在风险来临时,能保住本金和收益。

情况 1:特殊月份空仓 ——1 月、4 月只买货币 ETF

为什么我们会在 1 月和 4 月空仓?这不是随便定的,而是基于 A 股 20 多年的历史数据总结出来的规律 ——1 月和 4 月是中小盘股的 “风险月份”:

先看 1 月,每年 1 月是上市公司年报预告的集中披露期,很多中小盘股会在这个时候 “暴雷”。比如有的公司之前业绩看起来很好,但年报预告突然说 “全年亏损”,有的说 “商誉减值 10 亿”,这些利空消息会直接导致股价大跌。而且 1 月资金面往往比较紧张,机构会回笼资金,对中小盘股的流动性影响很大,容易出现 “跌得多、涨得少” 的情况。

再看 4 月,每年 4 月是上市公司年报正式披露的最后期限,也是一季报的披露期,相当于 “双重风险”。一方面,1 月没暴雷的公司,可能会在 4 月正式披露年报时补暴雷;另一方面,一季报如果业绩不及预期,也会导致股价下跌。比如某只中小盘股 1 月预告盈利 1 亿,4 月正式年报说盈利 5000 万,同时一季报说亏损 2000 万,股价可能直接跌 20%。

所以在这两个月份,我们会卖掉所有中小盘股,买入 “货币 ETF”(比如 511880.SH,华宝添益)。货币 ETF 有三个好处:一是流动性好,当天买当天卖,随时能把资金腾出来;二是风险低,几乎不会跌,本金安全有保障;三是有收益,年化收益率约 2%,相当于把钱放在活期理财里,虽然收益不高,但总比拿着中小盘股承担风险强。等 4 月结束,风险过去后,我们再重新开始买入中小盘股。

情况 2:大盘高位防御 —— 银行板块强势时,切换到银行 ETF

除了固定的风险月份,市场还会出现 “高位风险”—— 比如大盘涨了很多,中小盘股估值泡沫很大,随时可能回调。这时候怎么判断要不要防御?我们用了 “两个信号”,只有当两个信号同时满足时,才会触发防御:

第一个信号是大盘接近高位。我们会看深证成指的收盘价,如果它达到过去 60 天最高点的 95% 以上,就说明大盘已经涨了很多,离回调不远了。比如深证成指过去 60 天的最高点是 15000 点,现在收盘价是 14250 点(15000×95%),就说明已经接近高位,风险在累积。为什么看深证成指?因为深证成指里中小盘股占比高,更能反映我们持仓股票的市场环境。

第二个信号是银行板块强势。我们会计算所有行业的 “强度”—— 比如某个行业里,股价在 10 日均线以上的股票占比,占比越高,说明这个行业越强。如果银行板块的强度进入所有行业的前 3 名,而且比全行业的平均强度高 10% 以上,就说明银行板块在 “领涨”。银行股是 A 股的 “防御板块”,平时涨得慢,但市场恐慌时跌得也少,银行股领涨,往往意味着市场资金在 “避险”,这是大盘高位的明确信号 —— 大家都不想买高风险的中小盘股了,转而买低风险的银行股。

当这两个信号同时满足时,我们会立即卖掉所有中小盘股,买入 “银行 ETF”(比如 512800.SH,华宝银行 ETF)。银行 ETF 的优势很明显:一方面,它跟踪银行板块,波动小,即使大盘跌,银行 ETF 的跌幅也会比中小盘股小很多,比如大盘跌 5%,银行 ETF 可能只跌 1%;另一方面,银行股分红稳定,长期持有还有分红收益,能进一步对冲风险。等大盘回调结束,银行板块不再强势时,我们再卖出国债 ETF,重新买入中小盘股。

三、策略的风险:这些坑要提前看清

没有任何策略 “稳赚不赔”,这个策略也有 4 个核心风险,提前了解才能做好应对:

  1. 小市值效应失效:若 A 股成熟后机构偏好大盘股,中小盘股被边缘化,策略收益会下滑;
  2. 流动性风险:极端行情下(如股灾),中小盘股可能跌停卖不出,实际亏损会超预期;
  3. 参数失效:“91% 止损线”“5 天调仓” 等参数是基于历史数据,未来市场变了,这些参数可能不适用;
  4. 黑天鹅风险:突发政策、个股暴雷等不可预测事件,可能打破策略规则,导致亏损。

四、策略改进方向:让策略更适应未来

知道风险后,针对性改进就能让策略更完善,主要有 4 个方向:

  1. 选股加基本面:在 “小市值” 基础上,加净利润增长率(>10%)、ROE(>8%)、资产负债率(<60%),避开垃圾小盘股;
  2. 参数动态调整:波动率高时缩短调仓周期(3 天),波动率低时延长(7 天);大盘好时放宽止损(88%),大盘差时收紧(93%);
  3. 多防御选项:除了货币 ETF、银行 ETF,再加黄金 ETF(抗通胀)、国债 ETF(经济下行避险)、可转债 ETF(震荡市用);
  4. 加仓位控制:大盘上升趋势满仓,震荡趋势 7 成仓,下降趋势 3 成仓,深度下跌时空仓,进一步降风险。


策略链接

https://bigquant.com/square/ai/329402fe-b537-d76d-bcde-4eb9aa275b65


\

{link}