以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [原创]如何寻找macd等指标的金死叉的临界状态  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=4512)

--  作者:阿火
--  发布时间:2010/12/21 9:45:49
--  [原创]如何寻找macd等指标的金死叉的临界状态

问题:在设计系统过程中,有时候需要知道临界位。比如突破前10期高点,那么临界位就是ref(hhv(h,10),1),那么,macd、KDJ、双MA等的临界位是多少呢?在此,本文以寻找macd临界位为例,谈谈思路

macd的代码如下:

diff:=ema(c,12)-ema(c,26);

dea:=ema(diff,9);

 

临界位,就是diff=dea时对应的C,于是

diff=dea

ema(c,12)-ema(c,26)=ema(diff,9)

[ref(ema(c,12),1)*11/13+c*2/13]-[ref(ema(c,26),1)*25/27+c*2/27]=ref(ema(dea,9),1)*8/10+diff*2/10

再把diff代入上面的等式

最后整理可得:C=(351*REF(DEA,1)+325*REF(EMA(C,26),1)-297*REF(EMA(C,12),1))/28;

也就是临界位为 LJ=(351*REF(DEA,1)+325*REF(EMA(C,26),1)-297*REF(EMA(C,12),1))/28;

完整的公式如下:

diff:=ema(c,12)-ema(c,26);

dea:=ema(diff,9);

LJ:=(351*REF(DEA,1)+325*REF(EMA(C,26),1)-297*REF(EMA(C,12),1))/28;

把上面的代码复制到金字塔里,加载在主图上,可以得到一条临界位连线,而且这条线是固定的,不会漂浮的。C>LJ,则macd金叉,C<LJ,则MACD死叉。对于其它指标,同样的原理也可以计算得出。

此临界位线,配合仓位控制,可以以空间缓冲地带的形式解决信号反复问题,比如:

n:=5*mindiff;

tbuy(c>Lj+n and tholding<=0,1);

tsell(c<Lj-n,tbuyholding(1));

tbuyshort(c<Lj-n and tholding>=0,1);

tsellshort(c>Lj+n,tsellholding(1));

//注意,此代码的具体的细节(比如时间控制)还未具体去推敲,在此先发表,以供大家参考


--  作者:王锋
--  发布时间:2010/12/21 10:02:56
--  
不错,加精
--  作者:jonasonyu1
--  发布时间:2013/9/3 8:36:00
--  
谢谢阿火。


[ref(ema(c,12),1)*11/13+c*2/13]-[ref(ema(c,26),1)*25/27+c*2/27]=ref(ema(dea,9),1)*8/10+diff*2/10

这个是不是有误?正确是不是应该如下?

[ref(ema(c,12),1)*11/13+c*2/13]-[ref(ema(c,26),1)*25/27+c*2/27]=ref(dea,1)*8/10+diff*2/10