Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай последние события MQL5.community!
Леонид
5841
Леонид 2009.04.03 01:25 

На мой взгляд, достаточно интересный индикатор. Даёт не плохие результаты. Может кто сделает в MQL и выложит в Code Base для всех? В Code Base я смотрел - там не тот выложен.

Вот его формула -

Path1 = Sqrt( (Close – Close[Period])^2 + Period^2 )
Path2 = Sum(from i=0 to Period-1)Sqrt( (Close[i] – Close[i-1])^2 + 1 )
FractalEfficiencyTmp = Sign(Close – Close[Period]) * Path1 / Path2 * 100.0
FractalEfficiency = ExpMovAvg(FractalEfficiencyTmp, Smoothing Period),
where:
Close[Period] (or Close[i]) is Close Period (or i) bars back,
Sign(a) is +1 if a>0 and –1 if a<0,
Sqrt(a) is square root of a,
Sum is a summation operation,
ExpMovAvg is Exponential Moving Average over Smoothing Period bars.

Path1 is simply the hypotenuse of the big triangle formed by the current Close and Period bars ago Close. Path2 is the sum of hypotenuses of small triangles formed by each Close point.

Вот как он выглядит -

Константин Полтавский
65
Константин Полтавский 2009.04.03 01:52  
а что в нем хорошего? чет не разглядел?
Леонид
5841
Леонид 2009.04.03 01:56  
kostas писал(а) >>
а что в нем хорошего? чет не разглядел?

Надо не разглядывать - надо пробовать оптимизировать. Я выложил со стандартными зачениями, не оптимизированными.

Константин Полтавский
65
Константин Полтавский 2009.04.03 01:59  
прежде чем возиться с переложением кода, хотелось бы все-таки разглядеть - чем интересен этот индикатор?
Леонид
5841
Леонид 2009.04.03 02:07  
kostas писал(а) >>
прежде чем возиться с переложением кода
Да вроде он не сложный.... ))))
Константин Полтавский
65
Константин Полтавский 2009.04.03 02:10  
LeoV >>:

Да вроде он не сложный.... ))))

Извини, если непроизвольно обнадежил. Я кодить не буду. Может кто и заинтересуется.

Iurii Tokman
24851
Iurii Tokman 2009.04.03 02:20  

Попробуем закодить.

Только поспать надо.

Андрей
39
Андрей 2009.04.03 03:33  
Вот здесь нашел.
Файлы:
Iurii Tokman
24851
Iurii Tokman 2009.04.03 13:53  
//+------------------------------------------------------------------+
//|                                 Polarized_Fractal_Efficiency.mq4 |
//|                                                     Yuriy Tokman |
//|                                            yuriytokman@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Yuriy Tokman"
#property link      "yuriytokman@gmail.com"

#property indicator_separate_window

#property indicator_buffers 5
#property indicator_color1 Lime
#property indicator_color3 Indigo
#property indicator_color4 Teal
#property indicator_color5 Teal

#property indicator_level1 100
#property indicator_level2 80
#property indicator_level3 60
#property indicator_level4 40
#property indicator_level5 -40
#property indicator_level6 -60
#property indicator_level7 -80
#property indicator_level8 -100

extern string __настройки_нидикатора__ = "Здесь изменяем";
extern int Perriod = 9;
extern int period_MA = 5;//0-3

double FractalEfficiency[];
double Line_Zero[];
double Line_H20[];
double Line_L20[];
double FractalEfficiencyTmp[];
 

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,EMPTY,3);
   SetIndexBuffer(0,FractalEfficiency);
      
   SetIndexStyle(1,DRAW_NONE);
   SetIndexBuffer(1,FractalEfficiencyTmp);
   
   SetIndexStyle(2,DRAW_LINE,1,1);
   SetIndexBuffer(2,Line_Zero);
   
   SetIndexStyle(3,DRAW_LINE,2,1);
   SetIndexBuffer(3,Line_H20);   
            
   SetIndexStyle(4,DRAW_LINE,2,1);
   SetIndexBuffer(4,Line_L20);   

   IndicatorShortName("Polarized_Fractal_Efficiency ("+Perriod+")");
   
   SetIndexLabel(0," ISQ#481971287  ");
   SetIndexLabel(1," yuriytokman@gmail.com  ");      
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom 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--;
   limit=Bars-counted_bars;

   for(int i=limit; i>=0; i--)
   {
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
     //Path1 = Sqrt( (Close – Close[Period])^2 + Period^2 )
     //Path2 = Sum(from i=0 to Period-1)Sqrt( (Close[i] – Close[i-1])^2 + 1 )
     //FractalEfficiencyTmp = Sign(Close – Close[Period]) * Path1 / Path2 * 100.0
     //FractalEfficiency = ExpMovAvg(FractalEfficiencyTmp, Smoothing Period),
     //where:
     //Close[Period] (or Close[i]) is Close Period (or i) bars back,
     //Sign(a) is +1 if a>0 and –1 if a<0,
     //Sqrt(a) is square root of a,
     //Sum is a summation operation,
     //ExpMovAvg is Exponential Moving Average over Smoothing Period bars.
     //Path1 is simply the hypotenuse of the big triangle formed by the current 
     //Close and Period bars ago Close. Path2 is the sum of hypotenuses of small 
     //triangles formed by each Close point.
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  
    double Path1, Path2 = 0, a;
    Path1 = MathSqrt(MathPow(Close[i] - Close[i+Perriod],2)+MathPow(Perriod,2)); 
    for (int k=1; k<=Perriod; k++)
    Path2 += MathSqrt(MathPow(Close[i+k-1]-Close[i+k],2)+1);
     
    a = Close[i] - Close[i+Perriod];
    if (a>0) FractalEfficiencyTmp[i] = +1*Path1 / Path2 * 100.0;
    else     FractalEfficiencyTmp[i] = -1*Path1 / Path2 * 100.0;   
    }
    
    for(i=limit; i>=0; i--)
    {
     FractalEfficiency[i] = iMAOnArray(FractalEfficiencyTmp,0,period_MA,0,2,i);
     Line_Zero[i]= 0;
     Line_H20[i] = 20;
     Line_L20[i] =-20;
    }
//----
   return(0);
  }
//+------------------------------------------------------------------+
keekkenen
1128
keekkenen 2009.04.03 18:30  
чем он лучше стохастика ?
Constantin
62
Constantin 2009.10.14 21:42  
:DD
/ /1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий