//+--------------------------------------------------------------------------------------------------+ //| b_Kaufman_Efficiency_Ratio.mq5 | //| Copyright © 2011, barmenteros | //| http://www.mql4.com/users/barmenteros | //| https://login.mql5.com/en/users/barmenteros | //+--------------------------------------------------------------------------------------------------+ #property copyright "Copyright © 2011, barmenteros" #property link "barmenteros.fx@gmail.com" #property version "1.00" #property description "Kaufman Efficiency Ratio (also called \"generalized fractal" #property description "efficiency\") according to Perry Kaufman books \"Smarter Trading\"" #property description "and \"Trading Systems & Methods\"." //--- indicator settings #property indicator_separate_window #property indicator_buffers 1 #property indicator_plots 1 #property indicator_minimum 0.0 #property indicator_maximum 1.0 #property indicator_color1 clrRed #property indicator_label1 "Kaufman Efficiency Ratio" //+--------------------------------------------------------------------------------------------------+ //| Enumerations | //+--------------------------------------------------------------------------------------------------+ enum his_switch { On, Off }; //--- input parameters input uchar ERperiod=10; // Efficiency ratio period input his_switch histogram=Off; // Histogram switch input char shift=0; // Horizontal shift (in bars) //--- indicator buffers double ERBfr[]; //+--------------------------------------------------------------------------------------------------+ //| NetPriceMovement | //+--------------------------------------------------------------------------------------------------+ double NetPriceMovement(int initialbar, int period, const double &price[]) { double n; n=MathAbs(price[initialbar]-price[initialbar-period]); return(n); } //+--------------------------------------------------------------------------------------------------+ //| Volatility | //+--------------------------------------------------------------------------------------------------+ double Volatility(int initialbar, int period, const double &price[]) { int j; double v=0.0; for(j=0; j