跳至正文
全部策略

策略

BTC 现货工作日持有做多——失败的周末策略镜像(周一至周五周期)

结局: 已放弃

BtcSpotWeekdayHoldingLong

结局总结

BtcSpotWeekdayHoldingLong 被构建为一项可证伪检验:如果失败的 Weekend Holding 策略确实是因为机构资金流入推动工作日漂移而亏损,那么它的镜像策略——周一买入、周五卖出——就应有正期望收益。然而,在 8 年和 418 个干净的工作日周期中,该策略的回报为 -14.06%(CAGR -1.89%),夏普比率为 0.233,盈利因子低于 -1.0,回撤为 85.2%,触发了其预先承诺的四项止损条件。回测评审分析师在优化前关口放弃了该策略,指出它没有日历阿尔法,只是做多-BTC贝塔并使用杠杆(贝塔 0.90,阿尔法 -0.15),因此从未进入优化及后续阶段。该结果明确驳斥了工作日漂移诊断——这是有价值的会话负面发现,因为只有两个固定日历边界,没有可优化的内容。

假设

一种在 BTCUSDT 现货上的 LONG-ONLY CALENDAR-EFFECT 策略:在周一 08:00 UTC 开盘时 BUY BTC,在工作日内持有 HOLD,于周五 22:00 UTC 收盘时 SELL。RATIONALE:该提案是近期被证伪的 BTC Weekend Holding 策略(周五→周一 HOLD,其在 7/7 年间夏普比率为 -2.02)的 EXPLICIT MIRROR IMAGE。分析师对 Weekend 策略失败原因给出的诊断明确指出:'ETF 流入推动了工作日的正向漂移,因此周末周五收盘→周一收盘的净收益略为负值,因为资产在每周机构买入后出现回吐。'如果该诊断正确,那么 LOGICAL CONSEQUENCE 是,MIRROR 策略(周一 BUY,周五 SELL——捕捉WEEKDAY正向漂移)应具有 POSITIVE 期望收益。该提案直接TESTS这一诊断。KEY STRUCTURAL DIFFERENCES 来自所有 20+ 个失败策略:(a)FRAMEWORK-COMPATIBLE——每年有 52……展开收起

一种在 BTCUSDT 现货上的 LONG-ONLY CALENDAR-EFFECT 策略:在周一 08:00 UTC 开盘时 BUY BTC,在工作日内持有 HOLD,于周五 22:00 UTC 收盘时 SELL。RATIONALE:该提案是近期被证伪的 BTC Weekend Holding 策略(周五→周一 HOLD,其在 7/7 年间夏普比率为 -2.02)的 EXPLICIT MIRROR IMAGE。分析师对 Weekend 策略失败原因给出的诊断明确指出:'ETF 流入推动了工作日的正向漂移,因此周末周五收盘→周一收盘的净收益略为负值,因为资产在每周机构买入后出现回吐。'如果该诊断正确,那么 LOGICAL CONSEQUENCE 是,MIRROR 策略(周一 BUY,周五 SELL——捕捉WEEKDAY正向漂移)应具有 POSITIVE 期望收益。该提案直接TESTS这一诊断。KEY STRUCTURAL DIFFERENCES 来自所有 20+ 个失败策略:(a)FRAMEWORK-COMPATIBLE——每年有 52 个已平仓的买入/卖出周期,产生日收益率,向前滚动和留出窗口均有已平仓交易可供评估(UNLIKE那个未能通过框架可评估性要求的DCA累加器);(b)SIMPLEST可能的周期策略——只有 2 个参数(入场时间、出场时间),FIXED设在日历边界;(c)DIRECT近期被证伪策略的INVERSE——支持THIS策略的实证证据IS分析师关于OPPOSITE策略为何失败的诊断;(d)BTC SPOT 场所(CASH账户)——无杠杆,无清算风险;(e)捕捉ETF时代机构工作日资金流,而 Weekend 策略的失败记录了这一点。PRE-COMMITTED ABANDONMENT RULES(致敬分析师对这一做法的赞扬——这是本次会话中唯一得到验证的分析师反馈):(1)如果优化前夏普比率 < 0.3,立即放弃——不再迭代。必须通过THIS策略的正向基准结果,在实证上确认分析师关于“存在工作日正向漂移”的诊断,否则该诊断就是错的。(2)如果 2024-2026 ETF时代的累计回报为净负值,则放弃——ETF驱动的工作日资金流论点已失败。(3)如果最大 DD > 30%,则放弃——这意味着BTC更广泛的市场机制已发生变化。(4)PF必须 >= 1.10——扣除费用后,该策略必须具有正期望收益。CRITICAL HONEST ACKNOWLEDGEMENT:本次会话此前的每项建议都已被实证证伪。不过,这个假设具有一个UNIQUE EPISTEMOLOGICAL ADVANTAGE:其核心论点(工作日正向漂移)是ITSELF DERIVED FROM与相反策略的实证失败。如果分析师的诊断正确解释了 Weekend Holding 为何失败,那么THIS策略按其构造就必须具有正期望收益。如果THIS策略ALSO也失败,那么诊断就是错的,整个ETF时代资金流叙事也就不成立——这同样是本次会话有价值的发现。

针对所报告的第-2层故障(`_week_fields() takes 1 positional argument but 2 were given`)进行的第-3次迭代修复。根因:`_week_fields` 是一个 `@staticmethod`,但第-2层 `_StrategyProxy` 会通过 `dir()` 传递它找到的每个可调用对象,并使用 `types.MethodType(func, instance)` 重新绑定。staticmethod 会显示为裸函数,因此重新绑定会将其变成绑定方法——随后调用 `self._week_fields(ts)` 时会多传入 `(instance, ts)` 个位置参数,导致每个场景的第一根 bar 都抛出 TypeError。最小修复:将 `_week_fields` 从 staticmethod 改为普通实例方法 `def _week_fields(self, ts_ns)`,它在真实 NautilusTrader 引擎和代理下的行为相同(二者都会提供 `self`)。其他内容均未更改——日历边界、连续的周比例信号、入场/出场门控以及相对于资金规模的现货仓位计算均保持不变,因此先前通过的层级不会回归。已在本地验证:第 1 层静态检查通过且零问题,第 2 层的所有 6 个场景均通过,没有异常,也没有冻结/NaN 警告。

优化前审查:该策略违反了自身预先承诺的四条放弃规则——夏普比率 0.233(低于作者设定的 0.3 立即放弃阈值)、profit_factor 0.993(低于要求的 1.10,即扣除费用后期望收益为负,avg_trade -$34)、max_drawdown 85.2%(高于 30% 上限),以及 2024-2026 ETF 时代年回报 +55% / -36% / -44%,复利后净亏损约为 -45%(作者的 ETF 流量论点终止条件)。该假设明确预先承诺:如果优化前夏普比率 < 0.3,就“立即放弃,不再迭代”。就策略本身而言,它没有日历择时阿尔法:本质上是持有 7 天中的 5 天、做多杠杆 BTC 敞口(贝塔 0.90、benchmark_correlation 0.89、information_ratio -0.73、阿尔法 -0.15),且在 8 年间有 total_return -14%。该构建是对“ETF 时代工作日正向漂移”诊断的可证伪检验(与被证伪的周末持有策略相对应);检验失败明确推翻了该诊断——这是有价值的负面发现——但没有任何可优化之处(只有两个固定的日历边界,而且前提已不成立)。花费 2 小时进行优化并无依据。

实现

在 BTCUSDT.BINANCE_SPOT 1H K线上实施的仅做多 BTC 现货日历策略:在周一 08:00 UTC K线买入 BUY,在工作日内持有 HOLD,于周五 22:00 UTC 时或之后卖出 SELL——这是对被证伪的 BTC Weekend Holding 策略的明确镜像,用于检验分析师关于“ETF时代工作日正向漂移”的诊断。两个日历边界,不使用杠杆,CASH/现货仅做多,精确入场/阈值出场,因此周末始终为空仓。

验证结果

验证失败(第 2 层——合成场景): 使用的参数:['exit_hour', 'entry_hour', 'exit_weekday', 'min_notional', 'entry_weekday', 'position_fraction'] 检查 __init__ 是否设置了 self.parameters.get() 中的所有属性。 - steady_uptrend: TypeError: BtcSpotWeekdayHoldingLong._week_fields() 需要 1 个位置参数,但实际传入了 2 个(bar 时间戳:1735689660000) - steady_downtrend: TypeError: BtcSpotWeekdayHoldingLong._week_fields() 需要 1 个位置参数,但实际传入了 2 个(bar 时间戳:1735689660000) - flat_ranging: TypeError: BtcSpotWeekdayHoldingLong._week_fields() 需要 1 个位置参数,但实际传入了 2 个(bar 时间戳:1735689660000) - volatility_spike: TypeError: BtcSpotWeekdayHoldingLong._week_fields() 需要 1 个位置参数,但实际传入了 2 个(bar 时间戳:1735689660000) - zero_volume: TypeError: BtcSpotWeekdayHoldingLong._week_fields() 需要 1 个位置参数,但实际传入了 2 个(bar 时间戳:1735689660000) - price_gap: TypeError: BtcSpotWeekdayHoldingLong._week_fields() 需要 1 个位置参数,但实际传入了 2 个(bar 时间戳:1735689660000)

回测评审

夏普
0.23
总收益率
-14.06%
最大回撤
85.21%
总交易数
418
胜率
50.7%
盈利因子
0.99

框架兼容且正确实现:418 干净的闭合工作日周期,产生每日收益,无管道错误

设计良好,是一项带有预先承诺放弃规则的可证伪检验——负面结果明确驳斥了ETF工作日漂移诊断,是有价值的会话发现

未通过其自身预先承诺的放弃规则中的 ALL FOUR:夏普比率 0.233(<0.3),profit_factor 0.993(<1.10),max_drawdown 85.2%(>30%),以及2024-2026 ETF时代累计净收益为负(+55%,-36%,-44% ≈ -45%)

扣除费用后期望收益为负:avg_trade_return -$34,在 8 年间 total_return -14%,CAGR -1.9%

没有日历阿尔法——它只是做多-BTC贝塔并使用杠杆:贝塔 0.90,benchmark_correlation 0.89,information_ratio -0.73,阿尔法 -0.15

工作日正向漂移论点已被证伪;没有可优化的内容(只有 2 个固定日历边界)

分析

提交的文件完全实现了错误的策略。假设(61996161)是一种BTC SPOT工作日日历效应策略,但你提交的是 BnbDailyFundingPercentileLong200Sma(一种BNB永续合约资金费率百分位套利策略)。请重写,使其与假设完全一致:(1)instrument_id = BTCUSDT.BINANCE_SPOT,在足以遵守日历边界的时间周期上使用 bar_type(1-HOUR 最清晰,这样 08:00 和 22:00 UTC 均可寻址;日线无法表达日内进出场时间);(2)场所 BINANCE_SPOT,仅做多,杠杆 1.0,仅限OHLCV——NO补充资金费率数据;(3)机制:在周一 08:00 UTC 的 bar 开盘时ENTER LONG,在周五 22:00 UTC 的 bar 收盘时EXIT——从 bar.ts_init(UTC)推导工作日和小时。不使用资金费率逻辑,不使用 SMA 筛选条件,也不使用百分位逻辑。仅保留两个日历参数(入场工作日/时间、出场工作日/时间)。(4)在评审时遵守假设中预先承诺的放弃规则,但首先代码必须真正实现日历机制。不要优化当前的 BNB 资金费率代码。

结局总结

“ETF时代工作日正向漂移”诊断(源自 Weekend 策略失败后的复盘)本身也被证伪——固定的日历边界只能获得做多-BTC贝塔并使用杠杆的敞口,无法捕捉扣除费用后的可交易阿尔法。

回测评审分析师在优化前关口给出了“放弃”结论,因为该策略未通过其自身预先承诺的四项放弃规则——夏普比率 0.233(<0.3)、盈利因子 0.993(<1.10)、最大回撤 85.2%(>30%),以及 2024-2026 ETF时代收益为净负值——因此未进入优化、优化后的分析师决策或风险评审阶段。

一种仅做多的 BTCUSDT 现货日历策略,在周一 08:00 UTC 买入,并于周五 22:00 UTC 卖出,以捕捉所谓的ETF时代工作日正向漂移——这是此前被证伪的周五至周一 Weekend Holding 策略的明确镜像。

在 2018-06 至 2026-06 期间,该策略产生了 418 个工作日周期,总回报为 -14.06%,CAGR -1.89%,夏普比率 0.233,盈利因子 0.993(平均每笔交易 -$34),胜率 50.7%,最大回撤为 85.2%。它没有表现出日历阿尔法——本质上是做多-BTC贝塔(贝塔 0.90,基准相关性 0.89,阿尔法 -0.15,信息比率 -0.73)。

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