以文本方式查看主题

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

--  作者:大猩猩
--  发布时间:2014/6/19 10:25:00
--  数据跨界操作
老师你好,指标栏老是显示数据跨界操作是什么意思?这导致了指标有时候看的到,有时候看不到,而且有时候这一次显示的指标和上一次显示的指标不一样
--  作者:jinzhe
--  发布时间:2014/6/19 10:26:38
--  
数组越界了,比如你的数组元素有5个,然后你弄了序号为6的数组元素出来
--  作者:大猩猩
--  发布时间:2014/6/19 10:31:22
--  
HH:=H;
LL:=L;

FOR I=2 TO DATACOUNT-10 DO BEGIN
N1:=HH[I]>HH[I-1] AND LL[I]>LL[I-1];
N2:=HH[I]<HH[I-1] AND LL[I]<LL[I-1];
N3:=(HH[I]>=HH[I-1] AND LL[I]<=LL[I-1]) OR (HH[I]<=HH[I-1] AND LL[I]>=LL[I-1]);
IF N1 THEN BEGIN A[I]:=1;AA[I]:=1;END;
IF N2 THEN BEGIN A[I]:=2;AA[I]:=2;END;
IF N3 THEN BEGIN A[I]:=3;AA[I]:=AA[I-1];END;///////提示这里跨界操作

IF N3 THEN BEGIN 
IF AA[I-1]=1 THEN BEGIN 
HH[I]:=MAX(HH[I],HH[I-1]);
LL[I]:=MAX(LL[I],LL[I-1]);
END;
IF AA[I-1]=2 THEN BEGIN
HH[I]:=MIN(HH[I],HH[I-1]);
LL[I]:=MIN(LL[I],LL[I-1]);
END;
END;
IF ((A[I+1]=1 OR A[I+1]=2) AND A[I]=3  AND A[I-1]=3 AND A[I-2]=1)  THEN BEGIN G[I]:=14;GG[I]:=14;END;
IF (A[I+1]=3 AND A[I]=3 AND A[I-1]=1  AND (A[I+2]=1 OR A[I+2]=2))  THEN BEGIN G[I]:=15;GG[I]:=15;END;
END;
STICKLINE(GG=14,MAX(H,REF(H,1)),MAX(L,REF(L,1)),8,0),COLORGRAY;//标记上涨一合的内外包日



老师帮忙看下,哪要怎么修改呢?

--  作者:jinzhe
--  发布时间:2014/6/19 10:42:20
--  
你没有定义AA这个数组,然后还要用AA[I-1]运作,不行
--  作者:大猩猩
--  发布时间:2014/6/19 10:47:40
--  
如果我要表达AA[I-1]这个意思应该怎么表达?具体怎么写呢,写在那个位置?
--  作者:jinzhe
--  发布时间:2014/6/19 10:59:28
--  

你这个就是没有定义aa就直接使用aa了

你前面定义一下

aa:=0;这样的