以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请问如何实现一个和EMA类似的递归算法?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=141868)

--  作者:CQ半兽人
--  发布时间:2016/10/27 7:45:07
--  请问如何实现一个和EMA类似的递归算法?
请问如何实现一个和EMA类似的递归算法?
需要实现下面的公式。
LSS(t)=A1*close(t)+A2*close(t-1)+A3*close(t-2)+A4*LSS(t-1)+A5*LSS(t-2);
其中A1,A2,A3,A4,A5全是常数。
t是指K线的位置,从1开始,一直到现在,即1,2,3,4,5……,一直到现在这根K线。

LSS(1):=A1*close;//第1根K线计算结果。
LSS(2) := A1*close+ A2*REF(close,1)+A4* LSS(1);//第2根K线计算结果。
LSS(3) :=A1*close+ A2*REF(close,1) +A3* REF(close,2)+ A4*LSS(2) +A5*LSS(1);//第3根K线计算结果。
…………以此类推,
LSS(t)=A1*close+A2**REF(close,1)+A3**REF(close,2)+A4*LSS(t-1)+A5*LSS(t-2);//第t根K线的计算结果。


--  作者:jinzhe
--  发布时间:2016/10/27 9:02:37
--  

这个算法的归纳不明显,用户再多点例子

[此贴子已经被作者于2016-10-27 9:02:52编辑过]

--  作者:CQ半兽人
--  发布时间:2016/10/27 9:22:27
--  
LSS(1):=A1*close;//第1根K线计算结果。
LSS(2) := A1*close+ A2*REF(close,1)+A4* LSS(1);//第2根K线计算结果。
LSS(3) :=A1*close+ A2*REF(close,1) +A3* REF(close,2)+ A4*LSS(2) +A5*LSS(1);//第3根K线计算结果。
LSS(4) :=A1*close+ A2*REF(close,1) +A3* REF(close,2)+ A4*LSS(3) +A5*LSS(2);//第4根K线计算结果。
LSS(5) :=A1*close+ A2*REF(close,1) +A3* REF(close,2)+ A4*LSS(4) +A5*LSS(3);//第5根K线计算结果。
LSS(6) :=A1*close+ A2*REF(close,1) +A3* REF(close,2)+ A4*LSS(5) +A5*LSS(4);//第6根K线计算结果。
…………以此类推,
LSS(t)=A1*close+A2*REF(close,1)+A3*REF(close,2)+A4*LSS(t-1)+A5*LSS(t-2);//第t根K线的计算结果。

[此贴子已经被作者于2016-10-27 9:23:40编辑过]

--  作者:CQ半兽人
--  发布时间:2016/10/27 9:26:05
--  
前面的A1、A2、A3部分就是引用的当期收盘价,前一期收盘价,前两期收盘价。
无发实现的部分就是A4、A5部分,因为需要引用前一期LSS值和前两期LSS值。这部分在编程中不知道怎么实现。

[此贴子已经被作者于2016-10-27 9:26:23编辑过]

--  作者:jinzhe
--  发布时间:2016/10/27 9:42:44
--  
LSS(1):=A1*close;//第1根K线计算结果。
LSS(2) := A1*close+ A2*REF(close,1)+A4* LSS(1);//第2根K线计算结果。
LSS(3) :=A1*close+ A2*REF(close,1) +A3* REF(close,2)+ A4*LSS(2) +A5*LSS(1);//第3根K线计算结果。
LSS(4) :=A1*close+ A2*REF(close,1) +A3* REF(close,2)+ A4*LSS(3) +A5*LSS(2);//第4根K线计算结果。
LSS(5) :=A1*close+ A2*REF(close,1) +A3* REF(close,2)+ A4*LSS(4) +A5*LSS(3);//第5根K线计算结果。
LSS(6) :=A1*close+ A2*REF(close,1) +A3* REF(close,2)+ A4*LSS(5) +A5*LSS(4);//第6根K线计算结果。
…………以此类推,
LSS(t)=A1*close+A2*REF(close,1)+A3*REF(close,2)+A4*LSS(t-1)+A5*LSS(t-2);//第t根K线的计算结果。

 

 

variable:lss=a1*close;

r1:=ref(c,1);

r2:=ref(c,2);

l1:=ref(lss,1);

if barpos=2 then lss:=a1*close+a2*r1+a4*l1;

l2:=ref(lss,2);

if barpos>=3 then lss:=a1*close+a2*r1+a3*r2+a4*l1+a5*l2;