量化策略中的胜率和盈亏比-程序旅途
图片来源: https://www.pexels.com

前面一篇文章《量化策略中的最大回撤率及代码实现》介绍了评估一个策略好坏的重要指标:最大回撤率。今天再来聊聊同样重要的评估指标:胜率和盈亏比。我之所以把胜率和盈亏比放在一起讨论,是因为一个高胜率的交易系统并不一定能产生高收益,或者说高胜率不是构成正向预期交易系统的必要条件。单独的盈亏比亦是如此。

胜率

胜率就是目标周期内盈利的交易次数占总交易次数的比例,例如:一段时间内,一共交易了100次,盈利了70次,那么该周期的胜率为:70 / 100 * 100% = 70%。前文讲到高胜率并不能产生高收益,甚至有可能会产生亏损,道理很简单,假如盈利的70次交易每次都盈利100美金,总盈利7000美金,但亏损的30次交易每次都亏损250美金,总亏损7500美金。如此,即使胜率达到了70%,也不能保证我们的交易系统是正向盈利的。

假如你的胜率是99%,上面举的例子每次开固定仓位,显然1笔亏损超过99笔的盈利有点难度,换个例子。初始净值10000美金,还是做了100次交易,前99次交易每次使用10%的仓位,每次盈利10%。最后1笔交易时,账户余额已经达到10000 * (1 + 0.1*0.1)^99 = 26780.33美金了。你可能觉着交易了这么多次,每次都能盈利,因此决定在第100次交易的时候梭哈,大不了赢了会所嫩模,亏了工地干活。可惜最后1笔交易爆仓了,你血本无归。这里涉及一个仓位管理的问题,将在后续的文章中讲到。

盈亏比

盈亏比就是平均盈利金额与平均亏损金额的比值。公式如下:

盈亏比 = 平均盈利 / 平均亏损 = (盈利总金额 / 盈利次数) / (亏损总金额 / 亏损次数)

以上面的例子,盈利次数70,盈利总金额7000,亏损次数 30,亏损总金额 7500,那么盈亏比 = (7000/70)/(7500/30) = 0.4。 0.4的盈亏比是一个什么概念的呢?可以理解为盈利的时候只能盈利0.4,亏损的时候却要亏损1。0.4的盈亏比,如果要盈利,需要满足大于1 / (1+0.4) *100%= 71.423%的胜率。

胜率和盈亏比有一个公式,可以计算胜率一定的情况下,至少需要多少的盈亏比,交易系统才能正向盈利,反之亦然。

y = 1 / (1+x)

y表示胜率,x表示盈亏比。它的函数图像如下所示:

量化策略中的胜率和盈亏比-程序旅途
1/(1+x)的函数图像

由图像可以看出,盈亏比越大,需要的胜率越低。

y = (1-x) / x

y表示盈亏比,x表示胜率。它的函数图像如下所示:

量化策略中的胜率和盈亏比-程序旅途
(1-x)/x的函数图像

由图像可以看出,胜率越大,需要的盈亏比越低。

从上面两个图像可以看出胜率和盈亏比呈现负相关。

应用

在实际写策略中,要同时做到高胜率和高盈亏比是一件很难的事情,也不能绝对的说做不到,有这个可能。因此,我们应该将主要精力放在其中一个上面。

提高胜率其实也是一件很难的事情。因为未来的行情是不可预测的,所有的技术分析和技术指标都是依据历史预测未来。现在有好多交易者都花费大部分时间研究技术指标,试图找到更好的入场点,但是盈利一点点就急于平仓止盈,当亏损的时候又放任亏损继续扩大。

反观提高盈亏比相对提高胜率容易许多。只要做好仓位管理,风险控制,让利润奔跑,难度不大,这方面的内容本文就不展开讲了,后面细讲。一般情况下,至少要做到盈亏比为2或3。当盈亏比为2的时候,只要大于33.3%的胜率就可以盈利,当盈亏比为3的时候,大于25%的胜率就可以盈利。

胜率和盈亏比都是滞后的指标,只有经过了一段时间的交易后,才能进行统计。但是在回测时作为评估策略好坏的指标就比较有用了。