DEV Community

Henry Lin
Henry Lin

Posted on

第 10 课:Freqtrade交易对选择与测试

第 10 课:Freqtrade交易对选择与测试

⏱ 课时:1.5 小时
🎯 学习目标:学会选择合适的交易对
📚 难度:⭐⭐ 回测实战


📖 课程概览

不同的交易对有不同的特性。选择合适的交易对对策略表现有巨大影响。本课将教你如何评估交易对的流动性、波动率,以及如何构建多交易对组合来分散风险。


10.1 主流币 vs 山寨币

交易对分类

1. 主流币(Blue Chips)

定义:市值前 10-20 的加密货币

代表币种

  • BTC/USDT(比特币)- 市值第一
  • ETH/USDT(以太坊)- 市值第二
  • BNB/USDT(币安币)- 交易所代币
  • XRP/USDT(瑞波币)
  • SOL/USDT(Solana)
  • ADA/USDT(Cardano)

特点

  • ✅ 流动性好(成交量大)
  • ✅ 波动相对稳定
  • ✅ 价差小(滑点低)
  • ✅ 不易被操纵
  • ✅ 信息透明
  • ⚠️ 收益相对较低

风险评级:🟢 低风险

2. 中盘币(Mid-Caps)

定义:市值排名 20-100

代表币种

  • MATIC/USDT(Polygon)
  • LINK/USDT(Chainlink)
  • UNI/USDT(Uniswap)
  • AVAX/USDT(Avalanche)
  • ATOM/USDT(Cosmos)

特点

  • ✅ 流动性较好
  • ⚠️ 波动性较大
  • ⚠️ 收益潜力更高
  • ⚠️ 风险适中

风险评级:🟡 中等风险

3. 山寨币(Altcoins)

定义:市值排名 100+

特点

  • ❌ 流动性差(成交量小)
  • ❌ 波动极大(日波动 20%+)
  • ❌ 价差大(滑点高)
  • ❌ 容易被操纵
  • ❌ 信息不对称
  • ⚠️ 高风险高收益

风险评级:🔴 高风险

主流币 vs 山寨币对比

特征 主流币 中盘币 山寨币
日均成交量 > $1B $100M-$1B < $100M
日波动率 2-5% 5-10% 10-30%
滑点 < 0.1% 0.1-0.3% > 0.5%
操纵风险 极低
收益潜力 中等 较高 极高
适合新手 ✅ 是 ⚠️ 谨慎 ❌ 否

推荐配置

保守型(新手推荐)

100% 主流币
- BTC/USDT: 40%
- ETH/USDT: 40%
- BNB/USDT: 20%
Enter fullscreen mode Exit fullscreen mode

平衡型

70% 主流币 + 30% 中盘币
- BTC/USDT: 30%
- ETH/USDT: 30%
- BNB/USDT: 10%
- SOL/USDT: 15%
- MATIC/USDT: 15%
Enter fullscreen mode Exit fullscreen mode

激进型(有经验者)

50% 主流币 + 40% 中盘币 + 10% 山寨币
- BTC/USDT: 25%
- ETH/USDT: 25%
- SOL/USDT: 20%
- LINK/USDT: 20%
- 其他小币: 10%
Enter fullscreen mode Exit fullscreen mode

10.2 流动性评估

什么是流动性?

定义:资产能够快速买入或卖出而不显著影响价格的能力。

关键指标

  1. 24小时成交量
  2. 订单簿深度
  3. 买卖价差(Spread)

24小时成交量

评估标准

优秀:> $500M/天
良好:$100M-$500M/天
一般:$20M-$100M/天
较差:$5M-$20M/天
很差:< $5M/天
Enter fullscreen mode Exit fullscreen mode

查看方法
访问 CoinMarketCapCoinGecko

案例对比

BTC/USDT: $25,000M/天 ✅ 优秀
ETH/USDT: $10,000M/天 ✅ 优秀
SOL/USDT: $800M/天 ✅ 优秀
MATIC/USDT: $300M/天 ✅ 良好
DOGE/USDT: $150M/天 ✅ 良好
某小币/USDT: $2M/天 ❌ 很差
Enter fullscreen mode Exit fullscreen mode

订单簿深度

定义:在不同价格水平上挂单的数量。

查看方法

  1. 登录 Binance
  2. 打开交易对页面
  3. 查看"深度图"(Depth Chart)

评估标准

深度好:±2% 价格范围内有大量挂单
深度差:±2% 价格范围内挂单稀少
Enter fullscreen mode Exit fullscreen mode

影响

  • 深度好 → 大单不会显著影响价格
  • 深度差 → 大单会造成价格剧烈波动

买卖价差(Spread)

定义:最佳买价和最佳卖价之间的差额。

计算公式

Spread = (卖一价 - 买一价) / 买一价 × 100%
Enter fullscreen mode Exit fullscreen mode

案例

BTC/USDT:
买一价:$43,500.00
卖一价:$43,500.50
Spread = ($43,500.50 - $43,500.00) / $43,500.00 = 0.0011%

某小币/USDT:
买一价:$0.1000
卖一价:$0.1050
Spread = ($0.1050 - $0.1000) / $0.1000 = 5%
Enter fullscreen mode Exit fullscreen mode

评估标准

优秀:< 0.01%(主流币)
良好:0.01-0.05%
一般:0.05-0.1%
较差:0.1-0.5%
很差:> 0.5%(山寨币)
Enter fullscreen mode Exit fullscreen mode

流动性对策略的影响

高流动性交易对

  • ✅ 滑点小(执行价格接近回测价格)
  • ✅ 回测结果更可信
  • ✅ 适合高频策略
  • ✅ 大资金可以交易

低流动性交易对

  • ❌ 滑点大(实盘收益远低于回测)
  • ❌ 回测结果不可信
  • ❌ 不适合高频策略
  • ❌ 大资金会影响价格

滑点案例

回测结果(理想情况):
买入价:$100.00
卖出价:$102.00
收益:+2%

实盘结果(低流动性):
买入价:$100.20(滑点 +0.2%)
卖出价:$101.60(滑点 -0.4%)
收益:+1.4%(损失 30% 的利润!)
Enter fullscreen mode Exit fullscreen mode

10.3 波动率分析

什么是波动率?

定义:价格变动的幅度和频率。

计算方法

# 日波动率(简化版)
daily_volatility = (high - low) / low × 100%

# 标准差波动率(专业版)
import numpy as np
returns = prices.pct_change()
volatility = returns.std() × 100%
Enter fullscreen mode Exit fullscreen mode

波动率分类

波动率 日振幅 代表币种 适合策略
极低 < 2% 稳定币对 套利
2-5% BTC, ETH 趋势跟踪
中等 5-10% 中盘币 均衡策略
10-20% 热门山寨币 短线突破
极高 > 20% 小市值币 不建议

波动率对策略的影响

高波动 vs 低波动

高波动交易对(日振幅 > 10%)

优点

  • ✅ 盈利空间大
  • ✅ 容易达到止盈目标
  • ✅ 适合短线策略

缺点

  • ❌ 容易触发止损
  • ❌ 假突破多
  • ❌ 回撤风险大
  • ❌ 心理压力大

适合策略

  • 短线突破策略
  • 高频交易策略
  • 需要放宽止损(-10% 以上)

低波动交易对(日振幅 < 5%)

优点

  • ✅ 稳定性好
  • ✅ 回撤小
  • ✅ 风险可控
  • ✅ 适合新手

缺点

  • ⚠️ 盈利空间小
  • ⚠️ 难以达到高止盈目标
  • ⚠️ 交易机会少

适合策略

  • 趋势跟踪策略
  • 长线波段策略
  • 需要降低 ROI 目标(2-5%)

波动率测试

使用 Freqtrade 命令

# 下载数据
freqtrade download-data -c config.json --pairs BTC/USDT ETH/USDT SOL/USDT DOGE/USDT --days 90 --timeframes 1d

# 查看价格波动
freqtrade plot-dataframe -c config.json --pairs BTC/USDT --timerange 20250701-20250930
Enter fullscreen mode Exit fullscreen mode

手动计算
访问 TradingView,查看不同交易对的 ATR(Average True Range)指标。

策略适配波动率

调整止损

# 低波动交易对
stoploss = -0.03  # 3% 止损

# 中波动交易对
stoploss = -0.05  # 5% 止损

# 高波动交易对
stoploss = -0.10  # 10% 止损
Enter fullscreen mode Exit fullscreen mode

调整 ROI

# 低波动交易对(BTC/ETH)
minimal_roi = {
    "0": 0.05,   # 5% 目标
    "120": 0.03,
    "240": 0.01
}

# 高波动交易对(山寨币)
minimal_roi = {
    "0": 0.15,   # 15% 目标
    "60": 0.08,
    "120": 0.03
}
Enter fullscreen mode Exit fullscreen mode

10.4 多交易对组合测试

为什么需要多交易对?

单一交易对的风险

只交易 BTC/USDT:
- BTC 横盘 → 策略无信号 → 无收益
- BTC 崩盘 → 触发止损 → 亏损
Enter fullscreen mode Exit fullscreen mode

多交易对的优势

  • ✅ 分散风险
  • ✅ 增加交易机会
  • ✅ 平滑收益曲线
  • ✅ 降低回撤

多交易对回测

方法 1:配置文件设置

编辑 config.json

{
  "exchange": {
    "pair_whitelist": [
      "BTC/USDT",
      "ETH/USDT",
      "BNB/USDT",
      "SOL/USDT",
      "XRP/USDT"
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

运行回测:

freqtrade backtesting \
  -c config.json \
  --strategy Strategy001 \
  --timerange 20250701-20250930
Enter fullscreen mode Exit fullscreen mode

方法 2:命令行指定

freqtrade backtesting \
  -c config.json \
  --strategy Strategy001 \
  --pairs BTC/USDT ETH/USDT BNB/USDT \
  --timerange 20250701-20250930
Enter fullscreen mode Exit fullscreen mode

多交易对结果分析

回测报告示例

BACKTESTING REPORT
┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Pair       ┃ Trades ┃ Avg Profit ┃ Tot Profit % ┃ Win Rate % ┃
┡━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ BTC/USDT   │     28 │       1.52 │         8.45 │       85.7 │
│ ETH/USDT   │     35 │       1.38 │        10.22 │       82.9 │
│ BNB/USDT   │     22 │       1.65 │         7.15 │       86.4 │
│ SOL/USDT   │     42 │       0.95 │         6.83 │       78.6 │
│ XRP/USDT   │     18 │       1.12 │         4.52 │       77.8 │
├────────────┼────────┼────────────┼──────────────┼────────────┤
│ TOTAL      │    145 │       1.34 │        37.17 │       82.1 │
└────────────┴────────┴────────────┴──────────────┴────────────┘
Enter fullscreen mode Exit fullscreen mode

分析要点

  1. 表现最好的交易对:ETH/USDT(总收益 10.22%)
  2. 表现最差的交易对:XRP/USDT(总收益 4.52%)
  3. 最稳定的交易对:BNB/USDT(胜率 86.4%)
  4. 交易最多的交易对:SOL/USDT(42 次)

相关性分析

什么是相关性?
两个交易对价格走势的相似程度。

相关性系数

+1.0: 完全正相关(同涨同跌)
0.0:  无相关
-1.0: 完全负相关(此涨彼跌)
Enter fullscreen mode Exit fullscreen mode

典型相关性

BTC/USDT vs ETH/USDT: 0.85(高度正相关)
BTC/USDT vs DOGE/USDT: 0.65(中度正相关)
BTC/USDT vs 稳定币对: 0.05(无相关)
Enter fullscreen mode Exit fullscreen mode

分散风险的原则

  • ❌ 选择相关性 > 0.9 的交易对(无分散效果)
  • ✅ 选择相关性 0.5-0.8 的交易对(最佳平衡)
  • ⚠️ 选择相关性 < 0.3 的交易对(过于分散)

推荐组合

组合 1(保守):
- BTC/USDT(40%)
- ETH/USDT(40%)
- BNB/USDT(20%)
相关性:0.8-0.9

组合 2(平衡):
- BTC/USDT(30%)
- ETH/USDT(25%)
- SOL/USDT(20%)
- MATIC/USDT(15%)
- LINK/USDT(10%)
相关性:0.6-0.8

组合 3(分散):
- BTC/USDT(20%)
- ETH/USDT(20%)
- BNB/USDT(15%)
- SOL/USDT(15%)
- XRP/USDT(10%)
- MATIC/USDT(10%)
- LINK/USDT(10%)
相关性:0.5-0.7
Enter fullscreen mode Exit fullscreen mode

构建最优投资组合

步骤

  1. 筛选交易对

    • 24h 成交量 > $100M
    • 在 Binance 上可交易
    • 排除稳定币对
  2. 单独回测

   for pair in BTC/USDT ETH/USDT BNB/USDT SOL/USDT XRP/USDT
   do
     freqtrade backtesting -c config.json --strategy Strategy001 --pairs $pair --timerange 20250701-20250930
   done
Enter fullscreen mode Exit fullscreen mode
  1. 选择表现优秀的交易对

    • 总收益 > 5%
    • 胜率 > 70%
    • 最大回撤 < 10%
  2. 组合回测

   freqtrade backtesting \
     -c config.json \
     --strategy Strategy001 \
     --pairs BTC/USDT ETH/USDT BNB/USDT \
     --timerange 20250701-20250930
Enter fullscreen mode Exit fullscreen mode
  1. 对比结果
   单一交易对(BTC/USDT):
     收益:+8.45%
     回撤:-6.2%

   三交易对组合:
     收益:+25.82%(组合所有交易对)
     回撤:-4.8%(更低!)

   结论:组合更优 ✅
Enter fullscreen mode Exit fullscreen mode

💡 实践任务

任务 1:下载多交易对数据

# 下载 5 个主流交易对的数据
freqtrade download-data \
  -c config.json \
  --pairs BTC/USDT ETH/USDT BNB/USDT SOL/USDT XRP/USDT \
  --days 90 \
  --timeframes 15m
Enter fullscreen mode Exit fullscreen mode

任务 2:单独测试每个交易对

# 测试 BTC/USDT
freqtrade backtesting -c config.json --strategy Strategy001 --pairs BTC/USDT --timerange 20250701-20250930 --timeframe 15m

# 测试 ETH/USDT
freqtrade backtesting -c config.json --strategy Strategy001 --pairs ETH/USDT --timerange 20250701-20250930 --timeframe 15m

# 测试 BNB/USDT
freqtrade backtesting -c config.json --strategy Strategy001 --pairs BNB/USDT --timerange 20250701-20250930 --timeframe 15m

# 测试 SOL/USDT
freqtrade backtesting -c config.json --strategy Strategy001 --pairs SOL/USDT --timerange 20250701-20250930 --timeframe 15m

# 测试 XRP/USDT
freqtrade backtesting -c config.json --strategy Strategy001 --pairs XRP/USDT --timerange 20250701-20250930 --timeframe 15m
Enter fullscreen mode Exit fullscreen mode

任务 3:制作交易对对比表

交易对 交易次数 胜率% 总收益% 平均收益% 最大回撤% Sharpe 24h成交量 推荐度
BTC/USDT ? ? ? ? ? ? ? ⭐?
ETH/USDT ? ? ? ? ? ? ? ⭐?
BNB/USDT ? ? ? ? ? ? ? ⭐?
SOL/USDT ? ? ? ? ? ? ? ⭐?
XRP/USDT ? ? ? ? ? ? ? ⭐?

任务 4:组合测试

选择表现最好的 3 个交易对,进行组合回测:

freqtrade backtesting \
  -c config.json \
  --strategy Strategy001 \
  --pairs [你选的3个交易对] \
  --timerange 20250701-20250930 \
  --timeframe 15m
Enter fullscreen mode Exit fullscreen mode

对比单一交易对 vs 组合:

最佳单一交易对:
  交易对:___________
  总收益:___________%
  最大回撤:___________%

三交易对组合:
  总收益:___________%
  最大回撤:___________%

结论:
  ☐ 组合表现更好(收益更高或回撤更低)
  ☐ 单一交易对表现更好
Enter fullscreen mode Exit fullscreen mode

任务 5:构建你的投资组合

根据测试结果,设计你的投资组合:

我的投资组合

交易对 1:___________(___%)
交易对 2:___________(___%)
交易对 3:___________(___%)
交易对 4(可选):___________(___%)
交易对 5(可选):___________(___%)

总计:100%

选择理由:
1. ___________
2. ___________
3. ___________
Enter fullscreen mode Exit fullscreen mode

📚 知识检查

基础问题

  1. 主流币和山寨币的主要区别是什么?
  2. 流动性好的交易对有哪些特征?
  3. 高波动率交易对适合什么策略?

答案

  1. 流动性、波动性和风险:主流币流动性好、波动小、风险低;山寨币相反
  2. 成交量大、买卖价差小、订单簿深度好
  3. 短线突破策略、高频交易策略,需要放宽止损

进阶问题

  1. 为什么低流动性交易对回测结果不可信?
  2. 如何判断交易对之间的相关性?
  3. 多交易对组合能降低风险的原理是什么?

思考题

  1. 如果所有交易对都是高度相关的,组合还有意义吗?
  2. 山寨币回测收益很高,是否应该实盘交易?
  3. 如何动态调整交易对组合?

🔗 参考资料

数据查询网站

配套文档

推荐阅读


📌 核心要点总结

  1. 新手推荐主流币:BTC、ETH、BNB
  2. 流动性 > 收益潜力:避免低流动性交易对
  3. 波动率匹配策略:高波动配短线,低波动配长线
  4. 多交易对分散风险:不要把鸡蛋放在一个篮子里
  5. 相关性不宜过高:0.5-0.8 最佳
  6. 滑点是隐形杀手:实盘收益可能远低于回测

➡️ 第二部分总结

恭喜!你已完成第二部分:回测实战(第 5-10 课)

你学到了

  • ✅ 第5课:运行第一次完整回测
  • ✅ 第6课:解读回测报告,分析策略性能
  • ✅ 第7课:测试不同时间框架
  • ✅ 第8课:批量对比多个策略
  • ✅ 第9课:验证策略稳定性,避免过拟合
  • ✅ 第10课:选择合适的交易对

下一部分预告
第三部分:策略优化(第 11-15 课)

在第三部分中,你将学习:

  • 第 11 课:使用 Hyperopt 优化策略参数
  • 第 12 课:高级策略分析技巧
  • 第 13 课:建立策略评分体系
  • 第 14 课:风险管理与资金管理
  • 第 15 课:构建策略组合

准备工作

  • ✅ 选定 1-2 个表现稳定的策略
  • ✅ 下载至少 6 个月的历史数据
  • ✅ 确保有足够的计算资源(Hyperopt 需要)

🎯 学习检验标准

  • ✅ 能独立选择合适的交易对
  • ✅ 会评估交易对的流动性和波动率
  • ✅ 能构建多交易对组合
  • ✅ 理解相关性对风险分散的影响

完成第二部分后,你已经掌握了回测的核心技能!准备进入策略优化的进阶学习吧! 🚀🎉

Top comments (0)