Freqtrade 代理配置指南(支持 Docker 与源码环境)
在使用 Freqtrade 进行量化交易时,如果你位于网络受限地区(例如中国大陆),你可能会遇到以下问题:
- 交易所 API 请求频繁超时
- 无法连接 HTX(火币)、Binance(币安)、OKX、KuCoin
- 数据拉取失败、行情延迟、订单提交失败
- Websocket 延迟或断连
这些问题通常可以通过为 Freqtrade 配置代理来解决。
本指南将详细介绍如何在:
- 源码运行模式(裸机)
- Docker 镜像运行模式
两种环境下正确配置 Freqtrade 的代理,包括:
- HTTP 代理
- HTTPS 代理
- SOCKS5 代理(FQ 工具常用)
并给出完整 config.json 示例。
🔧 1. 代理设置原理(重要)
Freqtrade 使用 ccxt 库与交易所交互,而 ccxt 支持代理配置参数:
ccxt_config.httpsProxy1
你只需要在 config.json 的 exchange.ccxt_config 中添加该字段,Freqtrade 的所有请求都会走代理。
🧪 2. 源码运行模式(裸机)
适用于:
- 使用
pip install freqtrade安装的用户 - 使用
git clone拉取源代码开发策略 - 在本地 Ubuntu / Mac / Windows 直接运行的环境
在裸机环境中,你可以直接使用本地代理地址,如:
127.0.0.1:1080
127.0.0.1:1087
127.0.0.1:78901
2
3
2
3
✅ 示例配置(源码运行)
json
{
"exchange": {
"name": "htx",
"key": "",
"secret": "",
"ccxt_config": {
"enableRateLimit": true,
"httpsProxy": "http://127.0.0.1:1087"
},
"ccxt_async_config": {},
"pair_whitelist": ["BTC/USDT", "ETH/USDT"],
"pair_blacklist": []
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
支持的代理格式:
| 类型 | 示例 |
|---|---|
| HTTP | "http://127.0.0.1:1087" |
| HTTPS | "https://127.0.0.1:1087" |
| SOCKS5 | "socks5://127.0.0.1:1080" |
🐳 3. Docker 模式配置代理(重点)
对于使用 Docker 启动的 Freqtrade,如:
bash
docker compose up -d1
你要注意:
⚠️ Docker 容器内部无法使用 127.0.0.1,因为那是容器自己的 localhost,而不是宿主机的 localhost。
因此,必须改用:
http://host.docker.internal:端口1
或者 Linux 下可能需要:
http://172.17.0.1:端口1
✅ 示例配置(Docker)
json
{
"exchange": {
"name": "htx",
"key": "",
"secret": "",
"ccxt_config": {
"enableRateLimit": true,
"httpsProxy": "http://host.docker.internal:1087"
},
"ccxt_async_config": {},
"pair_whitelist": ["BTC/USDT"],
"pair_blacklist": []
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
🔥 提示:macOS、Windows 的 Docker 都支持
host.docker.internal。 若你使用的是 Linux 且不支持此域名,可以用172.17.0.1替代。
🧭 如何验证代理配置是否成功?
你可以运行:
freqtrade console1
然后:
python
exchange.get_ticker("BTC/USDT")1
如果返回数据正常,则代理已生效。
如果报错超时或连接失败,请检查:
- 代理端口是否正确
- Docker 是否能访问宿主机代理
- 使用
curl测试宿主机代理是否正常
📌 常见问题(FAQ)
1. Freqtrade 支持 SOCKS5 吗?
✔️ 支持,只需把 URL 改成:
"socks5://host.docker.internal:1080"1
2. 为什么 Docker 不能使用 127.0.0.1?
因为容器内部的 127.0.0.1 是容器本身,而不是宿主机。
3. Websocket 也能走代理吗?
通过 ccxt.pro 访问 Websocket,也会自动走 httpsProxy。
🎉 总结
| 环境 | 代理地址 |
|---|---|
| 源码运行(裸机) | http://127.0.0.1:端口 |
| Docker 运行 | http://host.docker.internal:端口 或 http://172.17.0.1:端口 |
配置方式超简单,只需在 config.json 中加入:
json
"ccxt_config": {
"httpsProxy": "http://host:port"
}1
2
3
2
3
即可解决大多数交易所连接问题。