以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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; |