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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]ref(x,n);这个函数中x 可以是常数吗?

   

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


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

主题:[求助]ref(x,n);这个函数中x 可以是常数吗?

帅哥哟,离线,有人找我吗?
马立秋
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:84 积分:0 威望:0 精华:0 注册:2016/8/13 15:12:10
[求助]ref(x,n);这个函数中x 可以是常数吗?  发帖心情 Post By:2017/9/11 15:07:12    Post IP:59.63.248.163[只看该作者]

ref(x,n);这个函数中x 可以是常数吗?我今天碰到了一个指标就是这样的。
源码如下:

KLINE(O,H,L,C,0);
a:=h>ref(h,1) and l>ref(l,1); 
b:=ref(h,1)>ref(h,2) and ref(l,1)>ref(l,2);
cc:=ref(h,2)>ref(h,3) and ref(l,2)>ref(l,3);

kk:=a and b and cc;
gg:barslast(kk),linethick0;
DRAWICON(gg,l,11);

我特意加了下面的的代码,显示看了一下
hh:ref(gg,1),linethick0;
drawicon(hh,l*0.996,13);

这个GG结果指标应该“周期数”,也就是常数。

我疑惑的是,为什么他的返回指标是向后移动了一个周期,ref,不应该是向前取上一个周期的值吗?

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


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

那个参数不能是常数。 那个gg是有一个计算公式的。你ref引用相当于在上一个K位置上计算这个GG而已。

另外就是我看ref的引用不就是前一个计算结果么,并没有出错的。ref引用是引用历史的位置。



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


加好友 发短信
等级:新手上路 帖子:84 积分:0 威望:0 精华:0 注册:2016/8/13 15:12:10
  发帖心情 Post By:2017/9/11 15:52:22    Post IP:59.63.248.163[只看该作者]

您可以把上面的代码在软件里显示看下:
我的意思是,这个GG和HH的返回值,在这个公式里都应该是个周期数,也就是常数,对吧?

这句:hh:ref(gg,1),linethick0;GG返回值不应该是取上一个周期的GG值,然后赋值给HH吗?比如,GG=10,那么取上一个周期的GG值,就应该是GG=11,对吧?但实际显示是GG赋值给HH=9,也就是向后移动了一个周期。这究竟是为什么呢?

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


加好友 发短信
等级:新手上路 帖子:84 积分:0 威望:0 精华:0 注册:2016/8/13 15:12:10
  发帖心情 Post By:2017/9/11 15:54:11    Post IP:59.63.248.163[只看该作者]

我怀疑,ref(x,n)这个函数的用法,是不是,当X为常数时,是根据N值向后移动呢?不知道这种理解对不对?

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


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

我做过输出的。我在日线下,品种白银连续 (GG,HH):(21,20),(20,19),(19,18),(18,17)。 按顺序:第一个是9月11日的。 你看看每一个HH都是引用前一个日期的GG的值。 “比如,GG=10,那么取上一个周期的GG值,就应该是GG=11” 上一个GG是9,金字塔里面的ref的方向你是不是理解反了啊。


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


加好友 发短信
等级:新手上路 帖子:84 积分:0 威望:0 精华:0 注册:2016/8/13 15:12:10
  发帖心情 Post By:2017/9/11 16:21:06    Post IP:59.63.248.163[只看该作者]

代码里并没有引用GG的前一个值!其实也可以这样写,HH:ref(barslast(gg),1);

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


加好友 发短信
等级:新手上路 帖子:84 积分:0 威望:0 精华:0 注册:2016/8/13 15:12:10
  发帖心情 Post By:2017/9/11 16:24:10    Post IP:59.63.248.163[只看该作者]

我拆分写,是为了说明问题所在。

另外:HH:ref(barslast(gg),1);里的GG,返回值是不是常数?应该是吧?同意吧?REF(X,N)里的 X 能允许是常数吗?我记忆好像是表达式才行

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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/9/11 16:27:53    Post IP:180.169.30.6[只看该作者]

你上面的都是序列变量。

如果gg:barslast(kk)返回时15,那么ref(gg,1)的到的结果其实是上一根k线对应的值,也就是距离条件成立的数量是14。以此类推、

归根到底就是每根k对应。



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

以下是引用马立秋在2017/9/11 16:21:06的发言:
代码里并没有引用GG的前一个值!其实也可以这样写,HH:ref(barslast(gg),1);

ref(GG,1) 就是在引用GG在前一个K位置下的计算结果。 GG在这个表达式里面不是你理解是一个常数,尽管前面的计算公式,是把它计算出了一个值。但是不是这样子。  是把GG的计算公式移到前一个K的位置计算下,然后取那个计算结果。 我没想到,你是卡在这个位置。你应该是这个地方的理解有疑惑吧?



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


加好友 发短信
等级:新手上路 帖子:84 积分:0 威望:0 精华:0 注册:2016/8/13 15:12:10
  发帖心情 Post By:2017/9/11 16:33:06    Post IP:59.63.248.163[只看该作者]

好吧,但我还是不太理解。我再缕缕吧!多谢老师指教

 回到顶部