最大回撤率(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.

发表评论

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