Indicators with alerts/signal - page 987

Evgeniy Popov
196
Evgeniy Popov  

Good afternoon!

Add, please function alertsOnCurrent

Thanks!

rsi_color_rsi_v1.01_maxim_nmc.mq4

Albert Idrisov
734
Albert Idrisov  

Can I bring a histogram in a separate window? That is a separate indicator that will show the histogram? And you can still learn what it is based? As drawn, this histogram? Intersection level 50?

Gyazo - 652452641df0ed364d090028a0346977.png

/* This indicator was created by Kalenzo

email: bartlomiej.gorski@gmail.com

web: http://www.fxservice.eu

The base for this indicator was orginal RSI attached with Metatrader.

*/

#property copyright "Copyright © 2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property indicator_separate_window

#property indicator_minimum -10

#property indicator_maximum 100

#property indicator_buffers 6

#property indicator_color1 Blue

#property indicator_color2 Red

#property indicator_color3 Green

#property indicator_color4 Magenta

#property indicator_color5 DodgerBlue

#property indicator_color6 BlueViolet

//---- input parameters

extern int RSIOMA = 14;

extern int RSIOMA_MODE = MODE_EMA;

extern int RSIOMA_PRICE = PRICE_CLOSE;

extern int Ma_RSIOMA = 21,

Ma_RSIOMA_MODE = MODE_EMA;

extern int BuyTrigger = 80;

extern int SellTrigger = 20;

extern color BuyTriggerColor = DodgerBlue;

extern color SellTriggerColor = Magenta;

extern int MainTrendLong = 50;

extern int MainTrendShort = 50;

extern color MainTrendLongColor = Red;

extern color MainTrendShortColor = Green;

//---- buffers

double RSIBuffer[];

double PosBuffer[];

double NegBuffer[];

double bdn[],bup[];

double sdn[],sup[];

double marsioma[];

string short_name;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

short_name = StringConcatenate("RSIOMA(",RSIOMA,")");

IndicatorBuffers(8);

SetIndexBuffer(0,RSIBuffer);

SetIndexBuffer(2,bup);

SetIndexBuffer(1,bdn);

SetIndexBuffer(3,sdn);

SetIndexBuffer(4,sup);

SetIndexBuffer(5,marsioma);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3);

SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,3);

SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,3);

SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,3);

SetIndexStyle(4,DRAW_HISTOGRAM,STYLE_SOLID,3);

SetIndexStyle(5,DRAW_LINE,STYLE_SOLID,1);

SetIndexBuffer(6,PosBuffer);

SetIndexBuffer(7,NegBuffer);

IndicatorShortName(short_name);

SetIndexDrawBegin(0,RSIOMA);

SetIndexDrawBegin(1,RSIOMA);

SetIndexDrawBegin(2,RSIOMA);

SetIndexDrawBegin(3,RSIOMA);

SetIndexDrawBegin(4,RSIOMA);

SetIndexDrawBegin(5,RSIOMA);

SetIndexDrawBegin(6,RSIOMA);

SetIndexDrawBegin(7,RSIOMA);

//----

drawLine(BuyTrigger,"BuyTrigger", BuyTriggerColor);

drawLine(SellTrigger,"SellTrigger", SellTriggerColor );

drawLine(MainTrendLong,"MainTrendLong", MainTrendLongColor );

drawLine(MainTrendShort,"MainTrendShort",MainTrendShortColor );

return(0);

}

//+------------------------------------------------------------------+

//| Relative Strength Index |

//+------------------------------------------------------------------+

int start()

{

int i,counted_bars=IndicatorCounted();

double rel,negative,positive;

//----

if(Bars<=RSIOMA) return(0);

//---- initial zero

if(counted_bars<1)

for(i=1;i<=RSIOMA;i++) RSIBuffer=0.0;

//----

i=Bars-RSIOMA-1;

int ma = i;

if(counted_bars>=RSIOMA) i=Bars-counted_bars-1;

while(i>=0)

{

double sumn=0.0,sump=0.0;

if(i==Bars-RSIOMA-1)

{

int k=Bars-2;

//---- initial accumulation

while(k>=i)

{

double cma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,k);

double pma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,k+1);

rel=cma-pma;

if(rel>0) sump+=rel;

else sumn-=rel;

k--;

}

positive=sump/RSIOMA;

negative=sumn/RSIOMA;

}

else

{

//---- smoothed moving average

double ccma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,i);

double ppma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,i+1);

rel=ccma-ppma;

if(rel>0) sump=rel;

else sumn=-rel;

positive=(PosBuffer*(RSIOMA-1)+sump)/RSIOMA;

negative=(NegBuffer*(RSIOMA-1)+sumn)/RSIOMA;

}

PosBuffer=positive;

NegBuffer=negative;

if(negative==0.0) RSIBuffer=0.0;

else

{

RSIBuffer=100.0-100.0/(1+positive/negative);

bdn = 0;

bup = 0;

sdn = 0;

sup = 0;

if(RSIBuffer>MainTrendLong)

bup = -10;

if(RSIBuffer<MainTrendShort)

bdn = -10;

if(RSIBufferRSIBuffer)

sup = -10;

if(RSIBuffer>80 && RSIBuffer<RSIBuffer)

sdn = -10;

}

i--;

}

while(ma>=0)

{

marsioma[ma] = iMAOnArray(RSIBuffer,0,Ma_RSIOMA,0,Ma_RSIOMA_MODE,ma);

ma--;

}

//----

return(0);

}

//+------------------------------------------------------------------+

void drawLine(double lvl,string name, color Col )

{

ObjectDelete(name);

ObjectCreate(name, OBJ_HLINE, WindowFind(short_name), Time[0], lvl,Time[0],lvl);

ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

ObjectSet(name, OBJPROP_COLOR, Col);

ObjectSet(name,OBJPROP_WIDTH,1);

}
Mladen Rakic
154493
Mladen Rakic  
Alibydubby:
Can I bring a histogram in a separate window? That is a separate indicator that will show the histogram? And you can still learn what it is based? As drawn, this histogram? Intersection level 50?

Gyazo - 652452641df0ed364d090028a0346977.png

/* This indicator was created by Kalenzo

email: bartlomiej.gorski@gmail.com

web: http://www.fxservice.eu

The base for this indicator was orginal RSI attached with Metatrader.

*/

#property copyright "Copyright © 2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property indicator_separate_window

#property indicator_minimum -10

#property indicator_maximum 100

#property indicator_buffers 6

#property indicator_color1 Blue

#property indicator_color2 Red

#property indicator_color3 Green

#property indicator_color4 Magenta

#property indicator_color5 DodgerBlue

#property indicator_color6 BlueViolet

//---- input parameters

extern int RSIOMA = 14;

extern int RSIOMA_MODE = MODE_EMA;

extern int RSIOMA_PRICE = PRICE_CLOSE;

extern int Ma_RSIOMA = 21,

Ma_RSIOMA_MODE = MODE_EMA;

extern int BuyTrigger = 80;

extern int SellTrigger = 20;

extern color BuyTriggerColor = DodgerBlue;

extern color SellTriggerColor = Magenta;

extern int MainTrendLong = 50;

extern int MainTrendShort = 50;

extern color MainTrendLongColor = Red;

extern color MainTrendShortColor = Green;

//---- buffers

double RSIBuffer[];

double PosBuffer[];

double NegBuffer[];

double bdn[],bup[];

double sdn[],sup[];

double marsioma[];

string short_name;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

short_name = StringConcatenate("RSIOMA(",RSIOMA,")");

IndicatorBuffers(8);

SetIndexBuffer(0,RSIBuffer);

SetIndexBuffer(2,bup);

SetIndexBuffer(1,bdn);

SetIndexBuffer(3,sdn);

SetIndexBuffer(4,sup);

SetIndexBuffer(5,marsioma);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3);

SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,3);

SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,3);

SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,3);

SetIndexStyle(4,DRAW_HISTOGRAM,STYLE_SOLID,3);

SetIndexStyle(5,DRAW_LINE,STYLE_SOLID,1);

SetIndexBuffer(6,PosBuffer);

SetIndexBuffer(7,NegBuffer);

IndicatorShortName(short_name);

SetIndexDrawBegin(0,RSIOMA);

SetIndexDrawBegin(1,RSIOMA);

SetIndexDrawBegin(2,RSIOMA);

SetIndexDrawBegin(3,RSIOMA);

SetIndexDrawBegin(4,RSIOMA);

SetIndexDrawBegin(5,RSIOMA);

SetIndexDrawBegin(6,RSIOMA);

SetIndexDrawBegin(7,RSIOMA);

//----

drawLine(BuyTrigger,"BuyTrigger", BuyTriggerColor);

drawLine(SellTrigger,"SellTrigger", SellTriggerColor );

drawLine(MainTrendLong,"MainTrendLong", MainTrendLongColor );

drawLine(MainTrendShort,"MainTrendShort",MainTrendShortColor );

return(0);

}

//+------------------------------------------------------------------+

//| Relative Strength Index |

//+------------------------------------------------------------------+

int start()

{

int i,counted_bars=IndicatorCounted();

double rel,negative,positive;

//----

if(Bars<=RSIOMA) return(0);

//---- initial zero

if(counted_bars<1)

for(i=1;i<=RSIOMA;i++) RSIBuffer=0.0;

//----

i=Bars-RSIOMA-1;

int ma = i;

if(counted_bars>=RSIOMA) i=Bars-counted_bars-1;

while(i>=0)

{

double sumn=0.0,sump=0.0;

if(i==Bars-RSIOMA-1)

{

int k=Bars-2;

//---- initial accumulation

while(k>=i)

{

double cma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,k);

double pma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,k+1);

rel=cma-pma;

if(rel>0) sump+=rel;

else sumn-=rel;

k--;

}

positive=sump/RSIOMA;

negative=sumn/RSIOMA;

}

else

{

//---- smoothed moving average

double ccma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,i);

double ppma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,i+1);

rel=ccma-ppma;

if(rel>0) sump=rel;

else sumn=-rel;

positive=(PosBuffer*(RSIOMA-1)+sump)/RSIOMA;

negative=(NegBuffer*(RSIOMA-1)+sumn)/RSIOMA;

}

PosBuffer=positive;

NegBuffer=negative;

if(negative==0.0) RSIBuffer=0.0;

else

{

RSIBuffer=100.0-100.0/(1+positive/negative);

bdn = 0;

bup = 0;

sdn = 0;

sup = 0;

if(RSIBuffer>MainTrendLong)

bup = -10;

if(RSIBuffer<MainTrendShort)

bdn = -10;

if(RSIBufferRSIBuffer)

sup = -10;

if(RSIBuffer>80 && RSIBuffer<RSIBuffer)

sdn = -10;

}

i--;

}

while(ma>=0)

{

marsioma[ma] = iMAOnArray(RSIBuffer,0,Ma_RSIOMA,0,Ma_RSIOMA_MODE,ma);

ma--;

}

//----

return(0);

}

//+------------------------------------------------------------------+

void drawLine(double lvl,string name, color Col )

{

ObjectDelete(name);

ObjectCreate(name, OBJ_HLINE, WindowFind(short_name), Time[0], lvl,Time[0],lvl);

ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

ObjectSet(name, OBJPROP_COLOR, Col);

ObjectSet(name,OBJPROP_WIDTH,1);

}

Change the order of buffers and keep only 4 drawing buffers - then it will be OK

William Snyder
9492
William Snyder  
evgenbest:
Good afternoon!

Add, please function alertsOnCurrent

Thanks!

rsi_color_rsi_v1.01_maxim_nmc.mq4

Evgenbest, added alertsOnCurrent.

Evgeniy Popov
196
Evgeniy Popov  
mrtools:
Evgenbest, added alertsOnCurrent.

Big thanks mrtools!

Albert Idrisov
734
Albert Idrisov  
mladen:
Change the order of buffers and keep only 4 drawing buffers - then it will be OK

i not understend))

Albert Idrisov
734
Albert Idrisov  
mladen:
Change the order of buffers and keep only 4 drawing buffers - then it will be OK

Themselves can do? I'm codes do not understand at all) my low bow to you)

omid
45
omid  
mrtools:
Added an arrow option and or candle option.

thank you so much mr.tools....

omid
45
omid  

hi mr. tools.

one more thing add.. i forgot to ask you ... i have old software name is beforexgrun.mp4 but i tried to install on my mt4 but there is not working for alert email and popup too.. can you refix it pls i give you this

thank

spainguy

Files:
topi
111
topi  

mrtools/mladen where can i get William's % r with alerts ?