Previsão de Forex.
Este exemplo é muito semelhante ao anterior. A única diferença é que ele mostra dados para divisas (forex) pares de moedas.
Como trabalhar com o applet.
Se você não viu o primeiro exemplo, explore-o primeiro - a descrição básica está disponível lá. Neste applet, os dados a seguir estão disponíveis. Todos eles são valores próximos do fim do dia para todo o ano de 2007, ou seja, 313 valores. Como no applet anterior, cada uma dessas séries temporais tem os seguintes valores: zero para intervalo abaixo de 0, valor de fechamento no intervalo 0-número de valores e novamente zero após o último valor conhecido. EURUSD - USD EUR USD moeda estrangeira dados par USDJPY - EUR USD moeda estrangeira par data USDCHF - EUR USD moeda estrangeira par dados EURJPY - EUR USD moeda estrangeira par dados Observe novamente que este exemplo é fornecido apenas para ilustração. O comércio usando esta configuração simples geralmente não está longe de usar a previsão pelo último valor disponível. Observe também que, para o comércio, precisamos desenvolver regras de entrada e saída e que são mais importantes do que a previsão exata.
Aguarde até que o applet seja carregado.
Applet e descrição (c) Marek Obitko, 2008; A rede neural no applet usa classes Java BPNeuron e BPNet.
do NeuralWebspace, (c) Tom Vehovský, 1998, que foram modificados para os propósitos deste applet.
Previsão de taxas de câmbio em moeda estrangeira usando o CGP e rede neuronal recorrente ☆
O feedback na Neuro-Evolution é explorado e avaliado para sua aplicação na elaboração de modelos de previsão para taxas de câmbio de moeda estrangeira. Uma nova abordagem para a previsão de taxas de câmbio em moeda estrangeira com base em Neuro-Evolution Recorrente é introduzida. A Programação Genética Cartesiana (CGP) é o algoritmo implementado para o modelo de previsão. A Rede de Neural Artificial (RCGPANN) evoluiu de forma evolutiva para produzir um modelo computacionalmente eficiente e preciso para a predição de forex com uma precisão de até 98,872% por um período de 1000 dias. A abordagem utiliza as tendências que estão sendo seguidas em dados históricos para prever cinco taxas de câmbio em relação ao dólar australiano. O modelo é avaliado usando métricas estatísticas e comparado. O método computacional supera os outros métodos, em particular devido à sua capacidade de selecionar a melhor característica possível em tempo real e a flexibilidade que o sistema oferece na seleção de recursos, padrão de conectividade e rede.
Seleção e revisão por pares sob responsabilidade do Instituto de Pesquisa em Engenharia da Informação.
Redes neurais para negociação algorítmica. Previsão de séries temporais simples.
ACTUALIZAÇÃO IMPORTANTE:
Esta é a primeira parte dos meus experimentos em aplicação de aprendizado profundo para financiar, em particular para negociação algorítmica.
Eu quero implementar o sistema de negociação a partir do zero com base apenas em abordagens de aprendizado profundo, então, para qualquer problema que temos aqui (previsão de preços, estratégia de negociação, gerenciamento de riscos), usaremos diferentes variações de redes neuronais artificiais (RNAs) e veremos o quanto elas podem lide com isso.
Agora eu planejo trabalhar nas próximas seções:
Previsão de séries temporais com dados brutos Previsão de séries temporais com recursos personalizados Otimização de hiperparâmetros Implementação de estratégia de negociação, backtesting e gerenciamento de riscos Estratégias de negociação mais sofisticadas, reforço de aprendizagem Indo ao vivo, corretores API, ganhando (l̶o̶s̶i̶n̶g̶) dinheiro.
Eu recomendo que você verifique o código e o IPython Notebook neste repositório.
Nesta primeira parte, quero mostrar como MLPs, CNNs e RNNs podem ser usados para a previsão de séries temporais financeiras. Nesta parte, não vamos usar nenhuma engenharia de recursos. Vamos considerar o conjunto de dados históricos dos movimentos dos preços do índice S & P 500. Temos informações de 1950 a 2018 sobre preços abertos, fechados, altos e baixos para todos os dias do ano e volume de negócios. Primeiro, tentaremos apenas prever fechar o preço no final do próximo dia, em segundo lugar, tentaremos prever o retorno (preço fechado - preço aberto). Baixe o conjunto de dados do Yahoo Finance ou deste repositório.
Definição do problema.
Consideraremos o nosso problema como 1) problema de regressão (tentando prever exatamente fechar o preço ou retornar no dia seguinte) 2) problema de classificação binária (o preço aumentará [1; 0] ou abaixo [0; 1]).
Para treinar NNs, usaremos framework Keras.
Primeiro vamos preparar nossos dados para treinamento. Queremos prever o valor de t + 1 com base em informações de N dias anteriores. Por exemplo, tendo preços próximos dos últimos 30 dias no mercado, queremos prever, que preço será amanhã, no 31º dia.
Utilizamos as primeiras 90% das séries temporais como conjunto de treinamento (considere-a como dados históricos) e 10% como conjunto de testes para avaliação do modelo.
Aqui é exemplo de carregamento, dividindo em amostras de treinamento e pré-processamento de dados de entrada brutos:
Problema de regressão. MLP.
Será apenas um perceptron de 2 camadas escondidas. O número de neurônios escondidos é escolhido de forma empírica, vamos trabalhar na otimização de hiperparâmetros nas próximas seções. Entre duas camadas ocultas, adicionamos uma camada de Saída para evitar a sobreposição.
O importante é Dense (1), Activation ('linear') e 'mse' na seção de compilação. Queremos um produto que possa estar em qualquer intervalo (prevemos valor real) e nossa função de perda é definida como erro quadrático médio.
Vamos ver o que acontece se apenas passarmos pedaços de preços próximos de 20 dias e prever o preço no 21º dia. Final MSE = 46.3635263557, mas não é uma informação muito representativa. Abaixo está um gráfico de previsões para os primeiros 150 pontos do conjunto de dados de teste. A linha preta é dados reais, um azul - previsto. Podemos ver claramente que nosso algoritmo não é nem mesmo de perto, mas pode aprender a tendência.
Vamos dimensionar nossos dados usando o método de sklearn pré-processamento. Escala () para ter nossa série zero de tempo e variância unitária e treinar o mesmo MLP. Agora temos MSE = 0.0040424330518 (mas está em dados dimensionados). No gráfico abaixo, você pode ver as séries temporais reais escaladas (preto) e a nossa previsão (azul) para ela:
Para usar este modelo no mundo real, devemos retornar às séries temporais não escaladas. Podemos fazê-lo, multiplicando ou preditivo por desvio padrão de séries temporais que usamos para fazer predição (20 etapas de tempo não escalonadas) e adicione seu valor médio:
MSE neste caso é igual a 937.963649937. Aqui está o enredo de previsões restauradas (vermelho) e dados reais (verde):
Não está mal, não é? Mas vamos tentar algoritmos mais sofisticados para esse problema!
Problema de regressão. CNN.
Eu não vou mergulhar na teoria das redes neurais convolutivas, você pode verificar esses recursos incríveis:
Vamos definir a rede neural convolucional de 2 camadas (combinação de camadas de convolução e max-pooling) com uma camada totalmente conectada e a mesma saída que anteriormente:
Vamos verificar resultados. MSEs para dados escalados e restaurados são: 0.227074542433; 935.520550172. As parcelas estão abaixo:
Mesmo olhando para MSE em dados escalados, esta rede aprendeu muito pior. Provavelmente, uma arquitetura mais profunda precisa de mais dados para o treinamento, ou simplesmente é superada devido ao número muito alto de filtros ou camadas. Vamos considerar esta questão mais tarde.
Problema de regressão. RNN.
Como arquitetura recorrente, eu quero usar duas camadas LSTM empilhadas (leia mais sobre LSTM aqui).
As parcelas das previsões estão abaixo, MSEs = 0.0246238639582; 939.948636707.
A previsão da RNN se parece mais com o modelo médio móvel, não pode aprender e prever todas as flutuações.
Então, é um resultado pouco esperável, mas podemos ver que os MLPs funcionam melhor para esta previsão de séries temporais. Vamos verificar o que acontecerá se nós passarmos de regressão para problema de classificação. Agora, usaremos os preços não fechados, mas o retorno diário (fechar preço-preço aberto) e queremos prever se o preço fechado é maior ou menor do que o preço aberto com base nos últimos 20 dias de devolução.
Problema de classificação. MLP.
O código é alterado um pouco - alteramos nossa última camada Densa para ter saída [0; 1] ou [1; 0] e adicione a saída softmax para esperar resultados probabilísticos.
Para carregar saídas binárias, mude a linha seguinte do código:
Também mudamos a função de perda para cross-entopy binário e adicionamos métricas de precisão.
Oh, não é melhor do que adivinhar aleatoriamente (50% de precisão), vamos tentar algo melhor. Confira os resultados abaixo.
Problema de classificação. CNN.
Problema de classificação. RNN.
Conclusões.
Podemos ver que o tratamento da previsão de séries temporárias financeiras como problema de regressão é uma abordagem melhor, pode aprender a tendência e os preços próximos do real.
O que foi surpreendente para mim, que MLPs estão tratando dados de seqüência melhor como CNNs ou RNNs que deveriam funcionar melhor com séries temporais. Explico isso com conjunto de dados bastante pequeno (
Selos de tempo de 16k) e escolha de hiperparâmetros fofos.
Você pode reproduzir resultados e melhorar usando o código do repositório.
Eu acho que podemos obter melhores resultados em regressão e classificação usando diferentes recursos (não apenas séries temporais escalonadas) como alguns indicadores técnicos, volume de vendas. Também podemos tentar dados mais freqüentes, digamos carrapatos minuto a minuto para ter mais dados de treinamento. Todas essas coisas que eu vou fazer depois, então fique atento :)
Ao bater palmas mais ou menos, você pode nos indicar quais são as histórias que realmente se destacam.
Alex Honchar.
máquinas de ensino e raphamento.
Mundo de aprendizagem de máquinas.
O melhor sobre Aprendizado de Máquinas, Visão de Computador, Aprendizagem Profunda, Processamento de linguagem natural e outros.
FOREX Rate Prediction Usando o Caos, a rede neural e a otimização de enxertia de partículas.
Dadabada Pradeepkumar Vadlamani Ravi.
Este artigo apresenta dois modelos de previsão de taxa de FOREX híbridos inteligentes de dois estágios que compreendem caos, Rede Neural (NN) e PSO. Nesses modelos, o Stage-1 obtém as previsões iniciais e as músicas finas do Stage-2 as definem. Os dados das taxas de câmbio de Dólar Americano versus Iene Japonês (JPY), Libra Britânica (GBP) e Euro (EUR) são usados para testar a eficácia de modelos híbridos. Concluímos que os modelos híbridos inteligentes propostos produzem melhores previsões em relação às redes neurais de base e PSO em termos de MSE e MAPE.
Preview.
Referências.
Informações sobre direitos autorais.
Autores e afiliações.
Dadabada Pradeepkumar 1 2 Vadlamani Ravi 1 1. Centro de Excelência em CRM e Analytics Institute for Development and Research in Banking Technology Hyderabad Índia 2. SCIS Universidade de Hyderabad Hyderabad Índia.
Sobre este artigo.
Recomendações personalizadas.
Cite o papel.
.RIS Papers Reference Manager RefWorks Zotero.
.BIB BibTeX JabRef Mendeley.
Download instantâneo legível em todos os dispositivos Possuí-lo para sempre Imposto de venda local incluído, se aplicável.
Cite o papel.
.RIS Papers Reference Manager RefWorks Zotero.
.BIB BibTeX JabRef Mendeley.
Mais de 10 milhões de documentos científicos ao seu alcance.
Switch Edition.
&cópia de; 2017 Springer International Publishing AG. Parte de Springer Nature.
No comments:
Post a Comment