Скачать MetaTrader 5

Смотри, как бесплатно скачать роботов

Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят

Понравился скрипт?
Оцени его работу в терминале MetaTrader 5

2006.10.02 09:10
Библиотеки

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

Просмотров:
12048
Рейтинг:
голосов: 5

Библиотека функций быстрого преобразования Фурье 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)

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