//+----------------------------------------------------------------------+ //| 4_MA_Strength.mq4 | //| Copyright © 2006 , kurkafund on 11/05/2006 by David Honeywell | //| kurkafund@yahoo.com , transport.david@gmail.com | //+----------------------------------------------------------------------+ #property copyright "Copyright © 2006, Custom Built For kurkafund on 11/05/2006 by David Honeywell" #property link "kurkafund@yahoo.com , transport.david@gmail.com" //+--------------------------------------------------------------------------------------------------------------------+ //| Custom Built For kurkafund on 11/05/2006 by David Honeywell , transport.david@gmail.com | //+--------------------------------------------------------------------------------------------------------------------+ #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 MediumVioletRed #property indicator_level1 3.5000 #property indicator_level2 0.0000 #property indicator_level3 -3.5000 //---- input parameters extern int Ind_TimePeriod = 60; extern int Ma1_Period = 8; // Averaging period for calculation. extern int Ma1_Shift = 0; // MA shift. Indicators line offset relate to the chart by timeframe. extern int Ma1_Method = 1; // MA method. It can be any of the Moving Average method enumeration value. 0=sma, 1=ema, 2=smma, 3=lwma extern int Ma1_Price = 0; // Applied price. It can be any of Applied price enumeration values. 0=close, 1=open, 2=high, 3=low, 4=median, 5=typical, 6=weightedclose extern int Ma2_Period = 24; // Averaging period for calculation. extern int Ma2_Shift = 0; // MA shift. Indicators line offset relate to the chart by timeframe. extern int Ma2_Method = 1; // MA method. It can be any of the Moving Average method enumeration value. 0=sma, 1=ema, 2=smma, 3=lwma extern int Ma2_Price = 0; // Applied price. It can be any of Applied price enumeration values. 0=close, 1=open, 2=high, 3=low, 4=median, 5=typical, 6=weightedclose extern int Ma3_Period = 72; // Averaging period for calculation. extern int Ma3_Shift = 0; // MA shift. Indicators line offset relate to the chart by timeframe. extern int Ma3_Method = 1; // MA method. It can be any of the Moving Average method enumeration value. 0=sma, 1=ema, 2=smma, 3=lwma extern int Ma3_Price = 0; // Applied price. It can be any of Applied price enumeration values. 0=close, 1=open, 2=high, 3=low, 4=median, 5=typical, 6=weightedclose extern int Ma4_Period = 216; // Averaging period for calculation. extern int Ma4_Shift = 0; // MA shift. Indicators line offset relate to the chart by timeframe. extern int Ma4_Method = 1; // MA method. It can be any of the Moving Average method enumeration value. 0=sma, 1=ema, 2=smma, 3=lwma extern int Ma4_Price = 0; // Applied price. It can be any of Applied price enumeration values. 0=close, 1=open, 2=high, 3=low, 4=median, 5=typical, 6=weightedclose extern int ShowDays = 22; //---- buffers double TopStrength[]; double BottomStrength[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexEmptyValue(0,0.0); SetIndexLabel(0,"iCustom mode 0 TopStrength"); SetIndexBuffer(0,TopStrength); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexEmptyValue(1,0.0); SetIndexLabel(1,"iCustom mode 1 BottomStrength"); SetIndexBuffer(1,BottomStrength); IndicatorShortName("4_MA_Strength(Ind_TimePeriod ( "+Ind_TimePeriod+" ) MA ( "+Ma1_Period+" | "+Ma2_Period+" | "+Ma3_Period+" | "+Ma4_Period+" ) "); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- int i , ShowBars = ((1440/Period())*ShowDays); if (ShowBars >= Bars) ShowBars = Bars - 1; for ( i=ShowBars; i>=0; i--) { double MA1, MA2, MA3, MA4; double ustrength1 = 0, ustrength2 = 0, ustrength3 = 0, ustrength4 = 0, ustrength5 = 0, ustrength6 = 0; double dstrength1 = 0, dstrength2 = 0, dstrength3 = 0, dstrength4 = 0, dstrength5 = 0, dstrength6 = 0; double Ma1_0 = iMA(Symbol(), Ind_TimePeriod, Ma1_Period, Ma1_Shift, Ma1_Method, Ma1_Price, i)*1000; double Ma2_0 = iMA(Symbol(), Ind_TimePeriod, Ma2_Period, Ma2_Shift, Ma2_Method, Ma2_Price, i)*1000; double Ma3_0 = iMA(Symbol(), Ind_TimePeriod, Ma3_Period, Ma3_Shift, Ma3_Method, Ma3_Price, i)*1000; double Ma4_0 = iMA(Symbol(), Ind_TimePeriod, Ma4_Period, Ma4_Shift, Ma4_Method, Ma4_Price, i)*1000; if ( Ma1_0 > Ma2_0 ) ustrength1 = 0.25; if ( Ma1_0 > Ma2_0 ) dstrength1 = -0.25; if ( Ma1_0 > Ma2_0 && Ma1_0 > Ma3_0 ) ustrength2 = 0.50; if ( Ma1_0 < Ma2_0 && Ma1_0 < Ma3_0 ) dstrength2 = -0.50; if ( Ma1_0 > Ma2_0 && Ma1_0 > Ma3_0 && Ma1_0 > Ma4_0 ) ustrength3 = 0.75; if ( Ma1_0 < Ma2_0 && Ma1_0 < Ma3_0 && Ma1_0 < Ma4_0 ) dstrength3 = -0.75; if ( Ma1_0 > Ma2_0 && Ma1_0 > Ma3_0 && Ma1_0 > Ma4_0 && Ma2_0 > Ma3_0 ) ustrength4 = 1.00; if ( Ma1_0 < Ma2_0 && Ma1_0 < Ma3_0 && Ma1_0 < Ma4_0 && Ma2_0 < Ma3_0 ) dstrength4 = -1.00; if ( Ma1_0 > Ma2_0 && Ma1_0 > Ma3_0 && Ma1_0 > Ma4_0 && Ma2_0 > Ma3_0 && Ma2_0 > Ma4_0 ) ustrength5 = 1.25; if ( Ma1_0 < Ma2_0 && Ma1_0 < Ma3_0 && Ma1_0 < Ma4_0 && Ma2_0 < Ma3_0 && Ma2_0 < Ma4_0 ) dstrength5 = -1.25; if ( Ma1_0 > Ma2_0 && Ma1_0 > Ma3_0 && Ma1_0 > Ma4_0 && Ma2_0 > Ma3_0 && Ma2_0 > Ma4_0 && Ma3_0 > Ma4_0 ) ustrength6 = 1.50; if ( Ma1_0 < Ma2_0 && Ma1_0 < Ma3_0 && Ma1_0 < Ma4_0 && Ma2_0 < Ma3_0 && Ma2_0 < Ma4_0 && Ma3_0 > Ma4_0 ) dstrength6 = -1.50; TopStrength[i] = ustrength1 + ustrength2 + ustrength3 + ustrength4 + ustrength5 + ustrength6; BottomStrength[i] = dstrength1 + dstrength2 + dstrength3 + dstrength4 + dstrength5 + dstrength6; } //---- return(0); } //+------------------------------------------------------------------+