Elite indicators - metatrader 5 version :) - page 50

 
mladen:

Try them out now (smoothing algorithms is the same - these two are changed)


Спасибо

Mladen, Вы Гуру 

 

This is an upgraded step stochastic


Changes :

  • completely rewritten the whole thing (it has nothing in common with the old versions (code wise)
  • option to use the basic averages for price filtering added
  • option to use smoothed or "raw" average range
  • option to use the latest set (22 types) of price
  • made it multi time frame
  • made it alert

Two points probably need an explanation :

Price filtering (and average range smoothing) : both are introduced in order to make filter out some false signals. As usual, probably the best is to show an example comparison , so here it is : upper is without price filtered (averaged), lower is using a very mild 5 period ema for price filtering - the difference is even like this obvious :


It needs to be experimented with, but, as far as I have noticed it in visual tests, it tends to be OK and is what we could call : an improvement, to the previous version.

The code is highly optimized now (to the extent that step stochastic is a function now - that can use anything as an input for calculation) and is cross platform portable (it will work the same way on mt4 as on mt5 - only two lines need to be changed) which means that it will be done for metatrader 4 too ASAP :)


One possibility that is less known about this type of step stochastic : see the example when slow parameter is set to less than 1 (be advised that it is a highly experimental territory and that for slow parameter set to, in general, values less than 0.5 results can be illogical) - that opens a whole new ground for experimenting with these types of settings


PS: the "less than 0.5" setting for slow parameter is worked on and is going to be altered to do some automatic adjustments for those settings, so, in the mean time : happy "experimenting" :)

Files:
 
mladen:

This is an upgraded step stochastic


Changes :

  • completely rewritten the whole thing (it has nothing in common with the old versions (code wise)
  • option to use the basic averages for price filtering added
  • option to use smoothed or "raw" average range
  • option to use the latest set (22 types) of price
  • made it multi time frame
  • made it alert

Two points probably need an explanation :

Price filtering (and average range smoothing) : both are introduced in order to make filter out some false signals. As usual, probably the best is to show an example comparison , so here it is : upper is without price filtered (averaged), lower is using a very mild 5 period ema for price filtering - the difference is even like this obvious :

ATTENTION: Video should be reuploaded
It needs to be experimented with, but, as far as I have noticed it in visual tests, it tends to be OK and is what we could call : an improvement, to the previous version.

The code is highly optimized now (to the extent that step stochastic is a function now - that can use anything as an input for calculation) and is cross platform portable (it will work the same way on mt4 as on mt5 - only two lines need to be changed) which means that it will be done for metatrader 4 too ASAP :)


One possibility that is less known about this type of step stochastic : see the example when slow parameter is set to less than 1 (be advised that it is a highly experimental territory and that for slow parameter set to, in general, values less than 0.5 results can be illogical) - that opens a whole new ground for experimenting with these types of settings

ATTENTION: Video should be reuploaded
PS: the "less than 0.5" setting for slow parameter is worked on and is going to be altered to do some automatic adjustments for those settings, so, in the mean time : happy "experimenting" :)

Pity that we can not get that look on mt4

We shall have to migrate to mt5 :)

 
nbtrading:

Pity that we can not get that look on mt4

We shall have to migrate to mt5 :)

 According to past news few months before,it was expected that mostly brokers along with users will be force to migrate to mt5 at the end of this year (2016) but seems still thing are working silently with out any bad news.i am more concern with a lot of coding work from coder side and we user hardly collected A class tool in years so it looks a cruel action if every thing turn garbage.
 
mntiwana:
 According to past news few months before,it was expected that mostly brokers along with users will be force to migrate to mt5 at the end of this year (2016) but seems still thing are working silently with out any bad news.i am more concern with a lot of coding work from coder side and we user hardly collected A class tool in years so it looks a cruel action if every thing turn garbage.
mt4 will come to an end at the end of this year?
 
Anyway:
mt4 will come to an end at the end of this year?
if Trump wins
 
mntiwana:
 According to past news few months before,it was expected that mostly brokers along with users will be force to migrate to mt5 at the end of this year (2016) but seems still thing are working silently with out any bad news.i am more concern with a lot of coding work from coder side and we user hardly collected A class tool in years so it looks a cruel action if every thing turn garbage.
forum is migrating (the mt4 forum is migrating to mql5 forum)
 

New version of averages


It has the new calculating code (the code was rewritten), it has alerts now and it is multi time frame version. All the 37 types of averages are included as well as the 22 types of prices. Double smoothing and adapting is included as usual. Filtering (3 types of filters) too


Files:
averages 8.5.zip  155 kb
 
mladen:

New version of averages


It has the new calculating code (the code was rewritten), it has alerts now and it is multi time frame version. All the 37 types of averages are included as well as the 22 types of prices. Double smoothing and adapting is included as usual. Filtering (3 types of filters) too


mladen,

 

could you share MT5 class sources for the 37 type of averages and 22 type of prices? 

 

because I want to extract some "averages" and "prices"... 

 
baraozemo:

mladen,

 

could you share MT5 class sources for the 37 type of averages and 22 type of prices? 

 

because I want to extract some "averages" and "prices"... 

Code for prices :

enum enPrices
{
   pr_close,      // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,        // Low
   pr_median,     // Median
   pr_typical,    // Typical
   pr_weighted,   // Weighted
   pr_average,    // Average (high+low+open+close)/4
   pr_medianb,    // Average median body (open+close)/2
   pr_tbiased,    // Trend biased price
   pr_tbiased2,   // Trend biased (extreme) price
   pr_haclose,    // Heiken ashi close
   pr_haopen ,    // Heiken ashi open
   pr_hahigh,     // Heiken ashi high
   pr_halow,      // Heiken ashi low
   pr_hamedian,   // Heiken ashi median
   pr_hatypical,  // Heiken ashi typical
   pr_haweighted, // Heiken ashi weighted
   pr_haaverage,  // Heiken ashi average
   pr_hamedianb,  // Heiken ashi median body
   pr_hatbiased,  // Heiken ashi trend biased price
   pr_hatbiased2  // Heiken ashi trend biased (extreme) price
};

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//
//

#define priceInstances 1
double workHa[][priceInstances*4];
double getPrice(int tprice, const double& open[], const double& close[], const double& high[], const double& low[], int i,int _bars, int instanceNo=0)
{
  if (tprice>=pr_haclose)
   {
      if (ArrayRange(workHa,0)!= _bars) ArrayResize(workHa,_bars); instanceNo*=4;
        
         //
         //
         //
         //
         //
        
         double haOpen;
         if (i>0)
                haOpen  = (workHa[i-1][instanceNo+2] + workHa[i-1][instanceNo+3])/2.0;
         else   haOpen  = (open[i]+close[i])/2;
         double haClose = (open[i] + high[i] + low[i] + close[i]) / 4.0;
         double haHigh  = MathMax(high[i], MathMax(haOpen,haClose));
         double haLow   = MathMin(low[i] , MathMin(haOpen,haClose));

         if(haOpen  <haClose) { workHa[i][instanceNo+0] = haLow;  workHa[i][instanceNo+1] = haHigh; }
         else                 { workHa[i][instanceNo+0] = haHigh; workHa[i][instanceNo+1] = haLow;  }
                                workHa[i][instanceNo+2] = haOpen;
                                workHa[i][instanceNo+3] = haClose;
         //
         //
         //
         //
         //
        
         switch (tprice)
         {
            case pr_haclose:     return(haClose);
            case pr_haopen:      return(haOpen);
            case pr_hahigh:      return(haHigh);
            case pr_halow:       return(haLow);
            case pr_hamedian:    return((haHigh+haLow)/2.0);
            case pr_hamedianb:   return((haOpen+haClose)/2.0);
            case pr_hatypical:   return((haHigh+haLow+haClose)/3.0);
            case pr_haweighted:  return((haHigh+haLow+haClose+haClose)/4.0);
            case pr_haaverage:   return((haHigh+haLow+haClose+haOpen)/4.0);
            case pr_hatbiased:
               if (haClose>haOpen)
                     return((haHigh+haClose)/2.0);
               else  return((haLow+haClose)/2.0);        
            case pr_hatbiased2:
               if (haClose>haOpen)  return(haHigh);
               if (haClose<haOpen)  return(haLow);
                                    return(haClose);        
         }
   }
  
   //
   //
   //
   //
   //
  
   switch (tprice)
   {
      case pr_close:     return(close[i]);
      case pr_open:      return(open[i]);
      case pr_high:      return(high[i]);
      case pr_low:       return(low[i]);
      case pr_median:    return((high[i]+low[i])/2.0);
      case pr_medianb:   return((open[i]+close[i])/2.0);
      case pr_typical:   return((high[i]+low[i]+close[i])/3.0);
      case pr_weighted:  return((high[i]+low[i]+close[i]+close[i])/4.0);
      case pr_average:   return((high[i]+low[i]+close[i]+open[i])/4.0);
      case pr_tbiased:  
               if (close[i]>open[i])
                     return((high[i]+close[i])/2.0);
               else  return((low[i]+close[i])/2.0);        
      case pr_tbiased2:  
               if (close[i]>open[i]) return(high[i]);
               if (close[i]<open[i]) return(low[i]);
                                     return(close[i]);        
   }
   return(0);
}
As of averages : sorry
Reason: