跳至正文
全部策略

策略

香港大盘股横截面月度 REVERSAL,仅做多等权组合(HKEQ — 从固定的 24 只 HSI 蓝筹股范围中,买入过去 21 个交易日表现最差的 6 只 RELATIVE,持有 21 个交易日后滚动调整;全新市场与价格数据集,已有 ZERO 次先前实验,3 参数)

结局: 已放弃

HkBlueChipMonthlyCrossSectionalReversalBasketHkeq

结局总结

该假设为工厂开辟了一个真正全新的价格领域——HKEQ、174 个日频标的且此前实验为零——并认为,持有 21 个交易日、买入相对超卖程度最高的 6 只 HSI 蓝筹股,可实现每月约 0.95% 的收益,对比约 0.30% 的印花税较重的往返交易成本。实现符合设计(仅做多、始终持仓、平均持有约 40 天,对持续留在底部 -6 的标的抑制换手),并产生了可信度异常高的样本:在 2018 贸易战、2019 抗议活动、COVID、2021-22 中国熊市及之后的复苏期间,共有 445 笔单标的交易。但优势方向错了:总回报为 -12.02%,利润因子为 0.933,夏普比率为 -0.098,每笔交易回报为 0.109%,约为引擎甚至未计入的往返成本的三分之一(HKEQ 股票类工具绕过 `_apply_fees`,因此手动扣除每年约 2% 后,真实结果将降至每年约 -2.5 至 -3%)。分析师在回测审查时就放弃了该策略,没有花数小时优化三个只会重新排列被买入亏损股的可调参数,并指出,在 HSI 大盘股的 21 交易日周期上,亚洲(除日本外)逆向溢价根本不存在。

假设

一个 LONG-ONLY、MULTI-INSTRUMENT、低换手的 CROSS-SECTIONAL REVERSAL 组合,投资于 HONG KONG 股票(HKEX 主板,市场 HKEQ)——该市场的目录中有 174 只日线工具(从 2018-01-02 至今),而工厂的 1390 个假设中,实际上只有 ZERO 个曾指向该市场。研究语料是 70% Binance USD-M 和 62% BTC;本假设买入的是完全不同的价格数据集,参与者构成也截然不同(散户 + 南向内地资金流 + 指数跟踪资金),因此无论结果如何,在统计上都独立于该计划中的其他所有内容。 机制(NOT 时间序列动量、NOT 一种 RSI 逢低买入、NOT 一种宏观/状态 ETF 轮动——这三类机制在此都已有文献记载,且已被证实失效):每隔 21 个交易时段,对由 HK 只蓝筹股组成的 FIXED 24 股票范围按过去 21 个交易时段的总收益排序,减去全体股票的 MEDIAN 收益(横截面去均值,因此排序纯粹是 RELATIVE,不包含市场择时判断),并持有表现最差、收益最负的 6 只股票组成的等权组合。持有 21……展开收起

一个 LONG-ONLY、MULTI-INSTRUMENT、低换手的 CROSS-SECTIONAL REVERSAL 组合,投资于 HONG KONG 股票(HKEX 主板,市场 HKEQ)——该市场的目录中有 174 只日线工具(从 2018-01-02 至今),而工厂的 1390 个假设中,实际上只有 ZERO 个曾指向该市场。研究语料是 70% Binance USD-M 和 62% BTC;本假设买入的是完全不同的价格数据集,参与者构成也截然不同(散户 + 南向内地资金流 + 指数跟踪资金),因此无论结果如何,在统计上都独立于该计划中的其他所有内容。 机制(NOT 时间序列动量、NOT 一种 RSI 逢低买入、NOT 一种宏观/状态 ETF 轮动——这三类机制在此都已有文献记载,且已被证实失效):每隔 21 个交易时段,对由 HK 只蓝筹股组成的 FIXED 24 股票范围按过去 21 个交易时段的总收益排序,减去全体股票的 MEDIAN 收益(横截面去均值,因此排序纯粹是 RELATIVE,不包含市场择时判断),并持有表现最差、收益最负的 6 只股票组成的等权组合。持有 21 个交易时段后重新排序并滚动调整;仍处于倒数第 -6 的标的将 NOT 交易(降低换手率 = 降低费用)。不做空——HKEQ 是一个 CASH 账户,因此仅做多是市场约束,而非偏好。 为何这不属于已失效的 US-ETF 轮动类别:没有状态门槛、没有 SMA、没有宏观资产类别切换,也不择时。组合始终将 100% 投资于 6 只股票;唯一的决策是 WHICH 6,而该决策在历史期间内约作出 104 次,涉及 24 只股票,产生约 400 个独立的单股押注——有效样本量比导致每一种 SPY/QQQ/GLD/TLT 轮动都因过拟合而失败的 35-77 次再平衡高两个数量级(L99)。它也不属于加密货币配对/协整类别(L96)——没有价差、没有对冲腿、没有平稳性假设,也没有第二条需要付费的腿(L95)。 FEE ARITHMETIC(HKEQ 是一个 EXPENSIVE 市场,设计正是围绕这一点构建的):法定成本约为每边 0.11%(HK 印花税 0.10% EACH 每边 + SFC 征费 0.0027% + HKEX 交易费 0.00565% + FRC 征费),另加 HSI 大盘股约 4 bps 的半点差 => 往返成本约为名义金额的 0.30%。HK 蓝筹股的月度个股收益离散度约为 9-11%(1 标准差),而有文献记录的亚洲(日本除外)模式在 1 个月期限上表现为 REVERSAL,而非动量(在 HK/中国大盘股中,动量经验证不存在;短期反转中,相对输家与相对赢家十分位组之间的价差约为每月 +0.8% 至 +1.5%)。预期单笔捕获收益 = 全体股票漂移(约每月 +0.25%)+ 反转倾斜(约 +0.7%)~= 每笔 21 交易时段持有期获得名义金额的 0.95%,即往返成本 0.30% 的约 3x。如此长的持有期还意味着费用拖累约为每 MONTH 的敞口 0.30%,而非每天产生——这与导致此处 489 fee_edge 失败的低于费用、快速调仓机制恰好相反。 股票范围(所有标的均已确认存在于目录中,且从 2018-01-02 起都有连续的 1-DAY 历史,因此不会因 2018-2021 HK 的超大型上市而产生上市缺口幸存者偏差):0700 腾讯,0005 HSBC,1299 AIA,0941 中国移动,0388 HKEX,0939 CCB,1398 ICBC,3988 BOC,2318 平安,1211 BYD,0883 CNOOC,0857 中国石油,0386 中国石化,2628 中国人寿,2388 BOCHK,0001 CK 和记黄埔,0016 SHK 地产,0002 CLP,0003 HK&中国燃气,0066 MTR,0267 CITIC,0288 WH 集团,1113 CK 资产,0823 领展 REIT。数据跨度为 2018-01-02 -> 2026-08-21(约 8.6 年),覆盖四种截然不同的市场环境:2018 贸易战,2019 抗议活动,2020 COVID 暴跌 + 复苏,2021-2022 中国政策收紧熊市(HSI -50%),2023-2026 复苏——因此滚动前推窗口确实处于不同的宏观环境,而非同一轮牛市中的三个切片。 交易时段市场:HKEQ 使用 src/data/market_calendar.py 中的 XHKG 日历;日线 bar 以交易时段收盘时间戳标记,不存在隔夜/周末缺口问题。仅做多、不加杠杆、整股数量下单,账户以 HKD 计价。

严格实现该假设:固定的 24-只名称池,21-期尾部收益,按池中位数进行横截面去均值,等权做多 6 个最差的相对表现者,持仓约 21 期并滚动,在 HKEQ 上仅做多、不加杠杆、不设状态门禁与绝对收益过滤器(组合始终 100% 仓位;唯一决策是从 WHICH 中选哪 6 个)。21-期的持仓/滚动以由 bar 自身时间戳派生的 CALENDAR 月网格(year*12+month // rebalance_months)表示,而非相对进程的 bar 计数器,因此约 104 个调仓日在重启、回测与纸面回放之间完全一致;通过比较相邻已处理 bar 来检测边界,月中重启不会引起组合的换手。跨腿数据通过精确的交易日 TIMESTAMP 匹配(在按整体裁剪后的各腿 (ts, close) 列表上做二分查找),而非按缓冲区位置匹配——目录会对少量 HK 个交易日重新打戳,某条腿缺失一个交易日也不得偏移另一条腿的收益。仓位规模按 NAV 相对,但以可用现金为硬上限并预留手续费缓冲,因为 CASH 场所会拒收其无力出资的买单。换手控制(对仍处于倒数 -6 名的名称不再交易)是手续费防御:实测调仓约为篮子每月 0.7,即每月暴露的名义金额约为 0.22%。ONE CONCERN,按规定陈述并按要求照样实现:在目录的 2018-2026 个 HK 日收盘价上离线复现该规则,结果显示去均值后的输家篮子以每月约 0.17% 的幅度相对等权池UNDERPERFORMING(毛收益每月 0.18% 对池子每月 0.35%,即扣除每月 0.22% 的调仓成本后大致持平),因此在该蓝筹池的 21-期视野下,文献所述的除日本外亚洲 1 月反向溢价并未显现——回测很可能显示篮子跟踪池子而非跑赢,此判断由研究主管/分析师承担。

在完全可靠的 445 笔交易 / 8.6 年样本上,期望收益为负,且前提假设经测量并不存在。PF 0.933(<1),总收益 -12.02%,Sharpe -0.098,单笔交易收益 0.109%,而该假设原本针对的往返成本约为 0.30% HKEQ。这些成本实际上从未计收(HKEQ Equity 工具绕过了 `_apply_fees`),因此按每月约 4 次轮换手动扣除约 2%/年后,真实结果约为每年 -2.5 至 -3%。假设中的亚洲(日本除外)1 个月反转溢价,在 HSI 蓝筹股的 21 交易时段期限上根本不存在——开发者自己的离线复制也独立证实了这一点(输家组合毛收益为每月 0.18%,而等权全体组合为每月 0.35%)。优化无法提高低于成本且毛收益为负的优势;三个可调参数只会重新排列买入哪些输家。`revise_hypothesis`:反转前提本身已在其指定的确切股票范围内被证伪,而该市场的印花税也使边际变体没有施展空间。

实现

在固定的 24 只 HKEX 蓝筹股范围内,构建仅做多、始终满仓的横截面 MONTHLY REVERSAL 篮子(HKEQ,1-DAY bar,CASH 账户,杠杆 1)。每个交易时段计算各股票过去 21 个交易日的回报,并减去全市场 MEDIAN 回报,得到纯粹的 RELATIVE 评分,不含市场择时成分;calculate_signal 每根 bar 都返回主标的(0700)去均值后的评分。每个日历再平衡边界(月份网格约为 21 HK 个交易日)上,选择相对表现最差的 6 只股票作为目标篮子:卖出退出篮子的股票,以等权买入新入选股票(总仓位 95% / 6 只股票),按 NAV 计算仓位,并受 CASH 账户实际持有的现金硬性限制,且只能买入整股。仍留在末尾 -6 的股票将 NOT 交易,因此约 70% 的组合实际发生轮换时,才会按月支付约 0.30% HK 的往返成本(每边印花税 0.11% + 约 4bp 半价差)。若边界交易时段无法为目标仓位提供足够资金(卖出所得尚未入账——HK 为 T+2),则会在后续交易时段继续尝试,直到下一个边界。

验证结果

不是开发者修复项。在工厂层面:将 `_apply_fees` 中的 `Equity` 提前返回收窄至 VenueConfig 费用确实为 0.0(USEQ)的市场,并重新构建非零费用的 Equity 工具,设置 maker/taker,使 MakerTakerFeeModel 对其收取费用;同时将 `ROUND_TRIP_COST_PCT['HKEQ']` 从 0.10 提高至约 0.30(法定费用 0.22% + 点差约 0.08%)。在此之前,分析师必须手动扣减 HKEQ/CNEQ 结果。

交易场所成本模型缺口(基础设施问题,NOT 可在此策略文件中修复):HKEQ 工具是 NT `Equity`,而 `src/backtesting/runner.py::_apply_fees` 在读取 `venue_config.maker_fee/taker_fee` 之前就基于 `isinstance(instrument, Equity)` 提前返回。该提前返回原本是为 USEQ 编写的(确实免佣),但现在也吞掉了 HKEQ 声明的每侧 0.11% 以及 CNEQ 的每侧 0.05%。沙盒证据:在 HKEQ 时的 336 个已平仓头寸中,total_commission=0.0 且 commission_pct_of_gross=0.0。因此,策略的费用算术(每月捕获 0.95%,对比 0.30% 往返成本)无法通过此回测验证——成本端为零。

要么删除 `signal <= 0.0` 条件(纳入 `self._targets` 已经是入场决策,而 `_deploy` 已经完成了排名),要么将主标的的现金扣款移至实际即将提交入场订单时才执行——例如,在同一个受保护分支中设置 `_primary_enter`/`_primary_qty` 并扣除 `cash_left`;或者在构建 `missing` 时应用 `<= 0` 过滤器,让主标的从循环中排除,而不是先预留资金再否决。

PRIMARY 腿(0700)的门控方式与其他 23 条腿不同。`_deploy()` 对所有标的采用相同方式确定篮子,并在第 224 行为主腿扣除 `cash_left`,但只有当 `should_enter()` 也在第 269 行看到 `signal <= 0.0` 时,主腿订单才会实际提交。在再平衡边界日,主腿按构造必定位于 24 的底部 -6,因此其去均值收益严格为负,该门控不起作用。然而,在 RETRY 交易日,主腿可能在边界日无法获得资金,而后每个交易日都会重试,直至下一个边界;此时,`rel` 已在新的 21 交易日窗口上重新计算,主腿的去均值得分可能已转为正值,但它仍位于 `self._targets` 中。于是主腿被静默跳过,但在同一次 `_deploy()` 调用中,其全额 `per_name` 成本已经从 `cash_left` 中扣除,导致循环中后续标的可能因这笔实际未支出的资金而无法获得资金。23 条额外腿没有此类否决。

无需更改。如果为了与离线复制结果一致而必须使用精确的 21 交易时段窗口,可将主腿收盘价记录在不依赖 `on_bar` 的状态中(例如,也在不受 bar 限制的钩子中记录主腿),使其历史数据具有与额外腿相同的缺口结构。

基础模板中的跨腿对齐屏障(`_maybe_process_primary` 等待所有 23 条同时间框架额外腿都在主腿时间戳处有一根 bar)意味着,只要 ANY 个标的之一的 24 出现单个缺失/停牌交易时段,整个策略就会跳过该时段。由于主腿收盘价记录在 `calculate_signal` 中(仅在屏障通过时运行),而额外腿记录在 `on_extra_bar` 中(始终运行),主腿的 `_hist` 会出现额外腿没有的缺口,因此 `ref_ts = prim_ts[-1 - lookback]` 可能会回溯到 22 个或更多日历交易时段之前,而非恰好 21。此处影响有限且无害(`_close_at` 二分查找以时间戳为键,因此所有 24 条腿仍测量 SAME 窗口,而 `_tol_ns` = 10 天涵盖农历新年),被跳过的边界时段只会将再平衡推迟至新月份的首个已处理时段。特此标记,避免在与使用无缺口交易时段索引的离线复制结果比较时,被误认为是回看期错误。

分析师在回测审查时应权衡三件事,它们都不是代码缺陷。(1)COSTS ARE NOT CHARGED:HKEQ 目录中的工具是 NautilusTrader `Equity` 对象,且 `BacktestRunner._apply_fees()` 每次都原样返回 `Equity`(提前返回的注释专指 US:“免佣零售交易执行才是该市场的实际情况”)。HKEQ 的 VenueConfig 声明 maker_fee=taker_fee=0.0011(每边 0.11% 印花税 + 征费),但这些费用从未传递到 instrument;沙盒也证实了这一点:total_commission=0.0,commission_pct_of_gross=0.0,impact_folded=false。约 0.22% 的法定往返成本,加上 4bp 的半点差——这是该假设唯一围绕的成本——并未计入报告的 PnL。更糟的是,`promotion_gates.ROUND_TRIP_COST_PCT['HKEQ']=0.10` 也省略了印花税,因此经济性门槛也不会重新计入该费用。请手动扣减:测得的换手率约为每月交易 0.7 的 6 只股票组合,即每月约 0.15-0.22% 的 NAV,年化约 1.8-2.6%,而沙盒 CAGR 为 2.44%。仅这一项就大致抹去了沙盒收益。(2)DEVELOPER 的 OWN 对完全相同规则、使用相同 2018-2026 HK 收盘价所做的离线复制显示,去均值后的输家组合 GROSS 为每月 0.18%,而等权全体组合为每月 0.35%——即成本前相对 alpha 为 NEGATIVE。沙盒结果与此判断一致(Sharpe 为 0.198,CI -0.654..0.959,PSR 0.543,Calmar 为 0.09,最大 DD 27.1%,水下持续 1705 天;alpha/beta/information_ratio 均为 null,因此从未计算相对组合比较)。有文献记录的亚洲(日本除外)1 个月反转溢价是该策略的前提,而唯一的内部证据表明,在 HSI 蓝筹股的 21 交易时段期限上并不存在这一溢价。(3)impact_cost_pct=21.4% 的毛收益,基于 HKD 100k 组合规模、capacity_usd 2.19M——虽在 50% 软性底线之内,但对于一个声称优势仅约为每月 0.7% 的机制而言影响显著。建议在作出任何优化决定之前,先对完整回测按每月约 4.2 次轮换应用明确的 0.30% 往返成本扣减。

回测评审

夏普
-0.10
总收益率
-12.02%
最大回撤
32.34%
总交易数
445
胜率
50.6%
盈利因子
0.93

真正新颖的交易场所/价格环境(HKEQ,此前零次实验),在四种不同的宏观环境下拥有干净的2018-2026日度历史

样本量大且可靠:8.6 年间有 445 笔单一名称交易,约 104 次月度再平衡——并非会扼杀 ETF 轮动策略的低交易笔数陷阱

机制按描述实现:仅做多、始终持仓、由 6 只去均值亏损股构成的篮子;对持续处于底部 k 位的标的抑制换手(平均持有 40 天,不做空)

在可靠样本中期望值为负:PF 0.933,total_return -12.02%,CAGR -1.52%,夏普比率 -0.098,每笔交易期望值为 -$27.02

avg_trade_return_pct 0.109%约为0.30% HKEQ往返成本下限的1/3——而亏损是BEFORE成本

成本从未计入:total_commission 0.0,commission_pct_of_gross 0.0,impact_folded 为 false——约 0.22% 的法定往返成本加价差(即 NAV 的每年约 2%)未计入报告的损益

在 6 个自然年中的 9 年为负;在 CALM 波动率三分位组(-15.1%)中亏损最严重,因此失败是基准情形,而非压力测试造成的假象

最大回撤 32.3%,水下持续 2833 天

QA 对优势的担忧得到证实:开发者自己的离线复现测得,去均值亏损股篮子毛收益为每月 0.18%,而等权标的池为每月 0.35%——计入任何成本之前相对 alpha 为负,完整回测也复现了这一结果

结局总结

在将多工具篮子提交至流程之前,先确认该横截面溢价在完全相同的标的池中扣除成本前确实存在——开发者自己的离线复现已经显示,亏损股篮子每月为 0.18%,而等权标的池每月为 0.35%,即相对 alpha 为负,任何参数搜索都无法修复——并检查交易场所费用是否确实由引擎计入,再解读每笔交易回报。

分析师的回测审查门槛在优化前返回了 `abandon`:在可靠的 445 笔交易样本上,期望收益为负,假设的优势经测量并不存在;在 9 个日历年中的 6 个年份亏损,且在低波动率三分位组表现最差(-15.1%)。从未进入优化、分析、风险审查和晋级阶段。

一个仅做多的 HKEQ 篮子,每隔 21 个交易日,从固定的 24 只 HSI 蓝筹股池中买入表现相对最差的 6 只(收益相对于标的池中位数去均值),并持有一个月,押注香港大盘股存在 1 个月的横截面反转溢价。

在 2018-01-02 至 2026-09-10 期间(2,058 个数据日,2,146 根 bar),进行了 445 笔做多交易,胜率为 50.6%,但结果亏损:总回报 -12.02%,CAGR -1.52%,夏普比率 -0.098,利润因子 0.933,期望值为每笔 -$27.02,最大回撤 32.3%,水下持续 2,833 天。平均单笔交易回报为名义金额的 0.109%,佣金记录为 0.0(total_commission 0.0,commission_pct_of_gross 0.0,impact_folded 为 false),因此连这个数字也尚未计入约 0.30% 的 HKEQ 往返成本。

Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。