diff --git a/live/deploy/README.md b/live/deploy/README.md index f4c0f66..5e67596 100644 --- a/live/deploy/README.md +++ b/live/deploy/README.md @@ -117,7 +117,8 @@ journalctl -u chan-live-ship -f # 搬运日志 # 停新开仓,但保留在场仓位的管理(48 分钟超时平仓在执行器进程里) sudo systemctl stop chan-live-ship -# 全停。执行器收到 SIGINT 会先平掉在场仓位再退出,给了 90s +# 全停。执行器收到 SIGTERM 会**撤挂单 + 市价平掉在场仓位**再退出 +# (内部平仓上限 60s,systemd 给了 90s 停机窗口) sudo systemctl stop chan-live-exec # 代码回滚 @@ -144,6 +145,10 @@ cd /opt/chan && sudo git reset --hard && sudo systemctl restart chan-live- - **进程死掉不会变成裸仓。** 止损与止盈都挂在交易所侧(`presetStopLossPrice` 与 post-only reduce-only 限价单),只有 48 分钟超时平仓在本进程。所以进程死 掉的后果是持仓超过 48 根,不是失去保护。 +- **崩溃与主动停机的处理不同,是刻意的。** 崩溃后 systemd 几秒内重启, + `reconcile` 接着撤挂单 + 平掉遗留仓位,空窗期由交易所侧止损兜着。主动 + `systemctl stop` 则在退出前就平掉——因为停机后没人重启,仓位会一直挂到止损 + 或止盈,超时腿丢了就不是回测那个出场结构了。 - **断线超过 20s 就等于漏掉那期间的信号。** 重连会把总线重放上来,但旧信号会被 staleness 闸挡掉。这是对的——参考成交价是次根开盘价,过了就不是回测那个价。 - **重启时会平掉交易所上已有的仓位**(`reconcile`)。接管要重建入场价、ATR、