以下代码显示了table.Drawdowns
包中的问题PerformanceAnalytics
。
require(quantmod)
require(PerformanceAnalytics)
getSymbols("^GSPC", src="yahoo", from="2005-01-01")
ret = ROC(Ad(GSPC), type="continuous")
table.Drawdowns(ret)
From Trough To Depth Length To Trough Recovery
1 2007-10-10 2009-03-09 2014-04-02 -0.6103 1631 355 1276
2 2020-02-20 2020-03-23 <NA> -0.3610 135 23 NA
3 2018-09-21 2018-12-24 2019-07-01 -0.2025 194 65 129
4 2015-05-22 2016-02-11 2016-07-18 -0.1516 291 183 108
5 2018-01-29 2018-04-02 2018-08-27 -0.1056 147 44 103
第一线是金融危机。From
日期是正确的,但太长To
了一年,如下图所示。

更正:
当收益计算为对数差异时,即。
ret = log( x[t] / x[t-1] )
对应于 中的“连续”类型ROC
,该参数geometric
应设置为 FALSE,
table.Drawdowns(ret, geometric = FALSE)
这使,
From Trough To Depth Length To Trough Recovery
1 2007-10-10 2009-03-09 2013-03-28 -0.7627 1376 355 1021
2 2020-02-20 2020-03-23 2020-08-18 -0.2214 126 23 103
3 2018-09-21 2018-12-24 2019-04-23 -0.1276 146 65 81
4 2015-05-22 2016-02-11 2016-07-11 -0.1084 286 183 103
5 2007-07-20 2007-08-15 2007-10-05 -0.0907 55 19 36
默认table.Drawdowns
值为 TRUE。这需要注意。