自动执行链一行都还没写(下单/持仓状态/跨重启持久化/对账/熔断),而过全部 滤网的信号只有约 5.3 笔/天——低到人手能接。先手工跑一批,就能在写自动化 **之前**拿到真实费率档、真实成交价、真实出场行为,让执行链的每个假设都有 实测对照,而不是写完再发现出场模型不对。 推送内容按手工执行需要给全:参考成交价(回测口径的次根开盘)、按 2/3/8 ATR 换算的绝对价位、下单数量、该币滑点预算,以及一句「偏离超过预算就不值得做」。 剩余半仓止损保持 2ATR 不移成本,这是回测参数,移了就不是同一个收益结构。 时效是这条路最大的风险,所以起点取 kline_ts 而不是信号产生时刻——参考价就是 在 kline_ts 那一刻存在的,从信号时刻起算会漏掉数据延迟加计算那 0.5~1.5s,而 那段不可压缩。超过 TG_STALE_S 直接标记已失效,不让人自己判断:宁可漏做,不 要在偏离预算之外入场。 三条防线:lag 退化时不推(与「停开新仓」同一条规则,不能只在自动化里执行); 按 (币, K线时刻, 方向) 去重,避免补根或池重建重放导致开两次仓;无预算的币 (如 TRX)不推。推送任何失败只打日志,不连坐采集——已验假 token 下降级为 HTTP 401 日志而非抛异常。 凭据走 tg.env(已 gitignore),给了 tg.env.example 说明怎么拿 token 和 chat id。 Co-authored-by: Cursor <cursoragent@cursor.com>
14 lines
627 B
Bash
14 lines
627 B
Bash
# 复制成 tg.env 再填。tg.env 已在 .gitignore 里,不会被提交。
|
||
#
|
||
# 拿 token:Telegram 里找 @BotFather → /newbot → 按提示起名
|
||
# 拿 chat id:给你的 bot 随便发一句,然后打开
|
||
# https://api.telegram.org/bot<TOKEN>/getUpdates
|
||
# 返回的 result[0].message.chat.id 就是
|
||
export TG_TOKEN=""
|
||
export TG_CHAT=""
|
||
# 每笔名义额(USDT)。小额实盘先用小的,它只影响推送里的下单数量
|
||
export TG_NOTIONAL="200"
|
||
# 距「参考价成立」超过这么多秒就标为已失效。参考价是次根开盘价,
|
||
# 过了就不是回测那个成交价了
|
||
export TG_STALE_S="90"
|