当前位置: 首页 > news >正文

python 计算最大回撤

1. 什么是最大回撤

最大回撤是评估金融产品收益的一个非常重要的风险指标,它指的是在选定历史周期内任一历史时点往后推,产品净值走到最低点时的收益率回撤幅度的最大值。

在这里插入图片描述
以上图为例, 最大回撤 = ( V a l u e A − V a l u e B ) V a l u e A 最大回撤 = \frac{(ValueA - ValueB) } {ValueA} 最大回撤=ValueA(ValueAValueB)

2. 计算最大回撤

下面演示使用pandas 计算最大回撤

  1. 获取贵州茅台20191.1到2019.12.31的日k数据
import pandas as pd
import numpy as np
import baostock as bslg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)#### 获取沪深A股历史K线数据 ####
# 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。“分钟线”不包含指数。
# 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag
# 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg
rs = bs.query_history_k_data_plus("sh.600519","date,code,open,high,low,close,volume",start_date='2019-01-01', end_date='2019-12-31',frequency="d", adjustflag="3")
print('query_history_k_data_plus respond error_code:'+ rs.error_code)
print('query_history_k_data_plus respond  error_msg:'+ rs.error_msg)data_list = []
while (rs.error_code == '0') & rs.next():# 获取一条记录,将记录合并在一起data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)#### 结果集输出到csv文件 ####   
result.to_csv("贵州茅台_k_data.csv", index=False)
print(result)#### 登出系统 ####
bs.logout()

在这里插入图片描述
2. 读取贵州茅台的日k数据,读入日期和收盘价

data = pd.read_csv("贵州茅台_k_data.csv")[["date", "close"]];

3.计算每天的回撤值

# 找出当前值以前的最大值
data["previous_max"] = data["close"].cummax(axis=0)
# 计算每一天的回撤
data['draw_downs'] = data['close'] / data['previous_max'] - 1

4.可视化

data.plot(y=['close','previous_max'], figsize=(8,4))

在这里插入图片描述

# 绘制回撤曲线
data.plot(y='draw_downs',figsize=(8,4),color='g')

在这里插入图片描述

5.计算最大回撤

# 最大回撤
data['draw_downs'].min()
http://www.lryc.cn/news/236358.html

相关文章:

  • Linux系统中常用的压缩与解压缩方法
  • 目标检测YOLO实战应用案例100讲-基于机器视觉的水稻病虫害监测预警(续)
  • 【星海随笔】redis 解析
  • 鸿蒙:实现两个Page页面跳转
  • C#有关里氏替换原则的经典问题答疑
  • 【每日一题】689. 三个无重叠子数组的最大和-2023.11.19
  • “开源 vs. 闭源:大模型的未来发展趋势预测“——探讨大模型未来的发展方向
  • 计算机网络——物理层-信道的极限容量(奈奎斯特公式、香农公式)
  • 【算法挨揍日记】day31——673. 最长递增子序列的个数、646. 最长数对链
  • Jmeter做接口测试
  • 第14届蓝桥杯青少组python试题解析:23年5月省赛
  • SpringCloud 微服务全栈体系(十四)
  • 【开题报告】基于微信小程序的个人健康管理系统的设计与实现
  • Swagger笔记
  • 数据结构 堆
  • 将 ONLYOFFICE 文档编辑器与 Node.js 应用集成
  • CentOS 7搭建Gitlab流程
  • Idea安装完成配置
  • 超详细~25考研规划~感恩现在努力的你!!!
  • 智慧城市安全监控的新利器
  • 【算法】石子合并(区间dp)
  • C++-特殊类和单例模式
  • 【开源】基于Vue.js的智能教学资源库系统
  • C语言之qsort()函数的模拟实现
  • 数字化未来:实时云渲染在智慧城市中的创新应用
  • Go语言常用命令详解(二)
  • ChatGPT 从零到一打造私人智能英语学习助手
  • 算法升级之路(七)-盛最多水的容器
  • milvus数据库索引管理
  • JVM中的 -Xms参数 设置 JVM 的初始堆大小