最大回撤率(Python实现) – 刘不饱的博客

最大回撤率(Python实现) – 刘不饱的博客

版权供述:本文是视频博客作者的原始的文字,未必视频博客作者批准,不得繁殖少许批准。。


    在所选时代的少许历史点往后推,出示净值走到最底点时的退让回撤幅度的完成。最大归程用于代理可接受的心房颤动的最坏使适应。。最大回撤是独身要紧的风险按生活按生活指数调整调整。,对冲基金与量子化谋略买卖,该按生活指数调整也比波动性更要紧。。
d是第有朝一日的净值,我终于,J比我晚了有朝一日。,i天的di净值,dj为di后有朝一日的净值。
停止是最大回撤率。
drawdown=max(Di-Dj)/Di,果真执意对每独身净值举行回撤率求值,当时的找出最大的。。

                                                              

养一只栗色马。,

对蓝筹姓一份持抱有希望的姿态,因而他花了一万在独身大的稳当可靠的财产基金上。青年时期去市场买东西上等的,从此,资产存款的净值从1万元变为。当时的去市场买东西热从稳当可靠的财产姓转向了创业板。,因而一万缩水成一万。重附着着,国家队进入去市场买东西解救去市场买东西,合乎逻辑的推论是万成了一万。。但弱太久。,去市场买东西间断,去市场买东西突破。,早已降到一万了。肉凉了要谨慎,这人贱的从一万个剧增到一万个!从净值的完成到最底点,存款上最大的资产拔出!

按表现计算,也执意说,i的最大再栽培率:万 万/瓦 66.67%

使生效前,让我们的先认识数个行使职责:

行使职责界说:

  • cumsum(a, axis=None, dtype=None, out=None) 
  • (axis=None, dtype=None, out=None)

  又来:沿指定的轴积聚和结合的元素阻止,其计算在内应与出口阻止A分歧

总和行使职责的限制因素:

  • A:部署兵力
  • 轴:轴应用钥匙,整数,假使a是n维阻止,轴的值为[0]。,n-1]
  • DTYPE:又来发生的数据类型,假使未指定的,Windows 默认值与。
  • out:数据类型是阻止。。用于外行的发生的可选出口阻止,它必然要与出口发生具有相等的数量的计算在内和把缓冲液加入程度

:比拟两个阻止并又来象征完成o的新阻止

: 累计将运算符应用于接受元素的发生。

加密列举如下:

import numpy as np
import matplotlib.pyplot as plt

def MaxDrawdown(return_list):
    '最大提款率''
    i = (((return_list) - return_list) / (return_list))  # 完毕得第二名
    if i == 0:
        return 0
    j = (return_list[:i])  # 开端得第二名
    return (return_list[j] - return_list[i]) / (return_list[j])


return_list=[12,12,21,15,27,16,21,22,25,20,16,17]
print(MaxDrawdown(return_list))

诸如,return_list=[12,12,21,15,27,16,21,22,25,20,16,17]

这么虚线代表又来点列表,蓝点代表从左到右的完成。。

可知,第五天,最大归程完毕,静修的四的天开端了。

因而出口值是:drawdown=

复杂点,

假使不应用从左到右的积聚行使职责,我们的可以本人写独身方式。,发生执意这么大的。:

def maxdrawdown(return_list):
    最大重行顺风的率
    maxac=(len(return_list))
    b=return_list[0]
    for i in 审视(0,len(return_list)): #遍历阻止,当下一大于上一时,分除B
        if return_list[i]>b:
            b=return_list[i]
        maxac[i]=b
    print(maxac)
    i=((maxac-return_list)/maxac) #完毕得第二名
    if i == 0:
        return 0
    j = (return_list[:i])  # 开端得第二名
    return (return_list[j] - return_list[i]) / (return_list[j])

上面我们的来试试行使职责cumsum(沿指定的轴积聚和结合的元素阻止)

先 封爵100个拖延师专的随机数位,当时的附加。,作为阻止又来列表,

return_list=(100).cumsum()

举行实验,分开

print(MaxDrawdown(return_list))#法一
print(maxdrawdown(return_list))#法二
print(MaxDrawdown(return_list)==maxdrawdown(return_list))发生为True.

发表评论

电子邮件地址不会被公开。 必填项已用*标注