🔌 连接交易所就靠它!Freqtrade 交易所配置详解
Freqtrade 通过 config.json
中的 exchange
和 ccxt_config
配置项与交易所建立连接。这一步是策略执行的前提,涉及 API 密钥、WebSocket、频率控制等多个关键参数。
本文将详细介绍如何配置交易所接入参数,以及启用更高效、稳定连接的推荐做法。
🏦 exchange 配置项详解
json
"exchange": {
"name": "binance", // 交易所名称,如 binance、bybit、okx 等
"key": "your_api_key", // 你的 API Key
"secret": "your_api_secret", // API 密钥
"password": "your_password", // 某些交易所(如 OKX)必填,其他可省略
"ccxt_config": { ... }, // CCXT 扩展配置(详见下节)
"pair_whitelist": [ "BTC/USDT" ],// 可交易的币对列表
"pair_blacklist": [ "*/BNB" ] // 屏蔽的币对(可选)
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
📌 参数说明
字段名 | 描述 |
---|---|
name | 交易所英文名称(必须支持 CCXT) |
key | 交易所提供的 API Key,用于交易权限 |
secret | 与 key 配套的密钥 |
password | 第三项认证,适用于 OKX、bitget 等(非必填) |
pair_whitelist | 白名单,只允许交易列表内币对 |
pair_blacklist | 黑名单,排除部分币对(如低流动性或不稳定币) |
🧠 使用建议
- API 权限需包含 读取+交易,否则无法实盘下单;
- 为不同策略使用独立 API 密钥,便于权限隔离和风险控制;
- 请不要将 config.json 上传到 GitHub 或其他公共平台!
⚙️ ccxt_config — 高级连接控制项
ccxt_config
是 Freqtrade
调用 CCXT
库时的配置项,可对数据请求频率、实时性、市场类型等进行优化。
json
"exchange": {
"ccxt_config": {
"enableRateLimit": true, // 开启限速 防止IP被封
},
"enable_ws": true, // 是否启用 WebSocket 连接,提升数据实时性
"markets_refresh_interval": 60 // 交易对列表刷新间隔,单位为秒
}
1
2
3
4
5
6
7
2
3
4
5
6
7
⛓️ enableRateLimit — 启用请求限频(推荐开启)
enableRateLimit
— 启用请求限频(推荐开启)
json
"exchange": {
"enableRateLimit": true
}
1
2
3
2
3
- 控制是否让 Freqtrade 自动遵守交易所的 API 速率限制;
- 防止触发交易所封 IP / 禁止交易的风控机制;
- 强烈建议开启!
📡 enable_ws — 启用 WebSocket 实时数据
json
"exchange": {
"enable_ws": false,
},
1
2
3
2
3
- 启用后,Freqtrade 会通过 WebSocket 获取实时行情和订单状态;
- 比 REST API 更快、延迟更低,适合高频策略;
- 需交易所支持,且部分交易所需额外权限(如 OKX);
- 若策略无高频需求,也可关闭。
🔁 markets_refresh_interval — 市场信息刷新间隔
json
"exchange": {
"markets_refresh_interval": 60 // 交易对列表刷新间隔,单位为秒
}
1
2
3
2
3
- 单位为秒;
- 控制多久重新拉取一次交易对数据;
- 默认 60 秒,足够稳定;
- 设置太低可能导致 API 频率过高被限流。
🧪 检查配置是否生效
配置完成后,可使用如下命令测试交易所是否连接成功:
bash
freqtrade list-markets --config user_data/config.json
1
✅ 成功返回交易对列表,说明 API Key、市场类型配置正常 ❌ 如果提示 authentication error
或 403
,请检查:
- 是否填写正确的 API Key / Secret
- 是否赋予交易权限
- 是否启用了两步验证限制了 API 使用
✅ 推荐配置组合
json
"exchange": {
"name": "binance",
"key": "your_api_key",
"secret": "your_api_secret",
"enable_ws": true,
"markets_refresh_interval": 60,
"ccxt_config": {
"enableRateLimit": true,
"options": {
"defaultType": "spot"
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
🧠 小结清单
参数名 | 功能描述 | 建议设置 |
---|---|---|
exchange.name | 连接交易所名 | 如 binance , bybit |
exchange.key/secret | API 授权信息 | 必填 |
enableRateLimit | 是否限制请求频率,防止被风控 | true |
enable_ws | 是否启用 WebSocket 实时数据 | true (如支持) |
markets_refresh_interval | 多久刷新一次币对信息 | 一般设置为 60 秒 |