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

admin 2019-05-05 00:04 来源: 网络整理打印

版权宣言:本文是视频博客作者的怪人文字。,未必博主批准,不得假设转载。。


    在所选择的时间量子达到目标普通的历史点背推。,合意的人净值走到最小量时的报酬率回撤幅度的帽舌。最大回缩是用来周转AF不坏的的最坏情境。。最大回缩是独一要紧的风险标准。,对冲基金与定量战略买卖,这么标准比动摇更要紧。。
D是一天的净值。,我终于,J是I.继后的以第二位天,I日净值,Dj是以第二位天DI的净值
缩水率是最大恢复开端时姿势。
drawdown=max(Di-Dj)/Di,真正执意对每独一净值停止回撤率求值,那时的找出最大的。。

                                                              

提起栗色马,

看好篮筹股票姓股,因而他花了1万苦干买了独一大的绩优基金。。在前段,市集是好的。,去,资产解释的净值从1万元变为。那时的市集热从篮筹股票姓转变到创业板。,一万减少,一万。。重附着着,国家队进入市集以赎回市集。,立即万成了1长寿。。但不要太长。,市集转变,圣盘直飞,它早已下降到一万。。肉凉时要谨慎。,这么劣的从一万大浪到一万。!这从净值的角的顶点到最小量。,在A解释上最大的资产撤出。!

鉴于式的计算,也执意说,A的最大恢复开端时姿势是:万 一万/W 66.67%

工具前,让咱们先心得稍许地重大聚会。:

重大聚会限制:

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

  重新提起:沿装设轴积聚和结合的元素。打扮,它的算术可能与输入打扮A分歧。

CuSUM重大聚会的参量:

  • 答:打扮
  • 轴:轴物价、人口等的指数,整数,假使A是n维打扮,轴的值是[0。,N-1
  • Dtype:重新提起成果的数据类型。,假使未装设,Windows 默认值与A分歧。。
  • 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.

扫一扫在手机打开当前页
责任编辑:admin
推荐内容

热词
回到 顶部