Не используйте библиотеку FFT - страница 3

 
Prival >>:

Класс я вам поражаюсь

вообще то приличные люди найдя ошибку в ощедоступном коде показывают её.

да там есть не ошибка, а не точность,

число пи задано не максимальной точностью, из-за этого может в некоторых процедурах накапливаться сумарная ошибка, я предложил для всех число пи задавать вот так

https://www.mql5.com/ru/code/8309 кстати там предложили алгоритм намного эфективнее.

Недумаю что Вы сделали проверку этого алгоритма глубже и точнее.

З.Ы. укажите где ошибка, или просто признайте что Вы неправы

Да уж ... :) Ошибка в двацатом знаке после запятой числа пи принципиально не позволит сделать ТА прибыльным. :)
 
Ладно, отвечу. Смещенный спектр вычисляется неправильно.
 

Debugger, предлагаю сделать так.

1. Вы указываете, о какой библиотеке идет речь, дав ссылку в кодобазе.

2. Показываете, в каком месте кода ошибка.

3. Предлагаете свой вариант - в коде.

Иначе обсуждение будет неконструктивным. Ведь Вы же его и начали.

 

Библиотека работает корректно.

Некорректен сам индикатор (FFT and Future). 

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

ошибка здесь: ошибочно вычисляется смещенный спектр

//------------------------------------------------

double period=0;
for( i=1; i<N/2; i++)//производим фазовый сдвиг
{
period=(N+0.0)/(i+0.0);
amp=MathSqrt(aa[i*2]*aa[i*2]+aa[i*2+1]*aa[i*2+1]);
double sdvig;
double pravo;
if(aa[i*2]>0){pravo=1;}else{pravo=0;}
if((pravo==0)){sdvig=pi;}else{sdvig=0;}
  faz=MathArctan(aa[i*2+1]/aa[i*2])+futur*2*pi/period; 
aa[i*2]=amp*MathCos(faz+sdvig);
aa[i*2+1]=amp*MathSin(faz+sdvig);

}
//-------------------------------------------------

Это первое.

Ну а второе... Кому нужно пусть берут толстые учебники по преобразованиям и читают.