
前言两个方向相反的名字一个策略追近期走强的股票另一个寻找短期下跌后的反弹。把它们各拿一半资金听起来像是给账户装上了两只方向相反的轮子一边失灵另一边应该还能推着走。问题是策略名称描述的是如何挑股票不是账户在市场下跌时会怎样。两套策略可能同一天亏钱甚至买进同一批股票。尤其当“买跌”只在长期趋势仍向上的股票里寻找短期回落它和“追涨”未必站在市场风险的两侧。这一篇选用平台现成的动量选股与均值回归模板讨论怎样检验分散效果。本文没有实际跑出双策略组合收益也没有把示意图当成实测。读者可以按文末步骤在自己的数据版本上复核在拿到完整结果前结论只停在研究方法不替市场作证。目录前言两个方向相反的名字01先看清两套策略究竟在买什么02先把两次回测放在同一把尺上03收益相关性只是第一道检查04真正难受的是同一天亏钱05持仓不同也可能承担同一种风险06两条净值曲线不能自动变成一个账户07成本与容量会改变“分散”的价格08把结论写到证据允许的位置关于本文的研究口径参考资料01先看清两套策略究竟在买什么平台“策略模板”的均衡预设里动量选股按近20日涨幅排序要求近60日涨幅为正、近20日平均成交额高于2000万元默认选5只、每周调仓。均值回归要求近5日跌幅超过3%、股价仍在60日均线之上、近20日平均成交额高于2000万元再从短期跌得较多的股票中选股默认选6只、每周调仓。两者的直接区别是选股时间尺度一个偏向近期已经上涨另一个寻找长期趋势未破坏的短期回落。共同点同样重要都在流动性较好的股票中交易都偏向仍有上行背景的标的。均值回归不是“市场跌就赚钱”的空头策略。假如整个市场一起下跌短期下跌的股票仍可能继续跌“买跌”只是买入条件不是获利保证。图1根据当前模板规则绘制“共同筛选”说明风险来源可能重叠不表示两套策略必然选到同一只股票。为减少无关差异建议把两套模板都设成均衡、每周调仓、最多5只。这一调整只用于本次对照需在实验登记中写明均值回归原预设是6只改成5只后研究对象已是“共同持股上限下的两套规则”不能把结论直接称为两个默认模板的比较。若想研究原生预设则保留5只与6只并在解释中承认持股数量也变了。02先把两次回测放在同一把尺上先分别回测才谈组合。两次运行应使用相同的股票池口径、数据版本、起止日期、初始资金、成本模型、复权和退市处理、成交限制与交易日历。保留两个运行编号和配置快照。只挑“都好看”的两条曲线会让组合研究从起点就带着选择偏差。如果其中一套策略在某天没有可买股票账户仍应按实际现金和已有仓位计价不能把这天从结果中删掉。两套净值序列要按交易日期对齐缺失数据应追查原因。平台“回测记录库”的“结果对比”可以并排显示2—5次运行并给出起点为1的标准化净值但这是两次独立回测的比较不是共用现金、共用订单簿的组合账户。图2应在研究前冻结的共同条件。图中各项是实验设计不是本篇已经完成的运行。还要划开样本内与样本外。样本内用于确定规则与持股上限样本外尽量冻结参数后只检验一次。若发现样本外共同亏损很多事后再改均线、调仓周期或权重改动后的结果只能算新的研究方案不能反过来当原方案的样本外成绩。03收益相关性只是第一道检查拿到两套独立账户的每日收盘总资产后先算各自日收益r M , t E M , t / E M , t − 1 − 1 r_{M,t}E_{M,t}/E_{M,t-1}-1rM,tEM,t/EM,t−1−1r R , t E R , t / E R , t − 1 − 1 r_{R,t}E_{R,t}/E_{R,t-1}-1rR,tER,t/ER,t−1−1。只使用双方都有可靠估值的共同交易日计算皮尔逊相关系数ρ M , R Cov ( r M , r R ) σ M σ R \rho_{M,R}\frac{\operatorname{Cov}(r_M,r_R)}{\sigma_M\sigma_R}ρM,RσMσRCov(rM,rR)它回答“整段时间通常是否同涨同跌”却不能单独回答“最需要保护账户时是否一起亏”。举例说一年里大量平静交易日表现不相似少数剧烈下跌日却一起受伤全年相关系数可能看着不高投资者真实感受仍然很差。若任一序列在窗口内波动为零相关系数也没有定义不能硬填0。图3概念示意非实测系数。压力日须按事先登记的市场条件选择不能看过策略结果再挑日子。因此至少同时看整段相关、滚动相关和事先定义的压力时段。滚动窗口的长度应在看结果前固定并说明窗口不足时不显示数值。压力日可以按基准指数当日跌幅达到预设阈值或按事先确定的历史事件区间筛选不能先找组合最难看的几天再声称它们是“压力测试”。相关系数的变化也需要和账户仓位一起看两套策略同时空仓时低波动未必是选股风险分散而可能只是共同退到了现金。滚动相关还容易被短窗口误导窗口越短单个异常交易日的影响往往越大窗口越长又可能掩盖风险关系的变化。图上每个点应写明所用交易日数量分别标出样本内与样本外。不要把相关从0.3降到0.1的单次波动写成“风险结构改善”除非这种变化在后续时期仍稳定出现。04真正难受的是同一天亏钱比一张相关系数表更直观的是把每个共同交易日标成四种情况两者都赚、动量赚而均值回归亏、动量亏而均值回归赚、两者都亏。统计共同亏损的日数及其占共同交易日的比例再单独查看预先规定的市场下跌日。图4上方为研究应产出的四格分类下方4日数字是手工教学例子绝非平台结果。假设四个交易日里两套策略的收益依次为动量( − 2 % , 1 % , − 1 % , 2 % ) (-2\%,1\%,-1\%,2\%)(−2%,1%,−1%,2%)均值回归( − 1 % , − 1 % , 2 % , 1 % ) (-1\%,-1\%,2\%,1\%)(−1%,−1%,2%,1%)。第一天两者都亏第三天一亏一赚。不能因为有过一次互相抵消就省略第一天的共同风险也不能用这四个手工数字推断真实策略的概率。还应查看共同亏损日的亏损幅度、各自最差日期是否重合以及两套账户在基准市场下跌日各自的实际股票仓位。若压力日一套策略早已空仓要如实写“现金减少了当日风险”不能把它包装成另一种选股信号在对冲。长期分散是否有效不止看亏损日数还要看极端亏损时是否真的减轻了总账户损失。报表中可同时给出两个分母共同亏损日占全部共同交易日的比例以及“动量亏损时均值回归也亏”的比例。前者反映共同坏日有多常见后者回答动量需要帮助时另一套策略是否真能提供帮助。两者不是同一个指标。某些日期因数据不足被排除时必须列出排除数量否则“共同亏损很少”可能只是把困难日删掉了。05持仓不同也可能承担同一种风险把两套策略每次调仓后的实际持仓列出来而不只看目标股票或信号。令H M , t H_{M,t}HM,t和H R , t H_{R,t}HR,t分别是同日两套账户持有的股票集合一个便于读者理解的重叠率是J t ∣ H M , t ∩ H R , t ∣ ∣ H M , t ∪ H R , t ∣ J_t\frac{|H_{M,t}\cap H_{R,t}|}{|H_{M,t}\cup H_{R,t}|}Jt∣HM,t∪HR,t∣∣HM,t∩HR,t∣两边都没有股票时分母为零应标记为“均空仓”不要称为零重叠。图表最好同时写出“共同持有几只、合计持有几只”因为五只股票的账户里一只股票重合就可能占很大权重。进一步比较共同股票的金额权重而不只是代码是否重复。图5示意持股和风险层级股票名称、占比均待真实运行填入。即使一只股票都不重合两套策略也可能同时买入同一行业、同类市值股票或者在行情转弱时一起遭受流动性冲击。行业归类需要对应历史时点不能拿今天的行业标签倒填过去。另一种误判来自成交前后的差别计划买入的股票未必成交真正承担风险的是当日实际持仓。平台保存的逐日持仓、订单和成交记录应互相核对。举个只用于理解指标的例子动量持有甲、乙均值回归持有乙、丙集合重叠率为1 / 3 1/31/3。但若乙在两个账户中各占一半资金风险上的重合显然不能用“只重合一只”轻轻带过。实测图应把集合重叠与共同股票的资金权重并排呈现并另列两套策略的现金比例。06两条净值曲线不能自动变成一个账户“各拿一半资金”至少有两种意思算出来的曲线也不同。第一种是起初分配50%/50%此后两套子账户之间不转钱。假设各自的净值已按投入资金标准化为N M , t N_{M,t}NM,t、N R , t N_{R,t}NR,t只在两套子账户确实按半额资金分别运行、并使用各自实际成交结果时总账户的会计权益才是N 静态 , t 0.5 N M , t 0.5 N R , t N_{\text{静态},t}0.5N_{M,t}0.5N_{R,t}N静态,t0.5NM,t0.5NR,t第二种是每天都把权重调回50%/50%。其理想化日收益写作r 日调 , t 0.5 r M , t 0.5 r R , t r_{\text{日调},t}0.5r_{M,t}0.5r_{R,t}r日调,t0.5rM,t0.5rR,t它暗含每天在两套策略间转钱和再平衡这些交易也有成本。两式不是同一方案长期路径不能随便互换。平台的双净值对比只是把独立回测标准化后放在一起看既不自动执行静态分配也不执行每日再平衡。图6左侧是平台现有的并排观察右侧是真正要宣称“组合可交易”时需要的账户级执行。一个朴素例子总资金100万元两套策略各分50万元。如果原先分别用100万元跑出的净值再简单平均最低佣金、整手股数、参与率限制、买不到的订单都可能与50万元实跑不同。若两者同时要买同一只股票共用账户还得决定总持股上限、订单合并和资金优先级。因此原始双回测平均线最多称为示意曲线不能写成“组合实盘可复制收益”。即使暂时不考虑交易限制两种50%也会分开。假设第一段后动量的50万元变为60万元均值回归的50万元变为45万元静态子账户合计105万元此时两边权重约为57.1%和42.9%。若规定每天恢复各占一半就要把两边调到52.5万元相当于从动量一侧转出7.5万元。这个转账以及后续买卖不能在静态合计曲线里凭空消失。这里的金额仍是手工例子并非平台运行结果。07成本与容量会改变“分散”的价格两套策略看起来互补可能只是因为净值图没把组合层面的交易问题画出来。动量与均值回归若在同一天买卖同一股票分开账户可能产生相反订单共用账户究竟净额交易还是分别成交手续费和冲击成本就会不同。若同向买入合计成交额参与率可能高于任何单独策略。风险分散不能只按收益曲线评估还要按总资金规模和真实可成交量评估。研究可以分三层推进先跑两个独立策略确认各自可信再把总预算按50%/50%拆开分别以半额资金重跑得到“不转账子账户”的可比起点最后若要声称是一个可交易组合应由共用现金、统一订单和共同仓位限制的账户模型重新执行。当前平台已经有单次回测的费用、订单、成交、仓位与参与率记录但没有现成的多策略共享资金执行器。第三层不能用一张表格替代。容量测试也应在组合层面重做。单独一套策略能买到不代表两套同时下单还能按原滑点成交。可以预先登记总资金阶梯逐档比较实际成交额参与率、部分成交、拒单、剩余现金和净收益若资金越大、未成交越多所谓“分散”可能只是两个账户都在等待同一批稀缺流动性。不能把已经成交的小资金收益直接按倍数外推。图7能力边界与后续研究路线。右侧不是本篇已完成的平台结果。08把结论写到证据允许的位置完成前两次回测后先填下面的对照框不必急着宣布“分散有效”。其中独立策略的收益、最大回撤、费用、空仓比例、成交缺口和样本外表现应分别披露策略之间的共同亏损日、滚动相关、持股重叠和压力日暴露则是另一组证据。图8待填研究表。所有“待填”都需要从真实运行和逐日数据计算不包含预设成绩。若只得到两条独立净值结论最多写“两种模板在这一数据与成本口径下独立回测表现如何它们在某些日期和持仓上的风险有多少重合。”若用半额资金分别重跑可以再报告一个不转账子账户的会计合计但仍应说明未在统一订单模型里处理共同买入与跨策略限制。只有完成共享资金的订单执行才适合进一步讨论可交易组合的收益、容量与风险。最值得警惕的不是两个策略一起亏了一天而是研究者先入为主地认为它们方向相反于是根本没去数那些共同亏损日。分散从来不是策略名字的性质而是经过同期、同口径、同资金约束检验后的结果。关于本文的研究口径本文依据本项目当前“策略模板”“回测记录库”和逐次回测产物的实现撰写正文中的模板规则与界面名称应以读者运行时版本的配置快照为准。本文没有运行新的双策略实验图1—3、5—8为规则或方法示意图4中的四日收益为独立手工教学数字均不是经验发现也不构成投资建议。复核时应保存策略模板版本、全部参数、数据版本、股票池与退市处理、成本和成交设置、研究日期、运行编号与配置快照。收益相关与共同亏损日只用双方可靠估值的共同日期缺失不是0收益。压力时段与滚动窗口须事前登记未通过审计或只剩一边有效数据的时期要单独说明。正文所说“实际持仓”指成交后账户持仓不是选股名单。参考资料Harry Markowitz, “Portfolio Selection,”The Journal of Finance, 7(1), 1952, 77–91. 期刊原文与 DOI。本文仅借其“组合风险取决于资产共同变动”的基本问题意识不将历史理论当作本篇策略的实测证据。François Longin Bruno Solnik, “Extreme Correlation of International Equity Markets,”The Journal of Finance, 56(2), 2001, 649–676. 期刊原文与 DOI。该研究对象是国际股票市场本文仅用它提醒读者检查下跌情境中的共同变动其结论不能直接套用于本项目的两套策略。