python数据统计 矢量图_用python中的矢量化解决方案计算max draw down
Maximum Drawdown是量化金融中常用的一種風險度量,用于評估所經歷的最大負收益。
最近,我變得不耐煩的時間來計算最大下降使用我的循環方法。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
我熟悉一種常見的看法,即矢量化的解決方案會更好。
問題是:我能把這個問題矢量化嗎?
這個解決方案是什么樣子的?
有多大好處?
編輯
我把Alexander的答案改為以下函數: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
總結
以上是生活随笔為你收集整理的python数据统计 矢量图_用python中的矢量化解决方案计算max draw down的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: package-lock.json是做什
- 下一篇: 无法上网dns转发_苹果笔记本上网很慢怎