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


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

   

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


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

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

帅哥哟,离线,有人找我吗?
feixue30
  11楼 | 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

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2020/3/1 9:48:38    Post IP:59.63.206.71[只看该作者]

差异是在所难免,比如sar指标许多软件算出来的值都不一样。

还有atr波动幅度,用talib这个金融库自带的atr指标算出来的结果,和用talib的tr指标结果自己再算一个sma均值后的结果也不一样。

http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=173300

我之前去对比过,还有macd有是否*2的区别,也就说你以为自己找到算法不一定是别人封装时候一样的算法,可能有一些不同的微调就会导致最后结果不同,如果大致趋势差不多没必要去计较

 

如果非要自己搞算法逻辑,那只能自己写不要使用api提共的

 


 回到顶部
总数 12 上一页 1 2