第十六章 “下跌市中可以不买”

风控的引入与空仓规则的实战验证

191页 · 预计12

第十五章结束时,我们刚完成9月20日的回测节点。彼时上证指数从9月1日的3150点跌至3010点,跌幅约4.4%。策略净值从100万元跌至96.2万元,跌幅3.8%,跑赢指数。持仓24只,现金约8万元。对方松了一口气,但我提醒他:最坏的时候还没到。

16.1 市场加速下跌:四维框架的“无人区”

9月23日周一,大盘低开低走,收盘2980点,正式跌破3000点整数关口,市场情绪进入恐慌阶段。当天收盘后,我按流程筛选9月24日的买入清单,结果让我皱眉——符合四维框架全部条件的股票只有2只:生益电子(回撤已扩大至41%,资金面仍为正但强度下降)和中际旭创(回撤33%,资金面勉强达标)。

按照之前约定的规则:如果符合条件的股票少于3只,则当日暂停买入,现金保留,持仓不变。
这是整个回测中第一次触发“空仓”规则。四维框架第一次进入了“找不到合格标的”的无人区——产业、超跌、资金、基本面四个维度同时满足的标的,在系统性下跌中变得极其稀缺。

16.2 空仓规则的第一次实战

9月24日开盘,我们没有买入任何新股票。原有持仓中,有3只股票因连续两日不满足条件被卖出(包括一只浮亏-12%的半导体股,未达止损线但信号要求卖出)。卖出后仓位降至21只,现金增加到约15万元。

对方有些不安:“老师,今天大盘反弹了1.2%,我们没买股票,会不会踏空?”
我反问:“您还记得我们的规则吗?买入清单只有2只,不足3只——这说明市场上几乎找不到同时满足产业、超跌、资金、基本面四维条件的股票。在这种环境下强行买入,大概率是被套。踏空一天的反弹,好过在下跌中继站岗。”

当日收盘,大盘上涨1.2%,我们的净值几乎没变(因持仓中的股票平均微跌-0.1%,叠加现金无收益),跑输指数1.3个百分点。这是策略第一次显著跑输大盘。

16.3 空仓期延长:连续多日无股可买

9月25日至10月10日(国庆假期休市,10月8日恢复交易),市场继续探底。上证指数从2980点跌至2850点,期间没有像样的反弹。期间,每日筛选出的合格股票数量分别为:1只、2只、0只、1只、0只、0只、2只、1只、0只。

按照规则,合格股票少于3只则不买入。这意味着连续9个交易日我们没有任何买入动作,只执行卖出。
这9天里,原有持仓中又有7只股票因信号卖出(其中2只触发止损-15%)。到10月10日收盘,持仓仅剩14只,现金增加至约42万元。

净值从9月23日的96.2万元跌至10月10日的89.3万元,区间跌幅7.2%。同期上证指数从2980跌至2850,跌幅4.4%。策略跑输指数2.8个百分点。

对方忍不住问:“老师,我们是不是太保守了?一直不买,净值跌得比大盘还多,因为持仓股还在跌。为什么不干脆全部清仓?”
我解释:“全部清仓就是另一种极端。我们的规则是‘不满足条件就卖,满足条件就买,不强制买满’。这9天里,确实有部分持仓股票仍在下跌,但它们仍然满足四维条件——例如生益电子,虽然股价继续跌,但它的产业逻辑未变、资金面依然为正、回撤已超过45%,基本面营收增速仍在30%以上。如果此时清仓,就等于否定了自己的选股框架。我们选择相信框架,只在条件被破坏时退出。”

16.4 转折点:10月中旬的弱反弹

10月14日,大盘在2850点附近连续三天缩量横盘后,出现一根放量阳线,上涨1.8%,市场情绪小幅修复。当日收盘后,四维框架筛选出的合格股票数量回升至5只:生益电子、晶合集成、中际旭创、天孚通信、以及一只新入选的AI算力PCB股。

5只,超过3只门槛。我们重新启动买入。
10月15日开盘,我们用约18万元现金(总现金的约40%),等权买入了这5只股票,每只买入约3.6万元。此时总持仓从14只增加到19只,现金剩余约24万元。

10月15日至10月31日(回测结束),大盘在2850-2920点之间震荡,没有再创新低。我们的持仓中,生益电子和天孚通信反弹超过10%,晶合集成涨6%,中际旭创涨5%,新入选的PCB股涨3%。整体净值从89.3万元回升至92.8万元。

16.5 对比回测:强制买入 vs 允许空仓

回测结束后,我向对方呈现了两个场景的最终结果对比。场景A是我们实际执行的规则:合格股票少于3只时暂停买入,允许空仓。场景B是假设的对照组:无论多少只,每天强制买入前10只(若不足10只则全部买入),没有空仓规则。

指标 场景A(允许空仓) 场景B(强制买入) 差异
起始资金 100万 100万
结束净值 92.8万 84.5万 +8.3万
区间收益率 -7.2% -15.5% +8.3个百分点
最大回撤 -12.3% -21.8% 回撤收窄9.5个百分点
最大持仓数量 24只 41只 少17只
总交易次数 42笔(买卖合计) 78笔 少36笔
交易成本占比 0.9% 1.8% 节约0.9个百分点

结果非常直观:强制买入的场景B在9月23日至10月10日的下跌段中,被迫买入了大量不合格股票(当时每日合格股票不足3只,但规则强制买入前10只,其实前10名中大部分并不满足四维条件)。这些股票在后续两周平均下跌12%,严重拖累了净值。同时,持仓数量膨胀到41只,其中一半以上是僵尸股。

对方看着对比表,沉默良久:“老师,差8.3个百分点。如果我一直强制买入,现在账户只有84.5万,而按照您的规则还有92.8万。更重要的是,最大回撤21.8%已经触发熔断了,而我们的实际回撤只有12.3%,离熔断还很远。”

16.6 为什么允许空仓比硬扛更优?风控参数的内在逻辑

对方追问:“为什么要把门槛设在3只?如果设成5只,会不会更保守?或者设成1只,更多买入?”
我解释了这个参数选择的逻辑,它不是拍脑袋,而是基于三个观察。

观察一:多样性要求。四维框架的核心是“多维度共振”。如果市场上只有1-2只股票满足条件,说明大部分股票在不同维度上存在缺陷。比如,可能只有AI算力一个赛道有股票,或者只有深跌但资金面很差。买入1-2只股票会导致组合极度集中,一旦判断失误,损失会很大。3只是一个最低的“分散”要求——即使某一只出问题,另外两只还能提供缓冲。
观察二:历史回测的统计。我曾用过去三年的数据测试过“最小买入数”参数(从1到10)。结果显示:当最小买入数设为1或2时,组合在下跌市中会频繁买入少量股票,导致最大回撤比空仓规则高出5-8个百分点;当设为3时,回撤最低;当设为4或5时,会错过一些本该参与的弱反弹,整体收益率下降约2个百分点。3是一个经验上的最优平衡点。
观察三:心理舒适度。3只股票对于普通投资者来说是一个容易跟踪的数量。少于3只,说明市场环境非常恶劣,此时选择观望是合理的;多于3只,说明至少有三个不同的机会,值得投入。

对方又问:“那空仓期间,现金放着不动,不是浪费了机会成本吗?”
我回答:“下跌市中,现金不是浪费,而是期权——它赋予了您在市场出现真正机会时出手的权利。强制买入好比在暴风雨中强行出海,空仓则是抛锚等待天晴。我们不是没有交易,而是选择不交易。这是主动风控,不是被动无为。”

16.7 最终回测结果:策略在下跌市中的生存之道

回测区间(2025年9月1日至10月31日,共44个交易日)的完整结果如下:

  • 起始净值:100.00万元
  • 结束净值:92.80万元
  • 区间收益率:-7.2%
  • 同期上证指数收益率:-9.5%
  • 超额收益:+2.3个百分点
  • 最大回撤:-12.3%(发生在10月9日)
  • 最大回撤持续时间:8个交易日
  • 夏普比率(年化):-0.8(负,但优于强制买入场景的-1.5)
  • 胜率:47%(盈利交易笔数/总平仓笔数)
  • 盈亏比:1.9(平均盈利5.2% / 平均亏损2.7%)
  • 平均持仓天数:12.3天
  • 总交易成本占比:0.9%(约8400元)

我向对方总结:“策略在下跌市中没能赚钱,但它的表现优于大盘,并且通过空仓规则避免了深度回撤。更重要的是,它没有爆仓,也没有触发熔断。最坏的情况下,您只是亏了7.2%,而不是15%或更多。”

16.8 交易爱好者的反思:从“怕踏空”到“怕被套”

回测结束后的对话,让我看到了对方心态的变化。
“老师,我以前总觉得,只要手里有钱就要买股票,不然就亏了机会。这波模拟下来,我发现下跌市中强行买入才是真正的亏损来源。空仓不是踏空,是保命。”
我补充道:“空仓的难度不在于技术,而在于心理。看着大盘反弹一天不买,会怀疑自己是不是太胆小;看着别人账户上涨,会焦虑。但我们的回测证明:在四维框架找不到足够多的合格标的时,市场本身就在告诉您‘现在不适合交易’。听从市场的信号,而不是内心的冲动。”

对方说:“我打算从下个月开始,用一个小账户实盘测试这个规则。不是全仓,就放5万块钱,严格按照每天的TOP10名单和空仓规则操作。老师,您能每个月帮我复核一次交易记录吗?”
我回答:“可以。但记住:实盘和回测永远有差异。尤其是资金面的连续净流入条件,实盘中因为数据源的延迟和统计口径,可能会与回测有出入。您需要提前做好应对方案。”

16.9 回测的局限与后续改进方向

在结束本章之前,我坦诚地指出了本次手工回测的局限,不夸大回测的价值:

  1. 单一时段:只测试了2025年9-10月的一个下跌段,不能代表所有市场环境。需要测试牛市、震荡市、以及不同年份的下跌市,才能全面验证策略的有效性。
  2. 手工操作误差:虽然交叉验证,但仍可能存在数据录入或计算错误。自动化回测才能保证精确复现。
  3. 资金面数据的时效性:我们使用的资金流向数据来自Tushare Pro,其“当日”数据实际上是前一交易日的收盘统计。实盘中使用时,需要确认数据源更新时刻,确保不会用到未来数据。
  4. 未考虑冲击成本:当单只股票买入金额较大(如超过50万元)且股票日均成交额较低时,开盘价买入可能推高价格。本模拟中最大单笔买入约10万元,对于日均成交额超过500万的股票来说冲击很小,但未来资金量增大时需要重新评估。

对方回应:“这些局限我明白。我先用小资金试,边试边改进。谢谢老师,这五轮迭代下来,我从一个只会说‘帮我选股’的新手,到现在能自己理解四维框架、回测设计和风控逻辑,进步已经很大了。”
我最后说:“记住,策略只是工具,纪律才是灵魂。无论框架多精妙,执行时的人性弱点——贪婪、恐惧、侥幸——才是最大的敌人。我们的模拟盘规则中,没有一条是留给‘我觉得今天可以破例’的。希望您实盘时也能坚守。”

第16章量化专家笔记

回测对比曲线图说明

图16-1:2025年9月-10月净值曲线对比
蓝线:允许空仓策略净值(从1.00跌至0.928)
红线:强制买入策略净值(从1.00跌至0.845)
灰线:沪深300基准(从1.00跌至0.905)
阴影区域:空仓期(9月24日-10月13日),蓝线净值基本走平,红线持续下跌。

图16-2:最大回撤对比
允许空仓:最大回撤12.3%(发生在10月9日)
强制买入:最大回撤21.8%(发生在10月14日)
差距:9.5个百分点

空仓决策的心理建设

  1. 为什么执行空仓比买入更难?
    研究发现,人类大脑对“没有行动”产生的后悔感(错失机会)远大于“错误行动”产生的后悔感。因此,空仓需要反人性的自律。训练方法:将空仓规则写进程序,由代码强制执行,不给自己人工干预的机会。
  2. 空仓期间你可以做什么?
    复盘历史交易,寻找改进点;学习新的因子或策略;优化数据获取和回测代码;阅读行业研究报告,为下一轮买入做准备。
  3. 如何定义“合格股票少于3只”?
    注意:合格股票是指同时满足四维条件且未被持仓的股票。如果已有持仓中还有一些满足条件,但新股票不足3只,是否应该空仓?我们的规则是:仅针对新买入部分。已有持仓可以继续持有,直到不满足条件为止。

空仓规则的另一种变体

如果连续5个交易日空仓,则第6个交易日无条件买入当时综合得分最高的3只股票(即使得分较低)。目的是防止长期空仓踏空大级别反弹。这个变体我没有在主文中采用,但可以作为进阶选项,适合担心踏空的投资者。

如果需要测试不同空仓阈值、不同调仓频率下的策略表现,可访问a-sig.com壹信因子查询平台,内置回测引擎支持自定义风控规则,快速输出对比结果。

本章内容节选自原创量化书籍《因子会说谎》,更多回测设计与风控策略的实战细节,可登录intoquant.com查阅完整内容。


本章完。下一章将对全书五次迭代进行认知跃迁的总结,梳理从简单选股到完整交易系统的进化路径。

⚠️ 风险提示:本书内容仅为量化研究与知识分享,不构成任何投资建议。套利交易存在基差、费率、流动性、平台与极端行情等风险,历史表现不代表未来收益。投资有风险,入市需谨慎,请自主决策、量力而行。

💡 键盘 ←/→ 翻章 · T 键切换目录