以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 求编写类似EMA的指标方法 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=12522) |
-- 作者:Marcus -- 发布时间:2012/6/20 14:29:14 -- 求编写类似EMA的指标方法 EMA是金字塔缺省提供的函数,具体定义如下: EMA(X,N),求X的N日指数平滑移动平均。算法:若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y\']/(N+1),其中Y\'表示上一周期Y值。 我现在想自定义EMA,把权重更改,比如 Y=[2.5*X+(N-1.5)*Y\']/(N+1),其中Y\'表示上一周期Y值。 请问怎么实现啊? |
-- 作者:jinzhe -- 发布时间:2012/6/20 14:48:27 -- 上一周期的y值就是ref(y,1); |
-- 作者:Marcus -- 发布时间:2012/6/20 15:07:09 -- 以下是引用jinzhe在2012-6-20 14:48:27的发言: 问题的关键是:Y怎么定义?因为这个公式会循环引用Y,如果没有实现定义好,编译不会通过。上一周期的y值就是ref(y,1); 我现在的解决方法是在开头实现定义 variable: tmp; N:=20; Y:=0; //必须要初始赋值,怎么赋值? tmp:=ref(Y,1); //Y必须要实现定义 Y=[2.5*C+(N-1.5)*tmp]/(N+1); 我实现的方法不对,尽管能够编译通过,但tmp永远为0... 金字塔能够实现EMA,说明肯定是可以实现的,特此求教。 |
-- 作者:jinzhe -- 发布时间:2012/6/20 15:29:06 -- input:n(20);
[此贴子已经被作者于2012-6-20 15:29:13编辑过]
|
-- 作者:Marcus -- 发布时间:2012/6/20 19:32:09 -- 谢了。已经搞定。 input:N(20); variable: Y=0; Y:=(2.5*C+(N-1.5)*Y)/(N+1); MY_EMA: Y; |