Jump to content

Recommended Posts

Posted (edited)

Hello friends this is checkmail and was searching for an indicator, draws an ma line which changes color based on cross between two ema/sma (open/close).And have found one indicator but its having an bug in it, or something is missing in it.

 

Can anyone fix this error, the line breaks on charts.

 

Here is the code :

 

 

#property copyright ""

#property link ""

 

 

#property indicator_chart_window

 

#property indicator_buffers 3

#property indicator_color1 Green

#property indicator_color2 Red

#property indicator_color3 Yellow

 

extern int PeriodAv=12;

extern int PeriodAv1=24;

extern int Flat=1;

extern color ColorUp=Green;

extern color ColorDown=Red;

extern color ColorFlat=Yellow;

extern int Width=2;

 

 

double Line1[], Line2[], Line3[];

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,Width,ColorUp);//DRAW_LINE

SetIndexBuffer(0,Line1);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,Width,ColorDown);

SetIndexBuffer(1,Line2);

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,Width,ColorFlat);//DRAW_LINE

SetIndexBuffer(2,Line3);

//----

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

 

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

//----

int i, Counted_bars=IndicatorCounted();

 

i=Bars-Counted_bars-1;

 

while(i>=0)

{

double MA_0=iMA(NULL,0,PeriodAv,0,MODE_EMA,PRICE_CLOSE,i),

MA_2=iMA(NULL,0,PeriodAv1,0,MODE_EMA,PRICE_CLOSE,i+1);

 

if(MA_0>MA_2) Line1=MA_0;

else

if(MA_0<MA_2) Line2=MA_0;

else if(MA_0==MA_2)

Line3=MA_0;

i--;

}

//----

return(0);

}

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

Edited by checkmail

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...