Копаясь в хаосе старых файлов, нашел артефактный вордовский документ, подписанный «фрама» и увидел там код, написанный для программы Amibroker». Это был индикатор, о котором так неслабо недавно шумели на страницах comоn. Это был код средней, адаптированный по размерности Хаусдорфа. Размерность я оттуда достал и получилась следующая картинка. Как видно, размерность сейчас показывает число 1,5. То есть индекс находится в состоянии случайного блуждания. Код размерности будет следующим. Price = (H+L)/2; N = Param( "N", 16, 2, 40, 2 ); // must be even 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 ); // bound to 0.01...1 range Frama = AMA( Price, alpha ); Plot(Dimen, "RAZM("+N+")", colorRed, styleThick ); Код непосредственно самой средней, которая адаптирована по фрактальной размерности в файле и вместе с ней еще экспоненциалка такой Price = (H+L)/2; N = Param( "N", 16, 2, 40, 2 ); // must be even 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 ); // bound to 0.01...1 range Frama = AMA( Price, alpha ); Plot( Frama, "FRAMA("+N+")", colorRed, styleThick ); Plot( EMA( C, N ) , "EMA("+N+")", colorBlue ); Plot( C, "Close", colorBlack, styleCandle ); А выглядит оное примерно так.