跳至正文
全部策略

策略

回测:Hyperliquid LTC–BCH Kalman价差回归 | Stratmill

结局: 已放弃

HyperliquidLtcBchKalmanSpreadReversion

结局总结

该假设检验了 Hyperliquid 上 LTC/BCH 对数价格价差的短暂偏离能否在 1–5 天内实现盈利回归;研究采用 Kalman/AR(1) 状态模型、明确定义的交易方向,以及考虑成本的入场预测过滤器。代码始终未通过第 3 层验证,因为沙盒回测反复超过 300 秒限制。在第 2 和 3 次迭代中,开发者保持交易规则不变,并指出定时重放显示,耗时来自高主机 I/O 压力下的目录清单扫描;没有逻辑的基准策略也未更快。经过 3 次迭代后,该任务作为验证循环被放弃,未产生任何回测指标,也未进行优化或分析师审查。

假设

检验 LTC/BCH 对数价格比暂时偏离潜在均值回归状态后,能否预测具有经济意义的收敛,并在 1–5 天内发生。使用同步的 4-HOUR K 线和等美元金额、方向相反的永续合约仓位。沿用来源中的状态空间机制,同时明确价差方向:较高的 LTC 减 BCH 价差意味着做空 LTC、做多 BCH。仅有预测误差并不足以入场;预测收敛幅度还必须足以覆盖执行成本。不接受来源中的任何业绩说法作为证据。

保留用户的 Kalman 滤波配对机制,同时解决其核心的符号歧义。Hyperliquid 的占比不足:7.6%,目标为 20%;两条腿方向相反的执行方式则应对了 83.2% 只做多的集中问题。LTC 和 BCH 避开了 BTC 以及失败的 AAVE–UNI 表述。与同一资产的跨交易所套利不同,本策略检验的是跨资产、多日相对错价,而非微小的交易场所价差。语料集中度为空,因此无法确认品种层面的新颖性。未强行采用跨交易场所范围,因为增加交易场所并不能增强这一机制。

verification_loop:sandbox_timeout:验证失败(第 3 层——沙盒回测):冒烟测试在约 20000 根 K 线的窗口内(LTCUSD.HYPERLIQUID-4-HOUR-LAST-EXTERNAL 的 2400 天)超过了 300 秒墙钟时间限制。这几乎总是意味着每根 K 线的工作量会随历史数据增加,例如反复扫描完整的资金费率/补充数据序列,或在每根 K 线的 calculate_signal()/on_bar() 中重建列表并调用 min()/sorted()。在 __init__ 中预先计算排序后的时间戳数组 ONCE 并使用 bisect,或按时间戳缓存查询,使每根 K 线的开销为 O(log n) 而非 O(n)。

实现

对 LTC/BCH 对数价格比应用 Kalman 滤波的 AR(1) 潜在状态(4H,Hyperliquid 永续合约)。当标准化创新超过 entry_z,且 30 根 K 线的预测收敛至拟合均值的幅度超过 min_projected_gross_pct 与往返手续费之和时入场:价差高则做空 LTC/做多 BCH,价差低则做多 LTC/做空 BCH,金额相等。出现入场均值交叉、max_holding_bars、按总仓位计算的 2% 净止损,或模型失效(半衰期超出 6-30 根 K 线)时退出。每 6 根 K 线在以纪元为锚点的网格上重新拟合,仅使用前序收盘价。

第 3 次迭代,第 -3 层 sandbox_timeout。交易规则未变;仅在文档字符串中补充了计时证据。真实沙盒窗口的定时重放表明,超时并非策略计算所致:本策略墙钟耗时为 254 秒(CPU 118),而在相同两条腿和窗口上运行的简单空操作 FactoryStrategy 墙钟耗时为 430 秒(CPU 129)。大部分墙钟时间消耗在负载较高的主机上的目录清单 I/O。根据课程 L155 的选项,(a) 配置/交易腿符合假设,(b) 两条腿都有数据,(c) 每根 K 线的开销为 O(1),并且每 6 根 K 线进行一次有界重新拟合,与时间跨度无关。任何代码改动都无法使引擎基准耗时低于 300 秒,因此需要工程团队检查沙盒 I/O 和容量,或在负载较低的主机上重试。本地重放完成了 52 笔交易:夏普比率为 -0.18,PF 0.92,avg_trade_return_pct 0.32。交易次数低于预先注册的 120;回测完成后,分析师应将此纳入评估。

验证结果

sandbox_timeout:验证失败(第 3 层——沙盒回测):冒烟测试在约 20000 根 K 线的窗口内(LTCUSD.HYPERLIQUID-4-HOUR-LAST-EXTERNAL 的 2400 天)超过了 300 秒墙钟时间限制。这几乎总是意味着每根 K 线的工作量会随历史数据增加,例如反复扫描完整的资金费率/补充数据序列,或在每根 K 线的 calculate_signal()/on_bar() 中重建列表并调用 min()/sorted()。在 __init__ 中预先计算排序后的时间戳数组 ONCE 并使用 bisect,或按时间戳缓存查询,使每根 K 线的开销为 O(log n) 而非 O(n)。

结局总结

开发者自己的定时重放发现,一个没有逻辑的简单策略耗时与本策略大致相同:前者墙钟时间约为 430 秒,后者为 254 秒。这表明在负载较高的主机上,瓶颈更可能是目录清单 I/O,而非策略代码;遇到此类重复沙盒超时,应作为基础设施问题升级处理,而不是继续消耗代码迭代。

经过 3 次迭代后,该策略在验证循环中被放弃。每次第 3 层沙盒冒烟测试都超过了 300 秒墙钟时间限制,测试窗口约为 20,000 根 K 线(2400 天),周期为 4 小时的 LTCUSD.HYPERLIQUID。回测审查、分析和风险评估阶段均未进行。

在 Hyperliquid 4 小时 K 线上进行等美元金额的 LTC/BCH 永续合约配对交易,将 LTC 减 BCH 对数价格价差建模为潜在均值回归(AR(1)/Kalman)状态;价差偏高时做空 LTC、买入 BCH,偏低时反向操作。只有当 1–5 天内的预测收敛幅度足以覆盖执行成本时才入场。

没有业绩数据:回测报告为空,且从未运行优化,因此没有收益、夏普比率或交易次数可报告。

分析

实际价格高于预测价格时,为什么还要做多?(用于配对交易的 Kalman 滤波器)

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