Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:报错 REF 函数在逐K线模式下不能直接在IF控制语句之内引用。

1楼
qq代人发帖 发表于:2019/9/23 11:14:37
//报错 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
2楼
FireScript 发表于:2019/9/23 13:13:03
 不行的。这样是获取不到的。

3楼
jztlt 发表于:2019/9/23 15:31:53
请问一下应该如何 操作才能实现这个功能
4楼
FireScript 发表于:2019/9/23 15:37:49
 可以这样做:

VARIABLE:m8[]:=0;
MA8:ma(close,8);
m8:=MA8;//均线赋给一个未定义长度的数组变量
//取值
S1:m8[BARPOS-1];//上一个
S2:m8[BARPOS-2];//上上一个

5楼
jztlt 发表于:2019/9/23 16:36:05
这个m8保存均线的数组 里面的元素和时间序列是相反的吗,m8[BARPOS]是当前的,,m8[1]是最远的?
6楼
FireScript 发表于:2019/9/23 16:43:27
 对的。数组的缘故,这个没办法。并且下标1 不一定是有效值,或者说没有值。8周期均线至少在第八个周期开始才有有效值。
[此贴子已经被作者于2019/9/23 16:44:31编辑过]
7楼
jztlt 发表于:2019/9/23 16:59:41
那么再问一个问题,close[1]代表当前还未走完的K线的收盘价 还是上一根已经走完的K线的收盘价。如果是前一根的,那么哪个价格代表当前Tick的最新价格。C和close有什么区别,我在编程助手里没看到C,但示例代码却有使用C的
8楼
FireScript 发表于:2019/9/23 17:15:01
 close[1]是第一个K,不是上一个,也不是最新的(除非你只要一个K的数据),这个第一个K是当前程序使用的数据当中的第一个K线。c是close的缩写而已,历史K上是收盘价。在最新K上c和最新值是保存一致。
[此贴子已经被作者于2019/9/23 17:15:36编辑过]
9楼
jztlt 发表于:2019/9/23 17:31:03
MA8_1M[1]:=STKINDI('' , 'ma(close,8)',0,1,-1); 目的是在1分钟上获取5分钟里前一根K线的8均线值,这里有什么问题,无法正常获取.close_1M[1]:=STKINDI('' , 'close',0,1,-1);同理
10楼
wenarm 发表于:2019/9/23 21:12:25
1.金字塔的很多函数返回值都是序列变量。根本不需要用数组保存。
2.stkindi中的第二个参数是"公式名.变量名"    你要引用的公式必须存在。
aa::=STKINDI('' , '公式名.变量名',0,1,-1);

[此贴子已经被作者于2019/9/23 21:12:38编辑过]
共12 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.06250 s, 3 queries.