最近折腾了一套 Freqtrade + OKX 永续合约自动交易环境,发现真正容易踩坑的不是策略文件本身,而是部署、权限、通知、重启、日志和服务器资源这些工程细节。
这篇文章不讲收益,也不推荐任何策略,只记录我自己在部署 Freqtrade、OKX、Docker、Telegram 通知时遇到的一些问题。自动交易风险很高,技术环境配置正确只是底线,不能等同于稳定赚钱。
# 1. OKX 合约模式一定要确认
Freqtrade 连接 OKX 时,现货、杠杆、永续合约不是一套东西。
我遇到过的问题是:配置里看起来写了 OKX,但实际 ccxt 没有按 swap/futures 的方式读取市场,结果 pair 名、杠杆、保证金模式全部对不上。
需要重点确认:
- trading_mode 是不是 futures
- margin_mode 是 isolated 还是 cross
- ccxt options 里有没有设置合约市场类型
- pair 格式是不是类似 BTC/USDT:USDT
如果这里错了,后面策略再漂亮也没意义。
# 2. API 权限不要乱开
交易所 API 只需要交易权限,不要开提现权限。
自动交易机器人不应该拥有提现权限,也不应该把主账户所有资金一次性放进去。
比较稳的做法是:
- 单独创建 API key
- 只开交易权限
- 关闭提现权限
- 能绑定 IP 就绑定服务器 IP
- 实盘账户和研究账户分开
- 小额启动,确认日志、订单、止损行为都正常后再考虑加资金
# 3. Telegram 启动了不代表通知正常
我踩过一个很普通但很烦的坑:bot 看起来启动了,日志里也没有明显报错,但 Telegram 没收到关键通知。
需要单独检查:
- token 是否正确
- chat_id 是否正确
- 机器人是否已经和用户或群组建立对话
- Freqtrade 的 rpc.telegram 是否真正启用
- /status、/balance、/profit 等命令是否可用
如果是实盘,通知不是可有可无。至少启动、停止、开仓、平仓、异常都应该能收到。
# 4. 小服务器不要跑大规模回测
我用过 2 核 2G 左右的小服务器跑实盘。跑一个轻量容器还行,但不适合在上面做大规模回测。
尤其是:
- 很多 pair
- 5m 级别数据
- 跨几百天
- 多参数网格搜索
这类任务很容易吃满内存。研究和实盘最好分开:本地机器或专门机器做回测,服务器只跑 live bot。
# 5. startup candles 和交易所 K 线限制会影响启动
有些策略需要比较长的历史 K 线才能计算指标。问题是交易所接口一次能提供的 K 线数量有限。
如果策略要求的 startup candles 太多,Freqtrade 可能直接拒绝启动,日志里会出现类似“需要的 candle 数超过交易所可提供范围”的错误。
这类问题不要硬改参数,要确认:
- 策略真实需要多少根 K 线
- 实盘和回测是否一致
- 是否有缓存指标或预计算文件
- 改动后是否需要重新回测
# 6. Docker 必须设置重启策略
服务器重启、Docker 重启、容器异常退出,这些事情早晚会发生。
建议至少检查:
```bash
docker compose ps
docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' your-container-name
```
我一般会设置:
```yaml
restart: unless-stopped
```
这样服务器重启后,机器人能自动恢复。
# 7. 日志不限制,时间长了会写爆磁盘
实盘容器不是跑一天两天,日志会一直增长。小服务器磁盘本来就不大,如果 Docker 日志不限制,几周几个月后可能会把磁盘吃满。
可以在 compose 里限制日志:
```yaml
logging:
driver: json-file
options:
max-size: "20m"
max-file: "3"
```
同时定期看:
```bash
docker system df
df -h
```
# 8. 健康检查比“能启动”更重要
我后来会给 live bot 加一个简单健康检查:
- 容器是否 running
- 配置文件是否存在
- 信号文件是否新鲜
- pair 数量是否异常
- 最近日志是否出现 ERROR/CRITICAL
- Telegram 是否可用
这类检查可以用 cron 每 15 分钟跑一次,发现异常就通知。
# 9. 实盘前我会看的清单
我的基本检查清单是:
- dry_run 是否真的关闭或打开,别搞反
- 策略名是否是预期策略
- timeframe 是否正确
- stoploss 是否被配置覆盖成预期值
- max_open_trades 是否正确
- 杠杆是否由策略实际读取到
- isolated/cross 是否正确
- Telegram 是否能收到命令响应
- stoploss_on_exchange 是否符合预期
- API 是否没有提现权限
- 容器是否开机自启
- 日志是否限流
# 结尾
Freqtrade / OKX / Binance 这类自动交易环境,难点不只是“跑起来”,而是让它在小服务器上长期、可监控、可恢复地跑。
我最近把 Docker、Freqtrade、OKX/Binance API、Telegram 通知、开机自启、健康检查、日志排查这些流程整理成了一套部署和排错服务。
只做技术部署和排错,不承诺收益,不代客理财,不接触提现权限。
如果你也卡在 Freqtrade / OKX / Binance 自动交易部署,可以把启动日志和配置关键项发我,我可以先帮你判断是交易所配置、API 权限、pairlist、strategy,还是服务器环境的问题。