Files
Hermes-Skills/okx-auto-position/references/v4.5.38-symbol-normalization-1000pepe.md
T

3.1 KiB
Raw Blame History

v4.5.38 (2026-07-08) Symbol Normalization — 1000PEPE → PEPE 单位换算

核心问题

X 聚合社区发出的信号统一按 "币种全名" 显示价格,但 OKX 上很多 memecoin 合约用了 1000x 包装(把价格放大 1000 倍减少小数位数):

信号原文 OKX 真实合约 价格差异
1000PEPEUSDT|永续|7x PEPE-USDT-SWAP 1000x
1000SHIBUSDT|永续|10x SHIB-USDT-SWAP 1000x
1000FLOKIUSDT|永续|5x FLOKI-USDT-SWAP 1000x
1000LUNCUSDT|永续|3x LUNC-USDT-SWAP 1000x
1000XECUSDT|永续|10x XEC-USDT-SWAP 1000x

触发症状

  1. advisor 报错 Instrument ID doesn't exist
  2. process_signal 返回 ⚠️ advisor错误
  3. agent 推 QQ 假装成功(✅ 已推送 | 1000PEPE long 7x)但 execute 实际失败
  4. 用户反馈"跟单了吗,已经过了2小时了"——agent 才去 raw REST 查发现无持仓

解决方案

第一步: process_signal.py parse_symbol 加归一化(已部署)

sym = sym.replace('USDT', '').strip()
# 1000XXX 归一化为 XXX (OKX 实际合约名)
if sym.startswith('1000') and sym[4:] in ('PEPE', 'SHIB', 'FLOKI', 'LUNC', 'XEC', 'BONK', 'SATS'):
    sym = sym[4:]
fields['symbol'] = sym

第二步: 价格验证(单元换算)

OKX 报 0.000002874 USDT/PEPE,X 聚合报 0.002874 USDT/1000PEPE。两者数学一致,差 1000 倍。

验证公式: OKX价格 × 1000 ≈ 信号价格 (误差 < 1% = 滑点)

第三步: execute 后必须反查持仓

参见 v4.5.18-execute-reverse-query-checklist.mdv4.5.37-...-1000pepe-execute-gap.md

已知 1000x 包装币种清单 (持续更新)

信号格式 OKX 合约 验证
1000PEPE PEPE-USDT-SWAP 实测
1000SHIB SHIB-USDT-SWAP 待测
1000FLOKI FLOKI-USDT-SWAP 待测
1000LUNC LUNC-USDT-SWAP 待测
1000XEC XEC-USDT-SWAP 待测
1000BONK BONK-USDT-SWAP 待测
1000SATS SATS-USDT-SWAP 待测

错误示范 (本 session 第3次违规)

用户: 你查查有这个币吗?
agent: 查: <正确的合约是 PEPE-USDT-SWAP,1000PEPE 归一化>
        [耗时几秒]

应该改成直接运行 parse 后的 symbol 拿合约,不要让用户来问"有这个币吗"。

修复路径

  1. process_signal.py 的 parse_signal() 加 1000x 包装识别
  2. advisor --execute 前先 /api/v5/public/instruments?instType=SWAP 查合约
  3. 如果合约不存在 → 标 symbol_not_tradable 状态 + 不推 QQ "已推送"
  4. 如果存在但 1000x 包装 → 归一化 symbol + 价格 ÷ 1000 后传入 advisor

给下次 session 的 action

  • references/okx-contract-specs.md 加 "1000x包装币种清单"
  • scripts/process_signal.pyparse_signal() 顶部加归一化分支(已实施)
  • 给所有 advisor 错误加 fallback: 用 raw REST /api/v5/public/instruments 自动找替代合约

关联

  • v4.5.37 第7次违规 + 1000PEPE execute 漏处理
  • v4.5.18 execute 反查硬约束
  • v4.5.34 execute returns success no fill
  • spcx-silent-fail-repro.md (类似的 execute 兼容性失败)