//--------------------------------------------------------------------
// userindicator.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
//#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_separate_window
#property indicator_buffers 2       // Количество буферов
#property indicator_color1 Green     
#property indicator_color2 Orange     
#property indicator_color3 Red     

extern int cand_min=850;

extern bool size_2=true;
extern bool size_3=true;

extern string symb_0="AUDCAD";
extern string symb_1="AUDJPY";
extern string symb_2="AUDUSD";
extern string symb_3="EURGBP";
extern string symb_4="EURJPY";
extern string symb_5="GBPUSD";
extern string symb_6="CHFJPY";
extern string symb_7="NZDCHF";
extern string symb_8="EURAUD";
extern string symb_9="AUDCHF";
extern string symb_10="CADCHF";
extern string symb_11="EURUSD";
extern string symb_12="EURCAD";
extern string symb_13="GBPCHF";

double S1[], S2[], S3[];
string symb[14];

double bigest_1=0, bigest_2=0, bigest_3;

double real=0;
int number_1=0, number_2=0, number_3;


//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   
   SetIndexBuffer(0,S1);         // Назначение массива буферу
   SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,5);// Стиль линии
   
   SetIndexBuffer(1,S2);         // Назначение массива буферу
   SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,5);// Стиль линии
   
   SetIndexBuffer(2,S3);         // Назначение массива буферу
   SetIndexStyle(2,DRAW_HISTOGRAM,EMPTY,5);// Стиль линии
   
   symb[0]=symb_0;
   symb[1]=symb_1;
   symb[2]=symb_2;
   symb[3]=symb_3;
   symb[4]=symb_4;
   symb[5]=symb_5;
   symb[6]=symb_6;
   symb[7]=symb_7;
   symb[8]=symb_8;
   symb[9]=symb_9;
   symb[10]=symb_10;
   symb[11]=symb_11;
   symb[12]=symb_12;
   symb[13]=symb_13;
   
   
   return;                          // Выход из спец. ф-ии init()
   
  }
//--------------------------------------------------------------------
int start()                         
  {
   int i;

   
   int a, Counted_bars;                // Количество просчитанных баров

   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      
      for(a=0; a<=13; a++)
      {
         real=MathAbs((iOpen(symb[a],0,i)-iClose(symb[a],0,i)))/MarketInfo(symb[a],MODE_POINT);
            if(real>bigest_1)
               {
               number_3=number_2;
               bigest_3=bigest_2;
               
               number_2=number_1;
               bigest_2=bigest_1;

               bigest_1=real;
               number_1=a;
               }
      
      }

      if(Symbol()==symb[number_1]&&bigest_1>cand_min)
      S1[i]=10; else S1[i]=0;
      
      if(size_2==true)
      {
      if(Symbol()==symb[number_2]&&bigest_2>cand_min)
      S2[i]=10; else S2[i]=0;
      }
      
      if(size_3==true)
      {
      if(Symbol()==symb[number_3]&&bigest_3>cand_min)
      S3[i]=10; else S3[i]=0;
      }
      
      bigest_1=0;
      number_1=0;
      
      i--; 
      
     }
   return;                          
  }

