FRAMA

Опубликовано в AmiBroker

FRAMA - Fractal Adaptive Moving Average для Amibroker.

Вдогонку к статье Все скользящие средние в одном флаконе. Фрактальную адаптивную скользящую не удалось включить   в тот список - ей требуется для построения более одного массива. Поэтому приходится ее держать отдельно. Автор метода John Ehlers. Приятная особенность реализации - отсутствие каких-либо циклов и, следовательно, отличное быстродействие.

SECTION_BEGIN("FRAMA");

Price = (H+L)/2;
N = Param( "N", 16, 2, 40, 2 );                           // Должен быть чётным
N3 = ( HHV( High, N ) - LLV( Low, N ) ) / N;

HH = HHV( High, N / 2 ) ;
LL = LLV( Low, N / 2 );

N1 = ( HH - LL ) / ( N / 2 );

HH = HHV( Ref( High, - N/2 ), N/2 );
LL = LLV( Ref( Low, - N/2 ), N/ 2 );

N2 = ( HH - LL ) / ( N / 2 );

Dimen = IIf( N1 > 0 AND N2 > 0 AND N3 > 0, ( log( N1+N2) - log( N3 ) )/log( 2 ), Null );

alpha = exp( -4.6 * (Dimen -1 ) );
alpha = Min( Max( alpha, 0.01 ), 1 );       // диапазон 0.01...1

Frama = AMA( Price, alpha );

Plot( Frama, "FRAMA("+N+")", colorRed, styleThick );
Plot( EMA( C, N ) , "EMA("+N+")", colorBlue );
Plot( C, "Close", colorBlack, styleCandle );

//-----------------------------------------------------------------------
//**Odd period inputs can be allowed with the inclusion of fol code :-

//if( (N % 2) != 0 ) //or if ( (N & 1) != 0 )N ++
_SECTION_END();

 

Собственно, математическая формула скользящей FRAMA:

FRAMA

См. также 

Комментарии   

# Kaper 16.07.2017 21:41
Михайл, Амиброкер ругаеться на формулу FRAMA. Пишет Syntax error, identifier 'section_begin' is undefined.
# admin 16.07.2017 22:29
Эхххх.

Подчеркивание куда-то делось при копировании текста индикатора на страничку сайта.

Должно быть

_section_begin
# Kaper 16.07.2017 22:35
Ок. Заработало..!

Недостаточно прав для комментирования