Skip to content

Freqtrade 配置文件生成与说明

如何生成 config.json?

Freqtrade 提供了一个命令行工具,可一键生成默认配置模板,非常适合初学者快速开始。

bash
freqtrade new-config --config user_data/config.json

配置文件详细说明

以下是完整的配置文件示例,包含了详细的中文注释说明:

json
{
    "$schema": "https://schema.freqtrade.io/schema.json", // JSON Schema验证文件,用于配置文件格式验证
    
    // 基础交易配置
    "max_open_trades": 3, // 单位时间内最多持仓数量,建议新手设置为1-3
    "stake_currency": "USDT", // 基准货币,用于计算和显示
    "stake_amount": "unlimited", // 每笔交易的投入金额,unlimited表示使用可用余额,也可设置具体数值如100
    "tradable_balance_ratio": 0.99, // 可交易余额比例(0-1),控制总资金中用于交易的比例,建议0.8-0.9
    "fiat_display_currency": "USD", // 法币显示货币,用于利润等金额的显示
    
    // 模拟交易配置
    "dry_run": false, // 是否启用模拟交易,true为模拟,false为实盘,建议新手先true测试
    "dry_run_wallet": 1000, // 模拟交易起始资金,仅在dry_run=true时有效
    "cancel_open_orders_on_exit": false, // 退出时是否取消未成交订单
    
    // 交易模式配置
    "trading_mode": "futures", // 交易模式:spot(现货)或futures(期货)
    "margin_mode": "isolated", // 保证金模式:isolated(逐仓)或cross(全仓),仅期货模式有效
    
    // 订单超时配置
    "unfilledtimeout": {
        "entry": 10, // 入场订单超时时间(分钟)
        "exit": 10, // 出场订单超时时间(分钟)
        "exit_timeout_count": 0, // 出场超时重试次数,0表示无限重试
        "unit": "minutes" // 时间单位:minutes(分钟)、seconds(秒)
    },
    
    // 入场价格配置
    "entry_pricing": {
        "price_side": "same", // 价格方向:same(同侧)、other(对侧)、bid(买价)、ask(卖价)
        "use_order_book": true, // 是否使用订单簿定价
        "order_book_top": 1, // 使用订单簿前N档价格,1表示最优价格
        "price_last_balance": 0.0, // 最后价格平衡系数(0-1),影响价格选择
        "check_depth_of_market": {
            "enabled": false, // 是否启用市场深度检查
            "bids_to_ask_delta": 1 // 买卖盘深度差异阈值
        }
    },
    
    // 出场价格配置
    "exit_pricing":{
        "price_side": "same", // 价格方向:same(同侧)、other(对侧)、bid(买价)、ask(卖价)
        "use_order_book": true, // 是否使用订单簿定价
        "order_book_top": 1 // 使用订单簿前N档价格,1表示最优价格
    },
    
    // 交易所配置
    "exchange": {
        "name": "binance", // 交易所名称:binance、okx、huobi等
        "key": "", // API Key,需要在交易所申请
        "secret": "", // API Secret,需要妥善保管
        "ccxt_config": {}, // CCXT库的额外配置,如超时设置等
        "ccxt_async_config": {}, // CCXT异步配置
        "pair_whitelist": [ // 交易对白名单,明确指定要交易的币种
            "BTC/USDT:USDT",    // 比特币期货合约
            "ETH/USDT:USDT",    // 1. 现货交易对格式:BTC/USDT、ETH/USDT(直接买卖实际资产)
            "BNB/USDT:USDT",     // 2. 期货交易对格式:BTC/USDT:USDT、ETH/USDT:USDT(合约交易,带杠杆)
            "ADA/USDT:USDT",    // 3. 现货交易:需要持有实际币种,风险相对较低
            "SOL/USDT:USDT",    // 4. 期货交易:可以使用杠杆,收益和风险都被放大
            "XRP/USDT:USDT",    // 5. 期货交易需要配置trading_mode为"futures"和margin_mode
            "DOGE/USDT:USDT",   // 6. 注意:期货交易对名称通常带有":USDT"后缀,表示USDT保证金合约
        ],
        "pair_blacklist": [ // 交易对黑名单,使用正则表达式排除
            "BNB/.*", // 排除所有BNB交易对
            ".*/.*_BTC" // 排除以BTC为计价货币的交易对
        ]
    },
    
    // 交易对列表配置
    "pairlists": [
        {
            "method": "VolumePairList", // 交易对选择方法:VolumePairList(按成交量)、StaticPairList(静态列表)
            "number_assets": 20, // 选择交易对的数量
            "sort_key": "quoteVolume", // 排序键:quoteVolume(基准货币成交量)、baseVolume(交易货币成交量)
            "min_value": 0, // 最小值过滤,低于此值的交易对会被排除
            "refresh_period": 1800 // 刷新间隔(秒),多久更新一次交易对列表
        }
    ],
    
    // Telegram通知配置
    "telegram": {
        "enabled": false, // 是否启用Telegram通知
        "token": "", // Telegram Bot Token,通过@BotFather创建
        "chat_id": "" // Telegram Chat ID,用户或群组ID
    },
    
    // Web API服务器配置
    "api_server": {
        "enabled": false, // 是否启用Web API服务
        "listen_ip_address": "127.0.0.1", // 监听IP地址,0.0.0.0表示允许外网访问
        "listen_port": 8080, // 监听端口
        "verbosity": "error", // 日志级别:error、warning、info、debug
        "enable_openapi": false, // 是否启用OpenAPI文档
        "jwt_secret_key": "8bc8e0515989cb0ff3f9993c42e76fa1ceab0acfc14f70b53844b5ade4dea472", // JWT密钥,建议修改为随机字符串
        "ws_token": "PoWMzynXQUcQ16_-33gpt23PbrrEYP7etg", // WebSocket连接令牌
        "CORS_origins": [], // CORS允许的源,[]表示允许所有源
        "username": "freqtrade", // Web界面登录用户名,默认为freqtrade
        "password": "freqtrade" // Web界面登录密码,默认为freqtrade
    },
    
    // 机器人基础配置
    "bot_name": "freqtrade", // 机器人名称,在日志和Web界面显示
    "initial_state": "running", // 初始状态:running(运行)或stopped(停止)
    "force_entry_enable": false, // 是否强制启用入场信号,危险选项,建议保持false
    
    // 内部配置
    "internals": {
        "process_throttle_secs": 5 // 处理节流时间(秒),控制循环检查频率
    }
}

重要配置说明

1. 基础交易配置

  • max_open_trades: 控制同时持有的交易数量,建议新手设置为1-3
  • stake_amount: 每笔交易的金额,根据资金情况调整
  • tradable_balance_ratio: 可交易余额比例(0-1之间),控制总资金中用于交易的比例
    • 注意:这不是开仓保证金,而是控制可用交易资金的比例
    • 设置为 0.99 表示使用99%的可用余额进行交易,保留1%作为缓冲
    • 设置较低值(如0.8)可以保留更多资金作为风险缓冲
    • 建议新手设置为0.8-0.9,避免过度杠杆
    • 计算公式:实际可用交易金额 = 账户总余额 × tradable_balance_ratio
    • 资金限制示例
      • 账户余额:1000 USDT,tradable_balance_ratio:0.8 → 可用交易金额:800 USDT
      • 如果亏损后余额只剩80 USDT → 可用交易金额:80 × 0.8 = 64 USDT
      • 此时 stake_amount 为100,但实际可用资金只有64 USDT
      • 系统会自动调整:实际每笔投入金额 = min(100, 64÷3) = 21.33 USDT
  • dry_run: 建议保持为true,先进行模拟交易测试

2. 交易所配置

  • 交易所选择:支持币安(binance)、欧易(okx)等主流交易所
  • API密钥配置:需要在交易所申请API密钥并填入keysecret字段
  • 注意事项:API密钥需要开启交易权限,建议先在模拟环境测试
  • pair_whitelist: 选择要交易的币种,如BTC/USDT:USDT、ETH/USDT:USDT等
  • pair_blacklist: 排除不需要的交易对,使用正则表达式匹配
  • 重要提醒:交易对列表在模拟交易、真实交易和回测中都会使用
    • 回测时需要先下载相应的历史数据
    • 如果数据未下载,即使配置了交易对也无法进行回测

3. API服务器配置

  • 启用Web界面:将api_server.enabled设置为true
  • 安全设置:修改jwt_secret_key为安全的随机字符串
  • Web登录配置
    • username: Web界面登录用户名(默认:freqtrade)
    • password: Web界面登录密码(默认:freqtrade)
    • bot_name: 机器人名称,在Web界面显示
  • 访问地址:启动后可通过 http://127.0.0.1:8080 访问Web界面
  • 重要提醒:建议修改默认用户名和密码,确保安全性

4. Telegram通知

  • 如需实时通知,需要创建Telegram Bot并填写token和chat_id

交易所配置详解

支持的交易所

  • 币安 (binance):最常用的交易所之一
  • 欧易 (okx):支持期货和现货交易
  • 其他交易所:通过CCXT库支持的主流交易所

API密钥配置步骤

  1. 登录交易所官网
  2. 进入API管理页面
  3. 创建新的API密钥
  4. 开启交易权限(建议先在测试网测试)
  5. 将API Key和Secret填入配置文件

交易对配置说明

  • 白名单 (pair_whitelist):明确指定要交易的交易对
  • 黑名单 (pair_blacklist):使用正则表达式排除不需要的交易对
  • 数据下载:回测前必须先下载对应交易对的历史数据

常见问题

  • 如果配置了交易对但无法回测,通常是因为历史数据未下载
  • 建议先用少量交易对测试,确认配置正确后再扩展
  • API密钥需要妥善保管,不要提交到代码仓库

Web界面配置详解

启用Web界面

要使用Freqtrade的Web管理界面,需要配置以下关键参数:

json
"api_server": {
    "enabled": true,                     // 必须设置为true
    "username": "your_username",         // Web界面登录用户名
    "password": "your_password",         // Web界面登录密码
    "jwt_secret_key": "your_secure_key", // JWT安全密钥
    "listen_port": 8080                  // 访问端口
}

登录凭据说明

  • username: Web界面登录用户名(默认:freqtrade)
  • password: Web界面登录密码(默认:freqtrade)
  • bot_name: 机器人名称,在Web界面顶部显示

访问方式

  1. 启动Freqtrade机器人
  2. 打开浏览器访问:http://127.0.0.1:8080
  3. 使用配置的用户名和密码登录
  4. 登录后可以查看交易状态、历史记录、实时图表等

安全建议

  • 修改默认凭据:立即修改默认的用户名和密码
  • JWT密钥:使用强随机字符串作为jwt_secret_key
  • 网络安全:如需远程访问,请配置防火墙和HTTPS
  • 定期更新:定期更换密码和密钥

Web界面功能

  • 实时交易监控
  • 历史交易记录查看
  • 策略性能分析
  • 利润和亏损统计
  • 手动交易操作(谨慎使用)

下一步

了解配置文件后,您可以: