Hipótese baseada em Fourier - página 11

 
equantis >> :

É isso mesmo, vale a pena manter...

Para encerrar a questão, gostaria de mostrar uma imagem com resultados típicos:

Azul - preço

Vermelho - previsão feita por progamme com transformação de cosseno a partir de 0

roxo - a mesma curva, mas calculada a partir do ponto de partida da previsão (100)

Verde - previsão simples baseada na curva de preços (usei a função de previsão integrada)



Como já escrevi antes, o truque é identificar o modelo. O problema é realmente complicado, não pode ser resolvido só de vista. E conceitualmente, se me é permitido dizê-lo - "previsão no domínio da freqüência" é usada em algumas tarefas, mas muito específica.

 
grasn писал(а) >>

Como eu já escrevi, o truque é identificar o modelo. O problema é realmente complicado, não pode ser resolvido só de vista. E conceitualmente, se me é permitido dizê-lo - "previsão no domínio da freqüência" é usada em algumas tarefas, mas muito específica.

Passei quase um mês para desmontar com a PF e tudo em vão. Eu tentei prever qualquer coisa, séries cronológicas, média móvel, indicadores, mas todos os resultados foram de 50-50 (ou mais).

Tentou implementar sua idéia com uma discreta transformação cósmica. Infelizmente, após a transformação cosseno inversa, obtive a seguinte imagem: no sinal restaurado, a última barra (para o qual a previsão foi realmente feita) acabou de repetir a penúltima barra (a última do conjunto de treinamento) com um certo pequeno erro.

Por via das dúvidas, vou descrever um breve algoritmo do que estava fazendo:

  1. Tivemos um conjunto de dados de teste começando com START = 1:FRAME
  2. Selecionou uma janela WIND para cada conjunto de dados (ou seja, a amostragem foi realizada na faixa START:START+WIND)
  3. Para cada janela, fez uma transformação cosseno.
  4. Todos os resultados foram combinados em uma matriz de tamanho FRAME x WIND onde as colunas continham coeficientes de conversão de co-seno para cada freqüência e as linhas continham coeficientes para uma freqüência para cada conjunto de dados de teste.
  5. Para cada coluna de coeficientes foi treinada uma pequena rede neural, que com base em quatro valores anteriores previa muito bem a próxima mudança do sinusoidal por 1 barra. A rede neural foi abordada porque a previsão de AR estava dando resultados muito ruins.

  1. Ele produziu um conjunto de coeficientes previstos para o conjunto de dados previstos, onde a última barra era o valor desejado. Uma transformação cosseno inversa foi realizada sobre os coeficientes previstos.

Agora uma pausa... infelizmente, não há milagres - a barra prevista com um pequeno erro repetiu a penúltima barra da seqüência de testes. Ao analisar o resultado, descobri que a primeira barra havia mudado um pouco, enquanto todas as outras permaneceram inalteradas, mudando apenas por uma posição (como deveria ser). Mas a última barra simplesmente repetia a penúltima em vez de previsões. (Veja a foto acima).

Talvez este resultado possa ser útil para alguns matemáticos, mas para a tarefa de previsão do EURUSD acabou se revelando inútil. Ai de mim. Ainda assim. )))

 
equantis >> :

Passei quase um mês tentando resolver as coisas com o PF e tudo isso foi em vão. Tentei prever tudo: séries cronológicas, média móvel, indicadores, e todos os resultados da previsão foram 50-50 (ou mais).

Tentou implementar sua idéia com uma discreta transformação cósmica. Infelizmente, após a transformação cosseno inversa, obtive a seguinte imagem: no sinal restaurado, a última barra (para o qual a previsão foi realmente feita) acabou de repetir a penúltima barra (a última do conjunto de treinamento) com um certo pequeno erro.

Por via das dúvidas, vou descrever um breve algoritmo do que estava fazendo:

  1. Tivemos um conjunto de dados de teste começando com START = 1:FRAME
  2. Selecionou uma janela WIND para cada conjunto de dados (ou seja, a amostragem foi realizada na faixa START:START+WIND)
  3. Para cada janela, fez uma transformação cosseno.
  4. Todos os resultados foram combinados em uma matriz de tamanho FRAME x WIND onde as colunas continham coeficientes de conversão de co-seno para cada freqüência e as linhas continham coeficientes para uma freqüência para cada conjunto de dados de teste.
  5. Para cada coluna de coeficientes foi treinada uma pequena rede neural, que com base em quatro valores anteriores previa muito bem a próxima mudança do sinusoidal por 1 barra. A rede neural foi abordada porque a previsão de AR estava dando resultados muito ruins.

  1. Ele produziu um conjunto de coeficientes previstos para o conjunto de dados previstos, onde a última barra era o valor desejado. Uma transformação cosseno inversa foi realizada sobre os coeficientes previstos.

Agora uma pausa... infelizmente, não há milagres - a barra prevista com um pequeno erro repetiu a penúltima barra da seqüência de testes. Ao analisar o resultado, descobri que a primeira barra havia mudado um pouco, enquanto todas as outras permaneceram inalteradas, mudando apenas por uma posição (como deveria ser). Mas a última barra simplesmente repetia a penúltima em vez de previsões. (Veja a foto acima).

Talvez este resultado possa ser útil para alguns matemáticos, mas para a tarefa de previsão do EURUSD acabou se revelando inútil. Ai de mim. Ainda assim. )))

E eu não disse que haveria um milagre. Há algumas incertezas:

Uma pequena rede neural foi treinada para cada coluna com coeficientes, o que previu muito bem a próxima mudança de 1 barra no sinusóide com base nos quatro valores anteriores. A rede neural foi abordada porque a previsão de AR estava dando resultados muito ruins.

Não tenho certeza de que um NS em 4 números de uma série tão complexa possa prever muito bem o futuro. Muito duvidoso. E, se prevê, por que existe uma discrepância tão grande? E o que a "onda sinusoidal" tem a ver com isso. Quanto ao modelo AR, cada curvatura, é na verdade um processo AR, muito próximo a ele em suas propriedades. A identificação de tal modelo é complicada, muitos métodos são utilizados (estranhamente, mais complicado que NS): retrocesso e previsão, critério Akiache, "mala", funções de transferência autoregressiva, concordância e critérios de máxima probabilidade (e suas variantes), correlação mútua, aproximação estocástica, filtragem (também é usado para identificação de modelos)


Pelo menos a idéia é tão boa quanto a sua. :о) Se não funcionou - não funcionou, e acontece, lamento sinceramente pelo seu tempo, não posso deixar de devolvê-lo. Mas, a propósito, aqui https://forum.mql4.com/ru/24888/page9 só para o caso de ter sido avisado. Há muitas sutilezas neste modelo, algumas das quais eu modestamente omiti. Uma dessas sutilezas é que é inútil prever uma única contagem com tal modelo, apenas inútil. Você simplesmente não terá a precisão que deseja, e nunca terá. Você tem que prever em um sentido "estatístico". É assim que é, em termos literários.


 

De qualquer forma, muito obrigado pela idéia! O processo foi agradável e não desperdiçou tempo)) E o resultado ainda está por vir!

grasn писал(а) >>

Não tenho certeza de que NS em 4 números de uma série tão complexa possa prever bem o futuro. Eu duvido muito. E, se existe, por que existe uma discrepância tão grande? E o que a "onda sinusoidal" tem a ver com isso.

1. Se considerarmos a mudança de cada coeficiente DCT, como você escreveu, ele se parece muito com algum tipo de "curva-sinusoide" (com freqüência correspondente ao número de ordem do coeficiente, especialmente para oscilações com altas freqüências) que irá mudar sua amplitude com o tempo. Eu tentei usar AR para prever "de frente", mais ou menos como em seu exemplo no Matcad.

Se considerarmos a previsão de "curvulina" para 1 barra, então AR (pelo menos eu experimentei todas as fórmulas que tenho em Matlab) dá resultados muito imprecisos, especialmente para "curvulina-sinusoides" com períodos ímpares (embora eu possa não ter experimentado todas elas). Neste caso, uma simples rede neural (em Matlab ela é implementada com a função newlind (acho que não é nem mesmo uma rede neural, mas um simples solucionador de conjunto de equações lineares), quando prevista por 1 ponto, dá resultados muito bons (visualmente).

2. Pareço muito bem, de 50 barras prevê exatamente (quase exatamente) 48 barras e as move 1 posição para a esquerda, fazendo apenas 1 erro (não sei por quê) e a última (desculpe, estava fazendo tudo por isso). Aparentemente, os "micro erros" da previsão em cada "curvelina" se somam na conversão reversa desta forma.

Eu tentei "enganar" o algoritmo tentando esconder a última barra dentro do segmento de teste (eu fiz um simples deslocamento circular), mas mesmo assim foram as últimas e primeiras barras que estavam erradas.

3. A propósito, tentou prever não só o fechamento (como a série mais mal prevista), mas também o alto/baixo/aberto, e a diferença e até mesmo o mínimo-máximo do ziguezague. (Como um exemplo de uma série, com um eixo temporal distorcido). Como o resultado é o mesmo, a conclusão é óbvia - este método apenas move as barras N-2 para a esquerda por 1 barra "de frente", mas não prediz os ziguezagues.

Quanto ao modelo AR, cada curva é na verdade um processo AR, muito próximo a ele por suas propriedades. A identificação de tal modelo é complicada, muitos métodos são utilizados (estranhamente, mais complicado que NS): reversão e previsão, critério Akiache, "mala", funções de transferência autoregressiva, critérios de concordância e máxima probabilidade (e suas variantes), correlação mútua, aproximação estocástica, filtragem (que também é usada para identificação do modelo).

Obrigado uma segunda vez - muitos nomes novos - mais para tentar!

Há muitas sutilezas neste modelo, algumas das quais eu humildemente omiti. Uma dessas sutilezas é que é inútil prever uma única amostra por tal modelo, é apenas inútil. Você simplesmente não terá a precisão que deseja, e nunca terá. Você tem que prever em um sentido "estatístico". É assim que é, em termos literários.

Obrigado uma terceira vez, vamos tentar em um sentido "estatístico"))

 

feliz em poder ajudar. Boa sorte :o)


A propósito, vou tentar colocar uma previsão no tópico "Teste do Sistema de Previsão em Tempo Real" aqui perto. Se eu conseguir até segunda-feira, se não conseguir, postarei mais tarde. Então, "entre em contato".

 
2 grasn:

1. Ocorreu-me uma idéia: se eu aplicar a transformação co-seno duas vezes (primeiro na seção de teste e depois em cada uma das "curvas" que são tão semelhantes a ondas senoidais), isso não "melhorará" as propriedades preditivas do processo? Tentarei dizer-lhe os resultados amanhã.

2. É claro que em caso de previsão a longo prazo de certos tipos de processos AR será melhor, embora a sobreposição de dois sinusóides possa muito bem ser interpolada por uma rede neural.

3. Será que entendi corretamente (li seu post em algum lugar), que para este método é melhor prever ln(Xi/Xi-1) em vez de fechar-se?

 
equantis >> :

1. Ocorreu-me uma idéia: se eu aplicar a transformação co-seno duas vezes (primeiro na seção de teste e depois em cada uma das "curvas" que são tão semelhantes a ondas senoidais), isso não "melhorará" as propriedades preditivas do processo? Tentarei dizer-lhe os resultados amanhã.

2. É claro que em caso de previsão a longo prazo de certos tipos de processos AR será melhor, embora a sobreposição de dois sinusóides possa muito bem ser interpolada por uma rede neural.

3. Acertei (eu li seu post em algum lugar), que para este método é melhor prever ln(Xi/Xi-1) em vez de fechar-se?

1. tem que ser tentado.

2. a questão é que a dinâmica por frequências não tem períodos, é um processo complicado e não uma superposição de ondas sinusoidais de forma alguma

3. sim, esta é uma das opções para trazer para uma fileira estacionária.