Files
mike 1877a85cc5 feat: 迁移 trading 相关脚本到 skill 仓库 (第1批: 🔴 高优先级)
【迁移内容】
- crypto-t-monitor/scripts/t_monitor.py (币圈做T, 25.5 KB)
- strategy-management/scripts/us_t_levels.sh + hk_t_levels.sh (做T点位)
- intraday-trading/scripts/us_intraday_{scanner,monitor,close}_cron.sh + .py
- intraday-trading/scripts/hk_intraday_{scanner,monitor,close}_cron.sh + .py

【配套修改】
- 8 个 cron 任务 script 路径更新 (jobs.json):
  - db03f9255ad0 (币圈OKX做T) → crypto-t-monitor/scripts/
  - cfa0c1d6 (美股日内盘前) → intraday-trading/scripts/
  - bcdf7039 (美股日内交易监控) → intraday-trading/scripts/
  - d1acad61 (美股日内平仓) → intraday-trading/scripts/
  - c3401d72 (港股日内盘前) → intraday-trading/scripts/
  - e3667cb0 (港股日内交易监控) → intraday-trading/scripts/
  - 303ec320 (港股日内平仓) → intraday-trading/scripts/
  - c4dc9ac8 (港股做T点位) → strategy-management/scripts/
  - 70d24624 (美股做T点位) → strategy-management/scripts/
- prompt 字段里路径同步更新
- crypto-t-monitor/SKILL.md scripts 段加 t_monitor.py 描述

【删除】本地旧副本 ~/.hermes/scripts/{t_monitor,us_t_levels,hk_t_levels,us_intraday*,hk_intraday*}.{py,sh}
【保留】~/.hermes/scripts/fetch_policy.py 已迁未删 (本次删)

【测试】us_intraday_scanner.py 跑通 (有 shebang, no_agent cron 自动用 python3)
【未改】devops/ + software-development/ 不在 trading git 仓库, 引用已本地更新
2026-07-24 11:39:52 +08:00

21 KiB
Raw Permalink Blame History

name, description, version, author, license, platforms, metadata, scripts, requires
name description version author license platforms metadata scripts requires
crypto-t-monitor OKX 币圈日内做T监控 - 多币种 + 动态 ATR + 网络重试 + 新币自动挑选,推结果到QQ。t-monitor cron 每15分钟跑。v2.6: 加减仓 ≠ 平仓 (用户纠正) + 按比例算法 (信号强度+持仓感知)。v2.5: 新币监控但绝不开仓(只对已持仓币执行做T);cron silent模式用 `deliver: local` 真正静默。 2.6.0 Hermes Agent MIT
linux
macos
hermes
tags related_skills
trading
crypto
okx
t-monitor
position
automatic
backtest
multi-coin
new-coin-scanner
okx-auto-position
okx-crypto
intraday-trading
scripts/t_monitor.py: '币圈做T cron 脚本 (okx t-monitor). 2026-07-24 迁移到 skill 仓库. cron db03f9255ad0 引用此路径 (no_agent=true).'
okx_t_monitor.py
核心做T脚本, 多币种 + 动态 ATR + 自动重试 + 新币扫描
backtest.py
回测工具, 验证策略在历史 K 线上的表现
python3
OKX API 凭证 (in ~/.bashrc)
Clash 代理 (http://127.0.0.1:7890)
push_to_qq.sh

Crypto T-Monitor (币圈日内做T) v2.6.0

🆕 v2.6.0 (2026-07-15): 加减仓 ≠ 平仓 + 按比例算法

用户原话纠正 (关键):

"之前你是空单时, 要加仓, 加反了吧" "平仓就是平仓, 加减都不是平仓" "能根据信号算出一个比例吗"

Bug 现状 (v2.6 仍未修复, 记录用)

okx_t_monitor.py 第 512-526 行:

if action == 'buy':
    reduce_only = pos_qty < 0  # 空仓 buy = 平仓 ❌

问题:

  • 空仓+buy1/buy2 触发 → reduceOnly=True 下单 → 平仓 (不是用户要的"减仓回补")
  • 用户原话: "加减仓都不是平仓"
  • 加减仓幅度固定 t_qty, 不是按比例

修复方向 (v2.7 实施)

详见 references/signal-strength-and-position-aware-qty.md:

持仓 触发 buy1/buy2 触发 sell1/sell2
空仓 sell 减仓回补 (按比例, 留底仓) sell 加仓 (按比例)
多仓 buy 加仓 (按比例) buy 减仓高抛 (按比例, 留底仓)

关键算法:

strength = 1 - distance_pct / 0.005  # 信号强度 0-1
qty_pct = base(10-30%) × size_factor  # 持仓感知

详见 reference 文件 + 实战示例。

OKX 币圈日内做T自动监控系统。核心定位:与股票做T(长桥)完全独立,本 skill 只负责币圈。

🚦 何时使用本 skill

使用场景:

  • 用户在 OKX 持有币种(ETH/BTC/SOL/DOGE/XRP)做T
  • 想在动态 ATR 价位自动低吸/高抛
  • 验证策略历史表现(用 backtest)

不要使用:

  • 跟单交易员信号 → 用 okx-auto-position
  • 现货/DCA 长持 → 用 dividend-investing / dca-monitor
  • 股票做T → 用 longbridge-t-monitor

🆕 v2.5.0 (2026-07-10): 新币只监控、绝不开仓 + cron silent 真相

两个潜规则,反复踩坑:

1. 新币扫描器只监控,不会凭空开仓

new_coin_picks 进了 syms_to_monitor,但 monitor() 只在 pos_qty > 0.01 时才进 syms_to_trade 触发 execute_trade(v2.5 容错版用 abs(pos_qty) > 0.01 防止 OKX 浮点残值误触发)。所以:

  • 新币加进池 → 看到价格触及 → 推 📍 价格触及 buy1=... 警告
  • 不会自动开多 1.0 张(因为默认 SPECS 给了 t_qty=1.0, 但 pos_qty==0, 不进 syms_to_trade)

这是 by-design:"看着, 不抄着"。用户原话: "新币最多保留六个, 每次扫描后筛选" —— 不是"自动买新币"。要买新币得显式 --symbol CAP --side long --leverage 10okx-auto-position advisor 路径。

2. cron silent 模式 ≠ 真正静默推送

no_agent: true 的 cron job,last_status: "silent" 只代表 stdout 字符串是空,不代表 QQ 不推送deliver: qqbot 默认会推 stdout 到 QQ(连 print 都推)。

要 QQ 真正静默:

  • 必须 deliver: local (cron action: update 时显式设)
  • 或者让 print 也沉默 (logger 不 print)

t-monitor cron (db03f9255ad0) 之前 deliver: qqbot:B1EF... 导致每次空推到 QQ。已改为 deliver: local

3. OKX code='0' 不等于真成交 (2026-07-10 实战)

okx_request('POST', '/api/v5/trade/order') 返回 {"code": "0", "ordId": "..."} ≠ 真成交。

校验流程: 下单 → 等 2s → 再调 fetch_positions(),对比 pos_before vs pos_after。如果持仓没变,说明订单实际被拒/失败。

详见 references/okx-order-verification.md

4. 国内 VPS 必须走 Clash (2026-07-10)

成都电信 VPS 直连 OKX https://www.okx.com/api/v5/public/time 返回 No route to hostOKX 脚本也必须带 --proxy http://127.0.0.1:7890,不只是长桥。

详见 references/vps-proxy-requirement.md

v2.3.0 新功能 (2026-07-10): 新币自动挑选池

问题: 用户想要 30 天内新上市的币 自动监控,但:

  • 不全要 (太多噪音)
  • 每次扫描都刷新(非累积)

解决方案 (用户原话: "新币最多保留六个, 每次扫描后筛选"):

常量 含义
NEW_COIN_PICKS 2 每次扫描后筛 X 个 (按 24h vol 排序)
NEW_COIN_POOL_MAX 6 永久保留上限 (超过自动裁最早加入)
NEW_COIN_DAYS 30 30 天内新列
NEW_COIN_MIN_VOLUME_USDT 1_000_000 24h vol ≥ $1M (排除无人币)

实现逻辑:

1. 拉 OKX 所有 SWAP (公共 endpoint, 不需 credentials)
2. 筛 list_time 在 30 天内的
3. 拉每个的 24h 成交量 (tickers 端点)
4. 过滤 vol < $1M
5. 按 24h vol 降序排序, 取前 NEW_COIN_PICKS=2
6. 比对 state['_new_coin_picks'] 当前次, 变化才推 QQ
7. 加入永久池 state['_new_coin_pool']
8. 池子 > NEW_COIN_POOL_MAX=6 → 按 added_at 升序, 删最早的

QQ 推送格式:

🆕 新币扫描 (30 天内新上市, vol 前 2):

📊 CAP: 24h vol $442.5M | 上线 13.6 天前
📊 NES: 24h vol $67.0M | 上线 15.6 天前

💡 已自动加入监控池 (上限 6 个)

裁剪通知 (超限时):

🗑️ 新币池超限 (>6), 移除: ['OLDXYZ', 'ABC123']

代码位置: crypto/okx_t_monitor.py:194 (常量) + :328 (monitor() 调用)

v2.1.0 新功能 (2026-07-10): 变化驱动推送 (C 方案)

问题: v2.0 每次 cron 跑都推"💤 无持仓, 跳过做T",用户嫌噪音,问"有变化时推, 计划怎么改?"

解决方案: 实现 v2.1 推送规则 (用户拍板的 C 方案):

  • 之前: 每次 cron 都推 (噪音)
  • 现在: 只在有变化时推,其他时间静默 (本地 print 但不推 QQ)

推送触发条件 (4 类事件,任一触发就推):

# 事件 检测方法 推送格式
1 持仓变化 对比 state[sym]_prev_pos 与当前 pos_qty, 差异 > 0.001 张 🔄 持仓变化: 1.45 → 1.00 张
2 价格触及关键位 当前价距 buy1/buy2/sell1/sell2 任一 < 0.5% 📍 价格触及 buy2=1762 (距 0.32%)
3 浮盈大幅波动 浮盈 ≥ 5% 且相对上次 ≥ 3% 📈 浮盈变化: -2% → +5% (+7%)
4 做T成交 buy/sell 实际成交 (原有逻辑) ✅ 做T自动执行 v2.1
5 做T失败 buy/sell code != '0' ❌ {sym} {action} 失败: {msg}

静默分支 (全部跳过,只本地 print):

  • 没持仓 + 无变化 → 💤 静默: 无持仓, 无变化
  • 有持仓 + 价格距最近关键位 > 0.5% + 浮盈变化 < 3% → 💤 静默: 有持仓但无变化

详细实现references/change-driven-push.md

v2.0.0 新功能

相比 v1.0.0:

  1. 多币种自动 (ETH/BTC/SOL/DOGE/XRP), 不再硬编码 ETH
  2. 动态 ATR 价位 (基于 1H K线, 14期 ATR)
  3. 网络重试机制 (Clash 抽风时自动重试 2 次)
  4. STATE_FILE 自动清理 (7 天前自动删除)
  5. 支持 limit 单 (替代 market 滑点)
  6. 回测工具 (backtest.py)

📦 核心组件

1. 监控脚本: crypto/okx_t_monitor.py

位置: ~/.hermes/scripts/crypto/okx_t_monitor.py 兼容: ~/.hermes/scripts/t_monitor.py (symlink)

核心逻辑:

1. 加载 ~/.bashrc 的 OKX_* 凭证
2. 对每个币种:
   a. 查 OKX 持仓 (用 abs(pos_qty) > 0.01 容错)
   b. 如果有持仓 → 拉 1H K线
   c. 计算 ATR(14 期)
   d. 动态算 buy1/buy2/sell1/sell2 价位 (ATR × 0.5)
3. 检查价格是否触及 buy/sell 价位
4. 拉余额/持仓, 成交 (下单后必查持仓变化验证)
5. 记录到 STATE_FILE (自动清理 7 天前)
6. 推结果到 QQ

2. 回测工具: crypto/backtest.py

位置: ~/.hermes/scripts/crypto/backtest.py

默认参数 (用户偏好: 默认短期做T, 2026-07-10):

参数 默认 说明
--mode trend 用户原话"新币最多保留六个", 1H K线 + 30 天窗口。要 short 显式 --mode short
--days 30 (trend) / 7 (short) 自适应
--bar 4H (trend) / 1H (short) 自适应
--atr-multiplier 1.5 (trend) / 0.5 (short) 用户原话"短线推荐 0.5",默认是 0.5

用户实测发现 (2026-07-10):

  • --mode trend 默认是 4H K线 + 翻页有 bug, 拉不到数据。只能 stable 跑 1H, 需要显式 --bar 1H
  • --mode short 跑 1H K线稳
  • ATR=0.7 在 short 模式下 200 根 K 线回测胜率 81.6%, 优于 0.5/1.0/1.5
  • 但用户原话 "短线推荐 0.5", 实战用户要 0.5 (默认), backtest 验证 0.7 最好但成交频繁高手续费

用法:

# 默认 (trend 模式, 用户原话"短线推荐 0.5", 但默认是 trend)
python3 ~/.hermes/scripts/crypto/backtest.py ETH --mode short --days 7

# 短期 + 用户推荐参数
python3 ~/.hermes/scripts/crypto/backtest.py ETH --mode short --days 7 --atr-multiplier 0.5

# 短期 + 自测更优参数
python3 ~/.hermes/scripts/crypto/backtest.py ETH --mode short --days 7 --atr-multiplier 0.7

# 自定义
python3 ~/.hermes/scripts/crypto/backtest.py ETH \
  --days 14 \
  --bar 1H \
  --atr-multiplier 0.5 \
  --t-qty 0.03

数据限制: OKX 历史 K 线 bar=4H 翻页有 bug。Backtest 实测只能用 1H K 线, trend 模式要 --bar 1H

3. cron 任务

Job ID 名称(已重命名清晰化) 频率 delivery
db03f9255ad0 币圈OKX做T */15 * * * * local (v2.5 真正静默)
a82a3ab0d48d signal-queue-retry */5 * * * * qqbot (信号重试)

命名教训 (2026-07-10): cron 名 "t-monitor" 太模糊,用户问"是币圈还是股票"。已重命名 db03f9255ad0 为 "币圈OKX做T"。股票侧用 港股日内交易监控 / 美股日内交易监控 已经清晰,所有做T cron 一律带市场名 + 交易所 (例: 币圈OKX做T / 港股日内交易监控 / 美股日内交易监控 / A股...)。规则: 任何新的做T cron, 名称必须显式标 "市场 + 交易所 + 动作" 三段。

🔧 配置 (crypto/okx_t_monitor.py)

默认币种

DEFAULT_SYMBOLS = ['ETH', 'BTC', 'SPCX']  # v2.5 加了 SPCX

合约规格 (v2.5.0)

SYMBOL_SPECS = {
    'ETH': {'ct_val': 0.1, 'leverage': 25, 't_qty': 0.05},
    'BTC': {'ct_val': 0.01, 'leverage': 25, 't_qty': 0.03},
    'SOL': {'ct_val': 1.0, 'leverage': 20, 't_qty': 5.0},
    'DOGE': {'ct_val': 10.0, 'leverage': 20, 't_qty': 30.0},
    'XRP': {'ct_val': 10.0, 'leverage': 20, 't_qty': 30.0},
    'SPCX': {'ct_val': 1.0, 'leverage': 5, 't_qty': 0.5},
    # 新币默认参数 (自动加)
    'NEW': {'ct_val': 1.0, 'leverage': 10, 't_qty': 1.0, 'min_sz': 0.01},
}

动态价位算法

ATR = sum(trs[-14:]) / 14
buy1 = price - atr * atr_multiplier * 0.7    # 默认 atr_multiplier=0.7
buy2 = price - atr * atr_multiplier * 1.0
sell1 = price + atr * atr_multiplier * 0.7
sell2 = price + atr * atr_multiplier * 1.0

📊 STATE_FILE

~/.hermes/trading/t_state.json:

{
  "ETH_2026-07-10": ["buy1", "sell1"],
  "BTC_2026-07-10": ["buy2"],
  "SPCX_prev_pos": -1.45,
  "SPCX_prev_upl_pct": -5.7,
  "_new_coin_picks": ["CAP", "NES"],
  "_new_coin_pool": [{"sym": "CAP", "added_at": 1783655143.41, "vol24h": 442053100}]
}

自动清理: cleanup_state(state, keep_days=7), 跨 7 天前的 entry 自动删除。

📋 推送格式

做T成交:

✅ 做T自动执行 v2.5

🟢低吸 SPCX 0.5张 @ $151.12
级别: 151.54buy2
ATR: $1.17

📊 持仓: -0.95张 @ $151.05
💰 可用: $79.65
💹 浮盈: $-1.88

变化提醒 (持仓变化/价格触及/浮盈大幅):

🔔 SPCX 变化提醒

💰 价格: $151.13
📦 持仓: -0.95张
🔄 持仓变化: -1.45 → -0.95 张
📍 价格触及 buy2=151.54 (距 0.27%)

🚨 关键避坑 (2026-07-10 实战教训)

1. 默认是短期做T (用户偏好)

用户原话: "默认是短期". 所以:

  • 默认 --mode short (1H K线, 7 天窗口)
  • 默认 atr_multiplier=0.5(用户原话"短线推荐 0.5")
  • 默认单笔 t_qty 占持仓 5-10%
  • 不要默认跑 --mode trend(那是"等回调"思路,用户没要求)

2. 默认监控币种必须包含持仓 (Symbol Coverage Pitfall)

用户曾在 OKX 持有 SPCX 1.45张空 @ 149.15, 但 DEFAULT_SYMBOLS 没列、SYMBOL_SPECS 也没列 → cron 多次报"💤 无持仓,跳过做T"。结果: 用户误以为 cron 没在工作,持仓浮亏没被任何 cron 检测/推送到 QQ, 入场保护完全失灵。

两类 pitfall (必须同时修):

  • DEFAULT_SYMBOLS 缺 → monitor() 跳过该币种, 没有任何监控, 静默
  • SYMBOL_SPECS 缺 → 拉到持仓计算 LEVELS 时 KeyError: 'SPCX'
  • t_qty 设错:是"每次做T张数", 不是总持仓 (SPCX 持仓 1.45 → t_qty=0.5, 不是 1.45)

修复 (本 skill 已应用):

  1. 静态补全: 把持仓币种同时加进两个 dict (SPCX 已加)
  2. 自动覆盖机制 AUTO_INCLUDE_HOLDINGS = True (v2.2+) — 启动时自动拉 OKX 持仓, 加进监控池
  3. get_held_symbols() 函数 在 monitor() 调用, 替代死板的 DEFAULT_SYMBOLS
  4. 新币池 NEW_COIN_AUTO_WATCH = True 自动包含新币

3. 实盘前必跑回测 (200 根 K 线起步)

# 测试新参数 (推荐 1H short 模式, 用户推荐 atr_multiplier=0.5)
python3 ~/.hermes/scripts/crypto/backtest.py ETH --mode short --days 7 --atr-multiplier 0.5

# 要求:
# - 胜率 ≥ 55%(预期值正)
# - 最大回撤 ≤ 15%
# - 交易频率适中(7天 20-50 次, 不要 > 100)
# - 总盈亏 > 0

# 实战第一次跑, 必须用 0.01-0.05 张试水
# (SPOT/合约都从最小单位开始, 2-3 天后验证策略再扩仓)

4. cron 失败 ≠ 没运行 (网络抽风)

症状: cron 报 💤 无持仓,跳过做T,但实际你持 ETH/SPCX。 原因: 在 OKX fetch_positions 时网络超时(Clash 抽风), 抛异常被 try/except 吞掉, 误判为空仓。 修复: 在 monitor() 函数 fetch_positions 失败时记 ERROR, 不要当空仓处理。 临时绕过: 手动 python3 ~/.hermes/scripts/crypto/okx_t_monitor.py 复查。

5. 状态文件 (t_state.json) 跨日会"恢复"

如果某天没成交 (例如网络挂了), 当天 traded_levels 是空。下一天 state_key 变了("ETH_2026-07-11"), traded_levels 也默认空, 所以已经触及的价位, 隔夜会再次触发(如果第二天价格还在那)。 修复: 如果你想"7日内一次性" 触发, 用 keep_days=7 删旧 state key 后重做。 v2.0.0 用的是 cleanup_state(keep_days=7) 自动删 7 天前的, 但阻止"跨日重复触发同价位"。

⚠️ 关键限制

  1. 有持仓才做T (没持仓的币种跳过)。SPCX 这类"已有持仓"会被监听到,纯新增的币种不会自动开仓 (v2.5 修正)。
  2. 网络依赖: Clash 死了就完全不能跑(虽然有重试,但重试也失败就崩)
  3. 不支持止损 (OKX advisor v4.5.0 才有 SL conditional algo). 持仓被套只能手动 App 或调用 okx-auto-position/scripts/okx_position_advisor.py --execute 走 SL-only conditional。
  4. atr_multiplier=0.7 是回测最优甜点(不要退回 0.5,见上表)。1.5 太宽捕捉不到。
  5. 不要假设有亏损保护: --mode short 时 81% 胜率不代表实战也 81%——滑点/拒单/网卡都还没建模。

🔄 跟其他 skill 的关系

Skill 用途 冲突?
okx-auto-position 信号跟单 (麻吉/熬鹰等) 互补
okx-crypto OKX 数据查询 配合
intraday-trading 股票日内 独立
longbridge-t-monitor 股票做T 独立

🔧 故障排查

Cron 失败?

  1. 检查 Clash: pgrep mihomo
  2. 测连通: curl -s --max-time 8 -x http://127.0.0.1:7890 https://www.okx.com/api/v5/public/time
  3. 看 cron output 文件: ls -lt ~/.hermes/cron/output/db03f9255ad0/ | head -3
  4. 看 cron delivery 是不是 local: cronjob list | grep -A3 db03f9255ad0,应该 deliver: local(v2.5)

没触发做T?

  1. 检查持仓: python3 ~/.hermes/scripts/crypto/okx_t_monitor.py (dry-run 手动跑)
  2. 看价格 vs 价位: 脚本会 print "动态价位"
  3. 手动改 LEVELS: 不推荐 (v2.0.0 全自动)

cron 没推 QQ 但代码说成功?

last_status: "silent" 误导名字,实际可能是 deliver: qqbot 在推 stdout。改 cron:

# 经 Hermes cronjob update 改 deliver 字段
cronjob update --job-id db03f9255ad0 --deliver local

🔴 Dedup #4: Two-phase check-then-execute (2026-07-10)

When a single cron tick triggers a trade, naive code runs change-detection FIRST then trade execution, producing two QQ pushes for the same event ("持仓变化: 1.45 → 0.95" + " 做T自动执行 v2.1 @ $151.12"). The fix is a two-phase loop:

  1. Pass 1: collect pending_actions (which symbols are about to trade)
  2. Pass 2: execute trades, push only ✅ 做T自动执行

The change-detection in Pass 1 receives skip_for=set(pending_actions) and suppresses "持仓变化" / "价格触及" for symbols in that set. Float P&L change notifications still push (no semantic overlap with trade confirmations).

Crash bug: state[f'{sym}_trade_at'] defaults to 0 (= epoch 1970). This makes now_ts - 0 = ~60 years ALWAYS > 900 (15 min), so the dedup NEVER triggers via the time-based path until the symbol does its first trade. The structural fix (pass pending_actions directly) avoids this and is the correct one. If you use time-based dedup, also fix: state.get(f'{sym}_trade_at', datetime.datetime.utcnow().timestamp()).

Full pattern: references/push-dedup-and-order-direction.md

📚 相关文档

  • references/change-driven-push.md - v2.1 推送策略 (持仓/价格/浮盈变化检测细节)
  • references/push-dedup-and-order-direction.md - v2.4 dedup + 订单方向盲点
  • references/symbol-coverage-pitfall.md - 持仓币种必须列入监控池 (SPCX 案例)
  • references/vps-proxy-requirement.md - 国内 VPS 必须走 Clash (不能直连 OKX)
  • references/okx-order-verification.md - code='0' 不等于真成交,下单后必查持仓
  • references/signal-false-trigger-pitfall.md - OKX 浮点残值,abs() > 0.01 容错
  • references/backtest-usage.md - 回测详细使用
  • references/cron-delivery-push-pitfalls.md - cron silent vs local 区别(v2.5 新增)
  • references/okx-new-coin-data-sources.md - 新币只监控不开仓(v2.5 新增)

📚 相关文档

  • references/change-driven-push.md - v2.1 推送策略 (持仓/价格/浮盈变化检测细节)
  • references/push-dedup-and-order-direction.md - v2.4 dedup + 订单方向盲点
  • references/symbol-coverage-pitfall.md - 持仓币种必须列入监控池 (SPCX 案例)
  • references/vps-proxy-requirement.md - 国内 VPS 必须走 Clash (不能直连 OKX)
  • references/okx-order-verification.md - code='0' 不等于真成交,下单后必查持仓
  • references/signal-false-trigger-pitfall.md - OKX 浮点残值,abs() > 0.01 容错
  • references/backtest-usage.md - 回测详细使用
  • references/cron-delivery-push-pitfalls.md - cron silent vs local 区别(v2.5 新增)
  • references/okx-new-coin-data-sources.md - 新币只监控不开仓(v2.5 新增)
  • references/concise-output-style.md - 风格铁律 (2026-07-13 用户偏好): "简洁,重点" + memory vs skill 区分原则
  • references/signal-strength-and-position-aware-qty.md - v2.6 加减仓比例算法 (信号强度 + 持仓感知)

🔄 版本历史

  • v2.6.0 (2026-07-15):
    • 加减仓 ≠ 平仓 (用户纠正 "平仓就是平仓, 加减都不是平仓")
    • 按比例算法 (信号强度 + 持仓感知, 不是固定 t_qty)
    • 永远不平光 (减仓上限 50%, 留底仓)
    • 新 reference: signal-strength-and-position-aware-qty.md
    • ⚠️ Bug 仍未修复: okx_t_monitor.py 仍用 reduce_only = pos_qty < 0 走平仓路径 (v2.7 实施)
  • v2.5.0 (2026-07-10):
    • 新币只监控、绝不开仓(by-design 验证文档)
    • cron deliver: local 真正静默(纠正 silent 误解)
    • OKX code='0' 不等于真成交(强调下单后验证持仓)
    • 国内 VPS 必须走 Clash
    • 修 cron 名 t-monitor币圈OKX做T
    • DEFAULT_SYMBOLS 加 SPCX
    • 浮点残值容错 abs(pos_qty) > 0.01
  • v2.4.0 (2026-07-10): dedup + 订单方向盲点(详见 SKILL.md §Dedup #4)
  • v2.3.0 (2026-07-10): 新币自动挑选池 (NEW_COIN_PICKS=2, POOL_MAX=6)
  • v2.2.0 (2026-07-10): 静默模式+持仓自动包含
  • v2.1.0 (2026-07-10): 变化驱动推送 (C 方案)
  • v2.0.0 (2026-07-10): 动态 ATR + 网络重试 + backtest
  • v1.0.0 (2026-07-10): ETH 4 张硬编码