python数据统计 矢量图_用python中的矢量化解决方案计算max draw down
Maximum Drawdown是量化金融中常用的一種風(fēng)險(xiǎn)度量,用于評(píng)估所經(jīng)歷的最大負(fù)收益。
最近,我變得不耐煩的時(shí)間來(lái)計(jì)算最大下降使用我的循環(huán)方法。def max_dd_loop(returns):
"""returns is assumed to be a pandas series"""
max_so_far = None
start, end = None, None
r = returns.add(1).cumprod()
for r_start in r.index:
for r_end in r.index:
if r_start < r_end:
current = r.ix[r_end] / r.ix[r_start] - 1
if (max_so_far is None) or (current < max_so_far):
max_so_far = current
start, end = r_start, r_end
return max_so_far, start, end
我熟悉一種常見(jiàn)的看法,即矢量化的解決方案會(huì)更好。
問(wèn)題是:我能把這個(gè)問(wèn)題矢量化嗎?
這個(gè)解決方案是什么樣子的?
有多大好處?
編輯
我把Alexander的答案改為以下函數(shù):def max_dd(returns):
"""Assumes returns is a pandas Series"""
r = returns.add(1).cumprod()
dd = r.div(r.cummax()).sub(1)
mdd = dd.min()
end = dd.argmin()
start = r.loc[:end].argmax()
return mdd, start, end
總結(jié)
以上是生活随笔為你收集整理的python数据统计 矢量图_用python中的矢量化解决方案计算max draw down的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: package-lock.json是做什
- 下一篇: 无法上网dns转发_苹果笔记本上网很慢怎