RSI cross sound alert request

 

Looking for an alert that will play a custom .wav file when the RSI crosses above 50 and when the RSI crosses below 50....anything out there?

 

Just change the bull and bear levels to 50

Files:
RSI-TC.mq4  6 kb
 

may you narratively explain how the RSI-TC work. will i get a sound when it crosses a certain level say 40 if i set it like that. i see on the rsi line there are two colours red and green. what do they mean

 
banzai:
Just change the bull and bear levels to 50

Hi.

Please advise how to copy this to the MT4.

Thanks

 

Hi.. nice.....

 

thanksss its very helpfull

 

Was looking for this, thanks!

 

Thanks dude..

 

Just Found What I'm Looking For... Thanks

 

RSI crossover works pretty well for me. I like the to find pairs when they cross above the over sold area.

 

Hi just found this indicator, i have altered the code to my settings (I am a complete novice)

I wont be able to test it until the market opens on sunday, can someone tell me if this looks correct???

I want RSI set at 5

When RSI crosses above 22 i want a BUY alert

When RSI crosses above 50 i want a BUY alert

When RSI crosses below 62 i want a SELL alert

When RSI crosses below 50 i want a SELL alert

Any help would be appreciated!

*/

#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 62

#property indicator_level2 50

#property indicator_level3 22

int BBPrd=20;

double BBDev=2.0;

int SBPrd=13;

int SBATRPrd=21;

double SBFactor=2;

int SBShift=1;

extern int RSIPeriod=5;

extern int BullLevel=22;

extern int BearLevel=62;

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+SBShift);

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 (TopBBandBotSBand) Squeeze[shift]=50;

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

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

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

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

{

Buy[shift]=ob;

Sell[shift]=EMPTY_VALUE;

}

else

//if(Squeeze[shift+2]==50 && RSI[shift]TopSBand)

if((Squeeze[shift+2]==50 || Squeeze[shift+1]==50) && RSI[shift]TopSBand)

{

Buy[shift]=EMPTY_VALUE;

Sell[shift]=os;

}

else

if(Buy[shift+1]==ob && BotBBand50)

{

Buy[shift]=ob;

Sell[shift]=EMPTY_VALUE;

}

else

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

{

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[0];

BuyPrevious = Buy[1];

SellNow = Sell[0];

SellPrevious = Sell[1];

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);

}