跳至正文
全部策略

策略

ADA 周度日历效应仅做多策略:周五收盘买入、周一开盘卖出,在 ADAUSDT.BINANCE 上使用 4H 趋势过滤器

结局: 已放弃

AdaWeekendRallyCalendarLong4H

结局总结

这是组合中的首个日历效应策略——在上升趋势中买入ADA周五晚间收盘、周一卖出——并凭借异常干净的基础获得“优化”裁决(夏普比率1.35,PF1.55,仅5.45%回撤,在7年中有6年为正),尽管被标记为依赖异常值且近期走弱。优化产生了耀眼的样本内表现(夏普比率2.86,PSR0.9998,sharpe_ci_low+1.12),但每一个前向关卡都否决了它:缩减夏普比率0.40低于运气基准线,PBO0.80,过拟合的滚动前向暴跌至负平均OOS,以及深度负样本外-2.88。决定性证据是定义性日历参数上的敏感性悬崖——入场星期或小时移动一位即导致夏普比率坍塌至零或负值——以及优化器抛弃假设的周五→周一,转为噪声拟合的周四→周二。分析师在第2轮迭代中放弃了它,认定星期溢价是一个脆弱、随机制衰减的伪影,没有稳健的窗口可供调优,这正是假设本身所警告的衰减。

假设

一种在ADAUSDT.BINANCE上的仅做多、单一品种日历效应策略——已通过多个近期基于ADA的管线成功案例确认可测试(ADAKeltnerRangeTradingLongShort、ADAVolContractionSqueezeLong、ADADonchianBreakoutLong4HOnly、ADALINKCointegrationPairsReversion60Day4H、ADAMultiTimeframeDonchianBreakdownShort均已使用ADA根K线干净地完成回测)。在结构上区别于EVERY组合策略,也区别于失败的肯特纳区间交易:它NOT均值回归策略,NOT突破策略,NOT动量策略,NOT配对策略。它是一种CALENDAR-EFFECT/WEEKDAY-SEASONALITY策略——组合中的FIRST。假设:加密市场存在有文献记载的WEEKEND→MONDAY反弹效应(Caporale等人2019《Persistence in the Cryptocurrency Market》;Aharon-Qadan2019《Bitcoin and the Day-of-the-Week Effect》)。币安周末交易量约为工作日的40-60%;机构/算法资金流暂停,仅散户资金流造成更宽的波动区间和可预测的周日晚间漂移。周五收盘至周一开盘的交易捕捉:(a)周日晚间机构资本为交易周提前布局的重新吸筹,(b)周一早晨成交量回归溢价。CRITICALLY,该策略包含4H趋势过滤器——直接针对肯特纳策略的失败模式(无趋势过滤器的对称区间交易)。仅在确认的UPTREND行情中入场(4H收盘价>50周期SMA且AND斜率为正)——该过滤器确保周季节性仅在实证最强的DURING牛市行情中被捕捉(Aharon-Qadan已证明星期效应具有机制依赖性,在趋势性加密市场中最强)。使用ONLYADAUSDT.BINANCE4H K线——已确认可测试。填补关键缺口:(1)组合中FIRSTCALENDAR-EFFECT策略(全新的机制类别),(2)单一品种的简洁性,(3)已确认可测试的品种,(4)带趋势过滤器的仅做多——解决了肯特纳区间交易者对称无过滤器的失败模式。仓位规模:每笔交易18%。每笔交易风险:约1.5%,以止损为上限。

Iteration-2 对 Layer-2 TypeError 的最小修复(_dow_hour() 接受 1 个位置参数,却给了 2 个)。根因:_dow_hour 是 @staticmethod,但 Layer-2 的 _StrategyProxy 会将类可调用对象重新绑定到一个替身实例上,这会丢弃 staticmethod 描述符,并将代理实例作为注入的第一个位置参数传入——因此一个有 1 个参数的静态方法被以 2 个参数调用,导致每个合成情景都报错。修复方法是将 _dow_hour 移出类,设为模块级函数(模块函数不会绑定到实例,因此不会注入 self),并将唯一的调用点改为 _dow_hour(ts)。_sma 辅助方法仍保留为方法,因为它确实使用 self。其他内容未变:导入保持干净(Layer 1 通过),日历/趋势信号、入场/退出/仓位规模逻辑均与测试框架所验证的字节级一致,因此没有前序层回归。交易场所仍为 BINANCE USD-M 期货,杠杆 1.0(未用于放大,因此不会触发 leverage_set_but_unused 门槛)。

ADA上的周末日历效应是一个best-of-225选择伪影,未能通过每一个泛化关卡,尽管其样本内表现看似强劲(夏普比率2.86,PF2.13,sharpe_ci_low+1.12,PSR0.9998)。决定性关卡否决了它:deflated_sharpe0.3952(is_significantFALSE),优化后夏普比率2.86BELOW预期最大运气基准线3.08;PBO0.799(过拟合概率约80%);滚动前向is_overfitted=TRUE,平均IS2.98暴跌至平均OOS-0.116(一个窗口-3.55);以及HOLDOUTFAILED,夏普比率深NEGATIVE为-2.875。决定性证据是敏感性FAILURE,在CORE个定义性参数上存在2悬崖:entry_dow(周四/周五时夏普比率约1.35,到周六时暴跌至-0.16)和entry_hour(18-20h时1.35,到22-24h时降至0.0/无交易)——日历窗口如刀锋般脆弱,而优化器的“最优”配置甚至抛弃了假设的周五->周一,转为周四->周二,拟合了一个噪声特异性窗口。该季节性在2025(-5.3%)和2026(-3.5%)中也已衰减,正如假设所警告的(“随着周末参与度上升的机制衰减”)。不予推进:DSR低于运气基准线+PBO0.80+is_overfitted伴随负OOS+负样本外+核心参数悬崖,每一项都构成否决。不予迭代(尝试1/2):该策略的定义性参数(入场星期/小时)均为悬崖,因此没有稳健的日历区域可供调优,PBO0.80表明该选择已过拟合,且近期样本外失败——第二轮搜索只会重新找到另一个向前失败的刀锋窗口。不予revise_hypothesis:星期季节性是前提,而它太弱/已衰减,无法进行缩减,且没有已验证的同类策略可转向。FAILUREPATTERN:单资产星期/季节性日历策略会优化出华丽的夏普比率与正CI(在日期/小时网格上的best-of-225选择),但无法通过缩减夏普比率(0.40,低于运气基准线),表现出PBO约0.80,is_overfitted=TRUE且平均OOS为负,深度负样本外(-2.88),以及核心日历参数上的CLIFFS——星期“效应”是一个脆弱、随机制衰减的伪影,而非稳健的溢价;优化器从假设的周五->周一窗口漂移至周四->周二,证实其在拟合噪声。

实现

在ADAUSDT.BINANCEUSD-M期货上的仅做多星期季节性(日历效应)策略,4H K线,纯OHLCV单数据源。仅当4H趋势确认向上(收盘价>50根K线SMA且SMA斜率在10根K线上为正)时,在周五晚间UTC窗口(星期五,小时>=20:00)LONG入场,捕捉有文献记载的周末->周一反弹。在周一开盘(日历退出)、8%硬止损,或24根K线安全时间止损后退出。信号为每根K线重新计算的连续趋势距离得分(收盘价/SMA-1);离散的日历+趋势条件控制入场。规模为18%权益名义。杠杆1.0。

验证结果

验证失败(Layer 2 — 合成情景): 使用的参数:['exit_dow', 'entry_dow', 'entry_hour', 'sma_period', 'min_notional', 'position_pct', 'max_hold_bars', 'stop_loss_pct', 'slope_lookback'] 请检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() 接受 1 个位置参数,却给了 2 个(K 线时间戳:1735693260000) - steady_downtrend: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() 接受 1 个位置参数,却给了 2 个(K 线时间戳:1735693260000) - flat_ranging: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() 接受 1 个位置参数,却给了 2 个(K 线时间戳:1735693260000) - volatility_spike: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() 接受 1 个位置参数,却给了 2 个(K 线时间戳:1735693260000) - zero_volume: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() 接受 1 个位置参数,却给了 2 个(K 线时间戳:1735693260000) - price_gap: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() 接受 1 个位置参数,却给了 2 个(K 线时间戳:1735693260000)

回测评审

夏普
1.35
总收益率
31.66%
最大回撤
5.45%
总交易数
110
胜率
47.3%
盈利因子
1.55

强劲、一致的风险调整后表现:夏普比率1.35,PF1.55,索提诺比率2.88,max_drawdown仅5.45%,在7年中有6年为正(非前载)

健康的盈亏经济性与容量:期望值+$249/笔(净约1.3%),容量约$44M,冲击4.8%,低敞口(10.4%)——可部署且可扩展

实现正确,交易行为符合规格(110 个日历条目,丢弃 0 个);机制确实新颖(首个日历效应策略),趋势过滤器解决了此前 Keltner 失效模式

中等样本:110 笔交易(约 17/年)——滚动前推窗口每年约有 6 次交易;DSR 将谨慎检验其显著性

依赖异常值:return_kurtosis 19.7,偏度 3.09(例如 2024-11-11 +6.4%);夏普率 CI 的下界略为负值(-0.35)

近期走弱:2026 -3.3%,滚动夏普率下降——样本外检验(近期窗口)是关键测试

优势归因风险:趋势过滤器意味着仅在上涨趋势中触发入场,因此部分收益可能来自周末多头贝塔,而非真正的星期季节性——必须经优化/样本外确认其真实性

分析

样本内/CI表现强劲:优化后夏普率 2.86,PF 2.13,索提诺比率 6.95,max_drawdown 10.7%,sharpe_ci_low +1.12(为正),PSR 0.9998;6个年份为正 2020-2024

实现正确,容量大(约 $84M),冲击低(3.5%);日历机制新颖

去膨胀夏普率检验失败:DSR=0.3952(K 线 0.95,is_significant FALSE),优化后夏普率 2.86 低于预期最大值运气门槛 3.08

PBO 0.799 — 回测过拟合概率约为 80%(明确高于 0.5)

滚动前向is_overfitted=TRUE:平均IS2.98暴跌至平均OOS-0.116(窗口[-3.55、2.27、0.93])

样本外FAILED,夏普比率深度NEGATIVE为-2.875

敏感性 FAILED,核心日历参数(entry_dow、entry_hour)出现 2 断崖(CORE):入场日/小时偏移一个单位,夏普率就会降至负值/零

过拟合特征:“最优”配置抛弃了假设的周五->周一,转为周四->周二;季节性在2025(-5.3%)和2026(-3.5%)中衰减,正如假设本身所警告的那样

结局总结

单资产的工作日/季节性日历策略通过在日期/小时网格上择优,优化出亮眼的夏普率和正的 CI,但星期效应脆弱且随市场状态衰减——核心入场日/小时附近表现断崖式下跌,样本外结果为负,暴露出一个刀锋般狭窄的窗口,没有稳健区域可供调参;趋势过滤器还可能把周末做多贝塔收益错误归因于真正的季节性。

优化后分析师在每一个泛化关卡上都放弃了它:缩减夏普比率0.3952(优化后夏普比率2.86低于3.08预期最大运气基准线,不显著),PBO0.799,滚动前向is_overfitted=True(平均IS2.98→平均OOS-0.116,一个窗口-3.55),深度负样本外(夏普比率-2.875),以及两个核心日历参数上的敏感性悬崖——优化器甚至从假设的周五→周一漂移至噪声特异性的周四→周二窗口。

一种在ADAUSDT4H永续期货上的仅做多星期季节性日历策略(纯OHLCV)——组合中的首个日历效应策略——仅在确认的4H上升趋势中(收盘价>50-SMA且斜率为正)买入周五晚间收盘(UTC星期4,小时≥20),并在周一开盘卖出,以捕捉有文献记载的加密周末→周一反弹,附带硬止损和时间止损。

基础回测异常干净——110笔交易(约17笔/年,全部做多,无剔除),+31.7%总计,夏普比率1.35,盈利因子1.55,索提诺比率2.88,期望值+$249/笔,仅5.45%最大回撤,约$44M容量,在7年中有6年为正;优化产生了更强的样本内表现(夏普比率2.86,PF2.13,索提诺比率6.95,sharpe_ci_low+1.12,PSR0.9998),但其依赖于异常值(峰度19.7),且近期有所走弱(2025-5.3%,2026-3.5%)。

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