Freqtrade 作为一款开源加密货币交易机器人,依托 CCXT 库支持超过百家交易所,但不同平台存在独特的配置要求和限制。本文将详解各大主流交易所在 Freqtrade 中的关键配置细节与常见注意事项,助你优化交易设置。
核心配置基础
Freqtrade 通过 CCXT 库整合全球超 100 家加密货币交易所,但开发团队仅对部分平台进行了深度测试。实际使用中,用户可自行探索其他交易所并反馈使用体验。
通用交换配置模版
配置交易所时需提供基本凭据与参数。以 Binance 为例:
"exchange": {
"name": "binance",
"key": "你的API密钥",
"secret": "你的API私钥",
"ccxt_config": {},
"ccxt_async_config": {}
}速率限制设置
CCXT 的默认速率限制通常可靠,但若遭遇 DDOS 异常,可手动调整:
"exchange": {
"name": "kraken",
"key": "你的API密钥",
"secret": "你的API私钥",
"ccxt_config": {"enableRateLimit": true},
"ccxt_async_config": {
"enableRateLimit": true,
"rateLimit": 3100
}
}rateLimit 参数定义每次请求的等待毫秒数,也可通过设置 enableRateLimit 为 false 完全禁用。理想值取决于交易所与交易对数量,若遇封禁请逐步增加 rateLimit。
主流交易所专项配置
Binance
服务器限制:Binance 根据服务器地域限制 API 访问,受限地区包括加拿大、马来西亚、荷兰与美国等,具体清单需查阅其官方条款。
止损优势:支持交易所止损(stoploss_on_exchange),使用 stop-loss-limit 订单。期货市场中同时支持限价与市价止损单,可通过 order_types.stoploss 配置选择类型。
黑名单建议:推荐将 BNB 加入黑名单,除非愿意额外持有 BNB 支付手续费。若 BNB 不足,手续费将无法享受折扣,且 Freqtrade 不会自动购买 BNB。
站点区分:
- 国际用户使用 binance.com,交易所 ID 为
binance - 美国用户使用 binance.us,交易所 ID 为
binanceus
RSA 密钥:支持 RSA API 密钥,建议通过环境变量设置:
export FREQTRADE__EXCHANGE__SECRET="$(cat ./rsa_binance.private)"期货交易:需遵守复杂的 量化规则,违规会导致交易限制。必须使用订单簿定价:
"entry_pricing": {
"use_order_book": true,
"order_book_top": 1
},
"exit_pricing": {
"use_order_book": true,
"order_book_top": 1
}Kraken
支持 GTC、IOC 和 PO 等订单时限设置,并提供交易所止损功能,可选择限价或市价止损单。
历史数据限制:Kraken API 仅提供 720 根历史 K 线,足以支持实盘与回测,但需使用 --dl-trades 下载交易数据。为加速可下载官方 交易压缩文件,存放于 user_data/data/kraken/trades_csv 并转换格式:
freqtrade convert-trade-data --exchange kraken --format-from kraken_csv --format-to feather
freqtrade trades-to-ohlcv -p BTC/EUR BCH/EUR --exchange kraken -t 1m 5m 15m 1h速率调整:rateLimit 配置单位为毫秒,遇“超出频率限制”错误时应增加该值。
Kucoin
需提供 API 密码:
"exchange": {
"name": "kucoin",
"key": "API密钥",
"secret": "API私钥",
"password": "API密码"
}支持交易所止损,建议将 KCS 加入黑名单以避免手续费问题。
OKX
需配置 API 密码:
"exchange": {
"name": "okx",
"key": "API密钥",
"secret": "API私钥",
"password": "API密码"
}数据限制:API 每次仅返回 100 根 K 线,回测数据量较低。期货模式下需注意仓位模式设置(Buy/Sell 或对冲模式),且仅提供最近 3 个月的标记价格数据。
Gate.io
支持交易所止损,但若使用 POINT 支付手续费,需通过 exchange.unknown_fee_rate 指定与计价货币的汇率。API 密钥需具备以下权限:
- 现货或永续期货交易(读写)
- 钱包(只读)
- 账户(只读)
Bybit
期货交易仅支持 USDT 市场,使用隔离模式。启动时 Freqtrade 将设置“单向交易”模式,API 密钥需具备合约订单与仓位的读写权限。强烈建议使用独立子账户并启用 IP 白名单。
Hyperliquid(去中心化交易所)
作为 DEX,需使用钱包私钥签名:
"exchange": {
"name": "hyperliquid",
"walletAddress": "以太坊钱包地址",
"privateKey": "API私钥"
}不支持市价单,历史数据仅限 5000 根 K 线。务必通过 API 生成器 创建专用交易钱包,勿使用主钱包私钥。
常见问题
如何处理 Nonce 错误?
若持续遇到 Nonce 错误(如 InvalidNonce),建议重新生成 API 密钥,而非尝试重置 Nonce。
交易所返回不完整K线怎么办?
大多数交易所通过OHLCV接口返回当前未完成的K线。Freqtrade默认会移除最后一根认定为未完成的K线,避免重复绘制风险。如需最新价格,可通过策略内的数据提供者获取。
如何测试高级订单类型?
使用 _ft_has_params 参数覆盖默认设置,例如在Kraken上测试FOK订单并调整K线限制:
"exchange": {
"name": "kraken",
"_ft_has_params": {
"order_time_in_force": ["GTC", "FOK"],
"ohlcv_candle_limit": 200
}
}👉 查看实时配置工具
为何要避免在同一账户进行手动交易?
Freqtrade假定账户由机器人独占操作。使用统一账户时,强烈建议为每个机器人创建独立子账户,混合操作可能导致未预期行为。
去中心化所有哪些特殊注意事项?
需警惕供应链攻击(如pip包污染),确保环境安全。切勿将资金钱包私钥用于交易,应使用API钱包并仅转入交易所需资金,盈利后及时转回冷钱包。
通过合理配置各交易所特有参数,并遵循最佳安全实践,可最大化发挥 Freqtrade 的交易效能同时保障资产安全。