以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 报错 REF 函数在逐K线模式下不能直接在IF控制语句之内引用。 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=172154) |
-- 作者:qq代人发帖 -- 发布时间:2019/9/23 11:14:37 -- 报错 REF 函数在逐K线模式下不能直接在IF控制语句之内引用。 //报错 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 |
-- 作者:FireScript -- 发布时间:2019/9/23 13:13:03 -- 不行的。这样是获取不到的。 |
-- 作者:jztlt -- 发布时间:2019/9/23 15:31:53 -- 接1楼问题 请问一下应该如何 操作才能实现这个功能 |
-- 作者:FireScript -- 发布时间:2019/9/23 15:37:49 -- 可以这样做: VARIABLE:m8[]:=0; MA8:ma(close,8); m8:=MA8;//均线赋给一个未定义长度的数组变量 //取值 S1:m8[BARPOS-1];//上一个 S2:m8[BARPOS-2];//上上一个 |
-- 作者:jztlt -- 发布时间:2019/9/23 16:36:05 -- 这个m8保存均线的数组 里面的元素和时间序列是相反的吗,m8[BARPOS]是当前的,,m8[1]是最远的? |
-- 作者:FireScript -- 发布时间:2019/9/23 16:43:27 -- 对的。数组的缘故,这个没办法。并且下标1 不一定是有效值,或者说没有值。8周期均线至少在第八个周期开始才有有效值。 [此贴子已经被作者于2019/9/23 16:44:31编辑过]
|
-- 作者:jztlt -- 发布时间:2019/9/23 16:59:41 -- 那么再问一个问题,close[1]代表当前还未走完的K线的收盘价 还是上一根已经走完的K线的收盘价。如果是前一根的,那么哪个价格代表当前Tick的最新价格。C和close有什么区别,我在编程助手里没看到C,但示例代码却有使用C的 |
-- 作者:FireScript -- 发布时间:2019/9/23 17:15:01 -- close[1]是第一个K,不是上一个,也不是最新的(除非你只要一个K的数据),这个第一个K是当前程序使用的数据当中的第一个K线。c是close的缩写而已,历史K上是收盘价。在最新K上c和最新值是保存一致。 [此贴子已经被作者于2019/9/23 17:15:36编辑过]
|
-- 作者: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);同理 |
-- 作者:wenarm -- 发布时间:2019/9/23 21:12:25 -- 1.金字塔的很多函数返回值都是序列变量。根本不需要用数组保存。 2.stkindi中的第二个参数是"公式名.变量名" 你要引用的公式必须存在。 aa::=STKINDI(\'\' , \'公式名.变量名\',0,1,-1); [此贴子已经被作者于2019/9/23 21:12:38编辑过]
|