FAQ > 金融建模 > 建模问题 > 数学相关

MaxDrawDown最大回撤函数说明    

简述
最大回撤
定义
MaxDrawDown(Data:Array,UPDN:Boolean,interval:Integer,ifabs:float):Real/Table;
参数
名称类型说明
DataArray,TableArray一维数字序列
UPDNBoolean涨跌标示符。1为最大值,0为最小值(默认值)
Intervalinteger最大区间,为空或者小于1时,求整个区间(默认值)
Ifabsreal预留字段,暂时没有实际意义,可不给值
返回值Array,TableArray一维数字数组,其值分别为[table rsplit=
  • 算法
    1、数据差序列
      
    2、寻找入点与出点
     若最大涨幅,则
     若最大跌幅,则
     即入点:i,出点:j
    3、值差
      
    4、比例
     
    注:
    i、j:分别为序列Data的下标值,从0开始。
    x_i、x_j:分别为序列Data中下标为i、j的元素值 。
    d1:最大间隔,默认为最大长度,即length(Data)-1。
    d2:最小间隔(本函数不支持该约束条件的设置),默认为1。
    1.0e-5:即0.00001


  • 范例代码;
    范例一:

    //计算一组序列的最大涨幅
    data:=array(3,1,7,5,6,3);
    return MaxDrawDown(data,1);
    //返回:

    结果说明:入点为data[1],出点为data[2],两者差为6,最大涨幅比例差为6

    范例二:

    //------计算100日股票的最大跌幅
    setsysparam(pn_stock(),'SZ000002');
    setsysparam(pn_date(),20181031T);
    setsysparam(pn_rate(),1);
    setsysparam(pn_rateday(),20181031T);
    setsysparam(pn_cycle(),cy_day());
    data:=nday3(100,close());
    t:=MaxDrawDown(data);
    return t;
    //返回t:

    注:若需计算最大跌幅率,则只需t[3]*100即可。

    相关:
      FAQ:StockMaxDrawDown证券区间最大回撤(%)函数说明


相关