第 6 课:策略性能分析
⏱ 课时:2 小时
🎯 学习目标:学会评估策略好坏
📚 难度:⭐⭐ 回测实战
📖 课程概览
回测报告包含大量指标,如何从这些指标中判断策略的好坏?本课将教你深入理解回测报告中的关键指标,建立科学的策略评估体系。
6.1 关键指标解读
总收益 vs 平均收益
总收益(Total Profit)
整个回测期间的累计盈利。
示例:
Total profit: 3.64 USDT (0.36%)
解读:
- 1000 USDT 本金,赚了 3.64 USDT
- 总收益率 0.36%
局限性:
- 不考虑交易次数
- 不考虑时间长度
- 不考虑风险
平均每笔收益(Avg Profit per Trade)
每笔交易的平均盈利。
示例:
Avg. profit per trade: 0.52%
解读:
- 每笔交易平均赚 0.52%
- 反映单笔交易质量
重要性:
- ✅ 比总收益更能反映策略质量
- ✅ 高平均收益 = 高效策略
- ⚠️ 需结合交易次数综合判断
对比示例
策略 | 交易次数 | 总收益 | 平均收益 | 评价 |
---|---|---|---|---|
策略 A | 100 | +10% | +0.1% | ❌ 低效:交易多,收益低 |
策略 B | 10 | +10% | +1.0% | ✅ 高效:交易少,收益高 |
策略 C | 50 | +10% | +0.2% | ⭐ 平衡:适中 |
结论:策略 B 最优秀,因为用更少的交易达到同样收益。
胜率 vs 盈亏比
这是策略分析中最重要的一对指标。
胜率(Win Rate)
盈利交易占总交易的百分比。
计算公式:
胜率 = 盈利交易次数 / 总交易次数 × 100%
示例:
Win rate: 85.7% (6 wins / 7 trades)
分类:
- 高胜率:> 70%
- 中等胜率:50-70%
- 低胜率:< 50%
盈亏比(Profit Factor / Risk-Reward Ratio)
平均盈利与平均亏损的比率。
计算公式:
盈亏比 = 平均盈利 / 平均亏损
示例:
- 平均盈利:+2%
- 平均亏损:-1%
- 盈亏比:2:1
胜率与盈亏比的关系
这是一个经典的权衡:
类型 | 胜率 | 盈亏比 | 交易风格 | 心理压力 |
---|---|---|---|---|
高胜率低盈亏比 | 70-90% | 1:1 ~ 1.5:1 | 频繁小盈利 | 低 |
平衡型 | 50-70% | 1.5:1 ~ 2:1 | 适中 | 中等 |
低胜率高盈亏比 | 30-50% | 3:1 ~ 5:1 | 偶尔大盈利 | 高 |
盈利模型计算
高胜率低盈亏比策略:
胜率:80%,平均盈利:+1%,平均亏损:-1%
期望收益 = 0.80 × 1% + 0.20 × (-1%) = 0.6%
低胜率高盈亏比策略:
胜率:40%,平均盈利:+5%,平均亏损:-2%
期望收益 = 0.40 × 5% + 0.60 × (-2%) = 0.8%
结论:低胜率策略收益更高,但需要承受更多连续亏损。
你的策略属于哪种?
判断标准:
if 胜率 > 70% and 盈亏比 < 2:
print("高胜率低盈亏比 - 适合保守投资者")
elif 胜率 < 50% and 盈亏比 > 3:
print("低胜率高盈亏比 - 适合激进投资者")
else:
print("平衡型策略 - 适合大多数人")
最大回撤(Max Drawdown)
定义
从资金最高点到最低点的最大跌幅。
计算示例:
初始资金:$1,000
最高点:$1,200 (2025-09-15)
最低点:$1,080 (2025-09-22,在最高点之后)
最大回撤 = (1,080 - 1,200) / 1,200 = -10%
回撤分级
回撤幅度 | 评级 | 心理承受 | 恢复难度 |
---|---|---|---|
< 5% | 🟢 优秀 | 容易接受 | 很容易 |
5-10% | 🟡 良好 | 可以接受 | 容易 |
10-20% | 🟠 警惕 | 心理压力 | 需要时间 |
> 20% | 🔴 危险 | 难以承受 | 很困难 |
为什么回撤很重要?
恢复所需涨幅:
回撤 10% → 需要上涨 11.1% 才能回本
回撤 20% → 需要上涨 25% 才能回本
回撤 50% → 需要上涨 100% 才能回本
结论:回撤越大,恢复越难,风险越高。
回撤期(Drawdown Duration)
从最高点跌到最低点,再恢复到最高点的时间。
示例:
2025-09-15: 资金最高 $1,200
2025-09-22: 跌至最低 $1,080(回撤期开始)
2025-10-10: 恢复到 $1,200(回撤期结束)
回撤期:25 天
长回撤期的影响:
- 资金长时间无法增长
- 心理压力增大
- 可能错过其他机会
Sharpe Ratio / Sortino Ratio
Sharpe Ratio(夏普比率)
风险调整后的收益率,衡量每承担 1 单位风险获得多少超额收益。
计算公式:
Sharpe Ratio = (策略收益 - 无风险收益) / 收益标准差
解读标准:
Sharpe > 3.0 🟢 优秀 - 极佳的风险收益比
Sharpe 2.0-3.0 🟡 良好 - 可接受的风险收益比
Sharpe 1.0-2.0 🟠 一般 - 风险略高
Sharpe < 1.0 🔴 差 - 风险过高
Sharpe < 0 ⛔ 亏损 - 还不如无风险投资
示例对比:
策略 A: 收益 10%, 标准差 5%, Sharpe = 2.0
策略 B: 收益 15%, 标准差 10%, Sharpe = 1.5
结论: 策略 A 更优秀(风险调整后收益更高)
Sortino Ratio(索提诺比率)
只考虑下行风险的 Sharpe Ratio(更合理)。
区别:
- Sharpe:惩罚所有波动(包括向上波动)
- Sortino:只惩罚向下波动(更符合投资者关注点)
解读:
Sortino > Sharpe → 策略向上波动多于向下波动(好事)
Sortino ≈ Sharpe → 策略上下波动对称
Sortino < Sharpe → 策略向下波动更剧烈(坏事)
6.2 交易次数分析
交易频率的影响
交易次数 | 频率 | 优点 | 缺点 |
---|---|---|---|
> 100/月 | 超高频 | 充分利用资金 | 手续费高,滑点大 |
30-100/月 | 高频 | 机会多 | 手续费显著 |
10-30/月 | 中频 | 平衡 ✅ | 需要耐心 |
< 10/月 | 低频 | 信号质量高 | 资金利用率低 |
手续费成本计算
手续费模型
# Binance 现货交易手续费(无优惠)
maker_fee = 0.1% # 挂单手续费
taker_fee = 0.1% # 吃单手续费
# 一次完整交易(买入 + 卖出)
round_trip_fee = 0.1% + 0.1% = 0.2%
手续费对收益的影响
案例 1:高频策略
交易次数:100 次/月
平均每笔收益:+0.5%
手续费:0.2% × 100 = 20%
净收益 = 50% - 20% = 30%(手续费吃掉 40% 利润)
案例 2:低频策略
交易次数:10 次/月
平均每笔收益:+2%
手续费:0.2% × 10 = 2%
净收益 = 20% - 2% = 18%(手续费只吃掉 10% 利润)
盈亏平衡点
要想盈利,平均每笔收益必须超过手续费:
最低盈利要求 > 0.2%(一次完整交易)
如果平均收益 0.5%:
净收益 = 0.5% - 0.2% = 0.3%(可接受)
如果平均收益 0.3%:
净收益 = 0.3% - 0.2% = 0.1%(勉强)
如果平均收益 0.15%:
净收益 = 0.15% - 0.2% = -0.05%(亏损!)
过度交易的风险
过度交易的信号:
- ✅ 交易次数 > 100/月(5m 时间框架)
- ✅ 平均每笔收益 < 0.3%
- ✅ 手续费占总收益 > 30%
- ✅ 大量小盈小亏交易
后果:
- 手续费侵蚀利润
- 滑点损失增加
- 策略过拟合风险
- 交易所风控风险
6.3 退出原因统计
Freqtrade 回测报告会显示每笔交易的退出原因:
退出原因类型
退出原因 | 说明 | 理想占比 |
---|---|---|
roi | ROI 止盈退出 | 30-50% |
exit_signal | 卖出信号触发 | 20-40% |
trailing_stop_loss | 跟踪止损 | 10-20% |
stop_loss | 固定止损 | < 20% |
force_exit | 强制平仓(回测结束) | 0-5% |
退出原因分析
示例报告
EXIT REASON STATS
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Exit Reason ┃ Exits ┃ Wins ┃ Avg Profit % ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ roi │ 45 │ 45 │ 2.1% │
│ exit_signal │ 28 │ 25 │ 0.8% │
│ trailing_stop_loss │ 15 │ 15 │ 3.5% │
│ stop_loss │ 12 │ 0 │ -5.0% │
└──────────────────────┴────────┴───────────┴──────────────┘
解读
ROI 止盈(45 次,100% 胜率):
- ✅ 策略能够快速达到止盈目标
- ✅ 平均 2.1% 收益,效果良好
- 占比 45%,说明策略趋势把握准确
退出信号(28 次,89% 胜率):
- ✅ 大部分退出信号是盈利的
- ⚠️ 3 次亏损退出,可能是信号过早
- 平均 0.8% 收益,低于 ROI
跟踪止损(15 次,100% 胜率):
- ✅ 全部盈利,说明跟踪止损设置合理
- ✅ 平均 3.5% 收益,最高的退出方式
- 成功锁定了大部分利润
固定止损(12 次,0% 胜率):
- ❌ 全部亏损,平均 -5%
- ⚠️ 占比 12%,可以接受
- 如果占比 > 30%,需要调整策略
问题诊断
问题 1:止损占比过高(> 30%)
原因:
- 止损设置过紧
- 入场时机不佳
- 市场波动过大
解决方案:
- 放宽止损范围(如 -5% → -7%)
- 增加入场确认条件
- 启用跟踪止损
问题 2:强制退出占比高(> 10%)
原因:
- 策略持仓时间过长
- 缺少明确的退出信号
- ROI 设置过高
解决方案:
- 添加退出信号
- 调整 ROI 梯度
- 设置最大持仓时间
问题 3:ROI 占比过低(< 20%)
原因:
- ROI 设置过高,难以达到
- 策略捕捉不到大趋势
- 退出信号过早触发
解决方案:
- 降低 ROI 目标
- 优化入场时机
- 调整退出信号逻辑
6.4 持仓时间分析
平均持仓时间
示例:
Avg. holding time: 4h 35m
分类:
- < 1h:超短线
- 1-6h:短线
- 6-24h:日内
- > 24h:波段
持仓时间与收益的关系
理想曲线
收益 ↑
│ ┌────────── (ROI 止盈区)
│ ╱
│ ╱
│ ╱
│ ╱
────┼──────────────────→ 持仓时间
│
│ (盈利增长)
问题曲线 1:时间拖累
收益 ↑
│ ┌───┐
│ ╱ ╲
│╱ ╲___ (利润回吐)
────┼───────────────→ 持仓时间
问题:持仓过久,利润回吐
解决:缩短 ROI 梯度时间
问题曲线 2:过早退出
收益 ↑
│
│ │ │ │ │ (频繁小盈利)
────┼─┴─┴─┴─┴───────→ 持仓时间
问题:未能捕捉大趋势
解决:放宽退出条件,使用跟踪止损
持仓时间分布
理想分布:
┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━┓
┃ Duration ┃ Trades ┃ Avg Profit ┃
┡━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━┩
│ < 1h │ 15 │ 0.5% │
│ 1-4h │ 40 │ 1.2% │
│ 4-12h │ 30 │ 2.5% │
│ > 12h │ 15 │ 3.8% │
└────────────┴────────┴────────────┘
分析:
- 持仓时间越长,收益越高(正常)
- 大部分交易在 1-4h(策略主战场)
- 少量长线交易贡献高收益
隔夜风险
如果策略持仓超过 24 小时,需要考虑:
风险因素:
- 美股收盘影响
- 亚洲开盘波动
- 突发新闻事件
- 周末缺口
应对措施:
# 避免隔夜持仓(高级功能)
def custom_exit(self, pair, trade, current_time, **kwargs):
# 如果持仓超过 20 小时,强制退出
if (current_time - trade.open_date_utc).seconds > 72000:
return 'holding_too_long'
💡 实践任务
任务 1:回测三个策略
# 回测 Strategy001
freqtrade backtesting -c config.json --strategy Strategy001 --timerange 20250901-20250930
# 回测 Strategy002
freqtrade backtesting -c config.json --strategy Strategy002 --timerange 20250901-20250930
# 回测 Strategy003
freqtrade backtesting -c config.json --strategy Strategy003 --timerange 20250901-20250930
任务 2:制作策略对比表格
创建 Excel 或 Google Sheets,记录以下指标:
指标 | Strategy001 | Strategy002 | Strategy003 |
---|---|---|---|
交易次数 | ? | ? | ? |
胜率 | ? | ? | ? |
总收益 % | ? | ? | ? |
平均收益 % | ? | ? | ? |
最大回撤 % | ? | ? | ? |
Sharpe Ratio | ? | ? | ? |
ROI 退出占比 | ? | ? | ? |
止损退出占比 | ? | ? | ? |
平均持仓时间 | ? | ? | ? |
任务 3:分析每个策略的优缺点
Strategy001:
- 优点:
- 缺点:
- 适合市场:
Strategy002:
- 优点:
- 缺点:
- 适合市场:
Strategy003:
- 优点:
- 缺点:
- 适合市场:
任务 4:选出最佳策略
根据以下标准选出你认为最好的策略:
评分标准(100 分制):
- 总收益(30 分)
- 胜率(20 分)
- 最大回撤(20 分)
- Sharpe Ratio(15 分)
- 交易次数合理性(15 分)
我的选择:___________
理由:___________
📚 知识检查
基础问题
- 胜率 80%,平均盈利 1%,平均亏损 -1%,期望收益是多少?
- 最大回撤 20%,需要上涨多少才能回本?
- Sharpe Ratio > 3.0 表示什么?
- ROI 退出占比高说明什么?
答案
- 0.6%(0.80 × 1% + 0.20 × -1%)
- 25%(1 / (1 - 0.20) - 1)
- 优秀的风险收益比,策略质量很高
- 策略能够快速达到止盈目标,趋势把握准确
进阶问题
- 一个策略胜率 40%,平均盈利 5%,平均亏损 -1%,这个策略好吗?
- 如果两个策略收益相同,但一个回撤 5%,另一个回撤 15%,你选哪个?
- Sharpe Ratio 为负数意味着什么?
思考题
- 为什么平均每笔收益比总收益更重要?
- 高胜率策略一定好吗?
- 如何判断一个策略是否过度交易?
🔗 参考资料
配套文档
- 📄 STRATEGY_SELECTION_GUIDE.md - 策略评分标准
- 📄 TESTING_GUIDE.md - 回测报告解读
推荐阅读
📌 核心要点总结
- 平均每笔收益 > 总收益:更能反映策略质量
- 胜率和盈亏比需要平衡:不要只看胜率
- 最大回撤 < 10%:风险可控的标准
- Sharpe Ratio > 2.0:优秀策略的门槛
- 退出原因统计:诊断策略问题的关键
- 手续费成本:高频策略的最大敌人
➡️ 下一课预告
第 7 课:多时间框架回测
在下一课中,我们将:
- 测试同一策略在不同时间框架的表现
- 理解时间框架对策略的影响
- 找出最适合策略的时间框架
- 学习时间框架选择的原则
准备工作:
- ✅ 下载 BTC/USDT 多个时间框架数据(5m, 15m, 1h, 1d)
- ✅ 选定一个策略用于测试
- ✅ 准备记录不同时间框架的测试结果
🎯 学习检验标准:
- ✅ 能独立解读回测报告的所有关键指标
- ✅ 能对比多个策略并选出最优
- ✅ 理解胜率和盈亏比的权衡关系
- ✅ 能根据退出原因统计诊断问题
完成这些任务后,你已经具备了策略分析的专业能力!🎯
Top comments (0)