请问如何实现如下描述:
现有i=1 to 100,
定义数组A[i] = ma(c,i) - ref(ma(c,i),1),
然后求出数组A[i]中最大最小值。
VARIABLE : A[80] = 0;
FOR I = 2 TO 80 DO A[I] := MA(C,I) - REF(MA(C,I),1);
MA_MAX : LARGE(A,79,1),LINETHICK0;
MA_MIN : LARGE(A,79,79),LINETHICK0;
MA_N := 10;
MA_PER : MA(C,MA_N) - REF(C,MA_N),LINETHICK0;
我在白银连续日线周期图表上定义了如上语句,但是出来的结果有问题,上面的MA_PER是用10日均线增速,图上现值是27.6,而MA_MAX却只有6.5,作为数组A[I],应该是包含了从MA2到MA80均线与昨日均线的差,最大值理论上是应该大于等于MA10的吧,为什么这里会有错误?另外在编译的时候老是提醒我FOR语句里面最好不要加入MA或者REF语句,但是我在它弹出来的那个连接里面看,也没有具体能对应的改法,请问如何修改好?
你是不是序列计算了?序列计算只计算一次,也就是第一次计算的结果,所以你看到的结果是k线图从左往右数第81根k线的值
你改逐k线计算,这样就是每根k线都算一边了
MA_PER : MA(C,MA_N) - REF(C,MA_N),LINETHICK0;
最后这个是干什么用的?要调试的话完全不对啊
VARIABLE : A[80] = 0;
FOR I = 2 TO 80 DO A[I] := MA(C,I) - REF(MA(C,I),1);
MA_MAX : LARGE(A,79,1),LINETHICK0;
MA_MIN : LARGE(A,79,79),LINETHICK0;
for i=2 to 80 do begin
if a[i]=ma_max then goto abc;
end
abc@ ii:i;
ii为所求值
INPUT : MA_N(10,2,80);
MA_PER : MA(C,MA_N) - REF(MA(C,MA_N),1),LINETHICK0;
VARIABLE : A[80] = 0;
FOR I = 2 TO 80 DO A[I] := MA(C,I) - REF(MA(C,I),1);
MA_MAX : LARGE(A,79,1),LINETHICK0;
MA_MIN : LARGE(A,79,79),LINETHICK0;
FOR I = 2 TO 80 DO BEGIN
IF A[I] = MA_MAX THEN GOTO ABC;
END;
ABC@ II : I,LINETHICK0;
修改成这样,但是输出的II与在MA_PER里面输出的结果也不一样,就是求出II之后,在MA_PER里面输入对应的数值来调试,输出的数值与数组里面的最大值不同
ma_per是固定的ma10-ref(ma10,1)
你的公式是ma2-ref(ma2,1)一直到ma80-ref(ma80,1)怎么就一样了?