以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  递归的写法  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=138210)

--  作者:guohg129
--  发布时间:2016/8/18 12:59:07
--  递归的写法

递归的公式如何表达?

 

比如:Yt = a + bx + Yt-1

 

谢谢

 

 


--  作者:jinzhe
--  发布时间:2016/8/18 13:14:30
--  

runmode:0;

variable:y=这里写上y的初值;

 

if barpos>1 then y:=a+b*x+y;


--  作者:guohg129
--  发布时间:2016/8/18 13:35:17
--  

我的公式没有涉及到k线图,barpos也能用吗? 测试了一下,输出全部是-1.#R,为什么?

 

RUNMODE:0;


VARIABLE: SD = 2.5;

 

IF BARPOS>1 THEN 


SD:=SQRT(1.632 + 0.484*DD + 0.491*SD*SD);


--  作者:jinzhe
--  发布时间:2016/8/18 13:44:20
--  

0.484*DD

这个dd改成sd


--  作者:guohg129
--  发布时间:2016/8/18 13:51:58
--  

我的DD其实是有赋值的,比如

DD:MA(close,400);

 

结果还是1.#R

 

不知道为什么

 


--  作者:jinzhe
--  发布时间:2016/8/18 13:59:26
--  
有没有其他没提到的代码都一起贴出来
--  作者:guohg129
--  发布时间:2016/8/18 14:21:16
--  

C1:CALLSTOCKEX(\'RB09\',VTCLOSE,1,-1,500);

 

 

 

 

DD:MA(C1,400);

 

RUNMODE:0;


VARIABLE: SD = 2.5;

 

IF BARPOS>1 THEN 


SD:=SQRT(1.632 + 0.484*DD + 0.491*SD*SD);

 


 


--  作者:jinzhe
--  发布时间:2016/8/18 14:36:08
--  

DD:MA(C1,400);

 

这句代码因为DD的数据产生至少要400根k线,那么你的递归至少是dd要有值时,才能进行递归,所以要判断出dd是有效值时,才能进行递归,那么代码如下:

C1:CALLSTOCKEX(\'RB09\',VTCLOSE,1,-1,500);

 

 

bb:barpos;

 

dd:ma(c1,400);
 

RUNMODE:0;


VARIABLE: SD = 2.5;

 

IF valid(dd)=1 THEN


SD:=SQRT(1.632 + 0.484*DD + 0.491*SD*SD);


--  作者:guohg129
--  发布时间:2016/8/18 14:46:50
--  

这次可以了,谢谢图片点击可在新窗口打开查看