我们先看一张表。下面是 A 股几个年份里,小盘(中证1000)和大盘(沪深300)、成长(300成长)和价值(300价值)各自的全年收益差:
| 年份 | 沪深300 | 中证1000 | 小盘 − 大盘 | 成长 − 价值 |
|---|---|---|---|---|
| 2013 | −5.3% | +32.5% | +37.8 | +1.0 |
| 2015 | +7.2% | +76.6% | +69.4 | +4.4 |
| 2017 | +24.3% | −16.9% | −41.1 | −5.9 |
| 2020 | +29.9% | +20.5% | −9.4 | +42.1 |
| 2024 | +18.2% | +2.8% | −15.4 | −23.9 |
中证指数官网全收益指数,含分红再投资。收益差单位是百分点。
这种差别,在 A 股投资者的语言里叫“风格”:某一年是小盘的天下,另一年是大盘蓝筹的天下;某一年成长股一飞冲天,另一年价值股更扛跌。如果手里有一组量化策略,分别擅长不同的风格,再能判断出当下是哪种风格,似乎就可以在合适的时候用合适的策略。
不过,在讨论“怎么切换”之前,有几个更基础的问题。上面这些差别,是一种会持续一段时间的规律,还是只是每年随机波动的结果?如果市场风格确实存在,它应该用什么来描述,持续多久,怎么从数据里认出来?市面上的产品和研究有没有在做这件事,它们是怎么设计的?如果我们自己来设计一个“策略篮子 + 风格判定”的系统,它应该长什么样,又该怎么检验?
本文按这个顺序,从风格是否存在,一直讲到一个可以落地的方案。
一、市场风格是否存在
要检验的是什么
表 1 里的收益差很大,但“差别大”本身证明不了什么。即使每天的涨跌完全随机,一年下来大盘和小盘的收益也会有差别。“风格”这个说法隐含了更多的东西:它会持续一段时间。今年小盘占优,接下来几个月大概率还是小盘占优;市场处在剧烈波动的阶段,接下来一段时间也大概率继续剧烈波动。
所以检验的思路是:把真实的日收益随机打乱顺序,再计算同样的统计量。打乱以后,每天的涨跌幅度原封不动,只是时间顺序没了,任何“持续性”都会消失。如果真实数据的统计量明显落在打乱结果的范围之外,就说明数据里确实有打乱破坏掉的那种结构,也就是风格。
数据用 2005 年到 2026 年 10 月的沪深300、中证1000、300价值、300成长全收益指数1,港股用 2008 年以来盈富基金的复权价2。每个统计量都和 200 次打乱的结果比较。
证据一:波动会聚集
最直接的一种持续性是波动。我们算每天的 20 日波动率,再看它和 60 个交易日以前的 20 日波动率之间的相关系数:
| 序列 | 真实数据 | 打乱后(97.5% 分位) |
|---|---|---|
| 沪深300 | 0.46 | 0.07 |
| 小盘 − 大盘 | 0.26 | 0.08 |
| 成长 − 价值 | 0.62 | 0.07 |
| 港股(盈富基金) | 0.28 | 0.12 |
打乱后的相关系数几乎是 0,200 次里最大的那 2.5% 也只有 0.07 到 0.12。
四条序列全部远高于打乱后的上限。波动状态是确定存在的:市场会在“平静”和“剧烈”两种状态之间切换,每种状态都会持续好几个月。这也是金融时间序列里最稳健的经验事实之一,Ang 和 Bekaert 在国际股市里观察到的“高波动、高相关”的熊市状态3,说的也是这件事。
证据二:趋势在某些尺度上会持续
第二种持续性是方向。用来衡量它的工具叫方差比(variance ratio):把 q 天的累计收益的方差,除以 q 倍的单日收益方差。如果每天的涨跌互不相关,这个比值应该接近 1;大于 1 说明涨了之后还会涨(趋势),小于 1 说明涨了之后会回落(反转)。
| 序列 | 5 天 | 20 天 | 60 天 | 250 天 |
|---|---|---|---|---|
| 沪深300 | 1.03 [0.92, 1.09] | 1.03 [0.84, 1.15] | 1.38 [0.73, 1.33] | 2.19 [0.46, 1.66] |
| 小盘 − 大盘(指数) | 1.40 [0.93, 1.08] | 1.57 [0.85, 1.16] | 1.25 [0.71, 1.28] | 1.05 [0.45, 1.67] |
| 小盘 − 大盘(ETF,2016 年起) | 1.02 [0.94, 1.06] | 0.98 [0.85, 1.15] | 0.88 [0.77, 1.24] | 0.57 [0.14, 1.43] |
| 成长 − 价值 | 1.12 [0.92, 1.06] | 1.15 [0.86, 1.17] | 1.23 [0.74, 1.31] | 1.46 [0.46, 1.68] |
| 港股 | 0.92 [0.91, 1.08] | 0.78 [0.81, 1.18] | 0.66 [0.66, 1.29] | 1.28 [0.46, 1.73] |
绿色:显著大于打乱后的范围(有趋势);红色:显著小于(有反转)。ETF 一行用 512100 和 510300 的真实价格。250 天一列只有约 20 个不重叠的样本,范围很宽。
这张表比表 2 复杂,可以分三点看:
- 大盘的趋势是长周期的。 沪深300 在 5 天、20 天上和随机游走没有区别,到了 60 天、250 天,方差比明显大于打乱后的上限。也就是说,A 股的“牛市”“熊市”在季度和年度的尺度上是真实存在的,但在几天、几周的尺度上看不出来。
- 大小盘的短期惯性要打个问号。 用指数算,小盘相对大盘的 5 天、20 天方差比高达 1.40 和 1.57,看起来风格惯性很强;可用两只真实 ETF 的价格算同一个量,结果和随机游走一样。原因是小盘指数里总有一部分成分股成交稀少,收盘价“慢一拍”,第二天才补涨补跌,于是指数收益出现了虚假的正自相关,这是 Lo 和 MacKinlay 讨论过的不同步成交效应4。这里是根据两组数字的差别做的推断,没有逐只检查成分股。
- 港股的月度节奏相反。 港股 20 天的方差比只有 0.78,低于打乱后的下限,说明在月度尺度上更容易“涨多了就回落”。A 股和港股不能共用一套风格假设。
证据三:不同状态下,市场的样子不一样
如果风格存在,那么在不同的状态里,收益的分布应该明显不同。我们先用一个简单的规则(第二节会详细介绍)把每天分成四种状态,再看各状态下的统计量:
| 状态 | 天数 | 沪深300 年化波动 | 小盘 − 大盘(年化) | 成长 − 价值(年化) |
|---|---|---|---|---|
| 上涨趋势 | 2389 | 24.5% | −3.7 | −0.5 |
| 下跌趋势 | 1721 | 26.5% | +1.6 | −3.4 |
| 低波震荡 | 761 | 18.4% | +7.6 | −8.4 |
| 高波震荡 | 295 | 34.6% | +32.9 | +10.2 |
这里用当天的状态描述当天的市场,只用于说明“状态之间不一样”,不能直接用来交易,原因见第四节。
证据四:趋势段的长度,大部分随机游走也能产生
最后一个检验是一个反面的提醒。用同一套规则,在真实数据和打乱后重建的价格上分别切分状态,比较每种状态平均持续多少天:上涨趋势真实是 109 天,打乱后是 82 天(97.5% 分位 114 天);下跌趋势 64 天对 59 天;低波震荡 22 天对 16 天(97.5% 分位 19 天);高波震荡 15 天对 15 天。
只有低波震荡的持续时间明显长于随机游走。一段看起来很长的“上涨趋势”,随机游走也能走出来。 这提醒我们:肉眼看到的趋势段,不等于可以利用的规律,判断风格是否存在要靠统计检验,不能靠看图。
小结:风格存在,但分层次
把四组证据放在一起,可以得到一个比“有”或“没有”更具体的回答:
- 波动状态:确定存在,持续数月,A 股和港股都是如此。
- 大盘的趋势状态:在季度到年度的尺度上存在,在周的尺度上看不出来。
- 风格分化:幅度很大,大小盘年度收益差的中位数是 12.4 个百分点,近三分之二的年份超过 10 个点;成长价值是 10.4 个点。但大小盘在短期内的“惯性”主要是指数的统计假象。
- 市场之间:港股在月度尺度上偏反转,和 A 股不同。
既然风格存在,它应该用什么样的形式来描述?
二、市场风格的描述方式
两个层面:市场状态与风格偏好
上一节的证据提示,“风格”至少包含两个层面的东西。
一个是市场状态(regime):整个市场处在什么样的环境里,比如在涨还是在跌,平静还是剧烈。资产配置文献主要研究的是这一层,学术起点是 Hamilton 1989 年的马尔可夫切换模型5:市场在几个看不见的状态之间切换,每个状态下收益的均值和波动不同,我们只能从观察到的价格反推当前处在哪个状态。
另一个是风格偏好:在同一个市场里,哪一类股票占优,比如大盘还是小盘、价值还是成长。A 股卖方报告里的“风格轮动”主要指这一层。
两个层面有关联但不相同。表 4 显示,高波震荡里小盘明显占优,低波震荡里价值相对成长占优,所以市场状态可以作为判断风格偏好的线索之一。
风格的几个性质
从第一节的检验结果,还能读出风格的几个性质,它们直接决定了判定方法该怎么设计:
- 潜在的。风格不能直接观察,只能从价格、成交、估值等数据里推断,推断总有误差。
- 事后清楚,事前模糊。回头看,2015 年是小盘年一目了然;身在 2015 年 3 月,只能看到最近几周小盘在涨。
- 有确定的部分,也有模糊的部分。波动状态的持续性很强,判断出来就比较可靠;趋势方向在短期内接近随机,判断出来也未必延续。
- 切换是跳跃的。状态往往在几天之内从一种变成另一种,判定规则既要跟得上切换,又不能被噪声带着来回跳。
一种可操作的定义
按这些性质,我们给市场状态一个简单的定义,用两个维度:
- 趋势维度:沪深300 的价格和它的 120 日均线。价格在均线上方、而且均线本身在 20 个交易日里抬高了,是上涨趋势;价格在均线下方、均线也在下降,是下跌趋势;其余情况,价格和均线方向不一致,是震荡。
- 波动维度:只用来细分震荡市。20 日年化波动率高于过去 3 年的中位数,是高波震荡,否则是低波震荡。
为什么趋势市不再按波动细分?因为趋势市里方向已经决定了大部分事情,再分一层,每一格里的样本就太少了。
这样每天得到一个标签:上涨趋势、下跌趋势、低波震荡、高波震荡。第一版跑出来有一个问题:价格在均线附近徘徊时,标签今天是“上涨”,明天是“震荡”,一年要切换 13.5 次。针对“切换是跳跃的”这个性质,我们加了一个确认期:新状态连续出现 5 天才算数。加了以后,一年切换 5.6 次。
风格偏好这一层,我们不另外定义标签,而是交给策略工具本身去处理:大小盘轮动、价值成长轮动这类工具,本身就是在跟踪风格偏好。这一点在第四节设计篮子时会具体说明。
这样的定义是不是太简单了?在动手设计之前,先看看市面上的产品和研究是怎么做的。
三、同行的做法
有没有这样的产品
答案是有,而且形态差别很大。我们对照了国内外能找到公开信息的平台、卖方研究和产品。
国内量化平台提供的主要是数据、回测和交易通道。聚宽、米筐、优矿、掘金这类平台不直接判定风格,但米筐的数据接口提供风格因子暴露和因子收益6,可以作为风格判定的输入;BigQuant 的策略模板里有一个“大盘风控”开关:上证指数 5 日跌幅超过 4% 就清仓7;果仁网把大盘择时做成了可配置的独立模块8。“判定状态,再切换策略”这一层,平台上没有现成的模块。
国内卖方和基金做得更深入。国金证券用宏观(长周期)和情绪(短周期)两个维度各训练一个 XGBoost 模型,在沪深300 和中证500 之间轮动,两个信号方向冲突时两边各配一半9;天风证券的择时框架分估值赔率、宏观胜率、资金趋势、拥挤反转四个维度打分10;国联期货按利率、期限利差、信用利差的周期判断大小盘和价值成长11。公募产品里,汇安启程混合用宏观增长、流动性、风险偏好、交易拥挤度四个维度判断大盘还是中小盘占优,再切换下层的量化选股策略12,结构和本文要讨论的方案几乎一样。
海外的代表做法有四种。Two Sigma 用高斯混合模型对 17 个因子的收益聚类,得到危机、平稳、通胀、“如履薄冰”四个状态,输出每个状态的概率13;Kritzman 等人对市场动荡、通胀、增长三个维度各用一个两状态的马尔可夫切换模型14;MSCI 的中国因子模型让因子协方差随市场状态自适应15;iShares 的因子轮动 ETF(DYNF)按经济周期、估值、情绪和因子自身的指标,在几个因子之间轮动16。另一方面,AQR 的研究提醒,因子择时信号常常只是某个已有因子的变形,择时组合应该和静态的多风格组合比较17。
| 谁 | 怎么判定 | 可以借鉴 | 局限 |
|---|---|---|---|
| 国内平台 | |||
| 聚宽、米筐、优矿、掘金 | 不直接判定;米筐提供风格因子暴露和因子收益 | 用风格因子收益的滚动统计当状态输入;A 股、港股分开建模 | 只描述当下,不预测 |
| BigQuant | 大盘风控:上证 5 日跌超 4% 清仓 | 状态预先算好,交易查表 | 只有两态,阈值是拍的 |
| 果仁网 | 可配置的大盘择时模块 | 择时与选股解耦 | 阈值由用户在全历史上挑,易过拟合 |
| 国内卖方与基金 | |||
| 国金证券 | 宏观(长周期)和情绪(短周期)各一个 XGBoost,等权打分 | 信号冲突时两边各配一半 | 样本外期较短 |
| 天风证券 | 估值赔率、宏观胜率、资金趋势、拥挤反转四维打分 | 加入拥挤度维度 | 权重和阈值也要从历史里挑 |
| 国联期货 | 利率、期限利差、信用利差周期 | 用利率和信用利差判断大小盘、价值成长 | 宏观数据频率低、有发布滞后 |
| 汇安启程混合 | 四维打分判断大小盘,下层切换选股策略 | 结构和本文几乎一样,已经是公募产品 | 规则不公开,无法复现 |
| 海外 | |||
| Two Sigma | 高斯混合模型对 17 个因子收益聚 4 类 | 输出概率,按概率混合工具 | 不预测,状态会突跳 |
| Kritzman 等 | 每个维度一个两状态马尔可夫切换模型 | 分维度建模,好解释 | 滤波概率有滞后 |
| MSCI 中国模型 | 风险模型,协方差随状态自适应 | 国企、拥挤度因子 | 商业授权,不给择时建议 |
| iShares DYNF | 经济周期、估值、情绪、因子自身四类信号 | 长期保持多个因子的分散暴露 | 只覆盖美股 |
| AQR | 主张谨慎:择时信号常常只是某个已有因子的变形 | 和静态多风格组合比 | — |
天风证券和汇安启程的信息来自转载和媒体报道,没有见到原文。华泰、招商、国信等券商的风格轮动框架没找到公开原文,没有列入。
设计上的共同点和分歧
把这些做法拆开看,一个风格系统要回答四个设计问题,同行在每个问题上的选择各不相同:
- 输入用什么:价格和波动(BigQuant、果仁、本文)、因子收益(Two Sigma、米筐)、宏观和利率(国联、国金、DYNF)、估值和拥挤度(天风、DYNF)。
- 用什么方法判定:手写规则、多维打分、统计模型(马尔可夫切换、高斯混合)、机器学习(XGBoost)。
- 输出是什么:一个确定的标签,或者每个状态的概率。
- 怎么从状态走到仓位:全仓切换到一个策略,按打分或概率加权,信号冲突时回到中性。
共同点也很清楚:状态由少数几个可解释的维度组成;判定和执行分开;越成熟的做法,越倾向于输出概率、按权重混合,而不是非此即彼地切换。
参照这些做法,我们的方案可以怎么设计?
四、系统设计
设计目标
前三节回答了“风格存在、可以描述、同行在做”。要把策略篮子和市场风格做成一个系统,核心是把两件原本分开的事连起来:判断现在是什么风格,和决定现在用哪些策略、各用多少。连起来以后,还要能回答三个问题:每天的决定是怎么一步步得出来的(可解释);风格变了,下游怎么跟着变(联动);用了一段时间,系统怎么知道自己哪里错了、怎么改(闭环)。
按这三点,系统的设计目标是:
- 判定和执行分离。风格识别只输出“现在是什么状态”,不直接决定买什么;策略工具只按自己的规则给出目标权重,不关心现在是什么状态。两者由配置引擎连接,任何一层都可以单独替换。这和 QuantConnect 算法框架把 Alpha、组合构建、风控、执行分成独立模块是同一个思路18,BigQuant 的模板也是先算好状态信号、交易逻辑再查表。
- 所有决定都可追溯。每天保存状态记录、所用的映射表版本、每个工具的信号和最终订单,事后能复原任何一天的决策过程。
- 只用当时可得的数据。每一层的输入都按“信号时点”对齐,防止回测里出现前视偏差。
- 用结果反哺上游。实盘的成交、收益和工具表现定期回写,更新映射表和工具档案。
总体架构
系统由七个模块组成,图 2 中间是每天运行的决策链,右边是策略篮子,底部是复盘与回写:
- 数据层:提供指数点位、ETF 盘口、成交额、估值,以及规划中的利率、信用利差等月频慢变量。它的关键职责是对齐时点:每条数据都带上“何时可得”,下游只能取信号时点之前可得的值。
- 风格识别引擎:由几个独立的“识别器”组成,每个识别器负责一个维度,输出这个维度的标签。目前有趋势识别器(价格与 120 日均线、均线斜率)和波动识别器(20 日波动率与过去 3 年中位数)。合成器把各维度的标签组合成市场状态,再经过 5 天确认期,输出两样东西:当前确认的状态,以及“状态是否刚发生切换”的事件。
- 策略篮子:存放所有策略工具。每个工具实现同一个接口:输入行情,输出它想要的目标权重。每个工具还有一份档案,记录它的规则、对应的 ETF、单边成本、在各状态下的历史表现,以及当前是“在用”“观察”还是“下线”。
- 配置引擎:连接识别和篮子的枢纽。它持有一张“状态 × 工具”的映射表,表里是每个工具在每种状态下的历史平均收益。每天根据当前状态查表,决定用哪个工具或按什么权重组合几个工具,再把各工具的目标权重加总成组合的目标权重。
- 组合风控:对目标权重做最后的约束:总仓位、单个资产上限、组合回撤超过阈值时降到中性组合(回撤熔断),以及按 ETF 成交额检查流动性。
- 执行:把目标权重和现有持仓的差额变成订单。差额小于 5% 不调;先挂限价,14:57 前没成交改市价。执行终端可以是券商的 QMT 或 PTrade,它们只负责下单。
- 复盘与回写:收盘后对账,记录实际成交价和滑点;做绩效归因,把收益拆成“判定对错”“工具选择”“工具本身”“交易成本”四部分;月末用走查重算映射表并发布新版本,检查工具是否衰减,决定工具的上线和下线。
前后联动
各模块之间按三个节奏联动:
| 节奏 | 触发 | 做什么 | 输出给谁 |
|---|---|---|---|
| 每个交易日 | |||
| 14:45–14:48 | 定时 | 取实时点位;各识别器出标签;合成状态、判断是否切换;配置引擎查表,汇总各工具目标权重 | 组合风控 |
| 14:48–14:57 | 定时 | 风控约束;计算差额;下单,未成交改市价 | 券商终端 |
| 收盘后 | 定时 | 对账、记录滑点;保存当天的状态记录、映射表版本、工具信号、订单 | 复盘模块 |
| 每月最后一个交易日 | |||
| 收盘后 | 定时 | 用全部历史重算映射表(走查);绩效归因;检查工具衰减和映射是否变化 | 配置引擎(次日生效)、策略篮子档案 |
| 按事件或每季度 | |||
| 熔断 | 组合回撤超阈值 | 降到中性组合,等人工复核后恢复 | 组合风控 |
| 工具变更 | 新工具提交 / 健康检查不合格 | 新工具先观察一个季度再入篮;不合格的工具降权或下线 | 策略篮子、配置引擎 |
| 参数审查 | 每季度 | 审查识别器参数(均线长度、确认期),改动需回测并人工确认 | 风格识别引擎 |
日频负责“用”,月频负责“学”,事件和季度负责“改”。参数只在季度审查时改,避免一边运行一边按最近的结果调参。
在每日决策链里,上下游之间有几条明确的联动规则:
- 状态切换是事件。识别引擎确认状态发生变化时,配置引擎重新查表,可能换成另一个工具,这是换手最大的时刻。状态不变的日子,配置引擎沿用原来的工具,组合只会因为工具自己的信号(比如趋势跟踪的均线开关)或仓位漂移而调整。
- 确认期是识别和配置之间的缓冲。原始标签变了,要连续 5 天才触发切换事件,下游不会被一两天的噪声带着来回换仓。
- 冲突时回到中性。如果以后加入更多识别器,比如趋势判断为上涨、利率识别器判断为紧缩,两者方向矛盾时,配置引擎不选任何一边,退回十个工具等权的中性组合。这是借鉴国金证券“信号冲突各配一半”的做法。
- 风控有最终否决权。配置引擎给出的目标权重,风控可以削减但不能放大;回撤熔断触发后,配置引擎的输出暂时不生效。
- 回写只在月末发生。映射表、工具档案在月中保持不变,当月每天的决定都基于同一个版本,便于事后复盘。
一次完整的状态切换
用一个真实的例子把这些联动串起来。2026 年 10 月 12 日起,沪深300 跌破了 120 日均线,均线也开始向下,原始状态变成“下跌”;到 10 月 16 日,已经连续 5 天,确认期满。
这一天,系统依次做了这些事:识别引擎确认状态从低波震荡切换到下跌趋势,发出切换事件;配置引擎查 9 月末发布的映射表,下跌趋势一列里港股趋势的历史收益最高(年化 +11.8%),选中它;港股趋势工具按自己的规则检查盈富基金,24.82 港元低于 120 日均线 25.47,给出“持有债券”的信号;组合层把目标从前一天的 510300(大小盘轮动选的大盘)全仓,改成 511010 全仓,差额 100%;风控检查通过;执行层生成一卖一买两笔订单,预计成本约 7bp。
可以看到,状态切换并不直接决定买什么,它只决定由哪个工具来做决定;具体持有什么,由工具自己的规则给出。这就是“判定和执行分离”在一次切换中的体现。
工具的生命周期
策略篮子不是一成不变的。一个工具要进入篮子,需要满足几条标准:能用日均成交额足够大的 ETF 实现;和已有工具的收益相关性不太高,否则只是重复;在至少一种状态下,历史表现明显好于篮子的平均水平。新工具先进入“观察”状态一个季度,只记录信号、不分配资金。
在用的工具每月做一次健康检查:它在被选中的状态下,实盘表现是否持续低于映射表里的历史值;它依赖的统计规律是否还在(比如大小盘轮动依赖的风格惯性,可以用 ETF 价格的自相关和方差比来监控)。连续不合格的工具先降权,再下线。
系统的骨架就是这样。接下来看每个模块的具体实现,以及实现中的取舍。
五、各模块的实现
风格识别:选哪些指标
第二节的定义只用了趋势和波动两个维度。同行的打分卡往往用上十几个指标,估值、成交额、股债性价比、风格动量都在里面。为了决定加哪些,我们先对常用指标做一次“体检”:每个月末取指标值,和下一个月的收益算秩相关系数(Spearman),共 250 个月。秩相关是 0 表示毫无关系,括号里的 t 值超过 2,大约相当于 5% 的显著性。再把样本切成前后两半,看稳定性。
| 指标 | 预测什么 | 全期(t 值) | 2006–2015 | 2016–2026 |
|---|---|---|---|---|
| 价格 / 120 日均线 | 沪深300 | +0.10(1.6) | +0.20 | −0.05 |
| 过去 60 日涨幅 | 沪深300 | +0.06(0.9) | +0.18 | −0.15 |
| 成交额 20 日 / 250 日 | 沪深300 | +0.09(1.4) | +0.21 | −0.14 |
| 市盈率 5 年分位 | 沪深300 | −0.02(−0.2) | — | −0.00 |
| 盈利收益率 − 债券涨幅 | 沪深300 | +0.14(1.8) | +0.18 | +0.12 |
| 20 日波动率 | 小盘 − 大盘 | +0.20(3.1) | +0.21 | +0.05 |
| 1000 相对 300 的 20 日涨幅 | 小盘 − 大盘 | +0.03(0.5) | +0.09 | −0.06 |
| 成长相对价值的 20 日涨幅 | 成长 − 价值 | +0.03(0.5) | +0.05 | +0.02 |
| 盈富 / 120 日均线 | 港股 | −0.04(−0.6) | +0.01 | −0.09 |
市盈率 2011 年起才有,5 年分位要到 2016 年才算得出来。“盈利收益率 − 债券涨幅”是股债性价比的粗糙代理:没有拿到国债收益率的长序列,用中证全债过去 60 日的涨幅代替利率变化。
这张表和第一节的结论对得上:波动是最可靠的状态变量,20 日波动率是唯一全期显著的指标,高波动之后小盘相对更强(和表 4 一致);趋势、动量、成交额在月度尺度上不稳定,前十年正相关,后十年负相关;估值是慢变量,对下个月几乎没有预测力,更适合用在年度的大类配置上。
据此,识别引擎保留“趋势 × 波动”两个维度:波动维度最可靠;趋势维度在月度上不稳定,但在季度到年度上存在(表 3),120 日均线大致对应半年的尺度。多加几个不稳定的指标,合成权重本身又是一组要从历史里挑出来的参数,这正是多重检验文献警告的情形19。
我们也试了统计模型的路线:对沪深300 的周收益拟合一个两状态的高斯隐马尔可夫模型(HMM),每年年末只用截至当时的数据重新估计,第二年用前向滤波(只用过去的数据)算出处在“好状态”的概率,概率过半就持有沪深300,否则持有债券。2008 年以来,它的年化收益是 −4.2%(按“收益 / 波动”高的算好状态)或 2.9%(按低波动的算好状态),同期 120 日均线择时是 9.2%。原因是 A 股的高波动既出现在大涨里,也出现在大跌里:2008 年初估出来的“好状态”年化收益 134%、波动 32%,其实是 2006–2007 年的高波动牛市,于是 2008 年的高波动大跌也被认成了好状态。只看收益分布的两状态模型,很难把这两种高波动分开。
策略工具篮子
选工具有两条约束:每个工具都要能用场内 ETF 实现,这样才能真正交易,也才能用真实价格检验;工具之间的“好年份”要尽量错开,否则十个工具其实是同一个工具的十个变体。
按这两条,我们选了十个工具,分三类。持有类一直持有某个指数,代表一种风格的底仓;择时类在同一个指数上按信号决定持有还是换成债券,趋势跟踪对应时间序列动量的文献20,和 Faber 的 10 个月均线是同一个思路21,波动率目标来自 Moreira 和 Muir 的研究22;轮动类在两种风格之间二选一,直接跟踪风格偏好。
| 工具 | 规则(每天收盘后算) | 直觉上适合 |
|---|---|---|
| 持有类 | ||
| 持有沪深300 | 一直持有沪深300 全收益指数 | 上涨趋势 |
| 持有中证1000 | 一直持有中证1000 | 小盘占优 |
| 持有红利 | 一直持有中证红利 | 震荡、防御 |
| 持有债券 | 一直持有中证全债 | 下跌趋势 |
| 择时类 | ||
| 趋势跟踪 | 沪深300 > 120 日均线 → 持有,否则债券 | 趋势明显的市场 |
| 均值回归 | 偏离 20 日均线 < −1.5σ 买入,回到均线卖出 | 低波震荡 |
| 波动率目标 | 仓位 = min(1, 15% / 20 日年化波动) | 高波震荡 |
| 港股趋势 | 盈富基金 > 120 日均线 → 持有,否则债券 | A 股走弱时 |
| 轮动类 | ||
| 大小盘轮动 | 过去 20 日沪深300、中证1000 谁强持有谁 | 风格持续的市场 |
| 价值成长轮动 | 过去 20 日 300价值、300成长 谁强持有谁 | 风格持续的市场 |
最后一列是动手之前凭常识写下的,下一小节用数据检验它。
映射表:状态与工具的对应
篮子和状态都有了,下一步是确认每个工具在哪种状态下效果最好。回测的约定如下:第 t 天收盘后用截至当天的数据算信号,从第 t+1 天起按新仓位计收益;成本按实际换手乘单边费率扣除,A 股 ETF 不交印花税23,沪深300 按 4bp、中证1000 按 6bp、债券按 3bp,港股 ETF 免印花税24,按 10bp;另设一档约三倍的悲观成本。
把每个工具每天的收益,按“前一天收盘时判定的状态”分组,算年化平均:
| 工具 | 上涨趋势 1900 天 | 下跌趋势 1699 天 | 低波震荡 670 天 | 高波震荡 295 天 |
|---|---|---|---|---|
| 持有沪深300 | 9.3% | −1.7% | −5.8% | 21.2% |
| 持有中证1000 | 8.0% | 0.7% | −0.6% | 59.7% |
| 持有红利 | 11.0% | 0.6% | 5.1% | 26.5% |
| 持有债券 | 3.7% | 5.7% | 4.9% | 7.8% |
| 趋势跟踪 | 10.4% | 10.8% | 2.8% | 19.6% |
| 均值回归 | −2.8% | −2.1% | −5.2% | 30.5% |
| 大小盘轮动 | 21.2% | 2.1% | −2.7% | 41.1% |
| 价值成长轮动 | 10.6% | 2.1% | −7.8% | 15.1% |
| 波动率目标 | 8.8% | 2.9% | −5.7% | 17.0% |
| 港股趋势 | 1.4% | 10.8% | 3.4% | 11.4% |
绿色是每一列的最高值。下跌趋势里趋势跟踪仍能赚钱,是因为它的开关比状态标签反应快:状态还是“下跌”时,价格可能已经站回均线上方。
对照表 8 最后一列的直觉,有符合的,也有不符合的。下跌趋势里躲开 A 股、上涨趋势里用进攻性工具,和直觉一致;“低波震荡用均值回归”“高波震荡用波动率目标”这两条直觉,数据并不支持:均值回归在低波震荡里亏得最多,只在高波震荡里赚钱。高波震荡里持有中证1000 的年化高达 59.7%,这种状态多半出现在暴跌之后的反弹段,和表 4 里“高波震荡小盘占优”是同一件事。
做这张表要注意一个细节:必须用“前一天的状态”配“当天的收益”。当天的状态是用当天收盘价算的,当天的收益也取决于当天收盘价,两者天然相关。用当天的状态算,高波震荡里持有沪深300 只有 3.7%,用前一天的状态是 21.2%,差一天,结论就不同。
映射表的更新:走查
表 9 是用 2008 到 2026 年全部数据算的,直接拿它回测,等于 2008 年就看过了 2026 年的答案。配置引擎更新映射表的做法是走查(walk-forward):每个月末只用截至当时的历史,重新算一遍“状态 × 工具”的收益表;下一个月里,每天收盘后判定状态,到表里对应的那一列挑收益最高的工具。表只在月末更新,任何一天的选择都只用到了过去。
走查需要热身期来积累第一张表,我们留了 2005 到 2007 年三年,所以后面的检验从 2008 年开始。
走查选出的对应关系很稳定,2010 年以后几乎每个月都是同一张映射:上涨趋势和低波震荡用大小盘轮动,下跌趋势用趋势跟踪(2015 年和 2026 年有几个月换成了港股趋势),高波震荡持有中证1000。工具一年平均切换 4.4 次。2026 年 10 月 16 日收盘,状态刚确认从低波震荡变成下跌趋势,选出的是港股趋势。
作为对照,我们也把凭直觉写的那套对应关系当作一个方案,叫“经验映射”:上涨持有沪深300,下跌持有债券,低波震荡用均值回归,高波震荡用波动率目标。
最小实现
识别引擎和配置引擎的最小实现如下,输入是截至今天的指数点位,MAP 是当前版本的映射表:
import numpy as np, pandas as pd
def regime(c: pd.Series, confirm=5) -> pd.Series: """c: 沪深300 每日点位。返回每天的状态,新状态连续 confirm 天才切换。""" ma = c.rolling(120).mean() slope = ma / ma.shift(20) - 1 vol = c.pct_change().rolling(20).std() * np.sqrt(252) hi = vol > vol.rolling(750, min_periods=250).median() raw = pd.Series(np.where(hi, '高波震荡', '低波震荡'), index=c.index) raw[(c > ma) & (slope > 0)] = '上涨趋势' raw[(c < ma) & (slope < 0)] = '下跌趋势' out, cur, cand, n = [], None, None, 0 for r in raw: cur = cur or r if r == cur: cand, n = None, 0 else: cand, n = (r, n + 1) if r == cand else (r, 1) if n >= confirm: cur, cand, n = r, None, 0 out.append(cur) return pd.Series(out, index=c.index)
MAP = {'上涨趋势': '大小盘轮动', '低波震荡': '大小盘轮动', '下跌趋势': '趋势跟踪', '高波震荡': '持有中证1000'} # 每月末用走查重算
def target(hs300: pd.Series, zz1000: pd.Series) -> dict: tool = MAP[regime(hs300).iloc[-1]] if tool == '持有中证1000': return {'512100': 1.0} if tool == '趋势跟踪': up = hs300.iloc[-1] > hs300.rolling(120).mean().iloc[-1] return {'510300': 1.0} if up else {'511010': 1.0} strong_big = hs300.pct_change(20).iloc[-1] > zz1000.pct_change(20).iloc[-1] return {'510300': 1.0} if strong_big else {'512100': 1.0}系统搭起来了,接下来回答另一个问题:这种模式靠不靠谱,能不能真的产生收益?
六、这种模式靠不靠谱
比较对象
检验一个风格切换方案,要和三类基准比:
- 持有沪深300,代表不做任何判断。
- 十个工具等权,每月再平衡,代表有工具篮子、但不判断风格。AQR 强调择时要和静态的多风格组合比17。
- 单一均线择时,它本身就是一个最简单的两状态判定,用来衡量四状态加十个工具多带来了什么。
另外放一个“事后最优映射”作为上限:直接用表 9(含未来)选工具。它和走查的差距,就是“看过答案”的价值。
指数上的结果
| 方案 | 年化收益 | 最大回撤 | 夏普 | 年换手 |
|---|---|---|---|---|
| 按风格切换 | ||||
| 走查选最优 1 个 | 11.6% | −50% | 0.63 | 31.8 |
| 走查选前 3 个等权 | 5.9% | −55% | 0.41 | 26.5 |
| 经验映射 | 5.1% | −49% | 0.39 | 8.9 |
| 事后最优映射(含未来) | 16.0% | −51% | 0.83 | 31.0 |
| 基准 | ||||
| 持有沪深300 | 0.8% | −71% | 0.15 | 0 |
| 十个工具等权 | 4.8% | −50% | 0.37 | 15.9 |
| 单一均线择时 | 9.2% | −33% | 0.64 | 18.7 |
分时段年化(走查选最优 1 个 / 单一均线 / 持有沪深300):2008–2010 年 18.4% / 19.2% / −15.9%;2011–2015 年 17.7% / 12.5% / 5.9%;2016–2020 年 13.0% / 12.5% / 9.6%;2021–2026 年 2.3% / −1.0% / −1.4%。夏普没有扣无风险利率。2008 年初接近 A 股高点,持有沪深300 的收益因此偏低;从 2006 年起算,它的年化是 10.0%。
为了判断这些差别是不是运气,我们用块自助法(block bootstrap)检验:把两个方案的日收益差切成 20 天一块,有放回地重新抽样 3000 次,看年化超额收益的分布。结果是:
- 相对持有沪深300,年化超额 +9.4%,95% 区间 [+1.2%, +18.4%],p = 0.012,显著。
- 相对十个工具等权,+7.2%,p = 0.015,显著。说明“判断风格再选工具”比“有工具但不判断”更好。
- 相对单一均线,+3.2%,区间 [−3.8%, +10.7%],p = 0.16,夏普相近,不显著。
另外几个方案的结果也能说明一些设计问题:选前 3 个等权只有 5.9%,因为表里排第二、第三的工具和第一名差距很大,平均进来是稀释;经验映射只有 5.1%,说明工具和状态的对应关系要从数据里来;事后最优映射比走查高 4.4 个点,这是直接用全样本统计表回测会高估的部分。
换成可交易的价格
上面用的是指数。第一节已经发现,小盘指数存在不同步成交造成的假惯性,而大小盘轮动正是走查选得最多的工具,所以必须用真实的 ETF 价格再检验一次:信号仍然用指数算(指数点位在收盘前就能看到),收益改用 ETF。512100 在 2016 年 9 月上市,加上均线热身,检验窗口是 2017 年 5 月到 2026 年 10 月。
| 假设 | 年化收益 | 相对持有沪深300 | 相对单一均线 |
|---|---|---|---|
| 指数 · 2008-01 至 2026-10 | |||
| 标准成本,收盘前成交 | 11.6% | +9.4%(p 0.01) | +3.2%(p 0.16) |
| 第二天收盘才成交 | 8.7% | +6.9%(p 0.05) | +3.4%(p 0.18) |
| 悲观成本 | 8.3% | +6.5%(p 0.06) | +1.4%(p 0.29) |
| 真实 ETF · 2017-05 至 2026-10 | |||
| 标准成本,收盘前成交 | 8.9% | +4.3%(p 0.14) | +5.1%(p 0.07) |
| 第二天收盘才成交 | 8.2% | +3.7%(p 0.16) | +6.1%(p 0.06) |
| 悲观成本 | 5.2% | +0.9%(p 0.39) | +3.1%(p 0.18) |
p 值是块自助法下“超额 ≤ 0”的比例,通常以 0.05 为界。ETF 窗口里持有沪深300 年化 4.1%,单一均线 4.1%,十个工具等权 5.0%。2021 年以来走查方案的年化是 1.4%。
港股
把盈富基金当作“大盘”,用同一套状态定义和工具(持有、趋势跟踪、均值回归、波动率目标、债券)再走查一遍,2011 年以来年化 2.9%,持有盈富基金 3.4%,单一均线 2.8%,相对持有 −1.9%(p = 0.66);最大回撤从 −49% 降到 −23%。这里的避险资产暂时用中证全债代替港元现金,含了汇率和利率的差异,数字只能作为参考。港股月度偏反转的特点(表 3)也意味着,照搬 A 股的趋势型判定未必合适。
检验结论
把三组检验放在一起:
- 风险控制部分是成立的。 无论指数还是 ETF、A 股还是港股,方案的最大回撤都明显小于持有指数,大约降低一半。这部分主要来自“下跌趋势时离开股票”,对应的是第一节里确定存在的长周期趋势。
- 收益增强部分在指数上显著,在 ETF 上尚不显著。 相对持有沪深300,指数上年化多 9.4 个点(p = 0.01);换成 ETF 价格,点估计多 0.9 到 4.3 个点,但 p 值在 0.14 以上。差距的一大部分来自指数的不同步成交,这部分在交易中拿不到。
- 相对单一均线的增量还需要更多证据。 四状态加十个工具,在各种假设下比单一均线多 1.4 到 6.1 个点,都不显著。
- 近几年的效果弱于早年。 2021 年以来各方案的收益都接近持有债券,图 6 里指数的大小盘自相关也从 0.31 降到了 0.03。
这些结果说明系统里还存在哪些问题?
七、存在的问题与改进
检验中暴露的问题
回顾从设计到检验的过程,有几个问题值得单独记录:
- 指数和可交易价格的差别。 这是影响最大的一条。用指数日线回测、日频换手的轮动工具,都需要用真实的 ETF 价格复核。
- 起点敏感。 从 2006 年起算,持有沪深300 年化 10.0%,单一均线 17.5%,走查方案因为热身期拿着债券只有 10.5%;从 2008 年起算,排名完全不同。A 股的牛熊集中,报告结果要给多个起点和分时段的数字。
- 小样本的格子。 高波震荡总共 295 天,大约 20 段行情,“持有中证1000 年化 59.7%”主要来自其中几次暴跌后的反弹,证据最弱。
- 规律在变化。 2016 年以后趋势类指标的月度方向反转(表 7),2021 年以后各方案收益都接近债券。
- 多次尝试。 本文跑过二十个左右的变体(确认期、成交时点、成本档位、选几个工具、HMM 的两种排序)。按 Bailey 和 López de Prado 的缩水夏普(DSR)25,20 次尝试对应的最低年化夏普是 0.31。把走查学到的映射压缩成一条规则(沪深300 在 120 日线上方做大小盘轮动,下方持有债券)、每周调仓,指数上的年化夏普 0.65,可以通过这道门槛,DSR 为 0.92;用 ETF 价格算,按成本和成交假设不同,夏普在 0.03 到 0.52 之间。
改进方向
结合这些问题和第三节同行的做法,下一版可以从这几处改:
- 回测一律用可交易价格。 ETF 上市以前用指数,但把日频换手的工具改成周频或加一天延迟,压掉不同步成交的影响。
- 从“选第一名”改成“按把握加权”。 借鉴 Two Sigma 和国金证券:工具权重和它在当前状态下的历史优势成正比,样本少的格子向全样本平均收缩;两个维度的信号冲突时回到等权组合。
- 单个工具设上限。 借鉴 DYNF 长期保持多个因子分散暴露的思路,单个工具不超过 40% 到 50%,用分散换取对判断错误的容忍度。
- 补充慢变量维度,按月使用。 利率、信用利差(国联期货的思路)、估值、拥挤度这类慢变量,适合决定月度或年度的大类倾向,不适合决定日频切换。
- 把衰减监控做实。 第四节工具生命周期里的月度健康检查,要落实成具体的阈值:比如大小盘 ETF 收益差的方差比连续 6 个月接近 1,就把大小盘轮动降为观察。
- A 股和港股分开建模。 港股月度偏反转,成本也更高(个股印花税 0.1%,ETF 免),状态定义和换手频率都要单独设定。
八、小结
- 市场风格是否存在? 存在,但分层次。波动状态确定存在,持续数月;大盘趋势在季度到年度的尺度上存在;风格分化幅度大,大小盘年度收益差中位数 12.4 个点;大小盘的短期惯性主要是指数的统计假象;港股在月度上偏反转。
- 风格怎么描述? 分市场状态和风格偏好两层。它是潜在的、事后清楚事前模糊、切换跳跃的。本文用趋势 × 波动定义四种市场状态,加 5 天确认期,风格偏好交给轮动类工具跟踪。
- 同行有没有、怎么做? 平台提供数据和通道;卖方和基金用多维打分或机器学习判定,公募已有“判定大小盘再切换选股策略”的产品;海外用马尔可夫切换、高斯混合,越成熟的做法越倾向于输出概率、按权重混合。
- 系统长什么样? 数据层、风格识别引擎、策略篮子、配置引擎、组合风控、执行、复盘七个模块;识别和执行分离,由配置引擎查“状态 × 工具”映射表连接;每天收盘前跑一遍决策链,状态切换是触发换仓的事件;每月末用走查重算映射表回写,事件和季度审查负责改参数、换工具。
- 各模块怎么实现? 识别引擎用最可靠的波动和长周期趋势两个维度;篮子里十个可用 ETF 实现的工具;映射表用前一天的状态统计、月末走查更新。
- 靠不靠谱? 风险控制部分成立,最大回撤大约减半;收益增强在指数上显著,在真实 ETF 上点估计为正但尚不显著;相对单一均线的增量需要更多证据;近几年效果减弱。
- 还有什么问题、怎么改? 可交易价格回测、按把握加权、冲突回中性、单工具上限、补慢变量、衰减监控、A 股港股分开建模。
本文的数据、脚本和全部中间结果按“下载 → 整理 → 风格检验 → 工具 → 状态 → 走查 → 复核”的顺序分成了几个脚本,换一组指数或一个起点,可以照着重跑一遍。
参考资料
Footnotes
-
沪深300、中证1000、中证红利、300价值、300成长、中证全债等全收益指数日线csindex.com.cn ↗2005-01-04 至 2026-10-16,用官网行情接口下载。全收益指数含分红再投资(H00300、H00852、H00922、H00919、H00918、H11001 等),沪深300 滚动市盈率 2011-06 起才有。https://www.csindex.com.cn/ ↩
-
盈富基金 2800.HK 与 510300、512100、510880、511010 的复权日线收藏finance.yahoo.com盈富基金 2008-01 起;510300 2012-05 起;512100 2016-09 起。复权价含分红。https://finance.yahoo.com/quote/2800.HK/ ↩
-
International Asset Allocation With Regime Shifts收藏doi.org15(4): 1137–1187。存在高波动、高相关的“熊市”状态,这时分散的效果会下降。https://doi.org/10.1093/rfs/15.4.1137 ↩
-
An econometric analysis of nonsynchronous tradingdoi.org ↗45(1–2): 181–211。成分股不同步成交会让指数收益出现虚假的正自相关。https://doi.org/10.1016/0304-4076(90)90098-E ↩
-
A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle收藏doi.org57(2): 357–384。马尔可夫切换模型的起点:经济在几个看不见的状态之间按马尔可夫链切换,用滤波推断每个时点处在哪个状态。https://doi.org/10.2307/1912559 ↩
-
RQData 风险因子模块收藏ricequant.comget_factor_exposure、get_factor_return 等接口;另有港股通 HKv1、A+H 的 AHv1 版本。https://www.ricequant.com/doc/rqdata/python/risk-factors-mod ↩
-
BigQuant 策略模板文档(大盘风控)收藏bigquant.com上证指数 5 日收益低于 −4% 时全仓卖出、停止交易。https://bigquant.com/wiki/doc/OCkaNT91EC ↩
-
因子风格择时策略(2021 年 11 月期)收藏pdf.dfcfw.com沪深300 与中证500 轮动:宏观维度和情绪、估值、风险偏好维度各训练一个 XGBoost,等权打分,方向冲突时两边各配一半。https://pdf.dfcfw.com/pdf/H3_AP202111081527725354_1.pdf ↩
-
权益观点:高拥挤已明显缓释—金融工程(转载)收藏m.gelonghui.com择时框架分估值赔率、宏观胜率、资金趋势、拥挤反转四个维度,每周打分。转载稿,未见原文。https://m.gelonghui.com/p/5943177 ↩
-
利率周期、期限利差周期和信用利差周期风格轮动择时策略收藏pdf.dfcfw.com利率下行偏成长、上行偏价值;信用利差上升偏大盘价值、下降偏小盘成长。https://pdf.dfcfw.com/pdf/H3_AP202501251642551718_1.pdf ↩
-
汇安启程混合发行报道收藏jiemian.com上层用宏观增长、流动性、风险偏好、交易拥挤度四个维度判断大盘或中小盘占优,下层按风格配不同的量化选股策略。媒体报道。https://www.jiemian.com/article/14860958.html ↩
-
A Machine Learning Approach to Regime Modeling收藏twosigma.com用高斯混合模型对 17 个因子收益聚类,交叉验证选出 4 个状态:Crisis、Steady State、Inflation、Walking on Ice。作者自述模型不做预测,状态会突跳。https://www.twosigma.com/articles/a-machine-learning-approach-to-regime-modeling/ ↩
-
Regime Shifts: Implications for Dynamic Strategies (corrected)收藏doi.org68(3): 22–39。对市场动荡、通胀、经济增长三个维度分别用两状态马尔可夫切换模型识别状态,再做动态配置。https://doi.org/10.2469/faj.v68.n3.3 ↩
-
MSCI China Equity Factor Model Factsheet收藏msci.com新增国企、拥挤度等因子,因子协方差随市场状态自适应。https://www.msci.com/downloads/web/msci-com/data-and-analytics/factor-investing/equity-factor-models/MSCI%20China%20Equity%20Factor%20Model_Factsheet.pdf ↩
-
Factor rotation收藏blackrock.comDYNF 按经济周期、估值、情绪、因子自身指标四类信号在几个因子之间轮动。https://www.blackrock.com/us/financial-professionals/insights/factor-rotation ↩
-
Contrarian Factor Timing is Deceptively Difficult收藏doi.org43(5): 72–87。用估值价差做因子择时,在已经持有价值因子的组合里几乎没有增量,还会削弱分散。https://doi.org/10.3905/jpm.2017.43.5.072 ↩ ↩2
-
Algorithm Framework Overview收藏quantconnect.comUniverse Selection → Alpha → Portfolio Construction → Risk Management → Execution 五个模块。https://www.quantconnect.com/docs/v2/writing-algorithms/algorithm-framework/overview ↩
-
…and the Cross-Section of Expected Returns收藏doi.org29(1): 5–68。考虑多重检验后,新因子的 t 值门槛应在 3.0 以上。https://doi.org/10.1093/rfs/hhv059 ↩
-
Time series momentum收藏doi.org104(2): 228–250。58 个流动性好的期货品种,过去 1–12 个月的收益能预测未来收益。https://doi.org/10.1016/j.jfineco.2011.11.003 ↩
-
A Quantitative Approach to Tactical Asset Allocation收藏doi.org9(4): 69–79。价格在 10 个月均线上方就持有、否则换现金,用在多类资产上,回撤大幅下降。https://doi.org/10.3905/jwm.2007.674809 ↩
-
Volatility-Managed Portfolios收藏doi.org72(4): 1611–1644。按上期实现波动率的倒数缩放仓位,多个因子的夏普提高。https://doi.org/10.1111/jofi.12513 ↩
-
中华人民共和国印花税法收藏fgk.chinatax.gov.cn第三条所称证券交易指股票和以股票为基础的存托凭证,ETF 不在其中;“ETF 免印花税”是据此推出的。https://fgk.chinatax.gov.cn/zcfgk/c100009/c5193058/content.html ↩
-
Stamp duty waiver for ETFs收藏ird.gov.hk2015-02-13 起香港上市 ETF 的买卖免印花税;股票印花税 2023-11-17 起为 0.1%,买卖双方各付。https://www.ird.gov.hk/eng/faq/ETFs.htm ↩
-
The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and Non-Normality收藏doi.org40(5): 94–107。试过很多策略再挑最好的,夏普会被高估;按尝试次数、收益偏度和峰度做校正。https://doi.org/10.3905/jpm.2014.40.5.094 ↩