2308 字
12 分钟

策略性能分析

总收益 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%
  • 反映单笔交易质量

重要性

  • ✅ 比总收益更能反映策略质量
  • ✅ 高平均收益 = 高效策略
  • ⚠️ 需结合交易次数综合判断

对比示例#

策略交易次数总收益平均收益评价
策略 A100+10%+0.1%❌ 低效:交易多,收益低
策略 B10+10%+1.0%✅ 高效:交易少,收益高
策略 C50+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% 才能回本

结论:回撤越大,恢复越难,风险越高。

长回撤期的影响

  • 资金长时间无法增长
  • 心理压力增大
  • 可能错过其他机会

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 → 策略向下波动更剧烈(坏事)

交易频率的影响#

交易次数频率优点缺点
> 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%
  • ✅ 大量小盈小亏交易

后果

  • 手续费侵蚀利润
  • 滑点损失增加
  • 策略过拟合风险
  • 交易所风控风险

退出原因统计#

Freqtrade 回测报告会显示每笔交易的退出原因:

退出原因类型#

退出原因说明理想占比
roiROI 止盈退出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 目标
  • 优化入场时机
  • 调整退出信号逻辑

持仓时间分析#

平均持仓时间#

示例

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'

支持与分享

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

赞助
策略性能分析
https://blog.smyb.fun/posts/aitrade/06_策略性能分析/
作者
三木羽冰
发布于
2026-01-06
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-01-06,距今已过 43 天

部分内容可能已过时

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

音乐

暂未播放

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

目录