# 生产配置。装到 /etc/chan-live/live.env,权限 640 root:chan。 # **不要提交填好的版本**——这里有交易权限的密钥。 # # 改完要重启:sudo systemctl restart chan-live-exec # ── Bitget 密钥 ─────────────────────────────────────────────────── # 权限只勾「只读」+「交易」,**不要勾提币**。 # IP 白名单填这台机的公网出口 IP(curl -s https://api.ipify.org 看)。 # 这也是执行器必须跑在这台机上的唯一原因——密钥绑了这个 IP。 BITGET_API_KEY= BITGET_API_SECRET= BITGET_PASSPHRASE= # ── 信号来源(采集机)───────────────────────────────────────────── # ssh 目标。可以是 ~/.ssh/config 里的别名,或 user@ip SHIP_FROM=sg-collector # 采集机上总线文件的路径(在对端 shell 里展开,可用 ~) SHIP_REMOTE_BUS=~/chan-live/state/signals_live.jsonl # ── 状态与总线 ──────────────────────────────────────────────────── # 生产状态的根。**不要指到仓库里**:git checkout/clean 会动仓库,而这里存的 # 是日亏损累计与在场仓位,被清掉等于 MAX_DAY_LOSS / MAX_OPEN 两道闸失忆。 # systemd 单元里 ReadWritePaths 也是这个路径,改了要一起改 LIVE_HOME=/var/lib/chan-live SIGNAL_BUS=/var/lib/chan-live/state/signals_live.jsonl # ── 仓位 ───────────────────────────────────────────────────────── # 每笔名义额(USDT)。杠杆**不改**手续费与滑点(都按名义额收),所以抬名义额 # 有真实成本;抬它的唯一理由是压掉步长取整:实测最差币的偏差 # 100U → 6.7%(SOL)、500U → 1.8%、1000U → 0.6% LIVE_NOTIONAL=500 # 杠杆只影响占用保证金,不影响名义敞口/手续费/滑点/盈亏绝对值。 # 名义 500 在 10x 下占 50 USDT 保证金;止损在 2 ATR ≈ 0.2%,而 10x 强平约需 # 逆向 10% = 100 个 ATR,差 50 倍。交易所侧记得设**逐仓** LIVE_LEVERAGE=10 # ── 硬约束:封的是「代价不随仓位缩小」的那几类故障 ───────────────── # 并发仓位数。信号 6.8 笔/天、持仓 48 分钟 → 期望并发 0.23 笔,3 已很宽。 # 超了说明有 bug,不是行情好 LIVE_MAX_OPEN=3 # 日开仓上限。专门封「循环里的 bug 反复开仓」——单笔小但笔数无界 LIVE_MAX_DAY=15 # 日亏损上限(USDT)。一笔止损约 1 USDT,15 笔全亏 15 USDT LIVE_MAX_DAY_LOSS=20 # 信号超过这么久就不做。参考成交价是次根开盘价,过期后跑的不是回测那个价。 # ⚠️ 这道闸依赖两机时钟一致,chrony 必须在跑(install.sh 会装) LIVE_STALE_S=20 # 交易的币池。要与采集机一致,否则会收到不做的币的信号(会被忽略但徒增噪声) SYMS=BTC,ETH,SOL,BNB,XRP,DOGE,ADA,AVAX,LINK,LTC # 盯交易所侧出场的轮询间隔(秒)。**别关掉这个循环**:止损与止盈在交易所侧 # 成交,本进程收不到通知,缺了它 pnl_day 恒为 0,MAX_DAY_LOSS 就是死的 LIVE_WATCH_S=10 # ── Telegram 通知 ───────────────────────────────────────────────── # 拿 token:Telegram 里找 @BotFather → /newbot # 拿 chat id:给 bot 随便发一句,再开 # https://api.telegram.org/bot/getUpdates 看 result[0].message.chat.id # # 留空则完全不推(不报错)。推的内容:开仓、平仓(带已实现盈亏)、被硬约束 # 挡住、报错、对账平仓、跨日结算、启动与停机。 # **不推**信号过期跳过(常态,搬运重连会重放旧信号)和心跳(日志里有)。 # 量级约 30 条/天上限。 TG_TOKEN= TG_CHAT= # 前缀,用来和采集机推的手工信号区分开——两边可以共用同一个 bot 和对话 TG_TAG=实盘