Python 实现最大回撤

____tz_zs


最大回撤 是一个重要的风险指标。对于对冲基金和数量化策略交易,这个指标比波动率还重要。

定义:对于序列x1,x2,⋯,xn ,定义最大回撤d 为



·

# -*- coding: utf-8 -*-
"""
@author: tz_zs

最大回撤
"""
import numpy as np
import matplotlib.pyplot as plt

# data = [100, 200, 50, 300, 150, 100, 200]
# print(np.maximum.accumulate(data))  # [100 200 200 300 300 300 300]

data = np.random.randn(100).cumsum()

index_j = np.argmax(np.maximum.accumulate(data) - data)  # 结束位置
print(index_j)
index_i = np.argmax(data[:index_j])  # 开始位置
print(index_i)
d = data[index_j] - data[index_i]  # 最大回撤
print(d)

# 绘制图像
plt.plot(data)
plt.plot([index_i, index_j], [data[index_i], data[index_j]], 'o', color="r", markersize=10)
plt.show()

·


·



参考:

Start, End and Duration of Maximum Drawdown in Python

最大回撤和最大短期回撤的线性算法

  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值