e265c1b31a
Replace alert-only check_key_monitors with market open flow, add _market_open_for_key_monitor, and update docs. Co-authored-by: Cursor <cursoragent@cursor.com>
6.0 KiB
6.0 KiB
界面与风控更新说明(OKX 实例)
与 Gate / Binance 主站对齐的列表窗、统计分品类、交易记录展示、复盘与移动保本交易所同步;OKX 仍为 三页导航(交易执行 / 记录复盘 / 统计),关键位监控合并在 交易执行 页,无 Gate 独立「关键位监控」页与斐波限价监控。
顶栏导航(3 项)
| 顺序 | 名称 | 路由 | 说明 |
|---|---|---|---|
| 1 | 交易执行 | /trade |
关键位监控 + 实盘下单(默认首页 / → /trade) |
| 2 | 交易记录与复盘 | /records |
交易记录、复盘表单、AI 历史(受顶栏 UTC 时间窗筛选) |
| 3 | 统计分析 | /stats |
按北京时间交易日切日 + 分品类统计块 |
列表时间窗(UTC,全站顶栏)
共用模块:仓库根目录 history_window_lib.py(与 Gate / Binance 一致)。
| 项 | 说明 |
|---|---|
| 默认 | UTC 当日(win_preset=utc_today) |
| 可选 | 近 24 小时、近 7 天、自定义起止(UTC) |
| 作用范围 | 关键位历史、交易记录列表、复盘 API、AI 历史 API、导出「交易记录」「关键位历史」 |
| 与统计 | 仅影响列表/导出;统计页仍按北京时间 TRADING_DAY_RESET_HOUR(默认 8:00)切日 |
| 切换 | 顶栏「列表筛选(UTC)」→ 应用(保留当前路由 query) |
交易记录与复盘
- 列表 止损(开仓):展示
initial_stop_loss快照(display_open_stop_loss)。 - 类型列显示
monitor_type与key_signal_type(若有)。 - 平仓入库:
stop_loss/initial_stop_loss为开仓止损快照;机器单entry_reason可按key_signal_type自动映射(箱体突破 / 收敛突破 → 四条固定关键位开仓类型文案)。 - 复盘:开仓类型下拉含四条关键位固定文案 +「其他」;离场触发含 「止盈」;从交易记录填入时按结果与信号预填。
- 复盘 K 线图:以 平仓时间 为锚点向前约
ORDER_CHART_LIMIT(默认 100)根(_fetch_ohlcv_ending_at)。 /api/journals、/api/reviews与顶栏 UTC 窗一致。
导出(交易记录 v3)
- 文件名:
trade_records_v3_YYYYMMDD.csv - 含
key_signal_type、initial_stop_loss、计划/实际 RR、risk_amount等;末列「开仓类型」为有效展示文案。 - 受 UTC 列表窗限制;关键位历史导出同理。
实盘下单(交易执行页)
- 移动保本:表单可勾选「启用移动保本」;触发阶梯上移后 先撤后挂 交易所 TP/SL(
replace_active_monitor_tpsl_on_exchange),仅成功后才写库;企业微信提示含「交易所:已先撤后挂止盈止损」。未配置实盘 API 时仅更新本地止损。 - 开仓 TP/SL 仍通过 OKX
attachAlgoOrds(与原有逻辑一致);重挂使用 ccxtstopLoss/takeProfit参数,触发价经_okx_algo_trigger_price_str格式化。
统计分析页(/stats)
| 项 | 说明 |
|---|---|
| 切日 | 北京时间;边界 = TRADING_DAY_RESET_HOUR:00(默认 8) |
| 品类下拉 | 全部交易、下单监控、关键位箱体突破、关键位收敛结构、关键位斐波0.618、关键位斐波0.786 |
| URL | stats_segment=(all / manual / key_box / key_conv / key_fib618 / key_fib786) |
| 与 UTC 窗 | 统计 不 随顶栏列表窗变化 |
斐波关键位监控(与 Gate / Binance 对齐)
| 项 | 说明 |
|---|---|
| 类型 | 斐波回调0.618、斐波回调0.786(交易执行页关键位表单) |
| 同币互斥 | 每币仅一条斐波监控 |
| 挂单价 E | 做多 E = H − ratio×(H−L);做空 E = L + ratio×(H−L);SL/TP 为 L/H |
| 添加后 | 立即在 OKX 挂限价单;卡片显示 挂E、限价单 ID |
| 失效 | 标记价触达止盈侧且限价未成交 → 仅撤本条限价单(cancel_fib_limit_order) |
| 成交后 | 挂交易所 TP/SL → 写入 order_monitors(monitor_type=关键位监控,key_signal_type=斐波回调…)→ 从关键位表移除 |
| 轮询 | check_fib_key_monitors()(与箱体/收敛 check_key_monitors() 分离) |
| 盈亏比 | 计划 RR 须 > KEY_AUTO_MIN_PLANNED_RR(默认 1.5) |
| 日成交量 | 排名前 KEY_DAILY_VOLUME_RANK_MAX(默认 30) |
计算逻辑见仓库根目录 fib_key_monitor_lib.py。
与 Gate 的差异(其余)
- 无独立「关键位监控」导航页(斐波在 交易执行 页添加)。
- 箱体/收敛与 Gate/Binance 相同:门控 + RR 达标后自动市价开仓(须
LIVE_TRADING_ENABLED=true)。
交易所已实现盈亏(与 Gate 一致)
- 打开 交易执行 / 交易记录 等主页面时,若已配置
OKX_API_KEY/OKX_API_SECRET/OKX_API_PASSPHRASE(只读即可),同进程约 25 秒内最多调用一次 OKX 历史仓位(fetch_positions_history),为未写入exchange_sync_key的记录匹配并回填exchange_realized_pnl。 - 复盘列表盈亏优先展示交易所 U(旁标 所);本地公式估算标 估;人工复核优先。
- 手动强制同步:
GET /api/sync_exchange_pnl(需登录)。 - 可选
.env:EXCHANGE_POSITION_SYNC_FROM_BJ(北京时间起点)、EXCHANGE_POSITION_HISTORY_LIMIT(默认 200)。
企业微信推送(与 Gate 对齐)
- 平仓:
📉 … 平仓完成模板(盈亏 ±X.XX U、价位两位/按币价精度、账户资金 2 位小数)。 - 开仓成功:与 Gate 相同的 emoji 分段(条件委托状态文案、RR/张数/名义 2 位小数)。
- 移动保本:仅首次触发推送;交易所同步失败同一监控单只告警一次。
- 斐波/关键位/划转等推送数值格式与 Gate 一致(
format_wechat_scalar_2dp)。
配置与部署
- 详见
.env.example中 OKX(OKX_*)与通用风控项。 - 代码更新后请 重启 OKX 监控进程;旧库行不做批量回填,展示字段有则用之、无则回退。