maxdrawdown
计算一个或多个价格序列的最大回撤
说明
计算每个序列的最大回撤并在长度为 MaxDD
= maxdrawdown(Data
)N
的向量 MaxDD
中返回,还可标识每个序列的最大回撤周期的开始和结束索引并在 2
×N
矩阵 MaxDDIndex
中返回。
[
添加了一个可选输出 MaxDD
,MaxDDIndex
] = maxdrawdown(___)MaxDDIndex
。
示例
计算最大回撤
使用包含基金、市场和现金序列的示例数据计算最大回撤 (MaxDD
):
load FundMarketCash
MaxDD = maxdrawdown(TestData)
MaxDD = 1×3
0.1658 0.3381 0
基金序列在给定时间段内的最大跌幅为 16.58%,市场序列为 33.81%。正如预期的那样,现金序列并未下降,因为现金账户永远不会贬值。
maxdrawdown
还会在可选输出参量中返回每个序列的最大回撤区间的索引 (MaxDDIndex
)。
[MaxDD, MaxDDIndex] = maxdrawdown(TestData)
MaxDD = 1×3
0.1658 0.3381 0
MaxDDIndex = 2×3
2 2 NaN
18 18 NaN
数据显示前两个序列从第 2 个月到第 18 个月经历了其最大回撤。第三个序列的索引是 NaN
,因为它根本没有出现回撤。
基金序列从第 2 个月到第 18 个月的 16.58% 亏损可以通过报告的索引进行验证。
Start = MaxDDIndex(1,:); End = MaxDDIndex(2,:); (TestData(Start(1),1) - TestData(End(1),1))/TestData(Start(1),1)
ans = 0.1658
ans = 0.1658
虽然最大回撤是用收益来测量的,但 maxdrawdown
还可以用价值绝对下降或对数收益来测量回撤。要更清晰地对比这些备选方法,您可以使用基金序列来进行验证,假定初始投资为 50 美元:
Fund50 = 50*TestData(:,1); plot(Fund50); title('\bfFive-Year Fund Performance, Initial Investment 50 usd'); xlabel('Months'); ylabel('Value of Investment');
首先,计算标准最大回撤,它与上述结果一致,因为收益与初始投资金额无关。
MaxDD50Ret = maxdrawdown(Fund50)
MaxDD50Ret = 0.1658
接下来,使用 'arithmetic'
参量计算价值的最大下降。
[MaxDD50Arith, Ind50Arith] = maxdrawdown(Fund50,'arithmetic')
MaxDD50Arith = 8.4285
Ind50Arith = 2×1
2
18
此项投资的价值在第 2 个月为 50.84 美元,但到第 18 个月价值下降到 42.41 美元,下降了 8.43 美元。这是给定时间段内美元价值从上一高位以来的最大亏损。在这种情况下,最大回撤期是相同的,即无论是以收益还是美元亏损的形式来测量,最大回撤期都是从第 2 个月到第 18 个月。
[MaxDD50LogRet, Ind50LogRet] = maxdrawdown(Fund50,'geometric')
MaxDD50LogRet = 0.1813
Ind50LogRet = 2×1
2
18
请注意,上一个计算等效于找到序列对数的算术最大回撤。
MaxDD50LogRet2 = maxdrawdown(log(Fund50),'arithmetic')
MaxDD50LogRet2 = 0.1813
输入参数
Data
— 总收益价格序列
矩阵
总收益价格序列,指定为 T
×N
矩阵,包含 N
个总收益价格序列的 T
个样本。
数据类型: double
Format
— (可选)Data
格式
值为 'return'
、'arithmetic'
或 'geometric'
的字符向量
Data
格式,指定为具有以下可能值的字符向量:
'return'
(默认值)- 以相对于峰值的最大下降百分比表示的最大回撤。'arithmetic'
- 使用以下方程计算的带漂移项(峰谷数据差)的算术布朗运动的最大回撤
'geometric'
- 使用以下方程计算带漂移项(峰谷对数差)的几何布朗运动的最大回撤
数据类型: char
输出参量
MaxDD
— 最大回撤
向量
最大回撤,以 1
×N
向量形式返回,其中包含 N
个时间序列中每一个序列对应的最大回撤。
注意
回撤是从周期开始到结束的总收益下降的百分比。如果总权益时间序列在整个周期内增加,则回撤为 0。否则,回撤是一个正数。最大回撤是下跌风险的事前代理,计算在最大回撤是下跌风险的事前代理,计算在所有时间期间中某一时间内可能形成的最大回撤。
最大回撤对量化误差很敏感。
MaxDDIndex
— 每个总权益时间序列的每个最大回撤期的开始和结束索引
向量
每个总权益时间序列的每个最大回撤期的开始和结束索引,以开始和结束索引组成的 2
×N
向量形式返回。向量的第一行包含每个最大回撤期的开始索引,第二行包含结束索引。
参考
[1] Christian S. Pederson and Ted Rudholm-Alfvin. "Selecting a Risk-Adjusted Shareholder Performance Measure." Journal of Asset Management. Vol. 4, No. 3, 2003, pp. 152–172.
版本历史记录
在 R2006b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)