Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Visualizações:
1625
Avaliação:
(40)
Publicado:
2016.11.04 12:37
Atualizado:
2016.11.22 07:33
\MQL5\Include\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Biblioteca da função de transformada rápida de Fourier FFT.

Verdadeiro autor:

klot

Biblioteca da função de transformada rápida de Fourier FFT.

Esta biblioteca foi lançada na MQL4 e publicada no CodeBase, pela primeira vez, a 02.10.2006.

Na biblioteca foram lançadas sete funções baseadas na transformada rápida de Fourier FFT.

  1. FFT da função integral (direta e inversa)
  2. FFT de funções reais (direta e inversa)
  3. FFT de duas funções reais (apenas direta)
  4. Transformada discreta de seno rápida
  5. Transformada discreta de cosseno rápida
  6. Convolução rápida usando FFT
  7. Correlação rápida usando FFT.

1. FFT da função integral (direta e inversa)
void fastfouriertransform(double& a[], int nn, bool inversefft);

O algoritmo realiza uma transformação rápida de Fourier da função integral com nn dado pelas contas no eixo real. Dependendo dos parâmetros passados pode ser realizada tanto a transformação direta como a inversa.

Parâmetros de entrada:

  • nn - Número de valores da função. Deve ser uma potência de dois! O algoritmo não verifica a validade do valor entregue.
  • a - array [0 .. 2*nn-1] of Real. Valores da função. Ao primeiro valor correspondem os elementos a[2*I] (parte real) e a[2*I+1] (parte imaginária).
  • InverseFFT - direção da conversão. True, se for inversa, False, se for direta.

Parâmetros de saída:


2. FFT de funções reais (direta e inversa)
void realfastfouriertransform(double& a[], int tnn, bool inversefft);

O algoritmo realiza uma transformação rápida de Fourier da função real com n dado pelas contas no eixo real. Dependendo dos parâmetros passados pode ser realizada tanto a transformação direta como a inversa.

Parâmetros de entrada:

  • tnn - Número de valores da função. Deve ser uma potência de dois !!! O algoritmo não verifica a validade do valor entregue.
  • a - array [0 .. nn-1] of Real. Valores da função.
  • InverseFFT - direção da conversão. True, se for inversa, False, se for direta.

Parâmetros de saída:


3. FFT de duas funções reais (apenas direta)
void tworealffts(double a1[], double a2[], double& a[], double& b[], int tn);

O algoritmo realiza uma transformação rápida de Fourier de duas funções reais, a cada uma das quais é dada tn pelas contas no eixo real. O algoritmo permite poupar tempo, mas realiza apenas a conversão direta.

Parâmetros de entrada:

  • tn - Número de valores da função. Deve ser uma potência de dois. O algoritmo não verifica a validade do valor entregue.
  • a1 - array [0 .. nn-1] of Real. Valores da primeira função.
  • a2 - array [0 .. nn-1] of Real. Valores da segunda função.

Parâmetros de saída:

  • a - Transformada de Fourier da primeira função
  • b - Transformada de Fourier da segunda função (mais detalhes no site) http://alglib.sources.ru/fft/


4. Transformada discreta de seno rápida
void fastsinetransform(double& a[], int tnn, bool inversefst);

O algoritmo realiza uma transformação rápida seno da função real com tnn dado pelas contas no eixo real. Dependendo dos parâmetros passados pode ser realizada tanto a transformação direta como a inversa.

Parâmetros de entrada:

  • nn - Número de valores da função. Deve ser uma potência de dois. O algoritmo não verifica a validade do valor entregue.
  • a - array [0 .. nn-1] of Real. Valores da função.
  • InverseFST - direção da conversão. True, se for inversa, False, se for direta.

Parâmetros de saída:


5. Transformada discreta de cosseno rápida
void fastcosinetransform(double& a[],int tnn, bool inversefct);

O algoritmo realiza uma transformação rápida cosseno da função real com nn dado pelas contas no eixo real. Dependendo dos parâmetros passados pode ser realizada tanto a transformação direta como a inversa.

Parâmetros de entrada:

  • tnn - Número de valores da função menos um. Deve ser uma potência de dois (exemplo 1024). O algoritmo não verifica a validade do valor entregue.
  • a - array [0..nn] of Real. Valores da função (exemplo 1025).
    Particularidade da preparação da matriz para passar para a função:
    int element_count2=ArrayResize(array,tnn1+1); //Para o cosseno !!!
  • InverseFCT - direção da conversão. True, se for inversa, False, se for direta.

Parâmetros de saída:

6. Convolução rápida usando FFT
void fastcosinetransform(double& a[],int tnn, bool inversefct);

Convolução. Uma das funções dobráveis é estudada como um sinal, com o qual realizamos a convolução. A segunda é considerada como resposta.

Na entrada:

  • Signal - sinal, com o qual realizamos a convolução. Matriz de números reais, numeração dos elementos de 0 a SignalLen-1.
  • SignalLen - comprimento do sinal.
  • Response - função de resposta. Consiste de duas partes que correspondem aos valores positivos e negativos do argumento.
    Aos elementos da matriz com números de 0 a NegativeLen, correspondem os valores de resposta nos pontos de -NegativeLen a 0, respetivamente.
    Aos elementos da matriz, com números de NegativeLen+1 a NegativeLen+PositiveLen, correspondem os valores de resposta nos pontos de 1 a PositiveLen, respetivamente.
  • NegativeLen - "Comprimento negativo" da resposta.
  • PositiveLen - "Comprimento positivo" da resposta.
    Fora dos limites [-NegativeLen, PositiveLen] a resposta é nula.

Na saída:

  • Signal - valores da função de convolução nos pontos de 0 a SignalLen-1.


7. Correlação rápida usando FFT.
void fastcorellation(double& signal[], int signallen,  double& pattern[],  int patternlen);

Na entrada:

  • Signal - sinal-matriz, com o qual realizamos a correlação. Numeração de elementos de 0 a SignalLen-1
  • SignalLen - comprimento do sinal.
  • Pattern - padrão-matriz, correlação do sinal com o qual estamos procurando. Numeração de elementos de 0 a PatternLen-1
  • PatternLen - comprimento do sinal.

Na saída:

  • Signal - valores da correlação nos pontos de 0 a SignalLen-1. Para mais detalhes, consulte a descrição no site. http://alglib.sources.ru/fft/

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/7000

RAVI_Histogram RAVI_Histogram

Indicador Range Action Verification Index como histograma de força e direção da tendência atual.

Exp_CandlesticksBW Exp_CandlesticksBW

O experto Exp_CandlesticksBW baseia-se nas alterações dos sinais do oscilador CandlesticksBW.

VWAP Lite - Volume Weighted Average Price VWAP Lite - Volume Weighted Average Price

VWAP (Preço Médio Ponderado Por Volume) é um cálculo intra-diário utilizado principalmente por algoritmos e traders institucionais para avaliar onde um ativo está sendo negociado em relação à sua média ponderada pelo volume do dia.

RJTX_Matches RJTX_Matches

Este indicador ajuda a determinar o fim e o inicio da tendência com base na inclinação dos "fósforos" e da cor de suas cabeças.