转自 BotVS 量化平台社区 --- 如何从绩效报告中分辨出“好模型 or 坏模型”
## NO:01
在投资行业一直有一个说法,靠交易盈利是所有赚钱方式中最难的一种,以至于有人戏谑称交易为投资领域的搬砖工作。
为了提升交易效率、挖掘潜在投资机会,量化交易伴随着信息技术的发展大行其道,在**算法实现**、**信号分发**、**智能下单**、**智能风控**、**损益分析**等方面为交易者提供了巨大的便利。
量化交易的类别众多,但不管哪个形式的量化交易产品,其灵魂就是交易模型。在通俗的条件下,模型可以理解为定义了交易条件的一系列规则,模型的好坏决定了量化交易能否实现最终的盈利。
量化交易者必须学会从纷繁、复杂、多样的模型中挑选出合适的,并投入生产。因此,**构建区分模型好坏的评价体系便十分重要**。
## NO:02
无论是实盘交易数据的记录,还是采用历史数据进行回溯(Back-Testing)的回测报告,模型的优劣都是通过对交易情况的统计来进行评价。
而问题的关键在于,到底需要通过哪些统计数据进行比较?先来看一个例子:如下图,假设在同一时间周期的测试中得到以下两组数据,我们能从中判定哪一个模型表现更优秀么?
答案是,不能。**评价体系的片面性将导致量化交易系统走向绝境**。
## NO:03
交易系统必须能通过历史回测才可以投入使用。无法通过历史回测的交易系统不可能在实际交易中获利。历史回测是交易系统投入实盘的必要前置环节。
**能通过历史回测的交易系统不一定是好用的交易系统,但不能通过历史回测,则一定不是好用的交易系统**。一般而言,我们需要从**稳定性**、**可持续性**、判断是否正期望等角度去分析绩效报告。
如上图,但凡接触过量化的交易者,可能见过这些连篇冗长、晦涩难懂的回测绩效各项数据术语,在这些绩效数据中,甚至有许多数据都是互相矛盾的。好多量化初学者,反而会疑惑,到底要着重看哪些数据?
## NO:04
**第一,最大资产回撤比率(Max Drawdown)**
最大回撤计算公式如上,对于模型而言,最大回撤(Max Drawdown)是一个非常重要的风险指标,这个指标甚至比波动率还要重要。在回测中看到的最大回撤也在一定意义上代表你开仓后可能出现的最糟糕的状况。
从数学角度看,资金亏损20%则需要剩余资金盈利25%,才可以恢复原来的资金规模,如果亏损50%,则需要剩余资金盈利100%,才可以恢复亏损前的资金规模。
那么毫无疑问亏损的幅度越大,恢复到初始资金规模的可能性就越小,难度也就越大。资金向上的利润空间是无限的,向下亏损的空间却是有限的,触底出局的可能性也就越大。
不管怎么定义,至少这两点是目前的主流认识:
**1、最大回撤越小越好;**
**2、回撤和风险成正比,回撤越大,风险越大,回撤越小,风险越小。**
## NO:05
**第二、调整后收益风险比(RAROC)**
很多人对这个概念较陌生,事实上,**调整后收益风险比这个指标是专业玩家与业余玩家的分水岭**。这也是投行、大型基金、职业交易员非常好的评测工具,而且是全球金融领域中通用的考核标准。
**在投资中不光只看利润,更要看在获得这些利润的时候,付出了多大的风险**。一般来说,资产的风险和收益是成正比的。这意味着当模型在收益率上傲视群雄,高歌猛进的时候,其风光的背后可能隐藏着还未爆发的风险。
例如,模型中的开平仓条件或加减仓条件,在上涨时有更高的收益,可一旦出现下跌,就会把损失成倍放大,造成巨大损失。何况,**上涨和下跌具有相当大的不对称影响。**
很多经验丰富的量化交易者愿意为了降低风险牺牲一部分收益,在这种情况下,经过风险调整后的收益更具有参考价值。所以在回测中,风险高、波动大的模型,即使收益较高,也不一定是好的模型。
存款安全,但年收益只有2%。市场可以让你几天赚上50%,也可以让你几天就亏50%。交易这么多年,我自己有一个非常重要的理念就是:**正视风险,风险和收益从来不会孤立存在,交易如同出海打渔,你想打渔,却又不想承担大海的风险,是不可能的。过于保守和过于激进,事实上是走入了两个极端**。设计策略模型也是如此。
## NO:06
**第三、交易次数。**
你总不能拿着几个月的回测绩效,来证明这个模型。如果回测数据过少,那么回测结果就有可能具有偶然性,要不就是参数偶然,要不就是行情偶然等等。另外较长的历史数据,也能过滤掉部分**幸存者偏差**。
一般来讲,对于国内的股票、商品,应该回测5年以上的数据,对于新上市的品种,至少也要回测3年。对于上市较早的品种或国际市场的黄金、美元指数等商品,则应至少回测一个牛熊周期,一般应该在10年–15年以上。回测的期间足够长久,回测的成绩才足够可靠。对于不能满足这个要求的品种,则应在开仓时将R值适当加权处理,主动降低风险暴露。
## NO:07
**第四、平均利润。**
**平均利润这个指标数据,是看似普通,实则非常重要的一项**。它的计算方式也非常简单:净利润 / 交易次数。毫不夸张的说,它是分辨那些回测绩效外表光鲜的照妖镜。如下图,如果这个策略能赚钱,那就不正常了:
如果你看到这个策略回测绩效,可能会有个疑问,这种近乎完美的策略,不用岂不可惜?且慢!请仔细看第二张图的平均利润,只有17,也就是平均交易一次只赚17元。
就拿期货市场大多数一跳为10元的品种来说,但凡做过实盘交易的人就能明白什么意思。在实盘中别说一跳了,十跳八跳都有可能。两跳三跳都是家常便饭。
## NO:08
**第五、胜率。**
**胜率从来都不是单独存在的,或者说单独拿胜率说问题,是不切实际的**。如果你在恰好的行情用上恰好的模型,胜率达到80%也毫不奇怪,但这毫无意义。
**价格不是张就是跌,否则就是不动。如果时间足够长,你会发现,价格上涨和下跌的概率各是50%**。不管你用哪种类型的策略模型,如果回测时胜率超过50%,你就要小心了。从数学和物理学的角度看,这是不可能的。
## NO:09
**第六、详细权益曲线( Equity Curve )**
所谓一张图胜过千言万语,详细权益曲线 ( Equity Curve ) 是从第一笔进场的时间点一直到图表的最后一根bar的时间点结束。它是交易的实时资金曲线,说它是实时是因为它会将每根bar上的浮动盈亏计算在内。
详细权益曲线反映的就是帐户净值的变化,是最直观的评量工具,可以一眼就对该策略亏损获利状况及损益的波动/平滑程度有概略的掌握。不过策略绩效报告这张图不仅胜过千言万语,更迷惑千万信众。另外永远不要看平仓权益曲线。
## NO:10
**第七、年化收益**
年化收益是一个比较争议的指标数据,有人认为它是给外行人看的,并不具备参考意义。首先,**获得盈利是模型被选用的前提,或者说模型回报本身必须是正期望值的**。
**你可以有无数个100%的收益,但是你最多只能承受一个100%**。年化收益率,和真实的收益率(持有期收益率)的差距可能是很大的,有些时候大到超出我们想象。
## NO:11
最后,有一点需要说明的是,**十全十美的回测绩效并不存在**,除了测试数据本身的问题以外,模型的使用方还有可能面临更多的陷阱,从参数优化到成交设计都有可能与实际运行的情况不同。
更重要的是,执行层面的情绪问题是模型投入生产的X因素,实盘交易不可能在“情绪真空”的环境中运行,厚尾现象是每一个程序化交易者必须时刻警惕的。
转载自 BotVS
作者 Hukybo
转自 BotVS 量化平台社区 --- 如何从绩效报告中分辨出“好模型 or 坏模型”的更多相关文章
- FMZ发明者量化平台回测机制说明
原文连接:https://www.fmz.com/digest-topic/4009 大部分策略在实盘之前都需要回测进行验证,FMZ支持部分品种数字货币现货.期货和永续合约,以及商品期货所有品种.但发 ...
- [转]基于WorldWind平台的建筑信息模型在GIS中的应用
1 引言 随着BIM(Building Information Modeling)的不断发展,建筑信息建模的理念贯穿着建筑.结构.施工.运行维护以及拆迁再规划的整个建筑的生命周期,这种理念不仅使得 ...
- 国内物联网平台初探(八):中移物联网开放平台OneNet
平台定位 OneNET是中移物联网有限公司搭建的开放.共赢设备云平台,为各种跨平台物联网应用.行业解决方案,提供简便的云端接入.存储.计算和展现,快速打造物联网产品应用,降低开发成本. IoT Paa ...
- 全链路压测平台(Quake)在美团中的实践
背景 在美团的价值观中,以“客户为中心”被放在一个非常重要的位置,所以我们对服务出现故障越来越不能容忍.特别是目前公司业务正在高速增长阶段,每一次故障对公司来说都是一笔非常不小的损失.而整个IT基础设 ...
- 如何配置一个路径,能够既适合Linux平台,又适合Windows平台,可以从这个路径中读取文件
如何配置一个路径,能够既适合Linux平台,又适合Windows平台,可以从这个路径中读取文件? 目的:就是希望在项目的配置文件中配上一样的路径,不管协作者使用的是什么平台,都能够读到文件. 比如:L ...
- 21全志r58m平台的framework在使用过程中会莫名的崩溃掉
21全志r58m平台的framework在使用过程中会莫名的崩溃掉 2018/10/25 16:20 版本:V1.0 开发板:SC5806 1.系统编译: rootroot@cm88:/home/ww ...
- PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品,产品设计严格遵循国际数据挖掘标准CRISP-DM(跨行业数据挖掘过程标准),具备完备的数据准备、模型构建、模型评估、模型管理、海量数据处理和高纬数据可视化分析能力。
http://www.meritdata.com.cn/article/90 PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品, ...
- 金融量化分析【day112】:量化平台的使用-初始化函数
一.set_benchmark - 设置基准 1.实现代码 # 导入函数库 import jqdata #初始化函数,设定基准等等 def initialize(context): set_bench ...
- 金融量化分析【day112】:量化平台的使用-下单函数
order - 按股数下单 1.代码 # 导入函数库 import jqdata #初始化函数,设定基准等等 def initialize(context): set_benchmark('00030 ...
随机推荐
- Codeforces Round #261 (Div. 2)459D. Pashmak and Parmida's problem(求逆序数对)
题目链接:http://codeforces.com/contest/459/problem/D D. Pashmak and Parmida's problem time limit per tes ...
- spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站
1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建 ...
- as 与 is
在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别:在视图(VIEW)中只能用AS:在游标(CURSOR)中只能用IS.
- 微服务架构之RPC-client序列化细节
通过上篇文章的介绍,知道了要实施微服务,首先要搞定RPC框架,RPC框架的职责要向[调用方]和[服务提供方]屏蔽各种复杂性: (1)让调用方感觉就像调用本地函数一样 (2)让服务提供方感觉就像实现一个 ...
- BMC手册 — 第一模块 BMC介绍
BMC的监控 其实是BPPM与 Patrol 产品的结合.早期它们二个是单独监控产品,后来BPPM被BMC收购.拿来与patrol产口集成产品整合后,BPPM主要用来做展示与告警处理,底层采集采用pa ...
- 二.java下使用RabbitMQ实现hello world
上一篇文章介绍了windows环境下的安装和配置rabbitMQ,具体戳这边,一.windows环境下rabbit的的安装和配置. 现在我们可以着手编写hello world程序了,一窥RabbitM ...
- Html 段落自动换行
1.段落换行 在 Html 中,关于段落换行,是我们经常遇见的问题,那么正如我下图没加换行代码所示: 在网页上的显示的样式,是这样的: 你可以看见,原本的样式,不会自动换行.在 div 中,加入一个样 ...
- idea和Webstorm上使用git和github,码云
由于之前一直使用svn,现在项目使用git,顾根据网上找的学习资料,自己梳理了下,收获蛮多,这里做个记录,如果能帮助到您那是最好不过的. 1.大致步骤 使用工具:idea,github,码云 webs ...
- Html中行内元素有哪些?块级元素有哪些?
1.关于行内元素和块状元素的说明 根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display ...
- C# 内存模型
C# 内存模型 This is the first of a two-part series that will tell the long story of the C# memory model. ...