//报错 REF 函数在逐K线模式下不能直接在IF控制语句之内引用。
if ISLASTBAR THEN
BEGIN
for i=1 to 8 do
BEGIN
MA8_10S[i]:=REF(ma(close,8),i); //获取8均线的1-8根K线对应的值
END
END
那是否可以使用
MA8:=ma(close,8);
if ISLASTBAR THEN
BEGIN
for i=1 to 8 do
BEGIN
MA8_10S[i]:=MA8[i]; //获取8均线的1-8根K线对应的值
END
END
可以这样做:
VARIABLE:m8[]:=0;
MA8:ma(close,8);
m8:=MA8;//均线赋给一个未定义长度的数组变量
//取值
S1:m8[BARPOS-1];//上一个
S2:m8[BARPOS-2];//上上一个
这个m8保存均线的数组 里面的元素和时间序列是相反的吗,m8[BARPOS]是当前的,,m8[1]是最远的?
对的。数组的缘故,这个没办法。并且下标1 不一定是有效值,或者说没有值。8周期均线至少在第八个周期开始才有有效值。
[此贴子已经被作者于2019/9/23 16:44:31编辑过]
那么再问一个问题,close[1]代表当前还未走完的K线的收盘价 还是上一根已经走完的K线的收盘价。如果是前一根的,那么哪个价格代表当前Tick的最新价格。C和close有什么区别,我在编程助手里没看到C,但示例代码却有使用C的
close[1]是第一个K,不是上一个,也不是最新的(除非你只要一个K的数据),这个第一个K是当前程序使用的数据当中的第一个K线。c是close的缩写而已,历史K上是收盘价。在最新K上c和最新值是保存一致。
[此贴子已经被作者于2019/9/23 17:15:36编辑过]
1.金字塔的很多函数返回值都是序列变量。根本不需要用数组保存。
2.stkindi中的第二个参数是"公式名.变量名" 你要引用的公式必须存在。
aa::=STKINDI('' , '公式名.变量名',0,1,-1);
[此贴子已经被作者于2019/9/23 21:12:38编辑过]