跳至正文
全部策略

策略

BTC-Flow-Leads-ETH 跨品种领先滞后,多空策略(在强劲的 BTCUSDT DEEP-aggTrades 主动成交流冲击出现、且 ETH 尚未 NOT 跟随时交易 ETHUSDT.BINANCE——BTC 订单流领先山寨币价格数分钟——一种 CROSS-INSTRUMENT 信号,并非败于手续费的单标的订单流;快速追赶持仓,3 参数)

结局: 已放弃

BtcFlowLeadsEthLeadLagLS

真正的跨品种设计(BTC 订单流信号,交易 ETH),并接入了真实的逐腿主动成交流数据源——并非败于手续费的单标的订单流类别

假设

一个 LONG-SHORT、CROSS-INSTRUMENT 策略:交易标的为 ETHUSDT.BINANCE(USD-M 永续),但 SIGNAL 来自 BTCUSDT 的 DEEP aggTrades 主动成交(taker)流——这是与本次会话中每一个单品种(single-name)思路都真正不同的策略族,所有这些思路现在都已确认失效(单品种 OHLCV、资金费率(funding),以及我自己的单品种 aggTrades 订单流探针——吸收、大单扫货,全部因手续费而确定性地死亡;做市执行回归策略也刚刚碰撞/失效)。该机制在跨资产 LEAD-LAG 中有据可查:BTC 是市场的 beta 驱动因子,其激进订单流(最深订单簿上一波净主动买入/卖出)在短暂滞后后会传导至山寨币;当 BTC 出现强烈的流动冲击时,AND 随即变动,但 ETH 尚未 NOT 跟上(其价格仍接近冲击前水平),ETH 倾向于在数分钟内跟随。按 BTC 流动冲击的方向开仓 ETH,以捕捉补涨/补跌行情;一旦 ETH 已收敛至隐含波动幅度或滞后窗口关闭,便平仓退出。这是 NOT 单品种订单流(信号标的 ≠ 交易标的),NOT ETH 自身价格的回归/动量,NOT 资金费率/carry/期权。它利用最深、最干净的流动数据带(BTC 的)来交易效率较低的跟随者(ETH),而补涨/补跌幅度(~0.2–0.5%)足以覆盖约 0.10% USD-M 的往返成本。跨标的(2 标的),LONG-SHORT(填补 85% 的不平衡),快速日内持仓。3 核心参数(BTC 流动冲击阈值、ETH 滞后差距阈值、补涨持仓窗口)。

迭代修复,单一根因:上一版本产生了 ZERO 笔交易,因为其 BTC 订单流序列为空——`metrics` 仅为 PRIMARY 标的注入数据(ETH),而(正确的)标的保护逻辑丢弃了每一行 ETH 数据,而没有替换为 ETH 自身的盘口,因此入场条件永远无法启动。引擎已接入该机制所需的精确数据流:当策略源码引用该键时,supplementary_data['taker_flow_by_instrument'] 会附加到 EVERY 腿(主要数据加额外数据)(subprocess_entry._add_per_leg_taker_flow -> supp_collector.load_taker_flow_series),因此现在会直接读取 BTC 腿的真实主动买卖比,同时 ETH 仍是交易主标的。带标的保护的指标解析仅作为后备保留,真实订单流保护逻辑不变(没有 BTC 订单流 -> 保持空仓,绝不使用 OHLCV 成交量代理指标)。唯一其他改动:将仓位/持仓时间记录移至订单流提前返回逻辑之前,使持仓窗口退出条件在没有新订单流数据点的 bar 上仍继续计时;并将 flow_thresh 从 0.015 调高至 0.05,使订单流确认条件真正生效(测得的 |订单流偏离度| 中位数约为 0.19)。使用沙盒时间窗内真实目录与指标数据进行检查:BTC 主动成交流覆盖该窗口(metrics/BTCUSDT all.parquet 截至 2026-07-31,加上 daily.parquet 截至 2026-09-02),完整复合入场条件在 34 天的 1 分钟 bar 中触发约 165 次,因此第 3 层将产生交易。根据范围规则,向分析师如实说明一项注意事项:在同一 34 天样本中,沿冲击方向入场后 15 根 bar 的 ETH 回报为负(约 -0.08%),即滞后差是通过 BTC 回归而非由 ETH 追赶而收敛——优势来自反向(反转)符号;我按原要求实现了该假设。

在 12,517 笔交易/6.7 年的决定性样本中,期望收益为负,导致账户被强平:total_return -100%(于 2020-11-26 被强平),profit_factor 0.057,夏普比率 -2.02(CI 完全为负),avg_trade_return_pct -0.0055%(低于 ZERO,而不只是低于 0.15% USD-M 手续费下限)。方向性前提是 INVERTED——QA 的测量结果和完整回测均表明,BTC 订单流并未领先 ETH 的追赶行情;滞后差是通过 BTC 向 ETH 回归而收敛,因此顺势入场的符号方向错误(avg_loss 约为 9x avg_win,多空两侧胜率为 0.334)。可优化的 3 个参数(冲击/价差阈值、持仓窗口)无法改变入场符号,因此没有任何参数配置能修复方向错误的前提;且 commission_pct_of_gross 538%/587 换手率在 1 分钟 bar 上意味着策略还会因手续费影响而频繁交易。不值得投入 2 小时优化。FADE(反向符号)版本将是研究负责人提出的新假设,而非对本假设的调参。

实现

在 1 分钟 bar 上对 ETHUSDT.BINANCE 永续合约进行多空交易,由 BTCUSDT 的 REAL 主动订单流驱动(逐腿主动买卖成交量比,基于 aggTrades,原生间隔 5 分钟),并结合 BTC 的 5 根 bar 价格冲击。当 BTC 出现超过或等于 0.25% 的 5 分钟走势,且其主动订单流偏离 60 根 bar 的基准值、方向一致得到确认,而 ETH 尚未 NOT 跟随(对齐后的 BTC 减 ETH 回报差 >= 0.15%)时,沿冲击方向做多或做空 ETH 以捕捉追赶行情。当价差收敛至入场价差的 35%、持仓达到 15 根 bar、触及 0.5% 止盈或 0.5% 止损时退出。不使用杠杆;每笔交易的名义仓位为权益的 50%。

验证结果

验证失败(第 3 层——沙盒回测):未产生交易 使用的 bar 类型:ETHUSDT.BINANCE-1-MINUTE-LAST-EXTERNAL,处理的 bar 数:40708 诊断:should_enter() 在评估的 40679 根 bar 中返回了 0 次方向 -> 你的 ENTRY CONDITION 从未触发。请放宽入场逻辑/阈值。 请确保你的策略使用给定数据和参数能够产生交易。

分析师:在回测审查时测试反向(反转)入场符号;如果完整历史数据确认顺势符号的净收益为负,则放弃此版本,而不是优化阈值。

入场按假设所述,在 BTC 冲击方向进入 ETH(跟随/追赶),但开发者预先登记的坦诚说明和沙盒均显示,沿冲击方向的 ETH 走势为负——盈利方向是反向交易。这是假设的方向性前提失效,并非代码错误;已标记为参考信息,不构成阻碍。

可选择按交易标的的数量精度(4)进行舍入,用于 ETHUSDT。

position_size 将 ETH 数量四舍五入至 3 位小数(round(size, 3)),而 ETHUSDT 数量精度为 4。并非缺陷(3 位小数在精度 4 范围内,且名义金额远高于最低要求),但略粗于交易所允许的精度。

开发者自己的测量结果(在配置理由中重述)和沙盒均表明,假设的方向性前提是 INVERTED:在 34 天样本中,入场后 15 根 bar 的 ETH 回报沿 BTC 冲击方向约为 -0.08%——滞后差是通过 BTC 向 ETH 回归收敛,而非由 ETH 追赶 BTC,因此优势来自 FADE 符号。沙盒确认:total_return -8.13%,夏普比率 -9.27,profit_factor 0.12,win_rate 0.22,avg_trade_return_pct 约为 0.003%(多头和空头 0.286、0.121 的胜率均偏弱)。可优化的 3 个参数(冲击/价差阈值、持仓窗口)无法改变入场符号,因此没有任何参数配置能修复方向性前提倒置的问题。Commission_pct_of_gross 366%,且在 1 分钟 bar 上的换手率 1088,意味着顺势信号也在手续费影响下频繁交易。建议分析师放弃顺势版本,或明确测试反向(反转)符号——该机制对领先滞后关系的推断似乎不适用于跟随型交易。此项仅为建议,不构成阻碍;代码忠实实现了原文假设。

回测评审

夏普
-2.02
总收益率
-100.00%
最大回撤
100.00%
总交易数
12517
胜率
33.4%
盈利因子
0.06

真正的跨品种设计(BTC 订单流信号,交易 ETH),并接入了真实的逐腿主动成交流数据源——并非败于手续费的单标的订单流类别

样本量大且可靠(6.7 年间有 12,517 笔交易),因此结果具有决定性,而非噪声所致

账户 LIQUIDATED 2020-11-26(total_return -100%,CAGR -100%,max_drawdown 100%)——该策略在头几个月内崩溃,此后再未交易

盈利因子 0.057,夏普比率 -2.02(CI [-5.50, -1.71],完全为负),索提诺比率 -1.78,avg_trade_return_pct -0.0055%(BELOW ZERO,并非仅仅低于 0.15% USD-M 手续费下限)

avg_loss 36.8 对比 avg_win 4.15(约 9x 的不利不对称性),win_rate 0.334 多头和空头皆然——顺势入场方向错误

commission_pct_of_gross 538%,且在 1 分钟 bar 上的换手率为 587——即使在方向性问题之外,该信号也因手续费影响而剧烈频繁交易

QA 对策略优势的担忧得到证实:对于跟随型交易,领先滞后关系方向相反(BTC 向 ETH 回归,而不是由 ETH 追赶);可优化的 3 个参数(冲击/价差阈值、持仓窗口)无法改变入场 SIGN

迭代历史

验证失败(第 2 层——合成场景): 使用的参数:['stop_loss', 'flow_thresh', 'hold_window', 'take_profit', 'min_notional', 'exit_gap_frac', 'position_frac', 'eth_gap_thresh', 'impulse_window', 'btc_impulse_thresh'] 请检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend:TypeError:FactoryStrategy._bar_ts() 需要 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - steady_downtrend:TypeError:FactoryStrategy._bar_ts() 需要 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - flat_ranging:TypeError:FactoryStrategy._bar_ts() 需要 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - volatility_spike:TypeError:FactoryStrategy._bar_ts() 需要 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - zero_volume:TypeError:FactoryStrategy._bar_ts() 需要 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000) - price_gap:TypeError:FactoryStrategy._bar_ts() 需要 1 个位置参数,但实际给出了 2 个(bar 时间戳:1735689600000)

验证失败(第 4 层 — QA 审核): - 该策略 LIQUIDATED 账户。沙盒:total_return -100.0%,max_drawdown 100.0%,在 2025-11-18 上被强平=true,夏普 -2.40(CI [-9.58, -2.17],完全为负),profit_factor 0.14,return_skew -16.5,峰度 280,largest_loss -$6,469。风险控制 NOT 遏制亏损:avg_loss $282 为 3.6x avg_win $78,尽管有名义上的 0.4% 止损;avg_position_pct 为 217%(相对于预期 180%)(position_frac 0.60 x 杠杆 3.0)。0.4% 止损仅在 NEXT ETH K线上通过 should_exit 检查,因此在 1 分钟 K线上、1.8x+ 杠杆下,不利变动会在止损评估前直接击穿;叠加 3.0 杠杆导致强平。硬性风控失效(L15)。 - 极端换手下的手续费/冲击死亡。1522 笔交易分布于 300 天内,平均持仓约 2 分钟,换手率 2032,约 $100k 账户上 total_impact_usd $152,618。avg_trade_return_pct 为 0.0157%——比约 0.10% 的往返成本及 0.15% 期货最低限制低一个数量级——因此即便在强平之前,毛补涨/补跌优势(声称为约 0.2-0.5%)也无法覆盖成本。假设自身的手续费算术被证伪。 - 假设的核心信号是 BTC 的 DEEP aggTrades TAKER FLOW。代码 NOT 使用主动成交流——它从 BTC OHLCV BARS 推导'流':方向 = sign(close - open) 每根 K线 乘以 K线成交量,并按总成交量归一化。这是一种由 OHLCV 推导的上涨/下跌成交量代理变量,而非订单流。因此实际交易的边际实际上为 CROSS-INSTRUMENT OHLCV MOMENTUM,而非理论依据所声称的订单流族。所述的非价格依赖(aggTrades 主动成交流)缺失;唯一输入是 BTC 与 ETH OHLCV,将其归入纯 OHLCV 衍生品类别(L7:0 幸存者),NOT 一个真正不同的策略族。

验证失败(第 1.5 层——假设/配置一致性)[类别=hypothesis_mismatch]: - config.instrument_id 是 BTCUSDT.BINANCE,但假设声明的是 ETHUSDT.BINANCE——资产不同。请按原文实现假设(或由研究负责人修订假设)。

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