用matlab 计算区间最大回撤值和最大回撤率 在股票投资的时候有一个很重要的概念-最大回撤。最大回撤被定义为:
min()min(max )j i j i i j j i j d x x x x <=<==-=-
解释为资金达到高点时最大向下回落的决定值(相对值)。
如果看在一个较长的时间内的局部的回撤率,又可以给出下面的定义。
0min ()min(max )j i j i j i k j j k i j d x x x x <=-<=-≤≤=-=-
用matlab 编程计算回撤值和回撤率如下:
%Matlab 计算一段时间内的最大撤值和最大回撤率
%备注:最大回撤值和最大回撤率不一定会出现在同一组数据之上 %录入第几张表格,第几行数据,时间阶段
sheet=1;
column=1;
period=30;
%计算过程
data=xlsread('data',sheet);
tperiod=length(data);
drawdown1=0;
e_1=0;
ae_1=0;
adrawdown1=0;
for k=1:tperiod-period+1
s1=data(k,column);
for j=k:k+period-1
e=data(j,column);
for i=k:j
s=data(i,column);
if s>s1
s1=s;
end
end
drawdown=e-s1;
adrawdown=drawdown/s1;
if drawdowndrawdown1=drawdown;
e_1=e;
s_1=s1;
end
if adrawdownadrawdown1=adrawdown;