Indicators with alerts/signal - page 986

 
mladen:
As far as I see those arrows are not based on bollinger bands but on some kind of zigzag (or something similar)

oh thx for explain mladen..Please can u post a indicator arrows based on bolling bands ?

Many Thanks

 
alvinkon:
Hi All,

Happy New Year to all.

For the attached indicator, is it possible to add 1) Push Notification alert option?

2) Add option to select how many bars to show

Thank you very much.

Hi Alvinkon, added our standard alerts to the indicator, wasn't able to add the showBars option, from what I can tell the indicator would have to be completely done to do this.

 
mrtools:
Spainguy74, that version is decompiled, but think this one I have(if memory serves me right) is the same.

oh i see.. what is about arrows? i like to see that...

dont you mind?

thank

 
Spainguy74:
oh i see.. what is about arrows? i like to see that...

dont you mind?

thank

Added an arrow option and or candle option.

 
mrtools:
Hi Alvinkon, added our standard alerts to the indicator, wasn't able to add the showBars option, from what I can tell the indicator would have to be completely done to do this.

Dear mtrools,

I received the error below when i attached the indicator to my mt4 and it caused my computer very lag. Can it be solve? Thank you.

Candlestick - CandlestickPatternsRecognition_ alerts EURJPY,M30: indicator is too slow, 3089 ms. rewrite the indicator, please

 
alvinkon:
Dear mtrools,

I received the error below when i attached the indicator to my mt4 and it caused my computer very lag. Can it be solve? Thank you.

Candlestick - CandlestickPatternsRecognition_ alerts EURJPY,M30: indicator is too slow, 3089 ms. rewrite the indicator, please

Alvinkon, try this version.

 

Good afternoon!

Add, please function alertsOnCurrent

Thanks!

rsi_color_rsi_v1.01_maxim_nmc.mq4

 

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

}
 
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

 
evgenbest:
Good afternoon!

Add, please function alertsOnCurrent

Thanks!

rsi_color_rsi_v1.01_maxim_nmc.mq4

Evgenbest, added alertsOnCurrent.

Reason: