а что в нем хорошего? чет не разглядел?
прежде чем возиться с переложением кода, хотелось бы все-таки разглядеть - чем интересен этот индикатор?
Попробуем закодить.
Только поспать надо.
//+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+
![](https://c.mql5.com/mql4/forum/2009/04/abiujf_small.gif)
Файлы:
чем он лучше стохастика ?
:DD
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
На мой взгляд, достаточно интересный индикатор. Даёт не плохие результаты. Может кто сделает в 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.
Вот как он выглядит -