//+------------------------------------------------------------------+
//|                                                    MACD info.mq4 |
//+------------------------------------------------------------------+
#property copyright "by CJA for FF forum."
#property indicator_chart_window

extern string separator1 = "*** MACD Settings ***";
extern int    fastEMA = 12;
extern int    slowEMA = 26;
extern int    signalSMA = 9;
extern string separator2 = "*** MACD TF Display Settings ***";
extern int    TimeFrame1           = 240; 
extern int    TimeFrame2           = 1440;  
extern color  BullishColor         = LimeGreen;
extern color  BearishColor         = Red; 
extern string Font                 = "Arial Bold"; 
extern int    Font_Size            = 10;
extern int    Corner               = 1; 
extern int    Window               = 0;
extern int    Shift_UP_DN          = 0;// Adjusts Signal Display Up & Down 
extern int    Adjust_Side_to_side  = 0;// Adjusts Signal Display from side to side
extern int    Gap_Between_Lines    = 13;// Larger the number smaller the gap

string TFrame1;
string TFrame2;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
     		switch(TimeFrame1)
	{
		case 1:		TFrame1="M1";  break;
		case 5:		TFrame1="M5";  break;
		case 15:		TFrame1="M15"; break;
		case 30:		TFrame1="M30"; break;
		case 60:		TFrame1="H1";  break;
		case 240:	TFrame1="H4";  break;
		case 1440:	TFrame1="D1";  break;
		case 10080:	TFrame1="W1";  break;
		case 43200:	TFrame1="MN1"; break;
		default:	  {TimeFrame1 = Period(); init(); return(0);}
	}
	
	     		switch(TimeFrame2)
	{
		case 1:		TFrame2="M1";  break;
		case 5:		TFrame2="M5";  break;
		case 15:		TFrame2="M15"; break;
		case 30:		TFrame2="M30"; break;
		case 60:		TFrame2="H1";  break;
		case 240:	TFrame2="H4";  break;
		case 1440:	TFrame2="D1";  break;
		case 10080:	TFrame2="W1";  break;
		case 43200:	TFrame2="MN1"; break;
		default:	  {TimeFrame2 = Period(); init(); return(0);}
	}

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  ObjectDelete("macd1"); ObjectDelete("macd2");  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  string macd; 
    color macdcol;
    double macdm = iMACD(NULL, TimeFrame1, fastEMA, slowEMA, signalSMA,PRICE_CLOSE, MODE_MAIN, 0); 
    double macds = iMACD(NULL, TimeFrame1, fastEMA, slowEMA, signalSMA,PRICE_CLOSE, MODE_SIGNAL, 0);
    
    if( macdm >  macds ){macd = TFrame1+" MACD : Bullish "; macdcol = BullishColor;}
    if( macdm <  macds ){macd = TFrame1+" MACD : Bearish"; macdcol = BearishColor;}
    
    CreateMACD( "macd1",10*Font_Size/Gap_Between_Lines,10 );
    ObjectSetText("macd1",macd, Font_Size,Font,macdcol);

    
    string macd2; 
    color macdcol2;
    double macdm2 = iMACD(NULL, TimeFrame2, fastEMA, slowEMA, signalSMA,PRICE_CLOSE, MODE_MAIN, 0); 
    double macds2 = iMACD(NULL, TimeFrame2, fastEMA, slowEMA, signalSMA,PRICE_CLOSE, MODE_SIGNAL, 0);
    
    if( macdm2 >  macds2 ){macd2 = TFrame2+" MACD : Bullish "; macdcol2 = BullishColor;}
    if( macdm2 <  macds2 ){macd2 = TFrame2+" MACD : Bearish"; macdcol2 = BearishColor;}
    
    CreateMACD( "macd2",30*Font_Size/Gap_Between_Lines,10 );
    ObjectSetText("macd2",macd2, Font_Size,Font,macdcol2);
      
   return(0);
  }
  
    
int CreateMACD( string n, int UPDN, int SIDE ) {
   ObjectCreate( n, OBJ_LABEL,Window, 0, 0 );
   ObjectSet( n, OBJPROP_CORNER,Corner );
   ObjectSet( n, OBJPROP_XDISTANCE,SIDE+Adjust_Side_to_side );
   ObjectSet( n, OBJPROP_YDISTANCE,UPDN+Shift_UP_DN);
   ObjectSet( n, OBJPROP_BACK, false );
   }


//+------------------------------------------------------------------+