第 7 课:多时间框架回测
⏱ 课时:2 小时
🎯 学习目标:理解时间框架对策略的影响
📚 难度:⭐⭐ 回测实战
📖 课程概览
同一个策略在不同时间框架下的表现可能截然不同。本课将通过实际测试,帮助你理解时间框架的选择原则,找到最适合你策略的时间周期。
7.1 时间框架的选择原则
三大核心原则
原则 1:交易风格匹配
你的时间投入 → 决定时间框架
全职盯盘(8h+/天) → 1m-5m(超短线)
兼职盯盘(2-4h/天) → 15m-1h(短线)
偶尔查看(< 1h/天) → 4h-1d(波段)
完全自动化 → 任意时间框架
原则 2:风险承受能力
单笔波动幅度随时间框架增大
1m: 单笔波动 0.1-0.5% → 风险低,压力小
5m: 单笔波动 0.3-1% → 风险适中
1h: 单笔波动 1-3% → 风险较高
1d: 单笔波动 3-10% → 风险高,心理压力大
原则 3:策略类型适配
趋势跟踪策略 → 长周期(1h-1d)
均值回归策略 → 中短周期(5m-1h)
突破策略 → 中周期(15m-4h)
高频套利策略 → 超短周期(1m-5m)
时间框架特征对比
时间框架 | 信号频率 | 信号质量 | 手续费占比 | 数据需求 | 执行要求 |
---|---|---|---|---|---|
1m | 极高 | 低(噪音多) | 很高(15-30%) | 海量 | 毫秒级 |
5m | 高 | 中低 | 高(8-15%) | 大 | 秒级 |
15m | 中高 | 中 | 适中(5-10%) | 中 | 分钟级 |
1h | 中 | 中高 | 低(2-5%) | 适中 | 小时级 |
4h | 低 | 高 | 很低(< 2%) | 小 | 小时级 |
1d | 很低 | 很高 | 极低(< 1%) | 很小 | 天级 |
7.2 不同时间框架的特点
1. 超短线(1m - 5m)
特点详解
优点:
- ✅ 交易机会极多(每天几十到上百笔)
- ✅ 资金周转快,利用率高
- ✅ 单笔风险小(止损幅度小)
- ✅ 快速验证策略(几天就能看到效果)
缺点:
- ❌ 噪音信号多,假突破频繁
- ❌ 手续费成本高(可能吃掉 30-50% 利润)
- ❌ 对执行速度要求高(延迟 1 秒都可能影响收益)
- ❌ 数据量大(1 年 1m 数据 > 500MB/交易对)
- ❌ 回测速度慢
- ❌ 滑点影响显著
手续费影响案例
5m 时间框架,30 天回测:
交易次数:150 次
平均每笔收益:+0.6%
手续费:0.2% × 150 = 30%
毛利润:0.6% × 150 = 90%
净利润:90% - 30% = 60%
手续费侵蚀:33.3% 的利润!
适合人群
- 全职交易员
- 有交易所手续费折扣(VIP 用户)
- 高频算法交易系统
- 对延迟和执行有充分准备
风险警告
⚠️ 新手不推荐:回测表现好 ≠ 实盘表现好(滑点和延迟会大幅降低收益)
2. 短线(15m - 1h)
特点详解
优点:
- ✅ 信号质量较好(噪音过滤)
- ✅ 交易频率适中(每天 5-20 笔)
- ✅ 手续费影响可控(5-10%)
- ✅ 数据量适中,回测速度快
- ✅ 执行要求宽松(几分钟的延迟可接受)
- ✅ 适合新手练习
缺点:
- ⚠️ 仍需定期监控(不能完全自动化)
- ⚠️ 日内波动需要承受
- ⚠️ 隔夜风险(1h 可能跨夜)
最佳实践
15m 时间框架:
- 每根 K 线 15 分钟
- 每天 96 根 K 线
- 适合日内交易(早 8:00 - 晚 12:00)
- 典型持仓时间:1-6 小时
1h 时间框架:
- 每根 K 线 1 小时
- 每天 24 根 K 线
- 适合短波段交易
- 典型持仓时间:4-24 小时
手续费影响案例
1h 时间框架,30 天回测:
交易次数:40 次
平均每笔收益:+1.5%
手续费:0.2% × 40 = 8%
毛利润:1.5% × 40 = 60%
净利润:60% - 8% = 52%
手续费侵蚀:13.3% 的利润(可接受)
适合人群
- 量化交易新手(强烈推荐)
- 兼职交易者(每天 2-4 小时)
- 希望快速看到结果
- 平衡收益和风险
3. 中长线(4h - 1d)
特点详解
优点:
- ✅ 信号质量高(大趋势明确)
- ✅ 手续费占比极低(< 2%)
- ✅ 单笔收益高(平均 3-10%)
- ✅ 无需频繁监控
- ✅ 滑点影响小
- ✅ 心理压力小(不用盯盘)
缺点:
- ❌ 交易机会少(每周几笔)
- ❌ 资金利用率低(长时间占用)
- ❌ 单笔波动大(需要较大止损空间)
- ❌ 隔夜风险(周末、节假日风险)
- ❌ 验证周期长(需要几个月数据)
隔夜风险分析
风险来源:
- 美股闭市影响:美股大跌 → 加密货币跟跌
- 亚洲开盘波动:中国市场开盘时间波动大
- 突发新闻:监管政策、黑客攻击、交易所暂停
- 周末缺口:周五收盘到周一开盘的价格跳空
应对策略:
# 周末前强制平仓(高级用法)
def custom_exit(self, pair, trade, current_time, **kwargs):
# 如果是周五晚上 22:00 后,强制平仓
if current_time.weekday() == 4 and current_time.hour >= 22:
return 'weekend_exit'
适合人群
- 兼职交易者(每天 < 1 小时)
- 不喜欢频繁操作
- 资金量较大(单笔波动承受力强)
- 长期投资心态
7.3 时间框架与交易风格匹配
交易风格分类
1. 日内交易者(Day Trader)
特征:
- 当天开仓,当天平仓
- 不持仓过夜
- 每天 5-20 笔交易
推荐时间框架:5m - 15m
推荐策略:均值回归、突破策略
关键设置:
# 确保不过夜(在策略中设置)
minimal_roi = {
"0": 0.02, # 2% 立即止盈
"60": 0.01, # 1 小时后 1% 止盈
"300": 0 # 5 小时后平仓
}
2. 波段交易者(Swing Trader)
特征:
- 持仓几天到几周
- 捕捉中期趋势
- 每周 2-10 笔交易
推荐时间框架:1h - 4h
推荐策略:趋势跟踪、动量策略
关键设置:
minimal_roi = {
"0": 0.10, # 10% 立即止盈
"1440": 0.05, # 1 天后 5% 止盈
"4320": 0.02 # 3 天后 2% 止盈
}
3. 趋势交易者(Trend Trader)
特征:
- 持仓几周到几个月
- 捕捉大级别趋势
- 每月 1-5 笔交易
推荐时间框架:1d
推荐策略:趋势跟踪、突破策略
关键设置:
minimal_roi = {
"0": 0.30, # 30% 立即止盈
"10080": 0.15, # 1 周后 15% 止盈
"43200": 0.08 # 1 月后 8% 止盈
}
匹配测试表
你的情况 | 推荐时间框架 | 预期交易频率 |
---|---|---|
每天能盯盘 6h+ | 5m - 15m | 10-50 次/天 |
每天能看盘 2-4h | 15m - 1h | 5-20 次/天 |
每天只能看 1h | 1h - 4h | 2-10 次/天 |
每周只看几次 | 4h - 1d | 5-20 次/月 |
完全自动化 | 根据策略类型 | 任意 |
7.4 多时间框架对比分析
实战测试流程
步骤 1:准备数据
# 下载多个时间框架的数据
freqtrade download-data \
-c config.json \
--pairs BTC/USDT \
--days 90 \
--timeframes 5m 15m 1h 4h 1d
步骤 2:批量回测
# 测试 5m
freqtrade backtesting -c config.json --strategy Strategy001 --timeframe 5m --timerange 20250701-20250930
# 测试 15m
freqtrade backtesting -c config.json --strategy Strategy001 --timeframe 15m --timerange 20250701-20250930
# 测试 1h
freqtrade backtesting -c config.json --strategy Strategy001 --timeframe 1h --timerange 20250701-20250930
# 测试 1d
freqtrade backtesting -c config.json --strategy Strategy001 --timeframe 1d --timerange 20250701-20250930
步骤 3:使用 Shell 脚本批量测试
创建 test_timeframes.sh
:
#!/bin/bash
STRATEGY="Strategy001"
CONFIG="config.json"
TIMERANGE="20250701-20250930"
for TIMEFRAME in 5m 15m 1h 4h 1d
do
echo "========================================"
echo "Testing $STRATEGY on $TIMEFRAME"
echo "========================================"
freqtrade backtesting \
-c $CONFIG \
--strategy $STRATEGY \
--timeframe $TIMEFRAME \
--timerange $TIMERANGE
echo ""
echo "Finished $TIMEFRAME, press Enter to continue..."
read
done
echo "All tests completed!"
运行脚本:
chmod +x test_timeframes.sh
./test_timeframes.sh
对比分析模板
创建对比表格记录结果:
指标 | 5m | 15m | 1h | 4h | 1d |
---|---|---|---|---|---|
交易次数 | |||||
胜率 % | |||||
总收益 % | |||||
平均收益 % | |||||
最大回撤 % | |||||
Sharpe Ratio | |||||
ROI 退出占比 | |||||
止损退出占比 | |||||
平均持仓时间 | |||||
手续费占比 |
真实案例分析
假设 Strategy001 在不同时间框架的表现:
时间框架 | 交易次数 | 胜率 | 总收益 | 平均收益 | 最大回撤 | Sharpe | 手续费占比 | 评分 |
---|---|---|---|---|---|---|---|---|
5m | 247 | 68% | +12.5% | +0.05% | -8.2% | 1.85 | 19.8% | ⭐⭐ |
15m | 89 | 75% | +18.3% | +0.21% | -6.5% | 2.65 | 9.7% | ⭐⭐⭐⭐ |
1h | 31 | 81% | +15.7% | +0.51% | -4.8% | 3.12 | 3.9% | ⭐⭐⭐⭐⭐ |
4h | 12 | 83% | +9.2% | +0.77% | -3.2% | 2.88 | 2.6% | ⭐⭐⭐⭐ |
1d | 4 | 100% | +6.8% | +1.70% | -2.1% | 3.45 | 1.2% | ⭐⭐⭐ |
分析结论
5m 时间框架:
- ❌ 交易过于频繁(247 次)
- ❌ 手续费侵蚀严重(19.8%)
- ❌ 平均收益极低(0.05%)
- ❌ Sharpe Ratio 偏低(1.85)
- 结论:不适合此策略
15m 时间框架:
- ✅ 交易次数适中(89 次)
- ✅ 胜率良好(75%)
- ✅ 总收益高(18.3%)
- ✅ 手续费可控(9.7%)
- ✅ Sharpe Ratio 优秀(2.65)
- 结论:非常适合,平衡了收益和频率
1h 时间框架:
- ✅ 胜率最高(81%)
- ✅ Sharpe Ratio 最高(3.12)
- ✅ 回撤最小(4.8%)
- ✅ 手续费极低(3.9%)
- ⚠️ 总收益略低于 15m
- 结论:最佳选择,风险收益比最优
4h 时间框架:
- ✅ 胜率高(83%)
- ✅ 平均收益高(0.77%)
- ⚠️ 交易次数少(12 次,样本小)
- ⚠️ 总收益较低(9.2%)
- 结论:可选,但需要更长时间验证
1d 时间框架:
- ✅ 胜率 100%(4 次全胜)
- ✅ 平均收益最高(1.70%)
- ❌ 交易次数过少(仅 4 次)
- ❌ 样本不足,不具代表性
- 结论:需要更长时间验证(至少 1 年数据)
最优时间框架判断标准
综合评分公式:
总分 = 总收益(30%) + Sharpe(25%) + 胜率(20%) + 交易次数合理性(15%) + 手续费占比(10%)
应用到案例:
15m: (18.3×0.3) + (2.65×10×0.25) + (75×0.2) + (100×0.15) + ((100-9.7)×0.1) = 5.49 + 6.63 + 15 + 15 + 9.03 = 51.15
1h: (15.7×0.3) + (3.12×10×0.25) + (81×0.2) + (90×0.15) + ((100-3.9)×0.1) = 4.71 + 7.80 + 16.2 + 13.5 + 9.61 = 51.82 ⭐
结论:1h 略胜一筹
💡 实践任务
任务 1:数据准备
# 下载 BTC/USDT 多时间框架数据
conda activate freqtrade
freqtrade download-data \
-c config.json \
--pairs BTC/USDT \
--days 90 \
--timeframes 5m 15m 1h 1d
任务 2:批量回测
选择一个策略(推荐 Strategy001),测试 4 个时间框架:
# 5m
freqtrade backtesting -c config.json --strategy Strategy001 --timeframe 5m --timerange 20250701-20250930
# 15m
freqtrade backtesting -c config.json --strategy Strategy001 --timeframe 15m --timerange 20250701-20250930
# 1h
freqtrade backtesting -c config.json --strategy Strategy001 --timeframe 1h --timerange 20250701-20250930
# 1d
freqtrade backtesting -c config.json --strategy Strategy001 --timeframe 1d --timerange 20250701-20250930
任务 3:制作对比表格
创建 Excel 表格,记录以下信息:
指标 | 5m | 15m | 1h | 1d |
---|---|---|---|---|
交易次数 | ? | ? | ? | ? |
胜率 | ? | ? | ? | ? |
总收益 % | ? | ? | ? | ? |
平均收益 % | ? | ? | ? | ? |
最大回撤 % | ? | ? | ? | ? |
Sharpe Ratio | ? | ? | ? | ? |
平均持仓时间 | ? | ? | ? | ? |
手续费占比 % | ? | ? | ? | ? |
任务 4:找出最优时间框架
根据你的对比表格,回答以下问题:
- 哪个时间框架总收益最高?
- 哪个时间框架 Sharpe Ratio 最高?
- 哪个时间框架回撤最小?
- 哪个时间框架手续费占比最低?
- 综合考虑,你认为哪个时间框架最适合这个策略?
任务 5:撰写分析报告
写一份 200-300 字的分析报告:
报告模板:
策略名称:___________
测试时间范围:___________
测试交易对:___________
时间框架对比分析:
- 5m 表现:___________ (优点/缺点)
- 15m 表现:___________ (优点/缺点)
- 1h 表现:___________ (优点/缺点)
- 1d 表现:___________ (优点/缺点)
最优选择:___________
选择理由:___________
风险提示:___________
📚 知识检查
基础问题
- 为什么 5m 时间框架手续费占比高?
- 1d 时间框架的主要风险是什么?
- 如果你每天只能看盘 1 小时,应该选择什么时间框架?
答案
- 交易次数多,每次交易都要支付手续费,累计占比就高
- 隔夜风险(周末缺口、突发新闻)和样本少(验证周期长)
- 1h 或 4h,这样不需要频繁盯盘,也能捕捉到好的交易机会
进阶问题
- 为什么同一个策略在不同时间框架表现差异大?
- 如何判断时间框架测试的样本量是否足够?
- 短周期回测效果好,是否意味着实盘也会好?
思考题
- 如果一个策略在所有时间框架表现都差,说明什么?
- 是否可以同时在多个时间框架运行同一个策略?
- 多时间框架组合策略(如用 1h 确认趋势,5m 入场)有什么优势?
🔧 常见问题与解决
问题 1:回测时提示数据不足
错误信息:
No data found for timeframe 1d in the specified timerange
解决方案:
# 确认已下载该时间框架数据
freqtrade list-data -c config.json
# 重新下载
freqtrade download-data -c config.json --timeframes 1d --days 90
问题 2:1d 时间框架只有几笔交易
原因:
- 样本期太短(90 天 = 90 根 1d K 线)
- 策略本身交易频率低
解决方案:
# 下载更长时间的数据(1-2 年)
freqtrade download-data -c config.json --timeframes 1d --days 730
问题 3:不同时间框架结果波动大
原因:
- 市场环境变化
- 策略过拟合
- 样本量不足
解决方案:
- 测试更长的时间范围
- 测试不同的市场环境(牛市、熊市、震荡)
- 进行样本外测试
📊 时间框架选择决策树
开始
│
├─ 你能全职盯盘吗?
│ ├─ 是 → 有手续费折扣吗?
│ │ ├─ 是 → 5m(高频交易)
│ │ └─ 否 → 15m(日内交易)
│ │
│ └─ 否 → 每天能看几次?
│ ├─ 2-4 次 → 1h(短波段)
│ ├─ 1-2 次 → 4h(中波段)
│ └─ < 1 次 → 1d(长波段)
│
└─ 你的风险承受能力?
├─ 低 → 选择长周期(1h-1d)
├─ 中 → 选择中周期(15m-1h)
└─ 高 → 选择短周期(5m-15m)
🔗 参考资料
配套文档
- 📄 TESTING_GUIDE.md - 不同时间框架回测
- 📄 STRATEGY_SELECTION_GUIDE.md - 策略选择指南
推荐阅读
📌 核心要点总结
- 没有最好的时间框架,只有最合适的
- 短周期 = 高频率 + 高手续费 + 高噪音
- 长周期 = 低频率 + 低手续费 + 高质量
- 新手推荐 15m-1h:平衡收益、风险和操作频率
- 样本量很重要:1d 至少需要 1 年数据
- 回测好 ≠ 实盘好:短周期策略受滑点影响大
➡️ 下一课预告
第 8 课:策略批量对比
在下一课中,我们将:
- 学习批量回测多个策略的方法
- 快速对比策略性能
- 掌握策略选择决策树
- 制作策略推荐清单
准备工作:
- ✅ 确保有 5 个以上策略可用
- ✅ 选定测试的时间框架(推荐 15m 或 1h)
- ✅ 准备 90 天以上的数据
🎯 学习检验标准:
- ✅ 能独立测试策略在多个时间框架的表现
- ✅ 理解不同时间框架的优缺点
- ✅ 能根据自己的情况选择合适的时间框架
- ✅ 会制作时间框架对比分析表
完成这些任务后,你已经掌握了时间框架选择的核心技能!准备进入策略对比的学习吧!🚀
Top comments (0)