加密货币交易平台在 Freqtrade 中的配置要点与注意事项

·

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。

站点区分

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 的交易效能同时保障资产安全。