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


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

   

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


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

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

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


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

根据21楼fly给出的底背离的代码,我想添加顶背离的代码。单单fly给出的底背离代码正常,但是把顶背离代码和底背离代码放在一起,确只显示顶背离的信号,不知道该怎么修改??红色字体部分是添加顶背离部分

variable:bsum=0; //bsum 红柱总和
variable:blong=0; //blong最长红柱
variable:bhigh=0;  //bhigh红柱区域最高价

 


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 下一页