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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于MACD的判断公式如何编写

   

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


  共有17565人关注过本帖平板打印复制链接

主题:关于MACD的判断公式如何编写

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


加好友 发短信
等级:论坛游侠 帖子:274 积分:0 威望:0 精华:0 注册:2015/7/5 14:46:18
  发帖心情 Post By:2017/6/13 16:16:08    Post IP:222.78.34.223[只看该作者]

那顶背离应该按底背离做相应修改,可是将两者情况放在一起,图表却显示其中一种,怎么将两者判断的情况都显示出来,下面是代码,望大牛解疑
 variable:gsum=0;  //gsum绿柱总和
variable:glong=0;  //glong最长绿柱
variable:glow=0;   //glow绿柱区域最低价
variable:bsum=0; //bsum 红柱总和
variable:blong=0; //blong最长红柱
variable:bhigh=0;  //bhigh红柱区域最高价

 
//MACD指标
P:=26;
S:=12;
M:=9;
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  := EMA(DIFF,M);
macd := 2*(DIFF-DEA);
ma5:ma(c,5);
 
gnum:=barslast(ref(macd>0,1) and macd<0);//红转绿
bnum:=barslast(ref(macd<0,1) and macd>0);//绿转红

if ref(macd,1)>0 and macd<0 then 
begin
 gsum:=0;    //绿柱开始,清0
 glong:=0;    //绿柱开始,清0
 glow:=low;  //绿柱开始,初始化
end

if macd<0 then 
begin
 gsum:=gsum+macd;                                    //累加
 if abs(macd)>abs(glong) then glong:=macd;//如果绿柱更长,则记录
 if low<glow then glow:=low;                         //如果价格更低,则记录
end
 
numb:=max(gnum,bnum)+1;
con1:=abs(gsum)<abs(ref(gsum,numb));//面积小于前一波--面积没创新低
con2:=abs(glong)<abs(ref(glong,numb));//柱子长度小于前一波----长度没创新低
con3:=glow<ref(glow,numb);//价格小于前一波-----价格创新低

 
 
//当绿柱开始收缩时(熊市即将结束,可能反转向上(或低位盘整)),如果出现低背离,则少量建仓
if all(macd<0,3) and ref(macd,1)<macd and ref(macd,1)<ref(macd,2) then
begin
 if con1 and con2 and con3 then buy(1 and holding,1,market);//低背离,面积没创新低,长度没创新低,价格创新低
end
 
 
//绿柱消失、红柱开始放出时(下跌行情(或低位盘整)已经结束),如果出现低背离,则加仓
if ref(macd<0,1) and macd>0 then
begin
    if con1 and con2 and con3  then 加多:buy(1,1,market);//低背离,面积没创新低,长度没创新低,价格创新低
end  //dibei 过程


bnum:=barslast(ref(macd<0,1) and macd>0);//绿转红
gnum:=barslast(ref(macd>0,1) and macd<0);//红转绿

if ref(macd,1)<0 and macd>0 then 
begin
 bsum:=0;    //红柱开始,清0
 blong:=0;    //红柱开始,清0
 bhigh:=high;  //红柱开始,初始化
end

if macd>0 then 
begin
 bsum:=bsum+macd;                                    //累加
 if abs(macd)>abs(blong) then blong:=macd;//如果红柱更长,则记录
 if high>bhigh then bhigh:=high;                         //如果价格更高,则记录
end
 
numb:=max(gnum,bnum)+1;//77777
con4:=abs(bsum)<abs(ref(bsum,numb));//面积小于前一波--面积没创新高
con5:=abs(blong)<abs(ref(blong,numb));//柱子长度小于前一波----长度没创新高
con6:=bhigh>ref(bhigh,numb);//价格大于前一波-----价格创新高

 
 
//当红柱开始收缩时(牛市即将结束,可能反转向下(或高位盘整)),如果出现顶背离,则少量建仓
if all(macd>0,3) and ref(macd,1)>macd and ref(macd,1)>ref(macd,2) then
begin
 if con4 and con5 and con6  then  buyshort(1 and holding=0,1,market);//顶背离,面积没创新低,长度没创新低,价格创新低
end
 
 
//红柱消失、绿柱开始放出时(上涨行情(或低位盘整)已经结束),如果出现顶背离,则加仓
if ref(macd>0,1) and macd<0 then
begin
    if con4 and con5 and con6  then 加空:buyshort(1,1,market);//顶背离,面积没创新高,长度没创新高,价格创新高
end


 回到顶部
总数 49 1 2 3 4 5 下一页