Смотри, как бесплатно скачать роботов
Find us on Telegram!
Join our fan page
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Библиотека функций быстрого преобразования Фурье FFT - библиотека для MetaTrader 4

Просмотров:
18068
Рейтинг:
(7)
Опубликован:
2006.10.02 09:10
Обновлен:
2016.11.22 07:33
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Библиотека функций быстрого преобразования Фурье FFT облегчает написание программ, где используется преобразования Фурье.

Оригинал тут http://alglib.sources.ru/fft/.

В библиотеке семь функций быстрого преобразования Фурье.

- БПФ комплексной функции (прямое и обратное)
void fastfouriertransform(double& a[], int nn, bool inversefft);

Алгоритм проводит быстрое преобразование Фурье комплексной функции, заданной nn отсчетами на действительной оси.

В зависимости от  переданных параметров, может выполняться как прямое, так и обратное преобразование.

Входные параметры:
    nn  -   Число значений функции. Должно  быть  степенью   двойки!!! Алгоритм   не  проверяет  правильность  переданного значения.
    a   -   array [0 .. 2*nn-1] of Real   Значения функции. I-ому значению соответствуют 
                                                      элементы   a[2*I]     (вещественная     часть)   и a[2*I+1] (мнимая часть).
    InverseFFT
        -   направление преобразования.  True, если обратное, False, если прямое.
           
Выходные параметры:
    a   -   результат   преобразования.   Подробнее  см.  описание на сайте.  http://alglib.sources.ru/fft/


- БПФ вещественной функции (прямое и обратное)
void realfastfouriertransform(double& a[], int tnn, bool inversefft); 

Алгоритм проводит быстрое преобразование Фурье вещественной функции, заданной n отсчетами на действительной оси.

В зависимости от  переданных параметров, может выполняться как прямое, так и обратное преобразование.

Входные параметры:
    tnn  -   Число значений функции. Должно  быть  степенью двойки !!!  Алгоритм   не  проверяет  правильность   переданного значения.
    a   -   array [0 .. nn-1] of Real  Значения функции.
    InverseFFT   -   направление преобразования.   True, если обратное, False, если прямое.
           
Выходные параметры:
    a   -   результат   преобразования.   Подробнее    см.   описание на сайте. http://alglib.sources.ru/fft/

- БПФ двух вещественных функций (только прямое)
 void tworealffts(double a1[], double a2[], double& a[], double& b[], int tn);

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

Алгоритм  позволяет  сэкономить  время, но проводит только прямое преобразование.

Входные параметры:
    tn  -   Число значений функций. Должно  быть  степенью двойки. Алгоритм   не  проверяет  правильность  переданного значения.
    a1  -   array [0 .. nn-1] of Real    Значения первой функции.
    a2  -   array [0 .. nn-1] of Real    Значения второй функции.

Выходные параметры:
    a   -   Преобразование Фурье первой функции
    b   -   Преобразование Фурье второй функции
            (подробнее см. на сайте) http://alglib.sources.ru/fft/

- Быстрое дискретное синусное преобразование
 void fastsinetransform(double& a[], int tnn, bool inversefst);

Алгоритм проводит быстрое синусное преобразование вещественной функции, заданной tnn отсчетами на действительной оси.

В зависимости от  переданных параметров, может выполняться как прямое, так и обратное преобразование.

Входные параметры:
    nn  -   Число значений функции. Должно  быть  степенью  двойки. Алгоритм   не  проверяет  правильность   переданного значения.
    a   -   array [0 .. nn-1] of Real  Значения функции.
    InverseFST
        -   направление преобразования.  True, если обратное, False, если прямое.
           
Выходные параметры:
    a   -   результат   преобразования.   Подробнее    см.   описание на сайте. http://alglib.sources.ru/fft/

- Быстрое дискретное косинусное преобразование
 void fastcosinetransform(double& a[],int tnn, bool inversefct);

Алгоритм проводит быстрое косинусное преобразование вещественной функции, заданной nn отсчетами на действительной оси.

В зависимости от  переданных параметров, может выполняться как прямое, так и обратное преобразование.

Входные параметры:
    tnn  -  Число значений функции минус один. Должно быть  степенью   двойки (например 1024).  
                                                                        Алгоритм   не   проверяет правильность переданного значения.
    a   -   array [0 .. nn] of Real  Значения функции. (например 1025)
      Особеннность подготовки массива для передачи в функцию :  
      int    element_count2=ArrayResize(array,tnn1+1); //Для косинуса !!!

    InverseFCT   -   направление преобразования.   True, если обратное, False, если прямое.
           
Выходные параметры:
    a   -   результат   преобразования.   Подробнее    см.    описание на сайте. http://alglib.sources.ru/fft/

- Быстрая свертка с использованием БПФ
void fastcosinetransform(double& a[],int tnn, bool inversefct);

Свертка Одна из сворачиваемых функций трактуется, как сигнал, с которым проводим свертку. Вторая считается откликом.

На входе:
    Signal      -   сигнал, с которым проводим свертку. Массив   вещественных  чисел,  нумерация  элементов   от 0 до SignalLen-1.
    SignalLen   -   длина сигнала.
    Response    -   функция отклика. Состоит из  двух  частей,  соответствующих положительным и отрицательным  значениям аргумента.

                    Элементам    массива  с   номерами от 0 до  NegativeLen соответствуют значения отклика в точках от -NegativeLen до 0 соответственно.

                    Элементам      массива   с   номерами   от  NegativeLen+1  до  NegativeLen+PositiveLen  соответствуют  значения  отклика в  точках
                    от 1 до PositiveLen соответственно.
                   
    NegativeLen -   "Отрицательная длина" отклика.
    PositiveLen -    "Положительная длина" отклика.
                          За   пределами [-NegativeLen, PositiveLen]   отклик равен нолю.

На выходе:
    Signal      -   значения свертки функции в точках от 0  до   SignalLen-1.

- Быстрая коррелляция с использованием БПФ
void fastcorellation(double& signal[], int signallen,  double& pattern[],  int patternlen);

На входе:
    Signal       -  массив сигнал, с которым проводим корреляцию. Нумерация элементов от 0 до SignalLen-1
    SignalLen  -  длина сигнала.
   
    Pattern     -   массив образец, корреляцию сигнала с которым мы ищем  Нумерация элементов от 0 до PatternLen-1
    PatternLen  -   длина образца

На выходе:
    Signal      -   значения корреляции в точках от 0 до  SignalLen-1.

    Более подробно см описание на сайте. http://alglib.sources.ru/fft/

Файл нужно положить в c:\Program Files\MetaTrader 4\experts\libraries\ и скомпилировать.

Библиотека включается в программу так:

#import "#_lib_FFT.ex4"
void fastfouriertransform(double& a[], int nn, bool inversefft);
void realfastfouriertransform(double& a[], int tnn,
                              bool inversefft);
void fastcorellation(double& signal[], int signallen,
                     double& pattern[],  int patternlen);
void fastconvolution(double& signal[], int signallen,
         double& response[], int negativelen, int positivelen);
void fastsinetransform(double& a[], int tnn, bool inversefst);
void fastcosinetransform(double& a[],int tnn, bool inversefct);
void tworealffts(double a1[], double a2[], double& a[],
                 double& b[], int tn);
 #import

Функции могут использоваться в программах для анализа временных рядов - динамики изменения курсов валют, акций, поведения индикаторов и т.д.

Show history Show history

Переносит сделки из истории терминала на график в соответствии с имиджем, принятым в последней версии терминала. Все оптом. Прежние позиции удаляются с графика.

JK BullP AutoTrader JK BullP AutoTrader

Советник JK_BullP_AutoTrader построен на индикаторе Bulls Power.

Коэффициент корреляции Коэффициент корреляции

Рассчитывает коэффициент корреляции первых N баров со всей остальной историей.

MAMy v.3 (модифицированный MAMy) MAMy v.3 (модифицированный MAMy)

Простой индикатор построеный при помощи трёх скользящих средних.