以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- ref函数没办法用 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=148870) |
-- 作者:牤牛 -- 发布时间:2017/3/8 23:02:35 -- ref函数没办法用 ref语句不能用在for语句和if语句里,我发现如果我要统计前60根K线的收盘价,成交量,持仓量,除了一个个赋值,没有更好的办法。 |
-- 作者:netfox -- 发布时间:2017/3/8 23:46:52 -- count 不是统计吗? |
-- 作者:jinzhe -- 发布时间:2017/3/9 9:08:45 -- 是不能直接用,可以间接用,你看下编译给你的提示链接 |
-- 作者:牤牛 -- 发布时间:2017/3/9 9:51:24 -- 当对前几十个周期进行稍微复杂点的运算,count是不能完成的。 间接用还是只能一个一个赋值。比如: variable:cj[61]=0,cc[60]=0; for i=1 to 60 do cj[i]=ref(vol,i); for i=1 to 60 do cc[i]=cj[i]-cj[i+1]; 请问怎么间接用。 |
-- 作者:jinzhe -- 发布时间:2017/3/9 9:58:09 -- 编译时给你的提示连接 ![]() ![]() |
-- 作者:牤牛 -- 发布时间:2017/3/9 10:23:12 -- 你是不懂我们上班族电脑有监控的苦恼啊,我上班时间要能把这个软件打开,我早打开看了。我只能晚上回家看,然后有新问题第二天您才能回复。那么周期就太长了。 |
-- 作者:jinzhe -- 发布时间:2017/3/9 10:24:13 -- http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=130
|
-- 作者:jinzhe -- 发布时间:2017/3/9 10:25:49 -- IF THEN 语句的描述 例如: input:atrn1(1,1,10),atrn2(5,2,20); if atrn1<atrn2 and vol>20000 then 上述公式语句由于将REF和MA函数放在了IF语句之中,所以该公式无法正常编译。解决办法是将他们放到IF语句之外去执行: input:atrn1(1,1,10),atrn2(5,2,20);
对于REF较为有效率的使用改进方案 金字塔提供了强大的数组功能,完成可以代替REF函数,使用数组代替REF不仅可以解决不能再IF THEN语句的限制,还可以提高运行效率,我们举例如下: If Barpos-1 = N then
将REF修改为数组模式的代码为 If Barpos-1 = N then |
-- 作者:牤牛 -- 发布时间:2017/3/9 16:49:02 -- 请问成交量,持仓量也可以直接这样转成数组吗? 上根K线的成交量vol[Barpos-1] ,持仓量openint[Barpos-1],系统能识别? |
-- 作者:jinzhe -- 发布时间:2017/3/9 17:01:57 -- 也可以,这些都是有k线数据的,即每根k线上都有对应的数据 |