728x90_Header

Collapse

Announcement

Collapse

MyFxBook Final Forum Ruling

Okay. We have determined that a member may post a myfxbook.com link if it is to provide information about a specific indicator, system or ea. Provided that the name and ownership is valid. However, Any member requesting the share of this www.myfxbook.xxx and they merely have seen it on the myfxbook site. The post will be deleted no discussion. So, Sorry for the delay but we had to make a final decision and we needed to explore all avenues.
See more
See less

Alert not working!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Alert not working!

    hi,

    can anyone see why the alerts on this indicator aren't working?

    thanks in advance

    /*



    ************************************************** *******************



    RSI with Trend Catcher signal





    by Matsu

    based on codes from various sources



    ************************************************** *******************



    */





    #property indicator_separate_window

    #property indicator_buffers 5

    #property indicator_color1 Lime

    #property indicator_color2 Red

    #property indicator_color3 Lime

    #property indicator_color4 Red

    #property indicator_color5 Gold



    #property indicator_level1 60

    #property indicator_level2 50

    #property indicator_level3 40



    int BBPrd=20;

    double BBDev=2.0;

    int SBPrd=13;

    int SBATRPrd=21;

    double SBFactor=2;

    int SBShift=1;

    extern int RSIPeriod=12;

    extern int BullLevel=55;

    extern int BearLevel=45;

    extern bool AlertOn = true;



    double RSI[];

    double DnRSI[];

    double Buy[];

    double Sell[];

    double Squeeze[];







    int init()

    {



    IndicatorBuffers(5);



    SetIndexStyle(0,DRAW_LINE);

    SetIndexBuffer(0,RSI);



    SetIndexStyle(1,DRAW_LINE);

    SetIndexBuffer(1,DnRSI);



    SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID);

    SetIndexArrow(2,159);

    SetIndexBuffer(2,Buy);



    SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID);

    SetIndexArrow(3,159);

    SetIndexBuffer(3,Sell);



    SetIndexStyle(4,DRAW_ARROW,STYLE_SOLID);

    SetIndexArrow(4,159);

    SetIndexBuffer(4,Squeeze);



    IndicatorShortName("RSI("+RSIPeriod+")");

    IndicatorDigits(2);



    return(0);



    }







    int start()

    {



    int counted_bars=IndicatorCounted();

    int shift,limit,ob,os;

    double BBMA, SBMA, TopBBand, BotBBand, TopBBandPrev, BotBBandPrev, TopSBand, BotSBand;

    bool dn = false;

    double BuyNow, BuyPrevious, SellNow, SellPrevious;

    static datetime prevtime = 0;





    if (counted_bars<0) return(-1);

    if (counted_bars>0) counted_bars--;

    limit=Bars-31;

    if(counted_bars>=31) limit=Bars-counted_bars-1;



    for (shift=limit;shift>=0;shift--)

    {



    RSI[shift]=iRSI(NULL,0,RSIPeriod,PRICE_CLOSE,shift);

    ob = indicator_level1;

    os = indicator_level3;



    // ========= Two-tone RSI



    if (dn==true)

    {

    if (RSI[shift]>BullLevel)

    {

    dn=false;

    DnRSI[shift]=EMPTY_VALUE;

    }

    else

    {

    dn=true;

    DnRSI[shift]=RSI[shift];

    }



    }

    else

    {

    if (RSI[shift]<BearLevel)

    {

    dn=true;

    DnRSI[shift]=RSI[shift];

    }

    else

    {

    dn=false;

    DnRSI[shift]=EMPTY_VALUE;

    }



    }



    // ========= Two-tone RSI Ends



    // ========= Squeeze Signals



    BBMA = iMA(NULL,0,BBPrd,0,MODE_SMA,PRICE_CLOSE,shift);

    SBMA = iMA(NULL,0,SBPrd,0,MODE_EMA,PRICE_CLOSE,shift+SBSh ift);

    TopBBand = iBands(NULL,0,BBPrd,BBDev,0,PRICE_CLOSE,MODE_UPPER ,shift);

    BotBBand = iBands(NULL,0,BBPrd,BBDev,0,PRICE_CLOSE,MODE_LOWER ,shift);

    TopSBand = SBMA + (SBFactor * iATR(NULL,0,SBATRPrd,shift+SBShift));

    BotSBand = SBMA - (SBFactor * iATR(NULL,0,SBATRPrd,shift+SBShift));

    TopBBandPrev = iBands(NULL,0,BBPrd,BBDev,0,PRICE_CLOSE,MODE_UPPER ,shift+1);

    BotBBandPrev = iBands(NULL,0,BBPrd,BBDev,0,PRICE_CLOSE,MODE_LOWER ,shift+1);



    if (TopBBand<TopSBand && BotBBand>BotSBand) Squeeze[shift]=50;



    // ========= Squeeze Signals Ends



    // ========= BB Breakout Signals



    //if(Squeeze[shift+2]==55 && RSI[shift]>55 && BotBBand<BotSBand)

    if((Squeeze[shift+2]==55 || Squeeze[shift+1]==55) && RSI[shift]>55 && BotBBand<BotSBand)

    {

    Buy[shift]=ob;

    Sell[shift]=EMPTY_VALUE;

    }

    else

    //if(Squeeze[shift+2]==45 && RSI[shift]<45 && TopBBand>TopSBand)

    if((Squeeze[shift+2]==45 || Squeeze[shift+1]==45) && RSI[shift]<45 && TopBBand>TopSBand)

    {

    Buy[shift]=EMPTY_VALUE;

    Sell[shift]=os;

    }

    else

    if(Buy[shift+1]==ob && BotBBand<BotBBandPrev && RSI[shift]>55)

    {

    Buy[shift]=ob;

    Sell[shift]=EMPTY_VALUE;

    }

    else

    if(Sell[shift+1]==os && TopBBand>TopBBandPrev && RSI[shift]<45)

    {

    Buy[shift]=EMPTY_VALUE;

    Sell[shift]=os;

    }

    else

    {

    Buy[shift]=EMPTY_VALUE;

    Sell[shift]=EMPTY_VALUE;

    }



    // ========= BB Breakout Signals Ends



    }





    // ======= Alert =========



    if(AlertOn)

    {

    if(prevtime == Time[0])

    {

    return(0);

    }

    prevtime = Time[0];



    BuyNow = Buy[1];

    BuyPrevious = Buy[2];

    SellNow = Sell[1];

    SellPrevious = Sell[2];



    if((BuyNow ==ob) && (BuyPrevious ==EMPTY_VALUE) )

    {

    Alert(Symbol(), " M", Period(), " Buy Alert");

    }

    else

    if((SellNow ==os) && (SellPrevious ==EMPTY_VALUE) )

    {

    Alert(Symbol(), " M", Period(), " Sell Alert");

    }



    IndicatorShortName("RSI("+RSIPeriod+") (Alert on)");



    }



    // ======= Alert Ends =========







    return(0);



    }

  • #2
    What kindof Alert are you looking for?

    Comment

    Working...
    X