最大回撤和最大短期回撤的线性算法

作者:, 发表于

我贡献的源代码

查看该系列所有文章

最大回撤是一个重要的风险指标。对于对冲基金和数量化策略交易,这个指标比波动率还重要。

1.最大回撤

定义:对于序列 \(x_1,x_2,\cdots,x_n\) ,定义最大回撤 \(d\)

\[d = \min_{i\leq j} (x_j - x_i) = \min_j (x_j - \max_{i\leq j} x_i)\]

根据上述等式,很容易得到一个最大回撤的O(n)的算法。

2.最大短期回撤

最大回撤发生的时间跨度可以非常长。现在我们定义局部最大回撤,区别在于限制回撤发生的时间跨度,对给定的跨度 \(k\) ,定义最大短期回撤 \(d_k\) 为:

\[d_k = \min_{0\leq j-i\leq k} (x_j - x_i)= \min_j (x_j - \max_{j-k\leq i\leq j} x_i)\]

这个问题在网上贴出来一个小时,Yangzhe1990和uni(其中uni是我7年前参加ACM的队友,这么多年过去他还宝刀未老)就给出了算法。具体方法这两位在留言处写得比较清楚了,这里不再阐述。

最大短期回撤在风险度量上是有意义的。对于一个指数(或者产品),如果我们会长时间持有,那么直接考虑最大回撤。但若策略中限定了持有时间,最大短期回撤的指标会更合适一些。

3.VBA程序

对上面的算法做了实现,见下面的Excel模板,内含函数演示。VBA代码有详细注释。

 

Q.E.D.


上一篇:计算VaR的VBA代码和Excel模板2012年1月7日
这个Excel模板使用参数法和历史法计算资产组合的VaR,两个函数分别是ParaVaR和HistVaR,是以前写的VaR Primer的一个实现。具体使用方法可参考模板以及VBA

下一篇:期权到期收益结构生成器2012年2月24日
我写了一个期权到期收益结构的Excel模板。欢迎大家无聊的时候使用。 为了表达各种变态的观点,交易员将不同执行价格、买卖方向的期权进行组合


  • 支持使用微薄、微信和QQ的账户登陆进行评论。由各自网站直接认证,不会泄露你的密码。
  • 登陆后可选择分享评论到所绑定的社交网络,如微薄、人人和QQ空间。
  • 评论提交后无法修改。如需修改,请删除原评论再重新提交。
  • 评论支持LaTeX代码,行内公式请用\(a+b=c\),行间公式请用\[a+b=c\]。公式只支持英文字符。