第 13 课:策略评分体系
⏱ 课时:1.5 小时
🎯 学习目标:建立科学的策略评估标准
📚 难度:⭐⭐⭐ 策略优化
📖 课程概览
面对众多策略,如何客观评价它们的优劣?本课将教你建立一套科学的策略评分体系,通过量化指标综合评估策略,帮你选出真正优秀的策略。
13.1 收益指标(40% 权重)
收益是策略最直观的表现,但不应是唯一标准。
1. 总收益率(Total Return)
定义:整个回测期间的累计收益。
评分标准(30天回测):
优秀:> 15%     → 10分
良好:10-15%    → 8分
及格:5-10%     → 6分
较差:0-5%      → 4分
亏损:< 0%      → 0分
权重:15%
计算示例:
# 策略 A:总收益 18%
score = 10 × 0.15 = 1.5分
# 策略 B:总收益 8%
score = 6 × 0.15 = 0.9分
2. 年化收益率(Annualized Return)
定义:将回测收益折算成年化收益。
计算公式:
年化收益率 = (1 + 总收益率) ^ (365 / 回测天数) - 1
示例:
回测30天,收益15%:
年化收益率 = (1.15) ^ (365/30) - 1 = 7.43 = 743%
回测90天,收益15%:
年化收益率 = (1.15) ^ (365/90) - 1 = 0.68 = 68%
评分标准:
优秀:> 100%    → 10分
良好:50-100%   → 8分
及格:20-50%    → 6分
较差:0-20%     → 4分
亏损:< 0%      → 0分
权重:10%
3. 平均每笔收益(Avg Profit per Trade)
定义:每笔交易的平均盈利。
评分标准:
优秀:> 1.5%    → 10分
良好:1.0-1.5%  → 8分
及格:0.5-1.0%  → 6分
较差:0.2-0.5%  → 4分
很差:< 0.2%    → 2分
权重:15%
重要性:
- 比总收益更能反映策略质量
 - 高平均收益 = 高效策略
 - 需要结合交易次数综合判断
 
13.2 风险指标(30% 权重)
控制风险是长期盈利的关键。
1. 最大回撤(Max Drawdown)
定义:资金从最高点到最低点的最大跌幅。
评分标准:
优秀:< 5%      → 10分
良好:5-10%     → 8分
及格:10-15%    → 6分
较差:15-20%    → 4分
危险:> 20%     → 0分
权重:15%
为什么重要?
回撤 10% → 需要上涨 11.1% 才能回本
回撤 20% → 需要上涨 25% 才能回本
回撤 50% → 需要上涨 100% 才能回本
2. Sharpe Ratio
定义:风险调整后的收益率。
评分标准:
优秀:> 3.0     → 10分
良好:2.0-3.0   → 8分
及格:1.0-2.0   → 6分
较差:0.5-1.0   → 4分
很差:< 0.5     → 2分
负值:< 0       → 0分
权重:10%
3. Calmar Ratio
定义:年化收益 / 最大回撤。
计算公式:
Calmar Ratio = 年化收益率 / |最大回撤|
示例:
策略 A:年化收益 60%,回撤 10%
Calmar = 60 / 10 = 6.0 ✅ 优秀
策略 B:年化收益 80%,回撤 25%
Calmar = 80 / 25 = 3.2 ⚠️ 一般
评分标准:
优秀:> 5.0     → 10分
良好:3.0-5.0   → 8分
及格:2.0-3.0   → 6分
较差:1.0-2.0   → 4分
很差:< 1.0     → 2分
权重:5%
13.3 稳定性指标(20% 权重)
稳定性决定了策略能否长期持续盈利。
1. 胜率(Win Rate)
定义:盈利交易占总交易的百分比。
评分标准:
优秀:> 80%     → 10分
良好:70-80%    → 8分
及格:60-70%    → 6分
较差:50-60%    → 4分
很差:< 50%     → 2分
权重:8%
注意:
- 胜率不是越高越好
 - 需要结合盈亏比综合判断
 - 40% 胜率 + 3:1 盈亏比 > 80% 胜率 + 1:1 盈亏比
 
2. 盈亏比(Profit Factor)
定义:总盈利 / 总亏损。
计算公式:
Profit Factor = 总盈利金额 / |总亏损金额|
示例:
总盈利:$1,200
总亏损:$400
Profit Factor = 1,200 / 400 = 3.0
评分标准:
优秀:> 2.5     → 10分
良好:2.0-2.5   → 8分
及格:1.5-2.0   → 6分
较差:1.2-1.5   → 4分
很差:< 1.2     → 2分
亏损:< 1.0     → 0分
权重:7%
3. 收益标准差(Consistency)
定义:各季度收益的波动程度。
计算方法:
# 假设 4 个季度的收益
returns = [8%, 12%, 9%, 11%]
std_dev = np.std(returns) = 1.58%
# 标准差越小,越稳定
评分标准:
优秀:< 3%      → 10分
良好:3-5%      → 8分
及格:5-8%      → 6分
较差:8-12%     → 4分
很差:> 12%     → 2分
权重:5%
13.4 实用性指标(10% 权重)
实用性决定了策略是否适合实盘交易。
1. 交易频率(Trade Frequency)
评分标准(30天回测):
理想:20-60次  → 10分
可接受:10-20次 → 8分
偏少:5-10次   → 6分
太少:< 5次    → 4分
太多:> 100次  → 4分
超高频:> 150次 → 2分
权重:4%
理由:
- 太少:样本不足,不可信
 - 太多:手续费侵蚀利润,过度交易
 
2. 持仓时间(Avg Holding Time)
评分标准:
理想:2-24小时  → 10分
可接受:1-2小时 → 8分
极短:< 1小时   → 6分(高频风险)
超长:> 48小时  → 6分(隔夜风险)
权重:3%
3. 样本外表现(Out-of-Sample Performance)
定义:测试期表现 / 训练期表现。
评分标准:
优秀:> 90%     → 10分
良好:75-90%    → 8分
及格:60-75%    → 6分
较差:40-60%    → 4分
过拟合:< 40%   → 0分
权重:3%
计算示例:
训练期收益:20%
测试期收益:17%
样本外得分 = 17 / 20 = 85% → 8分
13.5 综合评分系统
评分公式
总分 = (
    # 收益指标(40%)
    总收益评分 × 0.15 +
    年化收益评分 × 0.10 +
    平均收益评分 × 0.15 +
    # 风险指标(30%)
    最大回撤评分 × 0.15 +
    Sharpe评分 × 0.10 +
    Calmar评分 × 0.05 +
    # 稳定性指标(20%)
    胜率评分 × 0.08 +
    盈亏比评分 × 0.07 +
    收益标准差评分 × 0.05 +
    # 实用性指标(10%)
    交易频率评分 × 0.04 +
    持仓时间评分 × 0.03 +
    样本外表现评分 × 0.03
)
策略评分卡模板
| 指标类别 | 指标 | 实际值 | 单项得分 | 权重 | 加权得分 | 
|---|---|---|---|---|---|
| 收益 | 总收益% | 18% | 10 | 15% | 1.50 | 
| 年化收益% | 120% | 10 | 10% | 1.00 | |
| 平均收益% | 1.2% | 8 | 15% | 1.20 | |
| 风险 | 最大回撤% | 6% | 8 | 15% | 1.20 | 
| Sharpe Ratio | 2.8 | 8 | 10% | 0.80 | |
| Calmar Ratio | 4.5 | 8 | 5% | 0.40 | |
| 稳定性 | 胜率% | 78% | 8 | 8% | 0.64 | 
| 盈亏比 | 2.3 | 8 | 7% | 0.56 | |
| 收益标准差 | 4% | 8 | 5% | 0.40 | |
| 实用性 | 交易频率 | 42次 | 10 | 4% | 0.40 | 
| 持仓时间 | 8小时 | 10 | 3% | 0.30 | |
| 样本外% | 82% | 8 | 3% | 0.24 | |
| 总分 | 100% | 8.64 | 
评级标准
⭐⭐⭐⭐⭐ S级(9.0-10.0):顶级策略,强烈推荐实盘
⭐⭐⭐⭐   A级(8.0-9.0):优秀策略,推荐实盘
⭐⭐⭐     B级(7.0-8.0):良好策略,可以实盘
⭐⭐       C级(6.0-7.0):及格策略,谨慎实盘
⭐         D级(5.0-6.0):较差策略,需要优化
❌         F级(< 5.0):不合格,不推荐使用
实际案例评分
案例 1:MomentumTrendStrategy
| 指标 | 值 | 得分 | 加权 | 
|---|---|---|---|
| 总收益 | 23.5% | 10 | 1.50 | 
| 年化收益 | 153% | 10 | 1.00 | 
| 平均收益 | 1.52% | 10 | 1.50 | 
| 最大回撤 | 3.2% | 10 | 1.50 | 
| Sharpe | 3.5 | 10 | 1.00 | 
| Calmar | 8.2 | 10 | 0.50 | 
| 胜率 | 89.7% | 10 | 0.80 | 
| 盈亏比 | 2.8 | 10 | 0.70 | 
| 收益标准差 | 2.5% | 10 | 0.50 | 
| 交易频率 | 68次 | 8 | 0.32 | 
| 持仓时间 | 6小时 | 10 | 0.30 | 
| 样本外 | 88% | 8 | 0.24 | 
| 总分 | 9.36 ⭐⭐⭐⭐⭐ | 
评级:S级 - 顶级策略
评语:
- ✅ 收益出色(23.5%)
 - ✅ 风险极低(回撤 3.2%)
 - ✅ 稳定性优秀(胜率 90%)
 - ✅ 样本外验证良好
 - 💡 强烈推荐实盘
 
案例 2:Strategy001
| 指标 | 值 | 得分 | 加权 | 
|---|---|---|---|
| 总收益 | 15.3% | 10 | 1.50 | 
| 年化收益 | 92% | 8 | 0.80 | 
| 平均收益 | 0.85% | 6 | 0.90 | 
| 最大回撤 | 6.8% | 8 | 1.20 | 
| Sharpe | 2.1 | 8 | 0.80 | 
| Calmar | 3.5 | 8 | 0.40 | 
| 胜率 | 72.4% | 8 | 0.64 | 
| 盈亏比 | 1.8 | 6 | 0.42 | 
| 收益标准差 | 5.5% | 6 | 0.30 | 
| 交易频率 | 127次 | 6 | 0.24 | 
| 持仓时间 | 4小时 | 10 | 0.30 | 
| 样本外 | 72% | 6 | 0.18 | 
| 总分 | 7.68 ⭐⭐⭐ | 
评级:B级 - 良好策略
评语:
- ✅ 收益良好(15.3%)
 - ✅ 风险可控(回撤 6.8%)
 - ⚠️ 交易频率偏高(127次)
 - ⚠️ 样本外表现一般(72%)
 - 💡 可以实盘,但需要密切监控
 
💡 实践任务
任务 1:制作策略评分卡
选择 3 个策略,为每个策略制作完整的评分卡。
步骤:
- 回测 3 个策略(30天数据)
 - 记录所有指标数据
 - 使用评分公式计算总分
 - 评定等级
 
评分表格模板(Excel 或 Google Sheets):
下载评分卡模板(需自行创建)
任务 2:对比不同权重方案
尝试调整权重,观察对排名的影响:
方案 A:收益优先
- 收益指标:50%
 - 风险指标:20%
 - 稳定性:20%
 - 实用性:10%
 
方案 B:风险优先
- 收益指标:25%
 - 风险指标:45%
 - 稳定性:20%
 - 实用性:10%
 
方案 C:平衡型(推荐)
- 收益指标:40%
 - 风险指标:30%
 - 稳定性:20%
 - 实用性:10%
 
对比三种方案下,你的策略排名是否变化?
任务 3:制作策略推荐清单
根据评分结果,制作推荐清单:
# 我的策略推荐清单
## 🥇 S级策略(9.0-10.0分)
1. **MomentumTrendStrategy** - 9.36分
   - 优点:收益高、风险低、稳定性好
   - 缺点:交易频率略高
   - 推荐仓位:30%
## 🥈 A级策略(8.0-9.0分)
(填写你的策略)
## 🥉 B级策略(7.0-8.0分)
(填写你的策略)
## ⚠️ 需要优化的策略
(填写需要改进的策略)
📚 Python 自动化评分脚本
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
策略自动评分工具
"""
import numpy as np
class StrategyScorer:
    def __init__(self):
        self.weights = {
            'total_return': 0.15,
            'annual_return': 0.10,
            'avg_profit': 0.15,
            'max_drawdown': 0.15,
            'sharpe': 0.10,
            'calmar': 0.05,
            'win_rate': 0.08,
            'profit_factor': 0.07,
            'consistency': 0.05,
            'trade_freq': 0.04,
            'holding_time': 0.03,
            'out_of_sample': 0.03
        }
    def score_total_return(self, value):
        """总收益评分"""
        if value > 15: return 10
        if value > 10: return 8
        if value > 5: return 6
        if value > 0: return 4
        return 0
    def score_max_drawdown(self, value):
        """最大回撤评分(负值)"""
        value = abs(value)
        if value < 5: return 10
        if value < 10: return 8
        if value < 15: return 6
        if value < 20: return 4
        return 0
    def score_sharpe(self, value):
        """Sharpe Ratio 评分"""
        if value > 3.0: return 10
        if value > 2.0: return 8
        if value > 1.0: return 6
        if value > 0.5: return 4
        if value > 0: return 2
        return 0
    def score_win_rate(self, value):
        """胜率评分"""
        if value > 80: return 10
        if value > 70: return 8
        if value > 60: return 6
        if value > 50: return 4
        return 2
    def calculate_total_score(self, metrics):
        """计算总分"""
        scores = {
            'total_return': self.score_total_return(metrics['total_return']),
            'max_drawdown': self.score_max_drawdown(metrics['max_drawdown']),
            'sharpe': self.score_sharpe(metrics['sharpe']),
            'win_rate': self.score_win_rate(metrics['win_rate']),
            # 添加其他指标的评分...
        }
        total = 0
        for key, score in scores.items():
            if key in self.weights:
                total += score * self.weights[key]
        return total
    def get_grade(self, score):
        """获取评级"""
        if score >= 9.0: return 'S'
        if score >= 8.0: return 'A'
        if score >= 7.0: return 'B'
        if score >= 6.0: return 'C'
        if score >= 5.0: return 'D'
        return 'F'
# 使用示例
scorer = StrategyScorer()
strategy_metrics = {
    'total_return': 18.5,
    'max_drawdown': -6.2,
    'sharpe': 2.8,
    'win_rate': 75.5,
    # ... 其他指标
}
score = scorer.calculate_total_score(strategy_metrics)
grade = scorer.get_grade(score)
print(f"策略评分: {score:.2f}")
print(f"策略评级: {grade}级")
📌 核心要点总结
- 多维度评估:不要只看收益,风险和稳定性同样重要
 - 权重分配:收益 40%、风险 30%、稳定性 20%、实用性 10%
 - 样本外验证:必须在测试期验证,避免过拟合
 - 综合评级:9分以上才是顶级策略
 - 动态调整:根据个人风险偏好调整权重
 - 持续监控:评分不是一次性的,需要定期重新评估
 
➡️ 下一课预告
第 14 课:风险管理与资金管理
在下一课中,我们将学习:
- 仓位管理策略
 - 止损和止盈设置
 - 资金分配方法
 - 风险控制机制
 
准备工作:
- ✅ 完成至少 3 个策略的评分
 - ✅ 选出 1-2 个高分策略
 - ✅ 准备模拟交易账户
 
🎯 学习检验标准:
- ✅ 理解策略评分体系的各项指标
 - ✅ 能独立为策略打分和评级
 - ✅ 会根据评分选择合适的策略
 - ✅ 理解不同权重方案的影响
 
完成这些任务后,你已经具备了科学评估策略的能力!🎯
    
Top comments (0)