Navigation:Home > Content >

Complex_balance____Ext.mq4

Time: 2016-06-14 | Download file:Complex_balance____Ext.mq4

//+------------------------------------------------------------------+
//|                                                       EURUSD.mq4 |
//|                                              SemSemFX@rambler.ru |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "SemSemFX@rambler.ru"
#property link      ""
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern int       PerFast=0;
extern int       PerSlow=0;
extern int       NBars=200;
extern int       TF=0;
extern int Price=6;
extern int Mode=3;
double Buf[],a,b;
int per1,per2;

//---- buffers
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorShortName("Complex_balanceExt("+per2+"/"+per1+")");
   SetIndexStyle(0,DRAW_SECTION);
   SetIndexBuffer(0,Buf);
//---- parameters
// for monthly
int mn_per = 12;
int mn_fast = 3;
// for weekly
int w_per = 9;
int w_fast = 3;
// for daily
int d_per = 5;
int d_fast = 3;
// for H4
int h4_per = 12;
int h4_fast = 2;
// for H1
int h1_per = 24;
int h1_fast = 8;
// for M30
int m30_per = 16;
int m30_fast = 2;
// for M15
int m15_per = 16;
int m15_fast = 4;
// for M5
int m5_per = 12;
int m5_fast = 3;
// for M1
int m1_per = 30;
int m1_fast = 10;
if (TF==0) int TFr=Period(); else TFr=TF;
      if ((PerFast==0)||(PerSlow==0))
      {switch(TFr)
        {
         case 1:     per1 = m1_per; per2 = m1_fast; break;
         case 5:     per1 = m5_per; per2 = m5_fast; break;
         case 15:    per1 = m15_per;per2 = m15_fast; break;
         case 30:    per1 = m30_per;per2 = m30_fast; break;
         case 60:    per1 = h1_per; per2 = h1_fast; break;
         case 240:   per1 = h4_per; per2 = h4_fast; break;
         case 1440:  per1 = d_per;  per2 = d_fast; break;
         case 10080: per1 = w_per;  per2 = w_fast; break;
         case 43200: per1 = mn_per; per2 = mn_fast; break;
        }
      } else {per2=PerFast; per1=PerSlow;}  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
     int limit;
     int counted_bars=IndicatorCounted();
  //---- проверка на возможные ошибки
     if(counted_bars<0) return(-1);
  //---- последний посчитанный бар будет пересчитан
     if(counted_bars>0) counted_bars-=10;
     limit=NBars;
  //---- основной цикл
     for(int i=0; i0) || (a>0 && b<0))
        Buf[i]=(iOpen(0,TF,i)+iHigh(0,TF,i)+iLow(0,TF,i)+iClose(0,TF,i))/4+MathAbs(MathAbs(a)-MathAbs(b))/2*Point;
        }
        else Buf[i]=(iOpen(0,TF,i)+iHigh(0,TF,i)+iLow(0,TF,i)+iClose(0,TF,i))/4;
        
       }
   
//----
   return(0);
  }



//+------------------------------------------------------------------+

Recommend