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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 求教:考夫曼的AMA在金字塔中如何完全实现?附带上分析家的自适应移动均线源码,见附件。在金字塔编译显示重复定义AMA,不知循环语句如何使用,请高手不吝赐教,甚为感谢!

   

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


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

主题:求教:考夫曼的AMA在金字塔中如何完全实现?附带上分析家的自适应移动均线源码,见附件。在金字塔编译显示重复定义AMA,不知循环语句如何使用,请高手不吝赐教,甚为感谢!

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


加好友 发短信 量化交易
等级:论坛游侠 帖子:391 积分:0 威望:0 精华:0 注册:2014/7/7 15:55:39
  发帖心情 Post By:2014/11/20 9:33:18    Post IP:14.153.20.60[显示全部帖子]

请问在卡夫曼中有两条线,MAMA和FAMA,怎样在金字塔中求出这两条线呢


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


加好友 发短信 量化交易
等级:论坛游侠 帖子:391 积分:0 威望:0 精华:0 注册:2014/7/7 15:55:39
  发帖心情 Post By:2014/11/20 10:24:40    Post IP:14.153.20.60[显示全部帖子]

{ TSM Ehlers MAMA
from John F. Ehlers, "Rocket Science for Traders"
(John Wiley & Sons, New York, 2001 }
inputs: price((H+L)/2), fastlimit(.5), slowlimit(.05);
vars: smooth(0), detrender(0), i1(0), q1(0), ji(0), jq(0), i2(0), q2(0),
re(0), im(0), period(0), smoothperiod(0), phase(0), deltaphase(0),
alpha(0), MAMA(0), FAMA(0);
if currentbar > 5 then begin
smooth = (4*price + 3*price[1] + 2*price[2] + price[3])/10;
detrender = (.962*smooth + .5769*smooth[2] - .5769*smooth[4] -.0962*smooth[6])*(.075*period[1] + .54);
{ computer InPhase and Quadrature components }
q1 = (.0962*detrender + .5769*detrender[2] + .5769*detrender[4] -.0962*detrender[6])*(.075*period[1] + .54);
i1 = detrender[3];
{ advance the phase of i1 and q1 by 90 degrees }
ji = (.0962*i1 + .5769*i1[2] - .5769*i1[4] - .0962*i1[6])*(.075*period[1]
+ .54);
jq = (.0962*q1 + .5769*q1[2] - .5769*q1[4] - .0962*q1[6])*(.075*period[1]
+ .54);
{ phase addition for 3 bar averaging }
i2 = i1 - jq;
q2 = q1 + ji;
{ smooth the i and q components before applying }
i2 = .2*i2 + .8*i2[1];
q2 = .2*q2 + .8*q2[1];
{ hymodyne discriminator }
re = i2*i2[1] + q2*q2[1];
im = i2*q2[1] - q2*i2[1];
re = .2*re + .8*re[1];
im = .2*im + .8*im[1];
if im < > 0 and re < > 0 then period = 360/arctangent(im/re);
if period > 1.5*period[1] then period = 1.5*period[1];
if period < 6 then period = 6;
if period > 50 then period = 50;
period = .2*period + .8*period[1];
smoothperiod = .33*period + .67*smoothperiod[1];
if i1 < > 0 then phase = (arctangent(q1/i1));
deltaphase = phase[1] - phase;
if deltaphase < 1 then deltaphase = 1;
alpha = fastlimit / deltaphase; {fastlimit was "speed"}
if alpha < slowlimit then alpha = slowlimit;
MAMA = alpha*price + (1 - alpha)*MAMA[1];
FAMA = .5*alpha*MAMA + (1 - .5*alpha)*FAMA[1];
plot1(MAMA,"MAMA");
plot2(FAMA,"FAMA");
end;
就是后面的这两个FAMA和MAMA

 回到顶部