3.1 KiB
3.1 KiB
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 |
触发症状
- advisor 报错
Instrument ID doesn't exist - process_signal 返回
⚠️ advisor错误 - agent 推 QQ 假装成功(
✅ 已推送 | 1000PEPE long 7x)但 execute 实际失败 - 用户反馈"跟单了吗,已经过了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.md 和 v4.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 拿合约,不要让用户来问"有这个币吗"。
修复路径
- process_signal.py 的
parse_signal()加 1000x 包装识别 - advisor --execute 前先
/api/v5/public/instruments?instType=SWAP查合约 - 如果合约不存在 → 标
symbol_not_tradable状态 + 不推 QQ "已推送" - 如果存在但 1000x 包装 → 归一化 symbol + 价格 ÷ 1000 后传入 advisor
给下次 session 的 action
- 在
references/okx-contract-specs.md加 "1000x包装币种清单" - 在
scripts/process_signal.py的parse_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 兼容性失败)