第 10 章 · 01 Telegram 机器人控制 本节摘要:Telegram 是 freqtrade 最常用的远程控制方式——创建一个 Bot、拿到 token 和 chatid 填进配置,就能用手机随时查状态( )、看盈亏( )、手动平仓( )、开关交易( / )。本节讲清完整流程:用 BotFather 创建 bot 拿 token、用 userinfobot 拿 chatid、配置 块(含通知噪音控制和自定义键盘)、掌握常用命令分类(系统、状态、修改交易、统计),以及安全注意事项(群组权限、authorizedusers)。读完你能用手机把机器人管起来。 内容来源:原项目文档 ,汉化并套用体系化模板。 ⚠️ 风险提示:Telegram 群组里任何成员都能向 bot 发命令。
本节摘要:Telegram 是 freqtrade 最常用的远程控制方式——创建一个 Bot、拿到 token 和 chat_id 填进配置,就能用手机随时查状态(
/status)、看盈亏(/profit)、手动平仓(/forceexit)、开关交易(/start//stop)。本节讲清完整流程:用 BotFather 创建 bot 拿 token、用 userinfobot 拿 chat_id、配置telegram块(含通知噪音控制和自定义键盘)、掌握常用命令分类(系统、状态、修改交易、统计),以及安全注意事项(群组权限、authorized_users)。读完你能用手机把机器人管起来。
内容来源:原项目文档
docs/telegram-usage.md,汉化并套用体系化模板。
⚠️ 风险提示:Telegram 群组里任何成员都能向 bot 发命令。用群组控制时要确保信任所有成员,或用
authorized_users限制可发命令的用户。
阅读完本节,你应当能够:
telegram 配置。第 1 步:创建 Telegram bot
/newbot。Freqtrade bot)和用户名(必须以 bot 结尾,如 my_freqtrade_bot)。22222222:APIToken)。复制保存。第 2 步:获取 chat_id
chat_id。/tg_info,bot 会返回群 id(形如 -1001332619709)和可选的 topic_id。"telegram": { "enabled": true, "token": "你的API token", "chat_id": "你的chat_id", "allow_custom_messages": true }
💡 群组 chat_id 带负号,整个值(含负号)作为字符串填入。群组里还可以用
topic_id指定在哪个话题(thread)里发消息。
freqtrade 默认会对很多事件发通知(开仓、平仓、止损、保护触发等),可能很吵。用 notification_settings 精细控制,每个事件有三档:
on:发消息并提醒(有声音/震动)。silent:发消息但不提醒(无声)。off:不发该类消息。"telegram": { "enabled": true, "token": "...", "chat_id": "...", "notification_settings": { "status": "silent", "warning": "on", "startup": "off", "entry": "silent", "entry_fill": "on", "exit": { "roi": "silent", "emergency_exit": "on", "stop_loss": "on", "trailing_stop_loss": "on", "*": "off" }, "exit_fill": "off", "protection_trigger": "off", "strategy_msg": "off" } }
关键设置:
entry 是下单时通知,entry_fill 是成交时通知(后者默认 off,需显式开)。exit 可以按出场原因细分:止损、ROI、紧急平仓等用不同级别;通配符 * 设未明确列出的原因的默认级别。strategy_msg 控制策略里 self.dp.send_msg() 发的自定义消息。balance_dust_level 定义 /balance 命令把多少余额以下的币当「灰尘」显示。Telegram 命令分几大类。最常用的几个:
系统命令
| 命令 | 作用 |
|---|---|
/start |
启动交易者(running 状态) |
/pause / /stopentry / /stopbuy |
暂停开新仓,但已有仓位继续按规则管理 |
/stop |
完全停止交易者 |
/reload_config |
重载配置文件 |
/show_config |
显示当前关键配置 |
/logs [limit] |
显示最近日志 |
状态查询
| 命令 | 作用 |
|---|---|
/status |
列出所有开仓(每笔的方向、杠杆、入场价、当前价、浮盈、止损) |
/status <trade_id> |
查指定仓位 |
/status table |
表格形式看所有开仓 |
/count |
已用/可用仓位数 |
/locks |
查看被锁定的交易对 |
/unlock <pair 或 lock_id> |
解锁 |
/whitelist / /blacklist [pair] |
看白/黑名单,黑名单可加币 |
修改交易
| 命令 | 作用 |
|---|---|
/forceexit <trade_id> / /fx <trade_id> |
立即平指定仓位(忽略 ROI) |
/forceexit all / /fx all |
平所有仓位 |
/forcelong <pair> [rate] |
强制开多(需 force_entry_enable: true) |
/forceshort <pair> [rate] |
强制开空(需合约模式) |
/delete <trade_id> |
从数据库删除指定交易 |
/reload_trade <trade_id> |
从交易所重载交易(实盘用) |
/cancel_open_order <trade_id> |
取消挂单 |
💡
/forceexit(别名/fx)不带参数会弹出按钮列表让你选要平哪个,紧急情况用/fx更快。
统计
| 命令 | 作用 |
|---|---|
/profit [n] |
最近 n 天的盈亏汇总(ROI、总交易数、胜率、盈亏比、最大回撤等) |
/profit_long [n] / /profit_short [n] |
分多空方向看盈亏 |
/performance |
按交易对分组的已平仓盈亏排名 |
/balance / /balance full |
各币种余额(bot 管理 / 账户全部) |
/daily [n] / /weekly [n] / /monthly [n] |
按日/周/月看盈亏 |
/stats |
按出场原因的胜负统计 + 平均持仓时长 |
/profit 的输出很丰富,包含:ROI(每笔平均 + 基于初始资本的累计)、总交易数、平均持仓时长、最佳交易对、交易量、盈亏比(profit factor)、胜率、期望值(expectancy)、最大回撤。
可以自定义 Telegram 的快捷按钮键盘:
"telegram": { "keyboard": [ ["/daily", "/stats", "/balance", "/profit"], ["/status table", "/performance"], ["/reload_config", "/count", "/logs"] ] }
⚠️ 键盘只支持预定义命令,不支持命令参数。允许的命令见文档列表。
marketdir(手动市场方向):/marketdir [long | short | even | none] 设置一个用户管理的「市场方向」变量,策略里用 self.market_direction 读取。可用来人工干预 bot 的多空倾向。
# 策略里 if self.market_direction == "long": # 只做多 elif self.market_direction == "short": # 只做空
⚠️
market_direction重启 bot 后会重置(不持久化),且回测时不可用(这是手动变量)。用它的策略回测结果可能不可复现。
用群组控制 bot 时,所有群成员默认都能向 bot 发命令。两种防护:
1. 限制授权用户:用 authorized_users 白名单,只有列出的 user id 能发命令:
"telegram": { "chat_id": "-1001332619709", "topic_id": "3", "authorized_users": ["1234567"] }
authorized_users 为空数组则没人能发命令(只能收通知)。
2. 信任群成员:如果不开 authorized_users,确保群里每个人都可信。
⚠️ 用群组等于把 bot 控制权分享给所有成员。别在公开群或半公开群里跑生产 bot。
/newbot 拿 token;userinfobot 拿个人 chat_id;群组用 /tg_info 拿群 id(带负号)和 topic_id。notification_settings 每个事件三档(on/silent/off);entry vs entry_fill;exit 可按原因细分,* 是通配默认。/start/stop/pause/reload_config)、状态(/status/count/locks)、交易(/forceexit/fx/forcelong)、统计(/profit/performance/daily)。keyboard 数组定义快捷按钮,只支持预定义命令;/marketdir 手动设多空倾向(不持久、回测不可用)。authorized_users 白名单限制,或确保信任所有成员。下一节,我们看 FreqUI 与 REST API——更丰富的 Web 可视化界面与编程化控制。