Exacto | Aprendizagem profunda, HPC, AV, Distribuição & Mais

Como prever os preços da bolsa de valores usando LSTM

A indústria financeira foi uma das primeiras indústrias a abraçar o uso da aprendizagem de máquinas e aprendizagem profunda na sua análise de investimentos e operações para adicionar valor aos seus clientes. Antes da aprendizagem de máquinas, aprendizagem profunda e de toda a revolução “Quant” nos anos 2000 até agora, os analistas e investidores dependiam de técnicas tecnologicamente menos dependentes. A análise fundamental e técnica reinava suprema e, embora ainda constituam uma grande parte da análise, agora são combinadas com previsões e análises feitas por computadores.

Como a maioria das pessoas sabe, o mercado de ações é um lugar onde as pessoas compram e vendem ações. O ato de comprar e vender essas ações (ou seja, negociar) ocorre em ambientes físicos e virtuais chamados de “Bolsas”. Estas bolsas são casas de índices (as mais conhecidas são a Média Industrial Dow Jones e a Composta NASDAQ). As bolsas são onde o preço das ações que compõem os índices são definidos.

Existem muitos fatores que podem flutuar o preço de uma ação. As notícias diárias com boas ou más notícias sobre as perspectivas actuais ou futuras de uma empresa é sem dúvida um dos factores que mais influenciam as flutuações diárias dos preços. A rentabilidade de uma empresa, o crescimento da receita e as perspectivas de expansão futura são indicadores que podem definir mudanças de preços a longo e curto prazo. O Aprendizado Profundo e outros modelos estatísticos só podem explicar tanta coisa e normalmente é mais adequado para previsões de curto-médio prazo do que de longo prazo (por exemplo, anos).

Interessado em obter resultados mais rápidos?
Saiba mais sobre Soluções Exatas de Aprendizagem Profunda

Desembalar Modelos de Memória de Curto Prazo (LSTM)

Modelos de Memória de Curto Prazo (LSTM)

Fonte

LSTM’s são derivados de uma Rede Neural Recorrente (RNNN). Um RNN é um modelo adequado para um curto horizonte de tempo, talvez de uma semana a um mês. Indo além disso o RNN é improvável que o RNN produza previsões confiáveis. Isto é devido ao problema do Gradiente de Desaparecimento.

Um método de série temporal normal como o AR e seus derivados ou ANN (Artificial Neural Network) pode aprender aplicando um grande peso em relação ao preço do dia anterior mais algumas outras características. Para séries temporais financeiras, você usaria modelos ARCH e suas derivadas para prever os retornos ou volatilidade. Em uma rede feed forward, esses pontos são considerados independentes entre si. Isto significa que o LSTM não tem a mesma abordagem que os métodos tradicionais de previsão de séries temporais.

LSTM Utiliza Diferentes Dependências na Previsão

Um LSTM levará os dados através do que ele chama de “células” como você pode ver no diagrama acima representado no retângulo do meio. É através deste estado de célula que o LSTM pode escolher lembrar ou esquecer coisas.

Um LSTM terá 3 dependências diferentes de acordo com a informação que recebe:

    1. O estado da célula anterior (isto é, a informação que estava presente na memória após o passo de tempo anterior)
    2. O estado oculto anterior (isto é, o mesmo que a saída da célula anterior)
    3. A entrada no passo de tempo actual (isto é a nova informação que está sendo alimentada naquele momento)

Para o domínio da previsão do preço do ativo financeiro, estas dependências podem ser explicadas como abaixo:

  1. O Estado da Célula Anterior – A tendência do estoque no dia anterior.
  2. O Estado Escondido Anterior – O preço do estoque no dia anterior.
  3. O Input no Passo do Tempo Atual – Outros fatores que podem afetar o preço. Normalmente serão alertas de notícias que ficam disponíveis aos investidores ao longo do dia.

Estados celulares da LSTM em como eles são armazenados

Fonte

No diagrama acima, a linha horizontal ct denota o estado da célula que é a memória da LSTM. Como mencionado imediatamente acima, isto se refere à tendência do estoque no dia anterior (1). Essa informação fluirá para a célula e será processada com a outra informação que flui para dentro. A linha que é denotada pela ct-1 é o estado oculto (2) que no nosso caso de previsão de ações conterá as informações das etapas de tempo anteriores (ou seja, o preço das ações do dia anterior). A linha horizontal denotada por ht-1 é o input na hora atual que é o preço atual do estoque (3). Usando a informação do preço da ação anterior (Hidden State), o preço atual combinado com a tendência do dia anterior (Cell State), o LSTM irá gerar um output.

AMD EPYC SERVER SALE

Python Code to Create an LSTM Prediction Model

O seguinte código Python nos leva através de passos para criar um modelo LSTM prevendo o preço de uma ação.

  1. # -*- coding: utf-8 -*-
  2. """EXXACT - Stock Market Prediction LSTM.ipynb
  3. Automatically generated by Colaboratory.
  4. """
  5. # By running this line of code, you will be prompted to select your file to upload.
  6. from google.colab import files
  7. uploaded = files.upload()
  8. import io
  9. import pandas as pd
  10. import numpy as np
  11. import matplotlib.pyplot as plt
  12. %matplotlib inline
  13. from matplotlib.pylab import rcParams
  14. rcParams=20,10
  15. from keras.models import Sequential
  16. from keras.layers import LSTM,Dropout,Dense
  17. from sklearn.preprocessing import MinMaxScaler
  18. df = pd.read_csv(io.BytesIO(uploaded))
  19. print(df)
  20. df=pd.to_datetime(df.Date,format="%Y-%m-%d")
  21. df.index=df
  22. data=df.sort_index(ascending=True,axis=0)
  23. new_dataset=pd.DataFrame(index=range(0,len(df)),columns=)
  24. for i in range(0,len(data)):
  25. new_dataset=data
  26. new_dataset=data
  27. train_data=final_dataset
  28. valid_data=final_dataset
  29. new_dataset.index=new_dataset.Date
  30. new_dataset.drop("Date",axis=1,inplace=True)
  31. scaler=MinMaxScaler(feature_range=(0,1))
  32. scaled_data=scaler.fit_transform(new_dataset)
  33. x_train_data,y_train_data=,
  34. for i in range(60,len(train_data)):
  35. x_train_data.append(scaled_data)
  36. y_train_data.append(scaled_data)
  37. x_train_data,y_train_data=np.array(x_train_data),np.array(y_train_data)
  38. x_train_data=np.reshape(x_train_data,(x_train_data.shape,x_train_data.shape,1))
  39. lstm_model=Sequential()
  40. lstm_model.add(LSTM(units=50,return_sequences=True,input_shape=(x_train_data.shape,1)))
  41. lstm_model.add(LSTM(units=50))
  42. lstm_model.add(Dense(1))
  43. inputs_data=new_dataset.values
  44. inputs_data=inputs_data.reshape(-1,1)
  45. inputs_data=scaler.transform(inputs_data)
  46. lstm_model.compile(loss='mean_squared_error',optimizer='adam')
  47. lstm_model.fit(x_train_data,y_train_data,epochs=1,batch_size=1,verbose=2)
  48. X_test=
  49. for i in range(60,inputs_data.shape):
  50. X_test.append(inputs_data)
  51. X_test=np.array(X_test)
  52. X_test=np.reshape(X_test,(X_test.shape,X_test.shape,1))
  53. predicted_closing_price=lstm_model.predict(X_test)
  54. predicted_closing_price=scaler.inverse_transform(predicted_closing_price)
  55. train_data=new_dataset
  56. valid_data=new_dataset
  57. valid_data=predicted_closing_price

Um programa capaz de prever os preços das acções na bolsa de valores usando LSTM

Tem agora o código Python para começar a prever os preços das acções na bolsa de valores usando LSTM. Experimente e diga-nos como funciona para si. Estamos apenas no início de desempacotar a capacidade do LSTM em diferentes aplicações e estamos entusiasmados com o futuro.

Saiba mais sobre como as Redes Neurais Recorrentes LSTM estão sendo usadas em outras aplicações.

Deixe-nos quaisquer perguntas sobre estações de trabalho ou servidores de aprendizagem profunda?
Contacto Exacto Hoje

Leave a Reply

Deixe uma resposta

O seu endereço de email não será publicado.