以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  数组越界问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=63195)

--  作者:cestmiya
--  发布时间:2014/3/27 11:25:03
--  数组越界问题

VARIABLE:DMM[]=0,LD[]=0,HD[]=0,I[]=0;

TR1 := EMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),14);
DH:=HIGH-REF(HIGH,1);
DL:=REF(LOW,1)-LOW;

DMP:= sum(IF(DH>0 AND DH>DL,DH,0),K);

for I=1 TO 10 DO
BEGIN
HD[I]=HIGH[I]-HIGH[I+1];
LD[I]=LOW[I+1]-LOW[I];
DMM:=IF(LD[I]>0 AND LD[I]>HD[I],DMP+LD[I],0);
END

PDI:=DMP*100/TR1;
MDI:=DMM*100/TR1;
ADX:EMA(ABS(MDI-PDI)/(MDI+PDI)*100,M);

编译通过,但是副图显示不出图形,并且显示数组越界操作.

 

我知道ADX的公式不是这样写的,但是我这里只问数组越界是什么原因。最新版本金字塔。


--  作者:jinzhe
--  发布时间:2014/3/27 13:06:15
--  
技术咨询中,请稍等
--  作者:王锋
--  发布时间:2014/3/27 15:33:04
--  

VARIABLE:DMM[]=0,LD[]=0,HD[]=0,I[]=0;

你建立的是空数组,直接就用自然会导致越界的,建议你先对数组进行大小限定后再用