input:N(15,0,80,1);////
VARIABLE: SumXi:=0;
VARIABLE: SqrSumYi:=0;
If (DATE<>REF(DATE,1)) THEN BEGIN
Xi:=1;
END
If (DATE=REF(DATE,1)) THEN Xi:=Xi+1;
If (Xi>N) THEN BEGIN
For i = 1 To N DO BEGIN
SumXi=SumXi+Ref(Xi,i);
SumYi=SumYi+REF(Close,i);
END
Part:=SumXi+SumYi;
END
我想表达这样的逻辑;基本上上面能够看懂了,但是金字塔不支持在IF语句后面 使用REF,
请咨询如何实现我代码表达的意思;
谢谢,我会即使更新的,
题外话,在解决这个问题上TB就非常容易的,他的向前引用不受IF语句的影响。如果能弄的像TB一样方便就好了
申明;我是金字塔的忠实拥护者;哈哈
c[barpos-1] 即可
或者用一个变量在if....then .... 结构外记录一下
close[barpos-i]
用这个来替换
For i = 1 To N DO BEGIN
SumXi=SumXi+xi[barpos-i];
SumYi=SumYi+c[barpos-i];
END
这样改吗?
公式中的XI变量之前未做任何的声明初始,这样的做法,是一种很不好的编程习惯
用序列计算试试
提示越界的主要原因是当barpos=1的时候,你去减2,自然会越界。
处理办法是用if语句,对序列做限制,前面头一行加上
if barpos < 3 then
exit;