以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [原创]怎么提取前30根bar的收盘价  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=174749)

--  作者:wkpzwy
--  发布时间:2020/3/4 10:29:32
--  [原创]怎么提取前30根bar的收盘价
用ref(close,i)循环提示风险,好像没提取成功,怎么在编译环境显示变量的值。谢谢大家啦。。
--  作者:wkpzwy
--  发布时间:2020/3/4 10:31:22
--  
是提取前30-前1根bar总共30根的收盘价
--  作者:FireScript
--  发布时间:2020/3/4 10:35:56
--  
 ref无法在循环语句内部直接使用。

但是收盘价函数本身就是一个序列。所以可以这样

c[BARPOS-1];//表示取上一个K收盘价
[此贴子已经被作者于2020/3/4 10:36:11编辑过]

--  作者:wkpzwy
--  发布时间:2020/3/4 11:24:27
--  
谢谢你的解答。。。怎么在编译环境显示变量的值,检查有无错误呢
--  作者:wkpzwy
--  发布时间:2020/3/4 11:26:27
--  
closes[1]=ref(close,5);
closes[2]=ref(close,4);
closes[3]=ref(close,3);
closes[4]=ref(close,2);
closes[5]=ref(close,1);
显示:closes[1],noaxis,LINETHICK0;

这样写图表窗口没有数值=0


--  作者:wenarm
--  发布时间:2020/3/4 12:15:24
--  
以下是引用wkpzwy在2020/3/4 11:24:27的发言:
谢谢你的解答。。。怎么在编译环境显示变量的值,检查有无错误呢

直接编译后,在没有语法错误的情况下,加载到k线图上对比下结果就知道了。

 

 

金字塔中很少需要使用到数组。你可以直接赋值给一个普通变量。数组的定义参考这个函数的说明。VARIABLE。

 

赋值操作是":"或者":="     你上面的代码是比较操作,


--  作者:wkpzwy
--  发布时间:2020/3/4 13:49:08
--  
variable:closes[window]=0;
closes[1]=ref(close,5);
closes[2]=ref(close,4);
closes[3]=ref(close,3);
closes[4]=ref(close,2);
closes[5]=ref(close,1);

--  作者:wkpzwy
--  发布时间:2020/3/4 13:49:44
--  
close[0]还是不显示呀。。等于0


--  作者:FireScript
--  发布时间:2020/3/4 13:58:56
--  

close[0]

1.下标从1开始,不是从0.
2.公式模式必须是逐K模式才能正确定义全局变量。

你定义数组是为了处理什么呢。本身历史的收盘价都在一个序列里面,随时取用,你把他们又存放到一个新的数组里面似乎没什么必要吧。 你直接告知下你的原始思路吧。要就是你调取历史K收盘价是为了处理什么。
[此贴子已经被作者于2020/3/4 14:02:13编辑过]

--  作者:wkpzwy
--  发布时间:2020/3/4 14:18:04
--  
写错啦。。我输出的就是close[1]