13 Commits
Author SHA1 Message Date
mike 7d156b8534 okx-auto-position: process_signal 四项修复 (平仓None bug/盈亏推送/静默/白名单防护)
1. close_position_raw 函数体被 adjust_leverage_raw 错位截断导致永远 return None
   -> 所有平仓信号都误报 'proxy 抽风' (9/21 BTC 亏损翻倍事故根因), 已修复
2. 平仓推送真实盈亏: /account/bills type=2 取绝对值最大 ts 锚点, 累加30秒窗口
   -> 匹配 OKX app 显示值 (BTC -46.14 / ZEC +14.42 实测通过), 含持仓时长
3. 无持仓减仓信号静默 (msg=None), 不再刷屏
4. run_advisor/execute_order 传完整 symbol (修 SNDK BadSymbol)
2026-09-25 01:24:46 +08:00
mike 0fd498c2c3 okx-auto-position: 平仓推送删 unrealizedPnl 字段 (改用 fillPnl/不显示)
**Bug**: 平仓推送显示 unrealizedPnl (浮盈) + 不扣手续费
**实际**: 用户从 OKX app 看真盈亏 (-1.9 vs 推送 +2.96 不一致)

**Fix**:
1. okx_position_advisor.py close_position() 用 fillPnl (OKX 真成交字段) 替换 unrealizedPnl
2. format_close_result() 删 '盈亏: X USDT' 字段
3. format_close_message() 删 '浮盈' 字段
4. 平仓推送加 '💡 实际盈亏请到 OKX app 查看 (扣手续费 + funding)' 提示

**保留**:
- format_execution_result() 开仓前预测盈利额 (TP/SL 推算的合理预估)
- record_confirmed 表的 pnl 字段 (历史归档)

预期: 用户平仓时推送不带误导性'X USDT 浮盈', 改从 OKX app 自己看真盈亏
2026-08-05 13:58:03 +08:00
mike f00b6962e2 okx-auto-position: 余额不足显式提示 + exit code != 0
**Bug**: 8/4 20:32 SNDK 加仓信号 done, 但 OKX 没持仓 — 用户以为是 bug
**原因**: process_signal.py 余额不足时只推'pushed_add_insufficient'消息, 不标 failed
  signal_queue.db 标 done → 用户/agent 都以为是 bug

**Fix**:
1. process_signal.py 新增 _get_usdt_free() helper (实时查 OKX USDT free)
2. 余额不足时 QQ 推送加前缀 '⚠️ 跟单失败: 余额不足 ⚠️' + USDT 余额显示
3. process_signal.py main() 加 exit code 2 (跟单失败时) → signal_queue.retry 标 failed (而非 done)
4. retry < 3 仍会重试, 但 failed 状态可区分 done (signal_queue.db 加 status='failed')

**注意**: advisor 实际会给 0.056 张 SNDK (USDT 26.82 保证金), 不是 0 张 — 但用 99.7% 余额不健康
  → 用户应该知道是'满仓'而非'跟单成功'
2026-08-05 12:17:04 +08:00
mike 8b70ce3048 fix: 加仓/减仓标签显示正确
【bug】加仓/减仓信号被推为'自动开仓', 因为:
1. format_execution_result 写死 '✅ ... 自动开仓'
2. type_labels 字典没 'add'/'reduce' 键
3. parse_signal 没存 _raw, classify_signal 拿不到原始 text, fallback 'open'

【修复】
1. parse_signal 存 fields['_raw'] = text (classify 拿到原始 text)
2. type_labels 加 'add'/'reduce' 键
3. format_execution_result 根据 fields['signal_type'] 显示标签
4. main() 里 fields['signal_type'] = classify_signal(fields) 写回

【效果】下次加仓信号 → '✅ BTC 做多 🟩 4x ➕ 加仓' (不再误显示开仓)
减仓信号也加好了 (新代码)
2026-07-24 00:08:00 +08:00
mike 2cece66583 feat: 加仓信号自动执行 (余额检查由 advisor 完成)
【修复】加仓信号 add 路径走 execute_order, 余额检查由 advisor 内部完成
- 余额够 → 自动加仓 (outcome=auto_executed_add)
- 余额不够 → 推消息不执行 (outcome=pushed_add_insufficient)

【效果】下次 Jasonleo 推 BTC 加仓 → 你自动加仓 (前提是保证金够)
2026-07-23 22:18:42 +08:00
mike c594179ba1 fix: 加仓信号不再误判为新开仓
【bug】classify_signal 没区分'加仓'和'新开仓', 加仓信号也走 execute_order 自动下单
导致 Jasonleo 加仓信号 (同币种同方向) 每次都开 0.01 张新仓, 实际是加仓

【修复】
1. classify_signal 加 'add' 类型 (匹配 '加仓'/'追仓' 关键词)
2. execute_order 加 elif: signal_type == 'add' 推消息但不自动下单
3. 加仓信号标记 outcome='pushed_add'

【效果】下次 Jasonleo 推 BTC 加仓 → 显示'加仓建议' → 不自动下单 → 你手动决定
2026-07-23 22:17:06 +08:00
mike 06d2e69a0d fix: 锁检查挪到 execute_order 之前
【bug】format_message 里有锁检查,但 execute_order 路径不走 format_message,导致锁逻辑未生效

【症状】BTC 持仓 1h 内被 4 次'自动开仓' (0.31→0.32→0.33→0.34 张),实际是同方向加仓
原因: Jasonleo 仓位变化触发 cron → execute_order 跳过锁检查 → 4 次下单

【修复】把 check_signal_lock 挪到 execute_order 之前 (line 763)
- 聚合转发 (X聚合社区) → 直接放行
- 真实 trader 已有锁 → 跳过,推 '🔒 {reason}'
- 新币种/新 trader → 自动锁
2026-07-23 22:13:45 +08:00
mike 25812bb905 feat: 持仓锁 — 同币种只跟一个 trader
【背景】之前 BTC 同时跟多个 trader (Jasonleo/麻吉/巨鲸), 信号互相干扰
- 群体投票算法复杂,实际投出分歧
- 单一币种单一信号源更清晰

【实现】
- position_locks 表 (symbol PK, trader, side, locked_at, reason, auto_locked)
- acquire_lock / release_lock / get_lock / list_locks / check_signal_lock
- 72h 自动过期 (按 _hours_since 算)
- 同 trader 同方向 → 续期
- 同方向不同 trader → 检查过期,过期后接管
- 不同方向 → 跳过 (允许一多一空并存)
- is_real_trader 黑名单: 'X聚合社区'/'某转发' 等不参与锁

【集成】process_signal.format_message 开头调 check_signal_lock:
- 锁被占用 → 推 '🔒 {reason}' (被锁,跳过)
- 锁允许 → 继续推信号

【测试】6 场景全过: 同 trader 续期/反向跳过/同向跳过/聚合放行/新币自动锁 ✅
【当前锁】BTC long → 矿工Jasonleo, HYPE short → 麻吉大哥 (手动加锁)
2026-07-23 22:09:16 +08:00
mike 1fe4509307 fix: parse_signal 兼容【仓位】字段+unit追踪+减幅计算+跟单建议
【背景】Jasonleo 9次BTC减仓信号,process_signal.py 的 size regex 只匹配【仓位大小】,不匹配【仓位】。导致推信号显示 size='?',无法算减幅,agent 推减仓建议全错位。

【修复】
1. parse_signal.py:67 - size regex 兼容【仓位(?:大小)?】
2. parse_signal.py:68 - 新增 unit 字段(BTC/USDT/张)
3. parse_signal.py:285 - 推信号时显示 size+unit
4. parse_signal.py:294 - 跟单建议: fetch 真实持仓+算大佬减幅+同比例跟单
5. signal_tracker.py:158 - format_comparison 智能显示整数/小数 + 减幅%

【测试】1450.719 BTC ✅, 49.958(无单位)✅, 10000 USDT ✅
【验证】format_comparison 减幅 -7.1% 显示正确
2026-07-23 21:28:37 +08:00
mike 629ac197de v4.5.5: 1000PEPE→PEPE 归一化 (开仓+close路径都修) 2026-07-16 00:19:25 +08:00
mike fa054384ee v2.6.1: trader fallback unknown → X聚合社区 (用户 TG 唯一信号源)
之前无法解析 trader (没【交易员】标签, 也没👉跟单就选) 时,
trader=unknown 让推送不明. 现在默认 X聚合社区 (用户实情).
测试信号: 🚨已平仓提醒 SKHYNIX + 收益额格式 → trader=X聚合社区
2026-07-15 11:02:14 +08:00
mike 8c03e22074 v4.5.4: 平仓信号 dedup 误跳 bug 修复 — close 信号走独立通道 (2026-07-08 实测) 2026-07-14 19:06:59 +08:00
mike 657dc41c46 Initial commit: Trading skills collection
- OKX交易自动化 (okx-auto-position, okx-crypto, okx-exchange)
- 交易信号处理 (signal-confirmation-templates, trading-signal-aggregator)
- 量化因子挖掘 (quant-factor-mining)
- 长桥集成 (longbridge-cli, longbridge-python-sdk)
- 六合彩分析 (lottery-hk)
- 股息投资 (dividend-investing, dividend-scanner)
- 日内交易 (intraday-trading)
- 同花顺 (tonghuashun)
2026-07-05 02:39:41 -04:00