跳至正文
全部策略

策略

BTC 现货周末持仓做多 — 基于时间的日历策略(现货)

结局: 已放弃

BtcSpotWeekendHoldingCalendarLong

结局总结

BtcSpotWeekendHoldingCalendarLong是在本次会话中24+个基于信号的策略均已失败后,刻意设计的一次具有新颖性、作为最后手段的实验——一个纯粹的周五至周一、在BTC现货上持仓做多的周末日历策略,其动机源于所谓的ETF时代周末正向漂移异象,提出时明确标注了低置信度并内置了熔断机制。回测在其所针对的目标期间内即证伪了该假说:在419笔交易中,该策略共计亏损49.4%,夏普比率为-0.461,期望值为负,且手续费损耗严重,在9年中有6年亏损(其中包括2026 YTD的-25.5%),且在alpha和信息比率两项指标上均跑输买入并持有策略。回测审核结论为'放弃',且由于唯一的参数就是定义该假说的固定日历边界,因此没有可优化的空间——调整这些参数只会在一个方向本已错误的优势上对噪声进行过拟合。该策略在优化前,依据其自身"优化前夏普比率为负则终止"的规则而被终止。

假设

在BTCUSDT现货上的LONG-ONLY CALENDAR-EFFECT策略:周五22:00 UTC收盘时BUY BTC,整个周末期间HOLD,周一08:00 UTC开盘时SELL。RATIONALE的驱动因素是如今已EXHAUSTIVE的本次会话发现(24+个策略、7类机制ALL FAILED,包括:趋势跟踪、通道突破、震荡指标、跨资产配对MR、横截面动量、日内次级MR、篮子策略)。分析师最终的校准结论明确指出'每一类在会话开始时理论上看似有前景的机制均已被实证证伪',并建议'STOP生成假设'或'等待市场机制切换'。本提案探索了一种GENUINELY UNTESTED MECHANISM CLASS:基于时间的日历效应——具体而言是BTC现货中的周末持仓异象。KEY STRUCTURAL DIFFERENCES,与所有24+个失败策略相比:(a) NO SIGNAL —— 进出场PURELY均基于时间,无指标、无震荡器、无MR阈值、无排名、无价差;(b) SIMPLEST POSSIBLE STRATEGY —— 仅有2个参数(进场时间、出场时间),二者均FIXED固定于标准日历边界;(c) NOT方向性押注——它利用的是一种STRUCTURAL CALENDAR效应;(d) BTC SPOT交易场所消除了资金费率的复杂性;(e) NOT跨资产、NOT跨交易场所、NOT横截面——纯粹的单一标的日历效应;(f) LOW TRADE FREQUENCY(约50笔/年)使手续费损耗保持在BINANCE_SPOT 0.20% RT的最低水平。EDGE THESIS:BTC已记录在后-2024 ETF时代出现WEEKEND POSITIVE DRIFT的现象,具体原因包括:(1)BTC ETF(IBIT、FBTC)仅在US工作日市场时段ONLY交易——周末期间不存在机构性ETF抛售压力;(2)散户资金流主导周末BTC交易量,且历史上倾向于LONG;(3)周末新闻周期(中国政策、宏观事件)往往在周一开盘前对BTC呈现有利结局;(4)多篇比特币学术论文(Aharon-Qadan 2019、Kaiser 2019)记录了持续存在的BTC周末效应,历史平均周末回报约为0.3-0.5%。CRITICAL ACKNOWLEDGEMENT:我在本次会话中提出的每一条建议都已被证伪。本提案的置信度应为LOW(而非高)。它在本次会话中确属未经检验,且在结构上不同于24个失败的机制类别,但分析师校准失准的模式意味着我们应当调低预期。若优化前夏普比率 < 0,则立即放弃——不再迭代。

迭代-2针对第-2层的TypeError进行修复:`_bar_timestamp_ns`原本是一个签名为`(bar)`的`@staticmethod`,但合成验证器的策略代理将辅助函数作为绑定实例方法调用,传入`self`作为额外的位置参数 → 'takes 1 positional argument but 2 were given'。已将其转换为常规实例方法`def _bar_timestamp_ns(self, bar)`。这是尽可能小的改动:所有导入、类结构、信号、进出场及仓位管理逻辑(已通过第1层)均保持不变。该策略利用了BTC现货上尚未测试的基于时间的周末漂移日历效应,仅在CASH BINANCE_SPOT交易场所做多,年交易约50笔以最小化手续费损耗。

依据该假说自身设定的硬性熔断机制(优化前夏普比率 < 0 -> 放弃,不再迭代),在优化前即予以放弃。BTC周末持仓日历效应在扣除手续费后NO优势:夏普比率-0.461,total_return -49.4%,profit_factor 0.909,期望值为负,且相较于BTC买入并持有策略(benchmark_meaningful=true),alpha(-0.102)和information_ratio(-0.748)均NEGATIVE——严格劣于简单持有BTC。后-2024 ETF时代周末正向漂移的假说在目标期间(2025 -3.2%,2026 -25.5%;在9年中有6年亏损)内被直接证伪。没有可优化之处:唯一的参数是定义该假说的固定周五-22:00/周一-08:00日历边界,因此调整这些参数只会对噪声进行过拟合,且优势的方向本身就是错的。FAILURE PATTERN:一个在BTC现货上纯粹基于时间的周末持仓日历做多策略,在扣除0.20% RT现货手续费后不存在可利用的漂移——一个有学术文献记录的周末效应无法作为可交易的、扣费后净优势而存续,其结构上的新颖性(无信号、2个固定参数)也无法挽救一个相较于简单持有该资产、alpha为负且亏损的策略。

实现

仅做多的BTC现货周末持仓日历策略。在周五22:00 UTC买入BTCUSDT,持仓贯穿整个周末,并在周一08:00 UTC卖出。进出场纯粹基于时间(无指标),通过对K线时间戳进行支持环绕判断的窗口归属测试实现,对缺失边界K线具有鲁棒性。运行于BINANCE_SPOT 1-HOURK线,仅做多,不使用杠杆。

验证结果

验证失败(第2层 — 合成场景): 使用的参数:['exit_hour', 'entry_hour', 'exit_weekday', 'min_notional', 'entry_weekday', 'capital_fraction'] 请检查 __init__ 是否从 self.parameters.get() 设置了所有属性。 - steady_uptrend: TypeError: BtcSpotWeekendHoldingCalendarLong._bar_timestamp_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - steady_downtrend: TypeError: BtcSpotWeekendHoldingCalendarLong._bar_timestamp_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - flat_ranging: TypeError:……展开收起

验证失败(第2层 — 合成场景): 使用的参数:['exit_hour', 'entry_hour', 'exit_weekday', 'min_notional', 'entry_weekday', 'capital_fraction'] 请检查 __init__ 是否从 self.parameters.get() 设置了所有属性。 - steady_uptrend: TypeError: BtcSpotWeekendHoldingCalendarLong._bar_timestamp_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - steady_downtrend: TypeError: BtcSpotWeekendHoldingCalendarLong._bar_timestamp_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - flat_ranging: TypeError: BtcSpotWeekendHoldingCalendarLong._bar_timestamp_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - volatility_spike: TypeError: BtcSpotWeekendHoldingCalendarLong._bar_timestamp_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - zero_volume: TypeError: BtcSpotWeekendHoldingCalendarLong._bar_timestamp_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - price_gap: TypeError: BtcSpotWeekendHoldingCalendarLong._bar_timestamp_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000)

回测评审

夏普
-0.46
总收益率
-49.37%
最大回撤
63.79%
总交易数
419
胜率
50.4%
盈利因子
0.91

实现简洁精简,进出场基于时间且正确无误,不存在前视偏差

充足的交易数量(419)及敞口,足以对日历效应进行有意义的解读

夏普比率为负(-0.461),CI明显低于零,索提诺比率也为负(-0.577)——不存在风险调整后的优势

直接亏损:total_return -49.4%,CAGR -8.07%,profit_factor 0.909,负期望值

相较于BTC买入并持有策略(benchmark_meaningful=true),alpha为负(-0.102),information_ratio也为负(-0.748)——表现不如简单持有BTC

周末漂移假说在其所针对的ETF时代本身即被证伪:2025 -3.2%,2026 -25.5% YTD;在9年中有6年亏损

手续费损耗严重(佣金占毛利润的14.9%),吞噬了BINANCE_SPOT上任何微薄的日历效应优势

结局总结

一个有学术文献记录的日历效应(BTC周末漂移)在扣除0.20%的现货往返手续费后,无法作为可交易的、扣费后净优势而存续;结构上的新颖性(无信号、两个固定参数)也无法挽救一个相较于简单持有该资产、alpha为负且亏损的策略。

该策略在优化前的BACKTEST_REVIEW关卡被判定为'放弃'(abandon),触发了该假设自身设定的硬性熔断机制(优化前夏普比率 < 0 → 放弃,不再迭代);优化及后续所有阶段均未进行。

一个在BTCUSDT现货上纯粹基于时间、不含任何价格信号的日历策略——在周五22:00 UTC收盘时买入,持仓贯穿整个周末,并在周一08:00 UTC开盘时卖出——押注于后-2024 ETF时代的周末正向漂移异象,仅使用两个固定的日历参数。

在从2018到2026的419笔交易中直接亏损:夏普比率-0.461(CI低点-1.93),总回报-49.4%,CAGR -8.07%,盈利因子0.909,胜率50.4%,最大回撤63.8%,且期望值为负。相较于BTC买入并持有策略,其alpha(-0.102)和信息比率(-0.748)也均为负值,手续费消耗了毛利润的14.9%。

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