通过数组编写技术指标,因为循环中不方便引用值。
高手帮忙写下
目的要实现:如果当日涨幅超过6%,把该日成交量的值写在主图该日低点上
追问下面的数组的定义和使用有什么问题,本人菜鸟,勿喷。
RUNMODE:0;//逐K线模式运行
VARIABLE:CJL[]=0,SPJ[]=0,KPJ[]=0,j=DATACOUNT-230;//数组存放成交量 ,开盘,收盘数据,j监测230天
A:=VOL;
CJL:=A;
B:=OPEN;
KPJ:=B;
E:=CLOSE;
SPJ:=E; //给三个数组赋值
IF DATACOUNT-230<=0 THEN j=1; //避免少于230根日线的情况
FOR i=DATACOUNT DOWNTO j do
begin
DRAWTEXT( SPJ[i]/KPJ[i] >=1.06,LOW,'CJL[i]');//如果当天涨幅超过6%,把该日成交量的值写在主图该日低点上
end;
主要是 数组的定义和使用不明白, 这样写可行?存在什么问题?
编译通过,运行说数组越界,求解释?
之前也看了 就是不知道 为什么会在这DRAWTEXT( SPJ[i]/KPJ[i] >=1.06,LOW,'CJL[i]');这行
出现提示数组越界操作?? 怎么会越界?
RUNMODE:0;//逐K线模式运行
VARIABLE:CJL[]=0,SPJ[]=0,KPJ[]=0,j=DATACOUNT-230;//数组存放成交量 ,开盘,收盘数据,j监测230天
A:=VOL;
CJL:=A;
B:=OPEN;
KPJ:=B;
E:=CLOSE;
SPJ:=E; //给三个数组赋值
这个上面的应该没错吧,帮看下下面语句出了什么问题?
多谢各位解惑。 关键是想搞清楚数组下标获得方法,和如何调用数组值。
还有一个疑问,我现在就是想取当前BL数组当前所指的位置的值 显示出来 ?BL[]数组的当前下标编号如何提取?数组要怎么调用?比方假设我以后要用到该数组BL[].
RUNMODE:0;
VARIABLE:BL[]=0;
BL:=VOL;//赋值填充
S: =UBOUND(BL); //取当前数组大小即位置
TXT:=NUMTOSTR(BL[S],0);//把当前BL[]转换文本
DRAWTEXT( C>1.05*O ,LOW,'TXT');//输出显示
这样写 怎么全都显示TXT,而不是想要的符合条件当时的BL[]数组的值?