python怎么计算最大回撤
python怎么计算最大回撤?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
如何使用python计算最大回撤,下面给大家举个小例子:
1. 单期简单收益率
importdatetimeimportpandasaspdpd.core.common.is_list_like=pd.api.types.is_list_like
price=pd.Series([3.42,3.51,3.68,3.43,3.56,3.67],index=[datetime.date(2015,7,x)forxinrange(3,9)])price
2015-07-033.422015-07-043.512015-07-053.682015-07-063.432015-07-073.562015-07-083.67dtype:float64
利用ffn库计算单期简单收益
importffn
r=ffn.to_returns(price)r
2015-07-03NaN2015-07-040.0263162015-07-050.0484332015-07-06-0.0679352015-07-070.0379012015-07-080.030899dtype:float64
2. 最大回撤
最大回撤(Maximum Drawdown, MDD) 用来衡量投资(特别是基金)的表现。
2.1 回撤:某资产在时刻T的回撤是指资产在(0,T)的最高峰值与现在价值之间的回落值,用数学公式表达为:
2.2 对应的回撤率为:
2.3 利用收益率计算最大回撤
value=(1+r).cumprod()value
2015-07-03NaN2015-07-041.0263162015-07-051.0760232015-07-061.0029242015-07-071.0409362015-07-081.073099dtype:float64
D=value.cummax()-valueD
2015-07-03NaN2015-07-040.0000002015-07-050.0000002015-07-060.0730992015-07-070.0350882015-07-080.002924dtype:float64
d=D/(D+value)d
2015-07-03NaN2015-07-040.0000002015-07-050.0000002015-07-060.0679352015-07-070.0326092015-07-080.002717dtype:float64
MDD=D.max()MDD
0.07309941520467844
mdd=d.max()mdd#对应的最大回撤率值为
0.06793478260869572
#采用ffn库计算收益率累积最大回撤ffn.calc_max_drawdown(value)
-0.06793478260869568
fromempyricalimportmax_drawdown
#使用empyrical计算收益率序列最大回撤max_drawdown(r)
-0.06793478260869572
关于python怎么计算最大回撤问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。