arbitrage-engine/docs/arbitrage-engine/v51_gemini_analysis.md

7.8 KiB
Raw Blame History

明白!既然马上要进入开发阶段,我们就不能只停留在“概念”上,必须精确到参数配比、计算公式和逻辑边界

作为你的量化分析师我将《V5.3 双轨信号系统设计案》中的高层设计,直接翻译成研发可以直接参考的**“伪代码级”拆解**。这份拆解去除了所有冗余,直指核心代码逻辑。


一、 轨道 A山寨币模型 (ALT Track - 适用于 ETH, XRP, SOL)

ALT 轨的核心是线性评分加法模型。满分 100 分。

1. 方向层 (Direction) —— 总权重55 分

设计说明: V5.1 中方向层45分和确认层15分存在多重共线性V5.3 将其合并为 55 分。

  • 子项 A快慢期 CVD 共振 (30 分)

  • 逻辑: CVD_fast (30m)CVD_mid (4h) 必须同向。

  • 打分:

  • CVD_fast > 0 且 CVD_mid > 0做多共振 \rightarrow 给 30 分。

  • CVD_fast < 0 且 CVD_mid < 0做空共振 \rightarrow 给 30 分。

  • 方向不一致 \rightarrow 0 分(并且整个信号应标记为 no_direction 终止计算)。

  • 子项 BP99 大单流入 (20 分)

  • 逻辑: 捕捉极值大单资金方向。

  • 打分:

  • P99 大单净流入方向与 CVD 共振方向一致 \rightarrow 给 20 分。

  • 无明显反向大单阻击 \rightarrow 给 10 分。

  • 反向大单压制 \rightarrow 0 分。

  • 子项 C加速度奖金 (Accel Bonus) (5 分)

  • 逻辑: CVD_fast 的二阶导数(动能正在增强)。

  • 打分: 加速度方向与共振方向一致 \rightarrow 给 5 分。

2. 拥挤层 (Crowding) —— 总权重25 分

设计说明: 寻找散户的反向流动性(拔高了 V5.1 中该层的权重)。

  • 子项 A多空比 LSR (15 分)

  • 做多场景: 如果 LSR < 0.5(散户极度看空) \rightarrow 15 分满分。

  • 做空场景: 如果 LSR > 2.0(散户极度看多) \rightarrow 15 分满分。

  • 缺省/常态: 数据缺失或在 0.8 - 1.2 之间 \rightarrow 给 7.5 分中间分。

  • 子项 B大户持仓比例 (10 分)

  • 逻辑: 跟着大户吃散户。

  • 打分: 做多且大户多头占比 \ge 55% \rightarrow 10 分满分(做空同理)。缺省给 5 分。

3. 环境层 (Environment) —— 总权重15 分

  • 信号源: OI (Open Interest) 5 分钟/30 分钟变化率。
  • 打分:
  • OI 显著正增长(有新资金入场,趋势真实) \rightarrow 15 分。
  • OI 变化平缓 \rightarrow 7.5 分。
  • OI 显著下降(说明只是存量平仓导致的假突破) \rightarrow 0 分。

4. 辅助层 (Auxiliary) —— 总权重5 分

  • 信号源: Coinbase Premium (Coinbase 现货价格 - Binance 现货价格)。
  • 打分:
  • 做多且正溢价(美国资金在买) \rightarrow 5 分。
  • 做空且负溢价(美国资金在砸) \rightarrow 5 分。
  • 溢价绝对值 \le 0.05% (中性) \rightarrow 2 分。
  • 反向溢价 \rightarrow 0 分。

⚙️ ALT 轨开发执行参数:

  • open_threshold: 75 (总分 \ge 75 触发开仓)
  • flip_threshold: 85 (反向信号总分 \ge 85 才允许平旧开新)

二、 轨道 B大饼专属模型 (BTC Track)

BTC 轨抛弃了线性加分,采用**“布尔逻辑门控 (Boolean Logic Gates)”**。必须同时满足所有通过条件,且不触发任何否决条件,才允许开仓。

1. 门控特征一:波动率状态过滤 (atr_percent_1h) —— 决定“能不能做”

  • 公式: Volatility = \frac{ATR(1h)}{Close Price}
  • 开发逻辑 (Veto 否决条件) 设定一个最小波动率阈值(如 min_vol_threshold = 0.002,即 0.2%)。 IF atr_percent_1h < min_vol_threshold THEN BLOCK_SIGNAL ("Garbage Time") 理由BTC 在极低波动时,微观特征全是做市商噪音。

2. 门控特征二:巨鲸 CVD (tiered_cvd_whale) —— 决定“真实方向”

  • 计算方式: 在 aggTrades 聚合时,过滤掉单笔价值 $< $100k$ 的成交。只对 $> $100k$ 的大单计算 Net Flow。
  • 开发逻辑: IF tiered_cvd_whale > strong_positive_threshold THEN Direction = LONG

3. 门控特征三:前 10 档订单薄失衡 (obi_depth_10) —— 决定“有没有阻力”

  • 公式: OBI = \frac{Bid Volume - Ask Volume}{Bid Volume + Ask Volume} (取盘口前 10 档挂单量)
  • 开发逻辑 (Veto 否决条件) 做多场景: 如果 Direction = LONG,但 $OBI < -0.3$(上方有极重的卖盘墙压制)。 THEN BLOCK_SIGNAL ("Sell Wall Imbalance")

4. 门控特征四:期现背离 (spot_perp_divergence) —— 决定“是不是陷阱”

  • 计算方式: Binance BTCUSDT 现货 CVD 减去 BTCUSDT 永续合约 CVD。
  • 开发逻辑 (Veto 否决条件) 做多场景: 合约 CVD 在疯狂飙升(散户开多),但现货 CVD 为负(机构在现货抛售)。 IF perp_cvd > 0 AND spot_cvd < 0 THEN BLOCK_SIGNAL ("Spot Selling Divergence")

⚙️ BTC 轨开发执行伪代码: IF (Passed Volatility Gate) AND (Whale CVD confirms Direction) AND NOT (Blocked by OBI) AND NOT (Blocked by Divergence) THEN Execute Trade


三、 执行引擎边界条件(影响所有轨)

这些是直接写死在 signal_engine.py 或订单执行模块里的硬性规则,用来保卫净收益。

  1. 止损/止盈 (SL/TP) 基准:
  • SL_multiplier: 2.0 (止损设为入场价 \pm 2.0 \times ATR)
  • TP1_multiplier: 1.5
  • TP2_multiplier: 3.0
  1. Break-Even (BE) 滑点补偿:
  • 打到 TP1 后SL 移动的位置不是 Entry Price
  • New_SL = Entry_Price + (Direction * 0.2 * ATR) (这里的 0.2 ATR 是预留给手续费和滑点的缓冲值)。
  1. TP 兜底状态机 (Fallback Logic)
  • Step 1: 信号触发下市价单Taker开仓。
  • Step 2: 立即挂出 TP1/TP2 的限价单 (Maker)
  • Step 3 (Monitor): 如果最新标记价格穿过了 TP 触发价,但限价单未成交,启动 timeout 计时器(例如 2 秒)。
  • Step 4 (Fallback): 超时未成交 \rightarrow 发送 Cancel Order \rightarrow 发送 Market Order (Taker) 强平。

四、开发注意事项(补充)

  1. 缺失数据默认策略(必须写死)

    • BTC 四个门控特征(atr_percent_1h, tiered_cvd_whale, obi_depth_10, spot_perp_divergence)任一缺失时,默认 BLOCK_SIGNAL
    • 必须记录 block_reason=missing_feature:<name>,避免静默放行。
  2. 阈值治理(避免拍脑袋改参)

    • min_vol_thresholdobi_veto_thresholdwhale_flow_threshold 必须配置化(不可硬编码散落在代码中)。
    • 文档标注为“初始值”,并明确回测校准窗口与更新频率。
  3. 标签口径统一(防止回填偏差)

    • Y_binary_60m 使用 Mark Price 判定触发顺序。
    • ATR 必须使用信号触发时快照 atr_value,禁止回填时二次重算 ATR。
  4. TP 兜底状态机补全部分成交分支

    • 触发兜底前先查询订单成交量。
    • 若部分成交,只对剩余仓位执行 Cancel -> Taker Market Close,避免超平或漏平。
  5. 并发与幂等保护

    • Cancel -> Market 流程增加订单状态锁(或行级锁)和幂等键。
    • 防止重复撤单、重复平仓、双写成交记录。
  6. 发布闸门指标字段统一

    • 统一报表输出字段:maker_ratio, avg_friction_cost_r, flip_loss_r
    • 发布闸门自动判断基于同一口径,避免人工解释偏差。

给开发者的最终建议: 你现在可以拿着这份拆解,直接去写 v53_alt_config.json 和 BTC 轨的条件判断代码了。建议你先从 ALT 轨的 v53_alt_config.json 重写开始,因为这个改动最小,见效最快。是否需要我帮你直接生成这个 JSON 文件的模板?