最大回撤用python怎么计算

图片[1]-最大回撤用python怎么计算-uusu优素-乐高,模型,3d打印,编程

如何使用python计算回撤,下面给大家举个小例子:

1. 单期简单收益率

ccfc8ecad821faa4404d465c48d4a2a.png

importdatetime
importpandasaspd
pd.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.42
2015-07-043.51
2015-07-053.68
2015-07-063.43
2015-07-073.56
2015-07-083.67
dtype:float64

利用ffn库计算单期简单收益

importffn
r=ffn.to_returns(price)
r
2015-07-03NaN
2015-07-040.026316
2015-07-050.048433
2015-07-06-0.067935
2015-07-070.037901
2015-07-080.030899
dtype:float64

2. 回撤

回撤(Maximum Drawdown, MDD) 用来衡量投资(特别是基金)的表现。

2.1 回撤:某资产在时刻T的回撤是指资产在(0,T)的最高峰值与现在价值1c2ca3a9239e13292bf785b0867f285.png之间的回落值,用数学公式表达为:

0550cc13710fe87cb8c04220571df39.png

2.2 对应的回撤率为:

bef627f6bc59abba72c5dcfe3251e16.png

2.3 利用收益率计算回撤

165930e56af53b44231bb4c1ccaed84.png

value=(1+r).cumprod()
value
2015-07-03NaN
2015-07-041.026316
2015-07-051.076023
2015-07-061.002924
2015-07-071.040936
2015-07-081.073099
dtype:float64
D=value.cummax()-value
D
2015-07-03NaN
2015-07-040.000000
2015-07-050.000000
2015-07-060.073099
2015-07-070.035088
2015-07-080.002924
dtype:float64
d=D/(D+value)
d
2015-07-03NaN
2015-07-040.000000
2015-07-050.000000
2015-07-060.067935
2015-07-070.032609
2015-07-080.002717
dtype: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
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容