//+-----------------------------------------------------------------+
//|                                        check_pips_each_hour.mq4 |
//|                                                              lb |
//|                                                              lb |
//+-----------------------------------------------------------------+
#property copyright "lb"
#property link      "lb"

#property indicator_chart_window

int    temp_seconds;
double pips[20],pips2[20],cur_point[20];
string cur_ay[20];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
 int i;

 ArrayInitialize(pips,-10);
 ArrayInitialize(pips2,-10);
 
 cur_ay[0] ="EURUSD";
 cur_ay[1] ="AUDUSD";
 cur_ay[2] ="GBPUSD";
 cur_ay[3] ="EURJPY";
 cur_ay[4] ="USDCHF";
 cur_ay[5] ="USDJPY";
 cur_ay[6] ="USDCAD";
 cur_ay[7] ="EURAUD";
 cur_ay[8] ="EURCHF";
 cur_ay[9] ="EURGBP";
 cur_ay[10]="NZDUSD";
 cur_ay[11]="EURCAD";
 cur_ay[12]="GBPJPY";
 cur_ay[13]="GBPAUD";
 cur_ay[14]="GBPCHF";
 cur_ay[15]="NZDJPY";
 cur_ay[16]="EURNZD";
 cur_ay[17]="GBPCAD";
 cur_ay[18]="AUDJPY";
 cur_ay[19]="CHFJPY";
 
 for(i = 0;i <= 19;i++)
 {
  cur_point[i] = MarketInfo(cur_ay[i],MODE_POINT) * 10;
 }
//----
 return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
//----
 
//----
 return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
//----
 int i;
 
 if(iTime(NULL,60,0) > temp_seconds && Hour() > 0)
 {
  temp_seconds = iTime(NULL,60,0);
  for(i = 0;i <= 19;i++)
  {
   pips[i]= (iHigh(cur_ay[i],1440,0)-iLow(cur_ay[i],1440,0))/cur_point[i];
  }
  ArrayCopy(pips2,pips);
  ArraySort(pips2,WHOLE_ARRAY,0,MODE_ASCEND);
  
/*  for temp test
  for(i = 0;i <= 19;i++)
  {
   Alert(i+" "+cur_ay[i]+" "+pips[i]+" "+pips2[i]);
  }
*/
  
  //for actual use
  for(i = 0;i <= 19;i++)
  {
  if (ArrayBsearch(pips2,pips[i])>=17) Print(20-ArrayBsearch(pips2,pips[i])," ",cur_ay[i]," ",pips[i]);
  
  }
 }
//----
 return(0);
}
//+-----------------------------------------------------------------+