Variation Index Indicator For MT5

Variation Index Indicator For MT5

The Variation Index Indicator For MT5 detects whether an underlying market is in a trending phase or a sideways consolidation phase. It interposes the variation index, which is closely related to common fractal dimension, to determine the state of a market. The resultant indicator gets plotted as a Red line that fluctuates above and below the 0.5 mark. Basic rules of analyzing the Variation Index Indicator For MT5 are as follows: 1. If the indicator value is less than 0.5, it suggests the presence of a price trend. 2. Extremely low readings tend to precede the end of a trend. 3. If the indicator value is greater than 0.5, it signifies a flat market. 4. Extremely high indicator readings often precede the beginning of a new price trend. 5. If the indicator value is close to 0.5, it signals that the market under consideration is in an undefined state.

FREE Variation Index Indicator

Download the FREE Variation Index Indicator for MT5.

To receive my email 100% sure: 
Put my email on your whitelist!

 

Partially Automated Trading Besides Your Day Job

Alerts In Real-Time When Divergences Occur

My Recommended MT4/MT5 Broker

 

Installing the Variation Index Indicator For MT5

After you downloaded the indicator via the form above you need to unzip the zip-file. Then you need to copy the file iVAR.mq5 into the folder MQL5\Indicators of your MT5 installation. After that please restart MT5 and then you will be able to see the indicator in the list of indicators.

Parameters of the Variation Index Indicator For MT5

The Variation Index Indicator For MT5 has 1 parameters to configure.

input int N=5; // ?5@8>4 8=48:0B>@0

Buffers of the Variation Index Indicator For MT5

The Variation Index Indicator For MT5 provides 1 buffers.

SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA);

Main Parts Of The Code

int OnCalculate(
                const int rates_total,    // : gt ;8G5AB2 gt  8AB gt @88 2 10@0E =0 B5:CI5 lt  B8:5
                const int prev_calculated,// : gt ;8G5AB2 gt  8AB gt @88 2 10@0E =0 ?@54K4CI5 lt  B8:5
                const datetime &time[],
                const double &open[],
                const double& high[],     // F5= gt 2 gt 9  lt 0AA82  lt 0:A8 lt C lt  gt 2 F5=K 4;O @0AGQB0 8=48:0B gt @0
                const double& low[],      // F5= gt 2 gt 9  lt 0AA82  lt 8=8 lt C lt  gt 2 F5=K  4;O @0AGQB0 8=48:0B gt @0
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]
                )
  {
//---- ?@ gt 25@:0 : gt ;8G5AB20 10@ gt 2 =0 4 gt AB0B gt G= gt ABL 4;O @0AGQB0
   if(rates_total lt StartBars) return(0);

//----  gt 1JO2;5=8O ; gt :0;L=KE ?5@5 lt 5==KE 
   int limit,ihigh,ilow,nInterval;
   double Delta,Xc,Yc,Sx,Sy,Sxx,Sxy;

//---- @0AGQB AB0@B gt 2 gt 3 gt  = gt  lt 5@0 first 4;O F8:;0 ?5@5AGQB0 10@ gt 2
   if(prev_calculated gt rates_total || prev_calculated lt =0) // ?@ gt 25@:0 =0 ?5@2K9 AB0@B @0AGQB0 8=48:0B gt @0
      limit=rates_total-StartBars-1; // AB0@B gt 2K9 = gt  lt 5@ 4;O @0AGQB0 2A5E 10@ gt 2
   else limit=rates_total-prev_calculated; // AB0@B gt 2K9 = gt  lt 5@ 4;O @0AGQB0 = gt 2KE 10@ gt 2

//---- 8=45:A0F8O M;5 lt 5=B gt 2 2  lt 0AA820E :0: 2 B09 lt A5@8OE  
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);

//----  gt A= gt 2= gt 9 F8:; @0AGQB0 8=48:0B gt @0
   for(int bar=limit; bar gt =0; bar--)
     {
      Sx=Sy=Sxx=Sxy=NULL;

      for(int iii=0; iii lt =N; iii++)
        {
         Delta=NULL;
         nInterval=int(MathPow(2,N-iii));
         double res=MathPow(2,iii);
         //---- AC lt  lt 8@C5 lt  @07=8FK  lt 0:A8 lt 0;L= gt 9 8  lt 8=8 lt 0;L= gt 9 F5= =0 8=B5@20;5
         for(int kkk=0; kkk lt res; kkk++)
           {
            int barx=bar+nInterval*kkk;
            ihigh=ArrayMaximum(high,barx,nInterval);
            ilow=ArrayMinimum(low,barx,nInterval);
            Delta+=high[ihigh]-low[ilow];
           }
         //---- 2KG8A;O5 lt  : gt  gt @48=0BK 20@80F88 2 42 gt 9= gt  lt  ; gt 30@8D lt 8G5A: gt  lt   lt 0AHB015
         Xc = (N-iii)*MathLogX2;
         Yc = MathLog(Delta);

         //---- =0:0?;8205 lt  40==K5 4;O =0E gt 645=8O : gt MDD8F85=B gt 2 ;8=88 @53@5AA88 A ? gt  lt  gt ILN 

 

About Me

I'm Mike Semlitsch the owner of PerfectTrendSystem.com. My trading career started in 2007. Since 2013 I have helped thousands of traders to take their trading to the next level. Many of them are now constantly profitable traders. 

The following performance was achieved by me while trading live in front of hundreds of my clients:

Connect With Me:  

This FREE Indicator Can Transform
Your Trading!

FREE Indicator + Telegram Group


Request the Ultimate Double Top/Bottom Indicator which is used by 10,000+ traders.

Results From 5 Months!
This service starts soon! Be the first who get's notified when it begins!