Dia de negociação de futuros vs forex

dia de negociação de futuros vs forex

Nota: O código completo para este projeto pode ser encontrado nos tópicos da página do GitHub. Uma simples onda de pecado. Vamos começar com a coisa mais básica que podemos pensar que é uma série temporal; sua função de onda sin padrão pântano. E vamos criar os dados que precisaremos para modelar muitas oscilações dessa função para a rede LSTM treinar. Eu fiz uma planilha excel para fazer uma onda sin com amplitude e frequência de 1 (dando uma freqüência angular de 6,28) e usei a função para obter pontos de dados ao longo de 5001 períodos de tempo com um delta de tempo de 0,01. O resultado (no caso de você nunca ter visto uma série de ondas de pecado em sua vida) se parece com isso.

O conjunto de dados de onda completa foi visualizado: 5001 forex diamond e uma revisão de tempo. Para evitar que você faça isso sozinho, coloque os dados dessa mesma série em um CSV dia de negociação de futuros vs forex usarei como arquivo de treinamento teste aqui. Agora que temos os dados, o que forexeurusd vs euruse pro realmente tentando alcançar. Bem, isso é simples, queremos que o LSTM aprenda a onda do pecado a partir de um tamanho de janela de conjunto de dados que iremos alimentá-lo e esperamos negociação forex para nós euro pedir ao Juros de rolagem de negociação forex que preveja os próximos N passos da série e ele continuará cuspindo o pecado negociação forex e crypto. Começaremos transformando e carregando os dados do arquivo CSV para o array numpy que alimentará o LSTM.

A maneira como as camadas Keras LSTM trabalham dia de negociação de futuros vs forex pegando um conjunto numpy de 3 dimensões (N, W, F) onde N é o número de seqüências de treinamento, W é o comprimento da sequência e F é o número de características de cada dia de negociação de futuros vs forex. Eu escolhi ir com um comprimento de seqüência (leia o tamanho da janela) de 50, que permite a rede para obter vislumbres da forma da onda de pecado em cada seqüência e, portanto, esperamos aprender a construir um padrão das seqüências baseadas na janela anterior recebida.

As sequências em si são janelas deslizantes e, portanto, mudam de 1 a cada vez, causando uma sobreposição constante com as janelas anteriores. Um exemplo de uma seqüência de comprimento 50. Este é o código para carregar o CSV dos dados de treinamento no array numpy de formato apropriado: Em seguida, precisamos realmente construir a própria rede. Essa é negociação forex no fim de semana parte simples. Pelo menos, se você estiver usando o Keras, é tão simples quanto empilhar peças de Lego.

Eu usei uma estrutura de rede de [1, 50, 100, 1] onde temos 1 camada de entrada (consistindo de uma seqüência de tamanho 50) que alimenta uma camada LSTM com 50 neurônios, que por sua vez alimenta outra camada LSTM com 100 neurônios que então se alimentam em uma camada normal totalmente conectada de 1 neurônio com uma função de ativação linear que será usada para dar a previsão do próximo passo de tempo. Este é o código das funções de criação do modelo: Finalmente, é hora de treinar a rede nos dados e ver o que recebemos. Eu usei apenas 1 época de treinamento com este LSTM, que diferentemente de redes tradicionais onde você precisa de muitas épocas para a rede ser treinada em muitos exemplos de treinamento, com esta 1 época um LSTM passará por todas as janelas de sequência no conjunto de treinamento uma vez.

Se esses dados tivessem menos estrutura, um grande número de épocas seria necessário, mas como essa é uma onda de pecado com um padrão previsível que mapeia em uma função simples, uma época de treinamento será boa o suficiente para obter uma aproximação muito boa do tempo. função completa do pecado. Colocamos todo esse código de execução em um módulo run. py separado e o executamos assim: Se estiver atento, você notou em nossa função load_data () acima que dividimos os dados em conjuntos de treinamento teste, como é uma prática padrão para problemas de aprendizado de máquina.

No entanto, o que precisamos observar aqui é o que realmente queremos alcançar na previsão da série temporal. Se fôssemos usar o conjunto de testes como está, estaríamos executando cada janela cheia dos dados verdadeiros para prever o próximo passo de tempo. Isso é bom se estamos apenas olhando para prever um passo à frente, no entanto, se estamos querendo prever mais de um passo à frente, talvez olhando para prever quaisquer tendências emergentes ou funções (por exemplo, a função de pecado, neste caso) usando o Um conjunto de testes completo significaria que estaríamos prevendo o próximo passo de tempo, mas, em seguida, desconsiderando essa previsão quando se trata de etapas de tempo subseqüentes e usando apenas os dados verdadeiros para cada etapa de tempo.

Você pode ver abaixo o gráfico de usar essa abordagem para prever apenas um passo à frente em cada etapa: épocas 1, tamanho da janela 50. Se, no entanto, quisermos fazer mágica real e prever muitas etapas de tempo à frente, só usaremos a primeira janela dos dados de teste como uma janela de iniciação. A cada passo de tempo, colocamos a entrada mais antiga na parte de trás da janela e acrescentamos a previsão para o próximo passo na frente da janela, basicamente mudando a janela para que ela lentamente se construa com previsões, até a janela está cheio apenas de valores previstos (no nosso caso, como a nossa janela é de tamanho 50, isso ocorreria após 50 intervalos de tempo).

Continuamos assim indefinidamente, prevendo o próximo passo no tempo sobre as previsões dos passos de tempo futuros anteriores, para esperamos ver uma tendência emergente. O gráfico abaixo mostra a série temporal da onda sinular sendo prevista apenas a partir de uma janela inicial inicial de dados de teste reais e, em seguida, sendo prevista para.

épocas 1, tamanho da janela 50. Sobrepostos aos dados verdadeiros, podemos ver que, com apenas 1 época e um conjunto de dados de treinamento razoavelmente pequeno, o LSTM já fez um ótimo trabalho de prever a função do pecado. Você pode ver que à medida que prevemos mais e mais no futuro, a margem de erro aumenta à medida que os erros nas previsões anteriores são amplificados cada vez mais quando são usados para previsões futuras.

Como tal, vemos que o LSTM não tem a frequência certa e se desloca quanto mais tentamos prever. No entanto, como a função sin é uma função oscilante muito fácil, com ruído zero, ela pode prever um bom grau. Em seguida, tentaremos ver o que acontece quando tentamos prever os dados em dados muito mais estocásticos do mundo real (não dizer que uma onda de pecado não está no mundo real.

Afinal, o que é o mundo real quando podemos fazer dados reais para uma onda de pecado e prever isso. Eu divago. Um mercado de ações não tão simples. Nós previmos várias centenas de etapas de tempo de uma onda de pecado em uma base exata ponto a ponto. Então, podemos agora fazer o mesmo em uma série de tempo do mercado de ações e fazer uma merda de dinheiro, certo. "Ninguém sabe se uma ação vai subir, descer, de lado ou em círculos" - Mark Hanna.

Infelizmente, uma série temporal de estoque não é uma função que possa ser mapeada. Ele pode ser melhor descrito mais como um passeio aleatório, o que torna toda a previsão bem mais difícil. Mas e o LSTM identificando quaisquer tendências ocultas subjacentes. Bem, vamos dar uma olhada. Aqui está um arquivo CSV onde eu tirei o preço de fechamento diário ajustado do índice de ações S amp; P 500 de janeiro de 2000 a agosto de 2016.

Mapa do Site | Direitos Autorais ©