您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

没有信号 [金字塔]

  • 咨询内容:

    老师,

         你好,能否帮忙看看我这段代码错误在哪里?怎么修改都没有信号发生?谢谢。

     

     

    variable:Rsum=0;  //Rsum红柱总和
    variable:Rlong=0;  //Rlong最长红柱
    variable:Rhigh=0;   //Rhigh红柱区域最低价

     

    //MACD指标

    P:=26;
    S:=12;
    M:=9;

    DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
    DEA  := EMA(DIFF,M);
    macd := 2*(DIFF-DEA);

     

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

    if ref(macd,1)<0 and macd>0 then
    begin
     Rsum:=0;    //红柱开始,清0
     Rlong:=0;    //红柱开始,清0
     Rhigh:=HIGH;  //红柱开始,初始化
    end


    if macd>0 then
    begin
     Rsum:=Rsum+macd;                                    //累加
     if abs(macd)<abs(Rlong) then Rlong:=macd;//如果红柱更长,则记录
     if HIGH>Rhigh then Rhigh:=HIGH;                         //如果价格更高,则记录
    end

     

    rnumb:=max(Rnum,Rbnum)+1;
    rcon1:=abs(Rsum)<abs(ref(Rsum,rnumb));//面积小于前一波--面积没创新低
    rcon2:=abs(Rlong)<abs(ref(Rlong,rnumb));//柱子长度小于前一波----长度没创新低
    rcon3:=Rhigh<ref(Rhigh,rnumb);//价格小于前一波-----价格创新低

     

     

    //当红柱开始收缩时(牛市即将结束,可能反转向上(或高位盘整)),如果出现低背离,则少量建仓

    if all(macd>0,3) and ref(macd,1)>macd and ref(macd,1)>ref(macd,2) then
    begin
     if rcon1 and rcon2 and rcon3 then buyshort(1,1,market);//低背离,面积没创新低,长度没创新低,价格创新低
    end

     

     

    //红柱消失、绿柱开始放出时(上涨行情(或高位盘整)已经结束),如果出现低背离,则加仓
    if ref(macd>0,1) and macd<0 then
    begin
        if rcon1 and rcon2 and rcon3  then 加:buyshort(1,1,market);//低背离,面积没创新低,长度没创新低,价格创新低
    end

     

     

  • 金字塔客服:

    if abs(macd)<abs(Rlong) then Rlong:=macd;//如果红柱更长,则记录
    这一句看你的意思应该是

    if abs(macd)>abs(Rlong) then Rlong:=macd;//如果红柱更长,则记录

     

  • 用户回复:

    谢谢老师,

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容