作者:乔山办公网日期:
返回目录:excel表格制作
方复法:
第一步,在单元格里面输入“=”号;
第二步,点击“sum”旁边的倒三角,下拉菜单中就会出现很多选项,要选择的是“Max”函数(制如果下拉菜单中没有“Max”函数,就点击其他函数,然后在弹出的对话框中找到“Max”函数);zd
第三步,点击Max函数,输入要求最大值的范围就可以了。
【最大回撤幅度】和【最长亏损时间】这些名词是需要楼主说明清楚定义的。
用一张带有行列标号的具体的图,在描述中引用单元格,可以把你的问题描述得更清楚
本程序为Ernest Chen所著Quantitative Trading中文版书中42页中例子,书中主要介绍了如何使用Excel和e799bee5baa6e79fa5e98193e58685e5aeb9330matlab来实现夏普比率与计算最大回撤和最大回撤时间的方法,python作为一种开源语言,能够实现matlab的相同功能,并能写交易程序,因此采用python实现了书中功能,作为练手
#计算夏普率与回撤与回撤时间
#第一次完成于2016/5/24
import pandas as pd
import numpy as np
import math
import matplotlib.pyplot as plt
#读取sheet1中的内容,存放在data中,数据类型为DataFrame
data = pd.ExcelFile('example3_4.xls')
data = data.parse('Sheet2')
#计算日收益率(G3-G2)/G2
data['return']=(data['Adj Close'].shift(-1)-data['Adj Close'])/data['Adj Close']
#计算超额回报率
data['exReturn']=data['return']-0.04/252
#计算夏普比率
sharperatio=math.sqrt(252)*data['exReturn'].mean()/data['exReturn'].std()
print('该策略的夏普率为: ', sharperatio)
data['Adj Close'].plot()
#计算累积收益率cumret=(1+return).cumsum
data['cumret']=np.cumprod(1+data['exReturn'])-1
fig = plt.figure()
data['cumret'].plot()
#计算累积最大收益率,最大回撤,累积最长回撤时间
Max_cumret=np.zeros(len(data))
retracement=np.zeros(len(data))
Re_date=np.zeros(len(data))
for i in range(len(data)):
#计算累积最大收益率
if i==0:
Max_cumret[0]=data['cumret'][0]
retracement[0]=(1+Max_cumret[0])/(1+data['cumret'][0])-1
else:
#计算累积最大收益率
Max_cumret[i]=max(Max_cumret[i-1],data['cumret'][i])
#计算策略回撤
retracement[i]=float((1+Max_cumret[i])/(1+data['cumret'][i])-1)
#计算最大回撤时间
if retracement[i]==0:
Re_date[i]=0
else:
Re_date[i]=Re_date[i-1]+1
#计算最最大回撤幅度
retracement=np.nan_to_num(retracement)
Max_re=retracement.max()
#计算最大回撤时间
Max_reDate=Re_date.max()
【最大回撤幅度】,貌似不是常用的说法,能不能具体说一下?copy
当你百提问时,要像向1年级的小学生来阐述问题那样尽量详细!如果能让1年级的小学生能明白你的问题,那么你的问题就能更好更快更度高更强地得到回复!
用一张带有行列标号的具体的图,问在描述中引用单元格,并说明你需要的结果答,可以把你的问题描述得更清楚