以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  全局变量不能和另一个变量做运算吗?  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=75105)

--  作者:man110
--  发布时间:2015/1/28 15:10:55
--  全局变量不能和另一个变量做运算吗?
input:n(30,1,360,5);
VARIABLE:m=1;

b:=CALLSTOCKEX(\'000903\',vtclose ,6 ,0 ,4000);
s:=CALLSTOCKEX(\'399005\',vtclose ,6 ,0 ,4000);
bb:=(b-ref(b,1))/ref(b,1),NOAXIS;
ss:=(s-ref(s,1))/ref(s,1),NOAXIS;

bm:=(b-ref(b,n))/ref(b,n);
sm:=(s-ref(s,n))/ref(s,n);


x:=if(bm>sm,ref(bb,1),ref(ss,1));
m:=m*(1+x);
z:m,NOAXIS;

为什么屏幕上没有显示结果?序列模式下正常和普通变量没区别,可一到逐个k线的模式下就什么也显示不出来了。

--  作者:jinzhe
--  发布时间:2015/1/28 15:15:20
--  

你的公式的数据是ref 30 ,而逐k线又需要在每根k线上计算

所以你必须要让每根k线都有数据,那么必然是要在30根k线之后进行计算

 

if barpos>30 then m:=m*(1+x);

 

倒数第二句改成这样就行