【期货量化进阶】期货量化交易策略策略评估指标(Python量化) 📅 发布时间:2026/7/7 3:20:10 👁️ 浏览次数: 一、前言策略评估是量化交易的重要环节。选择合适的评估指标可以准确衡量策略表现。本文将介绍各种策略评估指标及其计算方法。本文将介绍收益指标风险指标风险调整收益指标交易指标综合评估方法二、为什么选择天勤量化TqSdkTqSdk策略评估支持功能说明回测框架支持策略回测数据统计pandas/numpy支持指标计算灵活扩展支持自定义指标结果分析支持结果分析安装方法pipinstalltqsdk pandas numpy scipy三、收益指标3.1 总收益率#!/usr/bin/env python# -*- coding: utf-8 -*- 功能策略评估指标 说明本代码仅供学习参考 fromtqsdkimportTqApi,TqAuthimportpandasaspdimportnumpyasnpdefcalculate_total_return(returns):计算总收益率total_return(1returns).cumprod().iloc[-1]-1returntotal_return# 使用示例strategy_returnspd.Series([0.01,-0.005,0.02,0.01,-0.01])total_returncalculate_total_return(strategy_returns)print(f总收益率:{total_return:.2%})3.2 年化收益率defcalculate_annualized_return(returns,periods_per_year252):计算年化收益率total_return(1returns).cumprod().iloc[-1]-1n_periodslen(returns)annualized_return(1total_return)**(periods_per_year/n_periods)-1returnannualized_return# 使用示例annual_returncalculate_annualized_return(strategy_returns)print(f年化收益率:{annual_return:.2%})3.3 累计收益曲线defcalculate_cumulative_returns(returns):计算累计收益cumulative(1returns).cumprod()returncumulative四、风险指标4.1 波动率defcalculate_volatility(returns,periods_per_year252):计算年化波动率volatilityreturns.std()*np.sqrt(periods_per_year)returnvolatility# 使用示例volatilitycalculate_volatility(strategy_returns)print(f年化波动率:{volatility:.2%})4.2 最大回撤defcalculate_max_drawdown(returns):计算最大回撤cumulative(1returns).cumprod()running_maxcumulative.expanding().max()drawdown(cumulative-running_max)/running_max max_drawdowndrawdown.min()returnmax_drawdown# 使用示例max_ddcalculate_max_drawdown(strategy_returns)print(f最大回撤:{max_dd:.2%})4.3 下行波动率defcalculate_downside_volatility(returns,periods_per_year252,target0):计算下行波动率downside_returnsreturns[returnstarget]iflen(downside_returns)0:return0downside_voldownside_returns.std()*np.sqrt(periods_per_year)returndownside_vol五、风险调整收益指标5.1 夏普比率defcalculate_sharpe_ratio(returns,risk_free_rate0.0,periods_per_year252):计算夏普比率excess_returnsreturns-risk_free_rate/periods_per_year sharpeexcess_returns.mean()/returns.std()*np.sqrt(periods_per_year)returnsharpe# 使用示例sharpecalculate_sharpe_ratio(strategy_returns)print(f夏普比率:{sharpe:.2f})5.2 索提诺比率defcalculate_sortino_ratio(returns,risk_free_rate0.0,periods_per_year252,target0):计算索提诺比率excess_returnsreturns-risk_free_rate/periods_per_year downside_volcalculate_downside_volatility(returns,periods_per_year,target)ifdownside_vol0:return0sortinoexcess_returns.mean()/downside_vol*np.sqrt(periods_per_year)returnsortino# 使用示例sortinocalculate_sortino_ratio(strategy_returns)print(f索提诺比率:{sortino:.2f})5.3 卡玛比率defcalculate_calmar_ratio(returns,periods_per_year252):计算卡玛比率annual_returncalculate_annualized_return(returns,periods_per_year)max_drawdownabs(calculate_max_drawdown(returns))ifmax_drawdown0:return0calmarannual_return/max_drawdownreturncalmar# 使用示例calmarcalculate_calmar_ratio(strategy_returns)print(f卡玛比率:{calmar:.2f})六、交易指标6.1 胜率defcalculate_win_rate(trades):计算胜率iflen(trades)0:return0winssum(1fortradeintradesiftrade[pnl]0)win_ratewins/len(trades)returnwin_rate# 使用示例trades[{pnl:100},{pnl:-50},{pnl:200},{pnl:-30}]win_ratecalculate_win_rate(trades)print(f胜率:{win_rate:.2%})6.2 盈亏比defcalculate_profit_loss_ratio(trades):计算盈亏比profits[trade[pnl]fortradeintradesiftrade[pnl]0]losses[abs(trade[pnl])fortradeintradesiftrade[pnl]0]iflen(losses)0:returnfloat(inf)iflen(profits)0else0avg_profitnp.mean(profits)ifprofitselse0avg_lossnp.mean(losses)profit_loss_ratioavg_profit/avg_lossifavg_loss0else0returnprofit_loss_ratio# 使用示例pl_ratiocalculate_profit_loss_ratio(trades)print(f盈亏比:{pl_ratio:.2f})6.3 交易次数defcalculate_trade_count(trades):计算交易次数returnlen(trades)6.4 平均持仓时间defcalculate_avg_holding_period(trades):计算平均持仓时间iflen(trades)0:return0holding_periods[]fortradeintrades:ifentry_timeintradeandexit_timeintrade:period(trade[exit_time]-trade[entry_time]).total_seconds()/3600holding_periods.append(period)iflen(holding_periods)0:return0avg_periodnp.mean(holding_periods)returnavg_period七、综合评估7.1 综合评估函数defcomprehensive_evaluation(returns,tradesNone):综合评估metrics{}# 收益指标metrics[total_return]calculate_total_return(returns)metrics[annualized_return]calculate_annualized_return(returns)# 风险指标metrics[volatility]calculate_volatility(returns)metrics[max_drawdown]calculate_max_drawdown(returns)# 风险调整收益指标metrics[sharpe_ratio]calculate_sharpe_ratio(returns)metrics[sortino_ratio]calculate_sortino_ratio(returns)metrics[calmar_ratio]calculate_calmar_ratio(returns)# 交易指标iftrades:metrics[win_rate]calculate_win_rate(trades)metrics[profit_loss_ratio]calculate_profit_loss_ratio(trades)metrics[trade_count]calculate_trade_count(trades)metrics[avg_holding_period]calculate_avg_holding_period(trades)returnmetrics# 使用示例metricscomprehensive_evaluation(strategy_returns,trades)forkey,valueinmetrics.items():ifisinstance(value,float):print(f{key}:{value:.4f})else:print(f{key}:{value})7.2 评估报告defgenerate_evaluation_report(returns,tradesNone):生成评估报告metricscomprehensive_evaluation(returns,trades)reportf 策略评估报告 收益指标: 总收益率:{metrics[total_return]:.2%}年化收益率:{metrics[annualized_return]:.2%}风险指标: 年化波动率:{metrics[volatility]:.2%}最大回撤:{metrics[max_drawdown]:.2%}风险调整收益: 夏普比率:{metrics[sharpe_ratio]:.2f}索提诺比率:{metrics[sortino_ratio]:.2f}卡玛比率:{metrics[calmar_ratio]:.2f}iftrades:reportf 交易指标: 胜率:{metrics[win_rate]:.2%}盈亏比:{metrics[profit_loss_ratio]:.2f}交易次数:{metrics[trade_count]}平均持仓时间:{metrics[avg_holding_period]:.2f}小时 returnreport# 使用示例reportgenerate_evaluation_report(strategy_returns,trades)print(report)八、总结8.1 评估指标分类类别指标用途收益总收益率、年化收益率衡量收益风险波动率、最大回撤衡量风险风险调整夏普、索提诺、卡玛综合评估交易胜率、盈亏比交易质量8.2 注意事项综合评估- 使用多个指标综合评估样本外验证- 使用样本外数据验证持续监控- 持续监控策略表现对比基准- 与基准对比评估免责声明本文仅供学习交流使用不构成任何投资建议。期货交易有风险入市需谨慎。更多资源天勤量化官网https://www.shinnytech.comGitHub开源地址https://github.com/shinnytech/tqsdk-python官方文档https://doc.shinnytech.com/tqsdk/latest
华为eNSP模拟器综合实验之- 路由策略解析 路由策略是控制网络流量路径的核心技术,它允许你通过定义规则来影响路由信息的传播和数据包的转发路径,从而实现精准的流量管理和网络优化。 一、路由-策略 智能导航规则 网络管理员给路由器设置的“交通管理条例”和“智能导航规则”。它的根本目的&a… 2026/5/17 2:47:24
如何通过AI技术实现汽车冲压工艺的精度与效率双重突破? 在现代汽车制造中,冲压工艺作为车身成型的核心环节,其稳定性与精度直接影响整车质量与生产节拍。然而,传统冲压依赖工程师经验进行参数调整,面对材料批次差异、模具磨损、环境温湿度波动等复杂变量,往往陷入“试错—反… 2026/7/4 2:33:22
【图像美颜】基于matlab GUI HSI颜色空间的图像美颜系统设计与实现【含Matlab源码 B7Z034期】 💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞Ὁ… 2026/7/6 19:00:17
pymoo多目标优化框架架构深度解析与高级应用实践 pymoo多目标优化框架架构深度解析与高级应用实践 【免费下载链接】pymoo NSGA2, NSGA3, R-NSGA3, MOEAD, Genetic Algorithms (GA), Differential Evolution (DE), CMAES, PSO 项目地址: https://gitcode.com/gh_mirrors/py/pymoo 在复杂工程系统设计与决策支持领域&… 2026/7/7 3:18:30
兰州大学2021创新实践课程:openEuler在高校教育中的完整应用指南 兰州大学2021创新实践课程:openEuler在高校教育中的完整应用指南 【免费下载链接】lanzhou_university_2021 仓库关闭的原因:https://gitee.com/openeuler/community/pulls/3117 项目地址: https://gitcode.com/openeuler/lanzhou_university_2021 … 2026/7/7 3:18:30
如何用缝合像素字体为你的项目注入复古魅力:3种尺寸、2种模式全解析 如何用缝合像素字体为你的项目注入复古魅力:3种尺寸、2种模式全解析 【免费下载链接】fusion-pixel-font 开源的泛中日韩像素字体,黑体风格 项目地址: https://gitcode.com/gh_mirrors/fu/fusion-pixel-font 你是否正在寻找一款既能展现复古像素美… 2026/7/7 3:16:30
亚马逊广告结构优化:实现高效增长与盈利的关键策略 引言:为何亚马逊广告结构至关重要?在当前竞争激烈的电商环境中,流量成本日益攀升,亚马逊卖家普遍面临着点击率(CTR)与转化率(CVR)的增长瓶颈。广告不再仅仅是获取曝光的工具… 2026/7/7 3:16:29
6DoF IMU传感器IIM-42652与PIC18F45K50集成开发指南 1. 从3D到6DoF:IMU传感器的进阶之路在运动追踪和姿态感知领域,3D运动捕捉已经不能满足现代应用的需求。6DoF(六自由度)技术通过增加三个旋转维度的数据,实现了对物体在空间中完整运动的精确描述。IIM-42652作为TDK Inv… 2026/7/7 3:14:29
Linux iperf 命令超全详解:TCP/UDP 带宽 / 丢包 / 抖动一键测试,网络性能神器 1. 命令简介iperf 是一款开源的、跨平台的网络性能测试工具,用于测量网络带宽、延迟抖动和数据包丢失等关键指标。它支持 TCP 和 UDP 两种协议,能够评估网络设备(如路由器、交换机、防火墙)的性能以及网络链路的实际吞吐量。该工具… 2026/7/7 3:12:29
Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践 1. 项目概述:Acunetix v24.8 高级版漏洞扫描器深度解析作为一名在网络安全领域摸爬滚打多年的老兵,我深知一款趁手的“兵器”对于安全测试工作意味着什么。今天要聊的,就是Web应用安全测试领域里一个响当当的名字——Acunetix。特别是其v24.8… 2026/7/7 0:01:11
如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是… 2026/7/7 0:03:13
Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 【免费下载链接】Jailhouse-gui A graphical user interface (GUI) tool for configuring and managing Jailhouse, a Linux-based hypervisor for partitioning multicore processors into isolated cel… 2026/7/7 0:03:13
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/6 8:43:22
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/6 7:29:49
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/6 7:29:51