欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 报错 REF 函数在逐K线模式下不能直接在IF控制语句之内引用。

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4091人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
qq代人发帖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
报错 REF 函数在逐K线模式下不能直接在IF控制语句之内引用。  发帖心情 Post By:2019/9/23 11:14:37    Post IP:180.169.30.6[只看该作者]

//报错 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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/23 13:13:03    Post IP:180.169.30.6[只看该作者]

 不行的。这样是获取不到的。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
jztlt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:33 积分:0 威望:0 精华:0 注册:2019/9/23 11:00:51
接1楼问题  发帖心情 Post By:2019/9/23 15:31:53    Post IP:222.209.61.252[只看该作者]

请问一下应该如何 操作才能实现这个功能

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/23 15:37:49    Post IP:180.169.30.6[只看该作者]

 可以这样做:

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



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
jztlt
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:33 积分:0 威望:0 精华:0 注册:2019/9/23 11:00:51
  发帖心情 Post By:2019/9/23 16:36:05    Post IP:222.209.61.252[只看该作者]

这个m8保存均线的数组 里面的元素和时间序列是相反的吗,m8[BARPOS]是当前的,,m8[1]是最远的?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/23 16:43:27    Post IP:180.169.30.6[只看该作者]

 对的。数组的缘故,这个没办法。并且下标1 不一定是有效值,或者说没有值。8周期均线至少在第八个周期开始才有有效值。
[此贴子已经被作者于2019/9/23 16:44:31编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
jztlt
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:33 积分:0 威望:0 精华:0 注册:2019/9/23 11:00:51
  发帖心情 Post By:2019/9/23 16:59:41    Post IP:222.209.61.252[只看该作者]

那么再问一个问题,close[1]代表当前还未走完的K线的收盘价 还是上一根已经走完的K线的收盘价。如果是前一根的,那么哪个价格代表当前Tick的最新价格。C和close有什么区别,我在编程助手里没看到C,但示例代码却有使用C的

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/23 17:15:01    Post IP:180.169.30.6[只看该作者]

 close[1]是第一个K,不是上一个,也不是最新的(除非你只要一个K的数据),这个第一个K是当前程序使用的数据当中的第一个K线。c是close的缩写而已,历史K上是收盘价。在最新K上c和最新值是保存一致。
[此贴子已经被作者于2019/9/23 17:15:36编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
jztlt
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:33 积分:0 威望:0 精华:0 注册:2019/9/23 11:00:51
  发帖心情 Post By:2019/9/23 17:31:03    Post IP:222.209.61.252[只看该作者]

MA8_1M[1]:=STKINDI('' , 'ma(close,8)',0,1,-1); 目的是在1分钟上获取5分钟里前一根K线的8均线值,这里有什么问题,无法正常获取.close_1M[1]:=STKINDI('' , 'close',0,1,-1);同理

 回到顶部
帅哥,在线噢!
wenarm
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/9/23 21:12:25    Post IP:101.88.97.117[只看该作者]

1.金字塔的很多函数返回值都是序列变量。根本不需要用数组保存。
2.stkindi中的第二个参数是"公式名.变量名"    你要引用的公式必须存在。
aa::=STKINDI('' , '公式名.变量名',0,1,-1);

[此贴子已经被作者于2019/9/23 21:12:38编辑过]


编程无捷径,技巧靠积累。
 回到顶部
总数 12 1 2 下一页