Freqtrade环境搭建

2352 字
12 分钟
Freqtrade环境搭建

安装 Freqtrade#

Terminal window
# Download `develop` branch of freqtrade repository
git clone https://github.com/freqtrade/freqtrade.git
# Enter downloaded directory
cd freqtrade
# create virtualenv in directory /freqtrade/.venv
python3 -m venv .venv
# run virtualenv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt
# install freqtrade
python3 -m pip install -e .

验证 Freqtrade 安装#

Terminal window
# 1. 检查版本
freqtrade --version
# 输出:freqtrade 2025.9
# 2. 查看帮助信息
freqtrade --help
# 输出:显示所有可用命令

初始化 Freqtrade 项目#

Terminal window
# 1. 创建项目目录
mkdir ~/freqtrade-bot
cd ~/freqtrade-bot
# 2. 创建必要的子目录
freqtrade create-userdir --userdir user_data
# 3. 查看目录结构
tree user_data -L 2
# 输出:
# user_data/
# ├── backtest_results/
# ├── data/
# ├── freqaimodels/
# ├── hyperopt_results/
# ├── hyperopts/
# ├── logs/
# ├── notebooks/
# ├── plot/
# └── strategies/

目录说明:#

目录用途
strategies/存放交易策略文件
data/存放下载的历史数据
backtest_results/存放回测结果
logs/存放日志文件
hyperopts/存放参数优化配置
plot/存放生成的图表

创建配置文件#

注意:要在freqtrade-bot文件夹下进行创建配置文件

Terminal window
# 1. 生成示例配置文件
freqtrade new-config --config config.json
# 系统会询问一系列问题,建议设置如下:

交互式配置(推荐设置)#

Terminal window
? Do you want to use Dry-run (simulated trades)?
选择: Yes ← 模拟交易模式
? Please insert your stake currency:
输入: USDT ← 使用 USDT 作为计价货币
? Please insert your stake amount (Number or 'unlimited'):
输入: 100 ← 每笔交易 100 USDT
? Please insert max_open_trades (Integer or 'unlimited'):
输入: 3 ← 最多同时持仓 3 个
? Time Have your strategy define timeframe
输入: 5m ← 使用 5 分钟时间框架
? Please insert your display currency:
输入: USD ← 显示美元
? Select exchange
选择: binance ← 选择币安交易所
? Do you want to trade Futures?
选择: No ← 暂时不做合约
? Do you want to enable Telegram?
选择: No ← 暂时不配置 Telegram
? Do you want to enable the REST API?
选择: No ← 暂时不启用 API
? Do you want to enable the Plot dataframe
选择: Yes ← 启用图表功能

生成的json:#

{
"$schema": "https://schema.freqtrade.io/schema.json ",
"max_open_trades": 3, // 最大同时持仓数量
"stake_currency": "USDT", // 交易计价货币
"stake_amount": 100, // 每笔交易投入金额
"tradable_balance_ratio": 0.99, // 可用于交易的资金比例(99%)
"fiat_display_currency": "USD", // 法币显示货币
"dry_run": true, // 模拟交易模式(实盘设为false)
"dry_run_wallet": 1000, // 模拟账户初始资金(USDT)
"cancel_open_orders_on_exit": false, // 程序退出时是否取消未完成订单
"trading_mode": "futures", // 交易模式: 期货合约
"margin_mode": "isolated", // 保证金模式: 逐仓
"unfilledtimeout": { // 订单超时设置
"entry": 10, // 入场订单超时时间
"exit": 10, // 出场订单超时时间
"exit_timeout_count": 0, // 出场超时次数限制
"unit": "minutes" // 超时时间单位
},
"entry_pricing": { // 入场价格设置
"price_side": "same", // 价格方向: 同向
"use_order_book": true, // 使用订单簿定价
"order_book_top": 1, // 使用订单簿第1档价格
"price_last_balance": 0.0, // 最新价格平衡系数
"check_depth_of_market": { // 市场深度检查
"enabled": false, // 是否启用
"bids_to_ask_delta": 1 // 买卖盘价差阈值
}
},
"exit_pricing": { // 出场价格设置
"price_side": "same", // 价格方向: 同向
"use_order_book": true, // 使用订单簿定价
"order_book_top": 1 // 使用订单簿第1档价格
},
"exchange": { // 交易所配置
"name": "binance", // 交易所名称: 币安
"key": "", // API密钥
"secret": "", // API密钥
"ccxt_config": {}, // CCXT同步配置
"ccxt_async_config": {}, // CCXT异步配置
"pair_whitelist": [ // 交易对白名单
"BTC/USDT",
"ETH/USDT",
"SOL/USDT",
"XRP/USDT"
],
"pair_blacklist": [ // 交易对黑名单
"BNB/.*" // 排除所有BNB相关交易对
]
},
"pairlists": [ // 交易对列表配置
{
"method": "StaticPairList", // 只使用静态白名单的 pair_whitelist
"number_assets": 20, // 选取前20个交易对
"sort_key": "quoteVolume", // 排序依据: 计价货币交易量
"min_value": 0, // 最小交易量阈值
"refresh_period": 1800 // 刷新周期(秒)
}
],
"telegram": { // Telegram通知配置
"enabled": false, // 是否启用
"token": "", // Bot Token
"chat_id": "" // 聊天ID
},
"api_server": { // API服务器配置
"enabled": false, // 是否启用
"listen_ip_address": "127.0.0.1", // 监听IP
"listen_port": 8080, // 监听端口
"verbosity": "error", // 日志详细程度
"enable_openapi": false, // 是否启用OpenAPI
"jwt_secret_key": "50396f9d15b36a130ea5aa1c7b3f82e890407817eb8fdf43b2a41b8625df3d64", // JWT密钥
"ws_token": "bTg6lfzaXkIcPBFlF4I8HGaFPW8UjCQOYQ", // WebSocket令牌
"CORS_origins": [], // 跨域来源
"username": "", // 用户名
"password": "" // 密码
},
"bot_name": "freqtrade", // 机器人名称
"initial_state": "running", // 初始状态: 运行中
"force_entry_enable": false, // 是否启用强制入场
"internals": { // 内部参数
"process_throttle_secs": 5 // 处理节流间隔(秒)
}
}

注意事项#

现货写法:

"pair_whitelist": [
"BTC/USDT",
"ETH/USDT",
"SOL/USDT",
"XRP/USDT"
],

合约写法:

"pair_whitelist": [
"BTC/USDT:USDT",
"ETH/USDT:USDT",
"SOL/USDT:USDT",
"XRP/USDT:USDT"
],

回测只使用静态白名单币种:

"pairlists": [ // 交易对列表配置
{
"method": "StaticPairList", // 只使用静态白名单的 pair_whitelist

下载示例策略#

官方策略仓库:https://github.com/freqtrade/freqtrade-strategies

Terminal window
# 1. 下载官方策略仓库
cd user_data/strategies
wget https://raw.githubusercontent.com/freqtrade/freqtrade-strategies/main/user_data/strategies/Strategy001.py
# 2. 再次列出策略
freqtrade list-strategies -c config.json

测试数据下载#

Terminal window
# 下载 BTC/USDT 最近 7 天的 5 分钟数据
freqtrade download-data -c config.json --days 7 --timeframes 5m

验证数据下载成功#

Terminal window
ls user_data/data/binance/futures/
# 输出示列:
BTC_USDT_USDT-1h-funding_rate.feather SOL_USDT_USDT-1h-funding_rate.feather
BTC_USDT_USDT-1h-mark.feather SOL_USDT_USDT-1h-mark.feather
BTC_USDT_USDT-5m-futures.feather SOL_USDT_USDT-5m-futures.feather
ETH_USDT_USDT-1h-funding_rate.feather XRP_USDT_USDT-1h-funding_rate.feather
ETH_USDT_USDT-1h-mark.feather XRP_USDT_USDT-1h-mark.feather
ETH_USDT_USDT-5m-futures.feather XRP_USDT_USDT-5m-futures.feather

运行回测#

Terminal window
freqtrade backtesting -c config.json --strategy Strategy001

回测报告#

Terminal window
"D:\CodeEditor\Projects\FreqTrade\freqtrade\freqtrade-bot\user_data\backtest_results\backtest-result-2026-02-08_
10-44-11.meta.json"
Result for strategy Strategy001
BACKTESTING REPORT
┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ Win Draw Loss ┃
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win% ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━┩
│ SOL/USDT:USDT │ 4 │ -1.03 │ -4.155 │ -0.42 │ 19:45:00 │ 3 0 1 │
│ │ │ │ │ │ │ 75.0 │
│ BTC/USDT:USDT │ 5 │ -1.41 │ -5.902 │ -0.59 │ 22:23:00 │ 4 0 1 │
│ │ │ │ │ │ │ 80.0 │
│ ETH/USDT:USDT │ 6 │ -1.04 │ -6.090 │ -0.61 │ 5:10:00 │ 4 0 2 │
│ │ │ │ │ │ │ 66.7 │
│ XRP/USDT:USDT │ 8 │ -3.05 │ -24.376 │ -2.44 │ 13:09:00 │ 4 0 4 │
│ │ │ │ │ │ │ 50.0 │
│ TOTAL │ 23 │ -1.82 │ -40.523 │ -4.05 │ 14:13:00 │ 15 0 8 │
│ │ │ │ │ │ │ 65.2 │
└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────┘
LEFT OPEN TRADES REPORT
┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ Win Draw Loss ┃
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win% ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━┩
│ BTC/USDT:USDT │ 1 │ 0.07 │ 0.046 │ 0.0 │ 14:00:00 │ 1 0 0 │
│ │ │ │ │ │ │ 100 │
│ ETH/USDT:USDT │ 1 │ -0.12 │ -0.121 │ -0.01 │ 0:35:00 │ 0 0 1 │
│ │ │ │ │ │ │ 0 │
│ XRP/USDT:USDT │ 1 │ -0.13 │ -0.135 │ -0.01 │ 0:50:00 │ 0 0 1 │
│ │ │ │ │ │ │ 0 │
│ TOTAL │ 3 │ -0.06 │ -0.210 │ -0.02 │ 5:08:00 │ 1 0 2 │
│ │ │ │ │ │ │ 33.3 │
└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────┘
ENTER TAG STATS
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ OTHER │ 23 │ -1.82 │ -40.523 │ -4.05 │ 14:13:00 │ 15 0 8 │
│ │ │ │ │ │ │ 65.2 │
│ TOTAL │ 23 │ -1.82 │ -40.523 │ -4.05 │ 14:13:00 │ 15 0 8 │
│ │ │ │ │ │ │ 65.2 │
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴───────────────────────┘
EXIT REASON STATS
┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ Win Draw Loss ┃
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win% ┃
┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━┩
│ roi │ 14 │ 1.34 │ 17.771 │ 1.78 │ 2:18:00 │ 14 0 0 │
│ │ │ │ │ │ │ 100 │
│ force_exit │ 3 │ -0.06 │ -0.210 │ -0.02 │ 5:08:00 │ 1 0 2 │
│ │ │ │ │ │ │ 33.3 │
│ stop_loss │ 6 │ -10.07 │ -58.084 │ -5.81 │ 1 day, 22:36:00 │ 0 0 6 │
│ │ │ │ │ │ │ 0 │
│ TOTAL │ 23 │ -1.82 │ -40.523 │ -4.05 │ 14:13:00 │ 15 0 8 │
│ │ │ │ │ │ │ 65.2 │
└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────┘
MIXED TAG STATS
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ Tot Profit ┃ ┃ ┃ Win Draw ┃
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ USDT ┃ Tot Profit % ┃ Avg Duration ┃ Loss Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ │ roi │ 14 │ 1.34 │ 17.771 │ 1.78 │ 2:18:00 │ 14 0 │
│ │ │ │ │ │ │ │ 0 100 │
│ │ force_exit │ 3 │ -0.06 │ -0.210 │ -0.02 │ 5:08:00 │ 1 0 │
│ │ │ │ │ │ │ │ 2 33.3 │
│ │ stop_loss │ 6 │ -10.07 │ -58.084 │ -5.81 │ 1 day, │ 0 0 │
│ │ │ │ │ │ │ 22:36:00 │ 6 0 │
│ TOTAL │ │ 23 │ -1.82 │ -40.523 │ -4.05 │ 14:13:00 │ 15 0 │
│ │ │ │ │ │ │ │ 8 65.2 │
└───────────┴─────────────┴────────┴──────────────┴──────────────┴──────────────┴──────────────┴─────────────┘
SUMMARY METRICS
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Metric ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Backtesting from │ 2026-02-01 00:00:00 │
│ Backtesting to │ 2026-02-08 02:30:00 │
│ Trading Mode │ Isolated Futures │
│ Max open trades │ 3 │
│ │ │
│ Total/Daily Avg Trades │ 23 / 3.29 │
│ Starting balance │ 1000 USDT │
│ Final balance │ 959.477 USDT │
│ Absolute profit │ -40.523 USDT │
│ Total profit % │ -4.05% │
│ CAGR % │ -88.43% │
│ Sortino │ -26.39 │
│ Sharpe │ -23.15 │
│ Calmar │ -196.76 │
│ SQN │ -1.73 │
│ Profit factor │ 0.31 │
│ Expectancy (Ratio) │ -1.76 (-0.24) │
│ Avg. daily profit │ -5.789 USDT │
│ Avg. stake amount │ 93.036 USDT │
│ Total trade volume │ 4243.198 USDT │
│ │ │
│ Best Pair │ SOL/USDT:USDT -0.42% │
│ Worst Pair │ XRP/USDT:USDT -2.44% │
│ Best trade │ XRP/USDT:USDT 3.00% │
│ Worst trade │ BTC/USDT:USDT -10.10% │
│ Best day │ 5.687 USDT │
│ Worst day │ -26.157 USDT │
│ Days win/draw/lose │ 2 / 2 / 4 │
│ Min/Max/Avg. Duration Winners │ 0d 00:35 / 0d 14:00 / 0d 03:05 │
│ Min/Max/Avg. Duration Losers │ 0d 00:35 / 3d 18:55 / 1d 11:08 │
│ Max Consecutive Wins / Loss │ 13 / 3 │
│ Rejected Entry signals │ 8 │
│ Entry/Exit Timeouts │ 0 / 0 │
│ │ │
│ Min balance │ 944.725 USDT │
│ Max balance │ 1000.991 USDT │
│ Max % of account underwater │ 5.62% │
│ Absolute drawdown │ 56.266 USDT (5.62%) │
│ Drawdown duration │ 4 days 11:05:00 │
│ Profit at drawdown start │ 0.991 USDT │
│ Profit at drawdown end │ -55.275 USDT │
│ Drawdown start │ 2026-02-01 13:10:00 │
│ Drawdown end │ 2026-02-06 00:15:00 │
│ Market change │ -14.37% │
└───────────────────────────────┴────────────────────────────────┘
Backtested 2026-02-01 00:00:00 -> 2026-02-08 02:30:00 | Max open trades : 3
STRATEGY SUMMARY
┏━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ ┃ ┃ Avg Profit ┃ Tot Profit ┃ ┃ Avg ┃ Win Draw ┃ ┃
┃ Strategy ┃ Trades ┃ % ┃ USDT ┃ Tot Profit % ┃ Duration ┃ Loss Win% ┃ Drawdown ┃
┡━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ Strategy001 │ 23 │ -1.82 │ -40.523 │ -4.05 │ 14:13:00 │ 15 0 │ 56.266 USDT │
│ │ │ │ │ │ │ 8 65.2 │ 5.62% │
└─────────────┴────────┴─────────────┴─────────────┴──────────────┴─────────────┴──────────────┴─────────────┘

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Freqtrade环境搭建
https://blog.smyb.fun/posts/freqtrade/02_freqtrade环境搭建/
作者
三木羽冰
发布于
2026-01-02
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-01-02,距今已过 92 天

部分内容可能已过时

Profile Image of the Author
三木羽冰
嵌言片语
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
15
分类
3
标签
6
总字数
22,674
运行时长
0 天
最后活动
0 天前

目录