//+------------------------------------------------------------------+
//|                               FloorTraderTriggers&StopLosses.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Panavacci. : charlesadejumo@yahoo.com"

#property indicator_chart_window
#property indicator_buffers 1

extern int xspace = 0;
extern int yspace = 10;
extern int adxPeriod = 14;

string comD1="D1", comH4="H4", comH1="H1", comM30="M30", comM15="M15", comM5="M5", comM1="M1", com = "aaa", comW1="W1", comMn1="Mn1";
double timeFrame[];
string txtD1, txtH4, txtH1, txtM30, txtM15, txtM5, txtM1, txtMn1, txtW1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

int init()
{
//---- indicators

   ObjectCreate( com, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( com, OBJPROP_XDISTANCE, yspace );
   ObjectSet( com, OBJPROP_YDISTANCE, xspace + 10 );
   ObjectSet( com, OBJPROP_CORNER, 1 );
   ObjectSetText( com, "XXXXXXXXXX" );

   ObjectCreate( comMn1, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( comMn1, OBJPROP_XDISTANCE, yspace );
   ObjectSet( comMn1, OBJPROP_YDISTANCE, xspace + 30 );
   ObjectSet( comMn1, OBJPROP_CORNER, 1 );
   ObjectSetText( comMn1, "XXXXXXXXXX" );
   
   ObjectCreate( comW1, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( comW1, OBJPROP_XDISTANCE, yspace );
   ObjectSet( comW1, OBJPROP_YDISTANCE, xspace + 40 );
   ObjectSet( comW1, OBJPROP_CORNER, 1 );
   ObjectSetText( comW1, "XXXXXXXXXX" );   
   
   ObjectCreate( comD1, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( comD1, OBJPROP_XDISTANCE, yspace );
   ObjectSet( comD1, OBJPROP_YDISTANCE, xspace + 50 );
   ObjectSet( comD1, OBJPROP_CORNER, 1 );
   ObjectSetText( comD1, "XXXXXXXXXX" );

   ObjectCreate( comH4, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( comH4, OBJPROP_XDISTANCE, yspace );
   ObjectSet( comH4, OBJPROP_YDISTANCE, xspace + 60 );
   ObjectSet( comH4, OBJPROP_CORNER, 1 );
   ObjectSetText( comH4, "XXXXXXXXXX" );
   
   ObjectCreate( comH1, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( comH1, OBJPROP_XDISTANCE, yspace );
   ObjectSet( comH1, OBJPROP_YDISTANCE, xspace + 70 );
   ObjectSet( comH1, OBJPROP_CORNER, 1 );
   ObjectSetText( comH1, "XXXXXXXXXX" );   
   
   ObjectCreate( comM30, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( comM30, OBJPROP_XDISTANCE, yspace );
   ObjectSet( comM30, OBJPROP_YDISTANCE, xspace + 80 );
   ObjectSet( comM30, OBJPROP_CORNER, 1 );
   ObjectSetText( comM30, "XXXXXXXXXX" );
   
   ObjectCreate( comM15, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( comM15, OBJPROP_XDISTANCE, yspace );
   ObjectSet( comM15, OBJPROP_YDISTANCE, xspace + 90 );
   ObjectSet( comM15, OBJPROP_CORNER, 1 );
   ObjectSetText( comM15, "XXXXXXXXXX" );
   
   ObjectCreate( comM5, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( comM5, OBJPROP_XDISTANCE, yspace );
   ObjectSet( comM5, OBJPROP_YDISTANCE, xspace + 100 );
   ObjectSet( comM5, OBJPROP_CORNER, 1 );
   ObjectSetText( comM5, "XXXXXXXXXX" );
   
   ObjectCreate( comM1, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( comM1, OBJPROP_XDISTANCE, yspace );
   ObjectSet( comM1, OBJPROP_YDISTANCE, xspace + 110 );
   ObjectSet( comM1, OBJPROP_CORNER, 1 );
   ObjectSetText( comM1, "XXXXXXXXXX" );
   
   SetIndexBuffer(0, timeFrame);

//   IndicatorShortName("tops and bottoms");
   return(0);
  }


//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
  
int deinit()
{
   ObjectDelete( com );
   ObjectDelete( comMn1 );
   ObjectDelete( comW1 );
   ObjectDelete( comD1 );
   ObjectDelete( comH4 );
   ObjectDelete( comH1 );
   ObjectDelete( comM30 );
   ObjectDelete( comM15 );
   ObjectDelete( comM5 );
   ObjectDelete( comM1 );
   return(0);
}


void setText()
{
   string txt = "Highest Timeframe with adx > 30 is : ";
   if( timeFrame[0] == 9 )
      txt = txt + "Monthly";
   if( timeFrame[0] == 8 )
      txt = txt + "Weekly";
   if( timeFrame[0] == 7 )
      txt = txt + "Daily";
   else if( timeFrame[0] == 6 )
      txt = txt + "4 Hourly";
   else if( timeFrame[0] == 5 )
      txt = txt + "1 Hourly";
   else if( timeFrame[0] == 4 )
      txt = txt + "30 Minutes";
   else if( timeFrame[0] == 3 )
      txt = txt + "15 Minutes";
   else if( timeFrame[0] == 2 )
      txt = txt + "5 Minutes";
   else if( timeFrame[0] == 1 )
      txt = txt + "1 Minutes";
   else if( timeFrame[0] == 0 )
      txt = txt + "NONE NONE";


   txtMn1 = "Mn1 = " + rePackage( iADX(NULL, PERIOD_MN1, adxPeriod, PRICE_CLOSE, MODE_MAIN, 0) );
   txtW1 = "W1 = " + rePackage( iADX(NULL, PERIOD_W1, adxPeriod, PRICE_CLOSE, MODE_MAIN, 0) );
   txtD1 = "D1 = " + rePackage( iADX(NULL, PERIOD_D1, adxPeriod, PRICE_CLOSE, MODE_MAIN, 0) );
   txtH4 = "H4 = " + rePackage( iADX(NULL, PERIOD_H4, adxPeriod, PRICE_CLOSE, MODE_MAIN, 0) );
   txtH1 = "H1 = " + rePackage( iADX(NULL, PERIOD_H1, adxPeriod, PRICE_CLOSE, MODE_MAIN, 0) );
   txtM30 = "M30 = " + rePackage( iADX(NULL, PERIOD_M30, adxPeriod, PRICE_CLOSE, MODE_MAIN, 0) );
   txtM15 = "M15 = " + rePackage( iADX(NULL, PERIOD_M15, adxPeriod, PRICE_CLOSE, MODE_MAIN, 0) );
   txtM5 = "M5 = " + rePackage( iADX(NULL, PERIOD_M5, adxPeriod, PRICE_CLOSE, MODE_MAIN, 0) );
   txtM1 = "M1 = " + rePackage( iADX(NULL, PERIOD_M1, adxPeriod, PRICE_CLOSE, MODE_MAIN, 0) );

   ObjectSetText( comMn1, txtMn1, 8, "Times New Roman", Yellow );
   ObjectSetText( comW1, txtW1, 8, "Times New Roman", Yellow );
   ObjectSetText( comD1, txtD1, 8, "Times New Roman", Yellow );
   ObjectSetText( comH4, txtH4, 8, "Times New Roman", Yellow );
   ObjectSetText( comH1, txtH1, 8, "Times New Roman", Yellow );
   ObjectSetText( comM30, txtM30, 8, "Times New Roman", Yellow );
   ObjectSetText( comM15, txtM15, 8, "Times New Roman", Yellow );
   ObjectSetText( comM5, txtM5, 8, "Times New Roman", Yellow );
   ObjectSetText( comM1, txtM1, 8, "Times New Roman", Yellow );

   
   ObjectSetText( com, txt, 10, "Times New Roman", Red );
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
    int limit;
    int counted_bars = IndicatorCounted();
//---- check for possible errors
    if(counted_bars < 0) 
        return(-1);
//---- last counted bar will be recounted
    if(counted_bars > 0) 
        counted_bars--;
    limit = Bars - counted_bars;
//----
    for(int i = 0; i < limit; i++)
   {

      if( iADX(NULL, PERIOD_MN1, adxPeriod, PRICE_CLOSE, MODE_MAIN, i) >= 30 )
         timeFrame[ i ] = 9;
      else if( iADX(NULL, PERIOD_W1, adxPeriod, PRICE_CLOSE, MODE_MAIN, i) >= 30 )
         timeFrame[ i ] = 8;
      else if( iADX(NULL, PERIOD_D1, adxPeriod, PRICE_CLOSE, MODE_MAIN, i) >= 30 )
         timeFrame[ i ] = 7;
      else if( iADX(NULL, PERIOD_H4, adxPeriod, PRICE_CLOSE, MODE_MAIN, i) >= 30 )
         timeFrame[ i ] = 6;
      else if( iADX(NULL, PERIOD_H1, adxPeriod, PRICE_CLOSE, MODE_MAIN, i) >= 30 )
         timeFrame[ i ] = 5;
      else if( iADX(NULL, PERIOD_M30, adxPeriod, PRICE_CLOSE, MODE_MAIN, i) >= 30 )
         timeFrame[ i ] = 4;
      else if( iADX(NULL, PERIOD_M15, adxPeriod, PRICE_CLOSE, MODE_MAIN, i) >= 30 )
         timeFrame[ i ] = 3;
      else if( iADX(NULL, PERIOD_M5, adxPeriod, PRICE_CLOSE, MODE_MAIN, i) >= 30 )
         timeFrame[ i ] = 2;
      else if( iADX(NULL, PERIOD_M1, adxPeriod, PRICE_CLOSE, MODE_MAIN, i) >= 30 )
         timeFrame[ i ] = 1;         

   }

   setText();
   return(0);
}

string rePackage( double rp )
{
   string rps = rp;
   rps = StringSubstr( rps, 0, 6 );
   return( rps );
}

//+------------------------------------------------------------------+