📑 查看全课大纲(第 22 / 59 节)
- 1.量化投资必备基础知识
- 2.趋势型策略及模型原理
- 3.均值回复型策略及模型原理
- 4.配对交易策略及模型原理
- 5.量化策略研发流程与基本技能
- 6.常用的量化平台概述及如何选择
- 7.如何量化一个主观策略思路
- 8.常用技术指标及指标计算过程
- 9.如何编写指标代码
- 10.指标的物理意义
- 11.技术指标的应用技巧
- 12.更多的交易决策
- 13.编写程序去量化一个趋势型技术指标
- 14.编写趋势型技术指标的性能评价
- 15.策略对交易成本和持仓周期的影响
- 16.股票池策略的原理及基本框架
- 17.基于多因子分析的股票池设计与实现
- 18.股票池的性能评估
- 19.使用定制化财务因子构建股票池
- 20.趋势型策略原理及股票池机制的设计
- 21.趋势型择时信号的设计方法与编程实现
- 22.趋势型策略的回测与性能评估
- 23.优化趋势型策略的思路及方法
- 24.量化体系中的风险控制思想
- 25.风险的度量-波动率
- 26.常用的风险控制方法
- 27.实现止盈止损模块以提高策略性能
- 28.策略性能的评估与优化
- 29.探讨波动率与风险的关系
- 30.量化策略中的经典资金管理模型
- 31.用python编程实现资金管理模块
- 32.构建一个完善的量化交易策略
- 33.趋势型量化策略必备的期货知识
- 34.期货量化工具介绍
- 35.商品期货趋势型策略原理
- 36.用TB编写商品期货趋势型策略(上)
- 37.用TB编写商品期货趋势型策略(下)
- 38.分析优化商品期货趋势型策略的方法思路
- 39.期货交易策略的注意事项
- 40.均值回复型策略的原理
- 41.A股市场有没有稳定的均值回复效应?
- 42.编写一个均值回复型股票量化策略
- 43.编写多空组合策略进行策略改进
- 44.在策略中实现头寸管理进行策略优化
- 45.套利策略原理及常见套利类型
- 46.用MC开发一个跨品种套利交易策略(上)
- 47.用MC开发一个跨品种套利交易策略(下)
- 48.统计套利之股票配对交易策略
- 49.实盘中的细节问题:加减仓
- 50.关于高频交易
- 51.如何评价实盘量化策略的性能
- 52.量化系统的工作过程及研发流程
- 53.运气or实力
- 54.量化实盘交易需要满足什么条件
- 55.未来函数的坑
- 56.实盘数据接口异常的自动报警
- 57.交易系统的压力测试
- 58.自动运行的交易策略,什么时候需要人工干预
- 59.预案准备和实盘心理建设
趋势型策略的回测与性能评估
约 63 分钟
📺 正在播放小象官方高清录播(支持倍速与清晰度调节)
趋势型策略的回测与性能评估
小象实战讲义 · 进阶量化交易实战:迭代式的量化策略研发 本讲义仅用于编程与量化方法教学,不构成任何投资建议。
策略回测不是简单的收益曲线拟合,而是对策略在历史不同极端情景下生存能力的全面大考。本节深入剖析趋势策略回测引擎的构建、最大回撤(MDD)、卡玛比率(Calmar)、夏普比率(Sharpe)以及收益回撤比的精细化度量。
💡 核心导读
- 趋势型策略全量绩效评估指标矩阵:
- 年化复合收益率(CAGR):衡量策略长期复利增长能力;
- 最大回撤与回撤持续时间(Max Drawdown & Duration):历史峰值至谷底的最大跌幅及修复所需的交易日天数;
- 卡玛比率(Calmar Ratio ):趋势策略核心性价比指标,要求 Calmar ;
- 月度收益分布热力图(Monthly Return Matrix):评估收益在各年份及不同月份的均匀分布程度。
┌─────────────────────────────────────────────────────────────┐
│ 趋势策略回测与绩效评估全景拓扑图 │
└──────────────────────────────┬──────────────────────────────┘
│
┌─────────────────────────────┼─────────────────────────────┐
▼ ▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐
│ 净值与收益曲线 │ │ 风险与回撤深度 │ │ 综合风险调整后收益 │
├─────────────────────────┤ ├─────────────────────────┤ ├─────────────────────────┤
│ • CAGR 年化复合收益率 │ │ • Max Drawdown (MDD) │ │ • Sharpe Ratio > 1.2 │
│ • 总收益率 / 基准超额 │ │ • 最长回撤修复期 (天) │ │ • Calmar Ratio > 1.5 │
└─────────────────────────┘ └─────────────────────────┘ └─────────────────────────┘一、最大回撤(Max Drawdown)与卡玛比率数学建模
对于累计净值序列 ,历史高点序列(High Watermark)为 。当前回撤与最大回撤定义为:
卡玛比率(Calmar Ratio)衡量单位最大回撤所换取的年化收益率:
import pandas as pd
import numpy as np
def calculate_advanced_performance_metrics(equity_series: pd.Series) -> dict:
"""
计算 CAGR, 最大回撤, 夏普比率与卡玛比率
"""
returns = equity_series.pct_change().dropna()
n_days = len(returns)
# 1. CAGR
total_return = equity_series.iloc[-1] / equity_series.iloc[0] - 1.0
cagr = (1.0 + total_return) ** (252.0 / n_days) - 1.0
# 2. Max Drawdown
high_watermark = equity_series.cummax()
drawdown = (high_watermark - equity_series) / high_watermark
mdd = drawdown.max()
# 3. Sharpe & Calmar
vol = returns.std() * np.sqrt(252)
sharpe = (cagr - 0.02) / (vol + 1e-8)
calmar = cagr / (mdd + 1e-8)
return {
'Total_Return': float(total_return),
'CAGR': float(cagr),
'MDD': float(mdd),
'Sharpe': float(sharpe),
'Calmar': float(calmar)
}二、单利回测与复利再投资(Compound)机制
趋势策略通过复利再投资能够实现指数级增长,但在回撤期间亏损金额也会同步放大。回测系统必须支持精确的逐日盯市(Mark-to-Market)与资金复利计算。
def run_vectorized_backtest(df_signals: pd.DataFrame, fee_rate: float = 0.001) -> pd.Series:
"""
简单向量化回测引擎(包含扣费)
"""
df = df_signals.copy()
df['pos'] = df['signal'].shift(1).fillna(0)
df['ret'] = df['close'].pct_change().fillna(0)
# 扣除换手交易费用
df['trades'] = df['pos'].diff().abs().fillna(0)
df['cost'] = df['trades'] * fee_rate
df['strat_ret'] = df['pos'] * df['ret'] - df['cost']
equity = (1.0 + df['strat_ret']).cumprod()
return equity📝 动手练一练
编写 Python 仿真脚本,对包含假突破与主升浪的走势执行全流程回测并输出绩效指标:
import pandas as pd
import numpy as np
def run_backtest_evaluation_test():
np.random.seed(42)
# 模拟 250 天 K 线数据
returns = np.random.normal(0.001, 0.015, 250)
prices = 100.0 * np.cumprod(1.0 + returns)
df = pd.DataFrame({'close': prices})
# 构造均线交叉信号
df['ma10'] = df['close'].rolling(10).mean()
df['ma30'] = df['close'].rolling(30).mean()
df['signal'] = (df['ma10'] > df['ma30']).astype(int)
equity = run_vectorized_backtest(df)
metrics = calculate_advanced_performance_metrics(equity)
print("================ 趋势策略回测绩效评估 ================")
print(f"累计总收益率 : {metrics['Total_Return']*100:.2f}%")
print(f"年化收益率 : {metrics['CAGR']*100:.2f}%")
print(f"最大回撤 MDD : {metrics['MDD']*100:.2f}%")
print(f"卡玛比率 : {metrics['Calmar']:.2f}")
assert metrics['MDD'] >= 0, "最大回撤计算错误!"
print("✅ 趋势策略回测与性能评估测试 PASS")
print("====================================================")
if __name__ == '__main__':
run_backtest_evaluation_test()运行结果输出:
================ 趋势策略回测绩效评估 ================
累计总收益率 : 11.97%
年化收益率 : 12.12%
最大回撤 MDD : 7.80%
卡玛比率 : 1.55
✅ 趋势策略回测与性能评估测试 PASS
====================================================注意:本例卡玛比率 1.55,仅勉强达到 Calmar > 1.5 的及格线,说明该均线交叉策略的风险调整后收益并不宽裕,距离实盘可用还有优化空间。
本章小结
- 卡玛比率优于单一收益率:以单位回撤创造的收益率作为衡量趋势策略优劣的核心标准。
- 严密监控回撤持续期:过长的回撤修复期(如超过 6 个月)会在实盘中严重摧毁交易者的执行信心。
- 真实扣除交易滑点摩擦:回测必须将滑点与交易佣金作为硬约束计入净值计算,确保回测结果可落地。
📋 行动清单 (Action Checklist)
- 运行回测绩效测试代码,计算策略在不同年化波动率下的夏普比率变化;
- 输出按季度统计的盈亏分布表(Quarterly Win-Loss);
- 预习下一节,掌握趋势策略的样本外过拟合检验与优化方法。
— 小象教研组
配套学习资源与课件
- 第4章课件:趋势型策略的设计与实现(PDF · 1.9MB)下载
🎁 免费学习资源
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加课程顾问,免费获取网盘下载链接
微信扫码添加顾问