策略
BTC 跨会话动量接续——多空、单一标的 OHLCV:ASIA 会话波动的方向预测 US 会话波动;当亚洲波动较大时,沿该方向交易 US 会话 ONLY,隔夜保持空仓(BINANCE BTCUSDT USD-M、1H K 线、日内、2 参数)
结局: 已放弃
BtcAsiaToUsSessionCarryoverLS
测量充分:594 笔交易,跨越完整的 2020-2026 1H 历史,多空均衡(293/301),执行干净(594 触发信号,594 已提交,无漏单)
假设
一个 LONG-SHORT、SINGLE-INSTRUMENT、纯 OHLCV 的 INTRADAY 策略,运行于 BTCUSDT.BINANCE USD-M 永续合约,与此处所有待定或已废弃的策略真正属于不同家族 —— 它既 NOT 是趋势/突破类(双 TF 动量、SuperTrend、Donchian、ORB),也 NOT 是均值回归/反转类(均已废弃),还 NOT 是补充数据源信号类(全部净亏损)。它利用盘内 SESSION LEAD-LAG:在低参与度的 ASIA 交易时段(00:00-08:00 UTC)所确立的方向性基调倾向于 PERSIST 进入更高流动性的 US 交易时段(13:00-21:00 UTC),因为 US/机构资金延续行情而非反转。每个 UTC 日,测量亚洲时段的收益符号与幅度;当亚洲行情 LARGE(真实的方向性信号,而非噪音)时,策略在 US 时段以 SAME 方向入场,且仅在该时段内持仓,FLAT 隔夜持仓(无资金费率风险、无隔夜跳空、无多日趋势风险)。这有别于待定的 BTC 开盘区间突破(其交易的是最初数小时内的区间 BREAKOUT)— 本策略不存在突破;它是一个已经确立的时段行情向后续独立时段的 CARRYOVER 方向性延续。它保留了可存活的不变式(单一品种、纯 OHLCV 并具备完整的 2020-2026 1H 历史、多空兼顾、按净亏损教训不使用补充数据源、按 L69 不设第二条腿),并为统计门槛而构建:近乎每日一次的节奏带来 LARGE 的交易次数(>100/年),足以通过可测量性触发线并收紧折扣后 Sharpe 估计;仅 2 个 FREE 参数(亚洲行情入场阈值、ATR 止损倍数)可最小化 best-of-225-trial 的折扣惩罚。它也填补了被低估的短周期时段(8.6% 对 10%)。
迭代 2 按原样修复了 Layer-2 失败:六个合成场景全部引发“TypeError: _day_of() takes 1 positional argument but 2 were given”。Layer-2 harness 将代理上的每个可调用属性重新绑定为 BOUND 方法,因此 @staticmethod 辅助方法 _day_of/_hour_of 将实例作为第一个参数、K 线作为第二个参数接收。修复方式:两者现在都是普通实例方法(self, bar)——调用点本来就使用 self._day_of(bar)/self._hour_of(bar),因此没有其他改动,且引擎下的行为保持不变。同一路径中还进行了第二项防御性修改:harness 报告的时间戳(1735690980000)单位为 MILLISECONDS,而引擎提供的是纳秒;旧代码无条件除以 1e9,在 harness 下会将每根合成 K 线压缩到同一小时/日期,并冻结会话逻辑(TypeError 清除后潜在的第二个 Layer-2 失败)。新的 _epoch_secs() 按数量级(ns/us/ms/s)进行归一化;对真实纳秒 K 线则不作处理,因此 Layer-3 和真实回测不受影响。信号形态、入场/退出规则、ATR、仓位规模、导入和类结构均与已通过 Layer 1 的代码保持不变。
在测量充分的完整历史样本上,负期望前提成立。跨越 2020-2026 的 594 笔交易中,亚洲->US 会话接续亏损:profit_factor 0.937(<1),total_return -9.81%,期望值为 -$17.34/笔交易,Sharpe 为 -0.15,其 CI [-0.760, 0.458] 跨越零点,information_ratio -0.76。唯一的正收益年份是 2020(+15.3%);此后每年均为负值或持平(2021 -8.1、2022 -5.8、2025 -10.8),滚动 Sharpe 到 2026 时趋于 -8.3——“亚洲的大幅波动预测 US 波动”这一假设根本未得到数据支持。这一策略的费用余量也很小:avg_trade_return_pct 0.110% 低于 0.15% Binance USD-M 下限(L22)。只有 2 个自由参数,且方向性优势为净负;对于不存在的优势,调参无法翻转其符号。这是 fee_edge/no_edge 净亏损者特征——不值得投入 2 小时进行优化。
实现
BTCUSDT.BINANCE USD-M 永续合约,1H K 线,多空日内会话领先-滞后。每个 UTC 日,逐步累积亚洲会话收益(00:00-08:00 UTC 开盘至收盘),并使用最近 30 个亚洲收益的标准差进行归一化(历史预热期间使用基于 ATR 的离散度回退),从而每根 K 线返回连续的尺度不变 z-score。在 US 会话开盘小时(13:00 UTC),当 |z| >= entry_z 时,策略沿亚洲波动的 SAME 方向入场,每个日历日最多入场一次。在 US 会话收盘小时(20:00 UTC)退出,使持仓隔夜保持 FLAT(无资金费率、无跳空风险);或者在基于 ATR 的止损(stop_atr_mult x ATR,下限为 min_stop_pct)触发时提前退出。仓位规模按止损距离承担 risk_frac 的权益风险,毛敞口上限为 max_notional_frac x 权益。所有状态(ATR、会话收益、离散度双端队列)每根 K 线均为 O(1);日切换锚定于 K 线自身时间戳,而非 K 线计数器。
验证结果
CLEAN RESTART 2026-09-04 — 本次运行的判定历史与学习记录已清除,并从验证阶段重启。此前的放弃源自流水线,而非市场:Layer-2 测试框架错误绑定了 @staticmethod 辅助函数(已修复),QA 在未经优化的冒烟测试上给出了终局性绩效判定(已移除 — QA 现在仅评判正确性),沙箱超时源于回测槽位争抢(已修复)。假设与策略代码未作改动。请依据代码本身的优劣进行验证;绩效稍后由完整回测与优化器决定。
添加与代码限制相匹配的 _param_bounds = {entry_z: [...], stop_atr_mult: [...]};将所有会话小时/ATR/风险常量排除在其中。
配置声明了 NO 个 _param_bounds,尽管假设立足于"仅 2 个 FREE 参数"以最小化 best-of-225-trial 的折扣惩罚。若缺少该声明,优化器便没有显式曲面将其与 {entry_z, stop_atr_mult} 关联,从而削弱 2 参数的纪律性。此非正确性问题。
将完整窗口设置为 us_exit_hour=21,或记录 20:00 为预期行为。
假设将 US 会话命名为 13:00-21:00 UTC,但 us_exit_hour 为 20,因此提前一小时强制平仓。影响较小,不改变机制或隔夜持仓为空这一不变量。
回测评审
- 夏普
- -0.15
- 总收益率
- -9.81%
- 最大回撤
- 23.40%
- 总交易数
- 594
- 胜率
- 44.8%
- 盈利因子
- 0.94
测量充分:594 笔交易,跨越完整的 2020-2026 1H 历史,多空均衡(293/301),执行干净(594 触发信号,594 已提交,无漏单)
真正不同的日内会话领先-滞后类别;隔夜空仓、与基准低相关(0.025)、不依赖补充数据源
净亏损者:profit_factor 0.937(<1),total_return -9.81%,期望值为 -$17.34/笔交易,Sharpe 为 -0.15(CI 跨越零点),information_ratio -0.76
avg_trade_return_pct 0.110% 低于 0.15% Binance USD-M 费用下限——即使忽略负期望值,费用余量也很小
只有 2020(+15.3%)具有有意义的正收益;此后每年均为负值或持平(2025 -10.8%),滚动 Sharpe 到 2026 时趋于 -8.3——会话接续前提不存在持续优势
return_kurtosis 78.6 — 行情起伏不平(例如 2023-08-29 上的一个 -6.07% 日)而非平滑的边际优势
迭代历史
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。