3.3 KiB
3.3 KiB
name, description, version, type
| name | description | version | type |
|---|---|---|---|
| single-coin-75pct-cap-and-market-hours | OKX advisor 单币种 75% 总资产上限 + 推送前检查市场开盘时间 | 1.0.0 | reference |
🎯 单币种 75% 总资产上限 + 市场时间检查
用户原话(2026-07-13):
- "只持仓一种币的时候,最多加仓到账户资金的75%"
- "A股和港股都收盘了" → 市场休市不要推
规则 1: 单币种 ≤ 75% × 账户总资产
公式
total_capital = usdt_free + 所有币种已占用的保证金
single_coin_cap = total_capital × 0.75
已持仓该币种保证金 = sum(p['margin'] for p in positions if p['symbol'].startswith(base))
还能加仓 = min(usdt_free, single_coin_cap - 已持仓该币种保证金)
关键点
usdt_free: USDT 可用余额(不是 buy_power,不是 equity)- 保证金取法: OKX ccxt
fetch_positions()返回的 notional/leverage - 同币种合并: 同一币种多个 entry 都算同一个 base 的持仓(比如 BTC-USDT-SWAP 和 BTC-USD-SWAP 都算 BTC)
- 新币种: 没持仓时
single_coin_cap = 0.75 × total_capital(75% 一次性)
实现位置
scripts/okx_position_advisor.py:
get_account_info(): 新增used_margin和total_capital字段recommend_position(): 用min(usdt_free, single_coin_cap - same_coin_margin)代替旧的usdt_free × 0.45
配置
position_sizing:
single_coin_max_pct: 0.75 # 单币种上限, 默认 75%
用户场景验证(2026-07-13 实测)
账户:$47.69 free + $60.58 used_margin = $108.26 total_capital 持仓:SKHYNIX 0.216张 @ $60.58 保证金
| 场景 | 旧(45% free) | 新(75% total_cap) |
|---|---|---|
| 加仓 SKHYNIX(已占 $60) | 45% × $47 = $21.5 | $20.64(75% cap - $60) |
| 新开 BTC(无持仓) | 45% × $47 = $21.5 | $47.42(75% × $108) |
| 新开 ETH(无持仓) | 45% × $47 = $21.5 | $47.74(75% × $108) |
⚠️ 新开币种占用 75%(可能偏激进),加仓受限合理。
规则 2: 市场休市不要推交易清单
交易时间(北京时间)
| 市场 | 上午 | 下午 | 备注 |
|---|---|---|---|
| A 股 | 9:30-11:30 | 13:00-15:00 | 周末闭市 |
| 港股 | 9:30-12:00 | 13:00-16:00 | 周末闭市 |
| 美股 | (北京时间晚) | 21:30-04:00 | 周日-周四晚上开盘 |
检查时机
所有"交易清单"类推送(分红扫描、选股、跟单)推之前:
- 检查当前北京时间
- 判断对应市场是否开盘
- 收盘后不要推 → 用户看到也无法买
修正历史(2026-07-13)
dividend_alert.pycron schedule 原本30 20 * * 1-5(晚上 8:30 推) → 修正为0 11 * * 1-5(11:00 上午)- 新建 cron
366934c1474c(美股 21:00 推,美股开盘前 30 分钟) - 分流逻辑:
--market cn_hk/--market us两个 cron
应用清单
| 触发 | 检查方式 |
|---|---|
| cron 推交易清单 | 调度时间本身就按市场时间 |
| 实时跟单信号 | advisor 加 market_closed 标记 + 不推 |
| cron 触发但用户手动改时间 | 跑前 datetime.now() 对比市场时间 |
相关
- 用户原话(2026-07-13):
- "只持仓一种币的时候,最多加仓到账户资金的75%"
- "A股和港股都收盘了,你推来我也只能明天再买了"
- 实现代码:
scripts/okx_position_advisor.py - 实测时间:2026-07-13 (account $47.69 free, $60.58 used, $108.26 total)