美文网首页
如何计算收益的最大回撤

如何计算收益的最大回撤

作者: 昵称违法 | 来源:发表于2019-12-09 13:55 被阅读0次

以前一直只是观测某次交易的回撤,昨天用到最大回撤,所以去查了资料。

看图说话:
一、沪深300指数的收盘价走势

df['close'].plot()
沪深300指数2015年收盘价走势图

二、计算股价滚动最高价(黄色线)

df['close'].plot()
df['滚动最大值'].plot()
股价的滚动最高价曲线

三、计算落差值[在每个x轴上,计算落差值,【黄线】 减去 【蓝线】]

df['回落值']= df.eval("close - 滚动最大值")
df['回落值'].plot()
落差值-回撤了多少

四、计算回撤值(落差值 / 滚动最高值)

df['回撤集合'] = df.eval("回落值  / 滚动最大值")
df['回撤集合'].plot()
回撤系列值

五、取最大回撤值

df['回撤集合'].min()

计算值:-0.4333949500130653

六、全部代码

import pandas as pd 
import numpy as np

#计算系列值的最大回撤
def get_max_retreat(df:pd.DataFrame,price_tag:str)->float:
    """
    df:DataFrame
    price_tag:要计算的列名,比如'close'
    """
    roll_max = df[price_tag].expanding().max()
    retreat_sets = 100 * (df[price_tag] / roll_max -1)
    max_retreat = np.min(retreat_sets)
    return max_retreat

    #====测试代码====
    retreat = get_max_retreat(df,'close')
    retreat

相关文章

网友评论

      本文标题:如何计算收益的最大回撤

      本文链接:https://www.haomeiwen.com/subject/jwpbgctx.html