1. 什么是最大回撤
最大回撤是评估金融产品收益的一个非常重要的风险指标,它指的是在选定历史周期内任一历史时点往后推,产品净值走到最低点时的收益率回撤幅度的最大值。
以上图为例,
最大回撤
=
(
V
a
l
u
e
A
−
V
a
l
u
e
B
)
V
a
l
u
e
A
最大回撤 = frac{(ValueA – ValueB) } {ValueA}
最大回撤=ValueA(ValueA−ValueB)
2. 计算最大回撤
下面演示使用p服务器托管网andas 计算最大回撤
- 获取贵州茅台20191.1到2019.12.31的日k数据
import pandas as pd
import numpy as np
import baostock as bs
lg = 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.fwqtg.net
相关推荐: 详解Django请求与响应:深入理解Web Http交互的核心机制Page not found
本文深入探讨了 Django 中的请求与响应处理,从 Django 请求和响应的基础知识、生命周期,到 HttpRequest 和 HttpResponse 对象的详细介绍。同时,讨论了 Django 的视图和请求、响应处理,以及安全性和异步处理的考虑。最后,…