欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 求编写类似EMA的指标方法

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4040人关注过本帖树形打印复制链接

主题:求编写类似EMA的指标方法

帅哥哟,离线,有人找我吗?
Marcus
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
求编写类似EMA的指标方法  发帖心情 Post By:2012/6/20 14:29:14    Post IP:115.205.168.203[只看该作者]

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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/6/20 14:48:27    Post IP:58.246.57.26[只看该作者]

上一周期的y值就是ref(y,1);


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
Marcus
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By:2012/6/20 15:07:09    Post IP:115.205.168.203[只看该作者]

以下是引用jinzhe在2012-6-20 14:48:27的发言:
上一周期的y值就是ref(y,1);

问题的关键是:Y怎么定义?因为这个公式会循环引用Y,如果没有实现定义好,编译不会通过。
我现在的解决方法是在开头实现定义
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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/6/20 15:29:06    Post IP:58.246.57.26[只看该作者]

input:n(20);
y:=c;


Y:=(2.5*C+(N-1.5)*ref(y,1))/(N+1);

[此贴子已经被作者于2012-6-20 15:29:13编辑过]


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
Marcus
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By:2012/6/20 19:32:09    Post IP:115.205.168.203[只看该作者]

 谢了。已经搞定。

input:N(20);

variable: Y=0;

Y:=(2.5*C+(N-1.5)*Y)/(N+1);
MY_EMA: Y;

 回到顶部