Saturday 18 November 2017

Extrapolação de fourier mt4 forex


MetaTrader 5 - Indicadores Extrapolação de Fourier do indicador de preços para o MetaTrader 5 Um modelo trigonométrico multi-harmônico (ou multi-tons) de uma série de preços xi, i1..n, é dado por: xi m Sum (ahCos (whi) bhSin Whi), h1..H) xi - preço passado para a i-ésima barra, total n preços passados ​​m-bias ah e bh - coeficientes de escala de harmônicos wh - freqüência de uma harmônica h - número harmônico H - número total de harmônicos montados . Ajustar este modelo significa encontrar m, ah, bh, e wh que fazem os valores modelados estar perto de valores reais. Encontrar as freqüências harmônicas é a parte mais difícil de ajustar um modelo trigonométrico. No caso de uma série de Fourier, essas freqüências são ajustadas em 2pih / n. Mas, a extrapolação da série de Fourier significa simplesmente repetir os n preços passados ​​para o futuro. Este indicador utiliza o algoritmo Quinn-Fernandes para encontrar as freqüências harmônicas. Ele se encaixa armônicos da série trigonométrica um por um até que o número total especificado de harmônicos H é atingido. Após a montagem de uma nova harmônica, o algoritmo codificado calcula o resíduo entre o modelo atualizado e os valores reais e ajusta uma nova harmônica ao resíduo. O indicador tem os seguintes parâmetros de entrada: Npast - número de barras passadas, às quais se monta série trigonométrica Nfut - número de barras futuras previstas Nharm - número total de harmônicas no modelo FreqTOL - tolerância de cálculos de freqüência. O indicador traça duas curvas: a curva azul indica valores passados ​​modelados e a curva vermelha indica os valores futuros modelados. MetaTrader 4 - Indicadores Extrapolador - indicador para MetaTrader 4 O indicador é baseado em vários métodos que podem ser escolhidos pela variável de entrada Método: Método 1: Extrapolação de Fourier As freqüências são calculadas usando o Algoritmo de Quinn-Fernandes Método 2: Método de Autocorrelação Método 3: Método de Burg Ponderado Método 4: Método de Burg com função de ponderação Helme-Nikias Método 5: Método de Itakura-Saito Método 6: Método de covariância modificada Métodos 2-6 são os métodos de predição linear. A previsão linear é baseada em encontrar os valores futuros como as funções lineares dos valores passados. Suponha que temos um número de preços x0..xn-1 onde o índice mais alto é compatível com o preço recente. A previsão do preço futuro xn é calculada como xn - Sum (aixn-i, i1..p) onde ai1..p - coeficientes do modelo, ordem p do modelo. Os métodos listados 2-6 encontram os coeficientes a diminuindo o erro médio-raiz-quadrado nas últimas barras n-p de treinamento. É claro que podemos alcançar o erro zero da predição se resolvermos diretamente o conjunto de equações mencionado acima com n2p pelo método de Levinson-Durbin. Esse método de predição é chamado Prony Method. Sua desvantagem é a instabilidade durante a previsão dos valores futuros da série. É por isso que este método não foi incluído. Os outros parâmetros de entrada são: LastBar - o número da última barra nos dados passados ​​PastBars - o número de barras passadas usadas para a previsão dos valores futuros LPOrder - a ordem do modelo linear como uma fração do número do passado Barras (0..1) FutBars - o número de barras futuras na previsão HarmNo - o número máximo de frequências para o Método 1 (0 significa todas as freqüências) FreqTOL - a imprecisão do cálculo de frequências para o Método 1 (se for Gt0.001 não pode convergir) BurgWin - o número da função de ponderação para o método 2 (0Redangular 1Hamming 2Parabolic) O indicador desenha duas linhas: a linha azul mostra os preços do modelo nas barras de treino, a linha vermelha mostra o previsto Preços futuros. Método 1 (a extrapolação de séries de Fourier) Método 3 (método de Burgs) Método 6 (método de covariância modificado) Se alguém será bem sucedido no desenvolvimento de uma EA rentável com base neste indicador eu peço para compartilhar suas idéias através do e-mail especificado Dentro do código. Este indicador forex é uma modificação do indicador Extrapolator, que utiliza apenas o primeiro método de extrapolação (Fourier) e adiciona a possibilidade de usar os valores dos indicadores selecionados como dados de entrada. . O indicador anexo usa a análise espectral do indicador selecionado e extrapola esses valores para o futuro usando a série de Fourier. Por exemplo, o indicador é selecionado Williams Percent Range. Vector nos valores do indicador selecionado. O gráfico na parte inferior, linha preta na janela FEoI - indicador de valor, Blue Line - a série de Fourier para os valores passados, a linha vermelha - extrapolação de série de Fourier no futuro. Os valores previstos começam com LastBar-1 e incluem a última barra conhecida no histórico de LastBar para encaixe contínuo de passado modelado (linha azul) e futuro (linha vermelha) valores. Extern int LastBar 200, / / ​​Número da última barra do histórico. 0 é o último na programação. / / Número de barras na previsão HarmNoPastBars extern int HarmNo 10 / / Número de membros no número de Fourier HarmNo 10 / / Número de barras no histórico, que fez a análise espectral e montagem da série de Fourier extern int FutBars 200 / 0 seleciona o número máximo de componentes harmônicos HarmNo PastBars extern double FreqTOL 0.0001 / / A precisão dos cálculos de freqüências pelo método de Quinn-Fernndez A linha onde a mudança é indicada na parte inferior do indicador selecionado vermelho int start () int start ArrayInitialize (fv, EMPTYVALUE) ArrayInitialize (fv, EMPTYVALUE) ArrayInitialize (fv, EMPTYVALUE) ArrayInitialize (fv, EMPTYVALUE) ArrayInitialize (em, EMPTYVALUE) ArrayInitialize (pv, EMPTYVALUE) Valores / / Escolher o indicador e encontrar a média de seus valores passados ​​np duplos x // armazena valores de indicador duplo x / / armazena valores de indicador ArrayResize (x, np) ArrayResize (x, np) av av.0.0 duplo av 0.0 para (int I-lbi para (int i - lb i inilb0.5iWPR (NULL, 0,50, ilb) /100.0 // indicador de mudança aqui em i iBr 0,5 iWPR (NULL, 0,50, i lb) / 100,0 / (I0) se (i0) xiinilb xi em i lb avxi av xi)) av / np av / np // Preparar dados modelados / / Preparar dados modelados para (i0i para (i 0 i pviav pv i av if ( I / Fit série trigomométrica) / / Fit trigomométrica série dupla w, m, c, s dupla w, m, c, s para (int harm1harm for (i 0 i pvimcMathCos (wi) sMathSin (wi) pv imc MathCos ) S MathSin (wi) se (i 8:54 AM

No comments:

Post a Comment