Previsão de Preço Petr4 com Python— LSTM

alegeorgelustosa
Alexandre George Lustosa
5 min readDec 17, 2018

Esta atividade de série temporal terá como análise a ação da empresa Petróleo Brasileiro S.A. — Petrobras (PETR4.SA).

  • A base de treinamento consiste do período de 01/01/2013 até 01/01/2018 Link utilizado para baixar o arquivo csv de cotações:
  • https://finance.yahoo.com/quote/PETR4.SA?p=PETR4.SA&.tsrc=fin-srch
  • O objetivo do trabalho será fazer a previsão dos preços de Janeiro de 2018
  • Nesta primeira etapa de previsões, iremos utilizar somente a informação de preço de abertura (Open)

Faremos as Etapas 2 e 3 utilizando mais variaveis e previsões com a janela dinâmica de pregões!

Importante realizar uma análise exploratória para extrair informações relevantes de um conjunto de dados!

É nessa hora que você identifica os comportamentos médios e discrepantes; compara esses comportamentos; investiga a interdependência entre as variáveis; procura e identifica tendências. É a partir do conjunto de dados inicial, que você aplica os recursos computacionais e define o que de fato é essencial, e o que é lixo!

A diferença entre distplot () (histograma) e rugplot () é que o histograma tem essencialmente compartimentos e conta quantos bastões / linhas estão nesse compartimento e, em seguida, mostra-o como um número ao longo do eixo y.

  • Na realidade, o número de todos os bastões no rugplot são empilhados uns nos outros em distplot para o respectivo bin!
  • Mais linhas ==> maior rugplot em distplot.
  • Menos linhas ==> rugplot menor em distplot.

A ação preferencial da Petrobras, que dá preferência na distribuição dos dividendos, caiu 27,76% no primeiro mês de 2016. Foi a maior perda mensal desde outubro de 2008, quando houve recuo de 33,59%.

Vamos verificar de perto o período de grande volatilidade (jun/2015 até ago/2016)

Podemos também visualizar o volume negociado no período

Ao gerarmos o plot referente ao volume operado no papel Petr4, identificamos um pico próximo ao ano de 2015. O que será que o correu nesta data… Vamos verificar!

As ações da Petrobras recuavam pela sexta sessão consecutiva nesta segunda-feira (1º), em mais um dia de queda dos preços do petróleo no mercado externo.

  • As Petr4 queda de “3,83%” cotado há R$12,31
  • As 70 ações que compõem o Ibovespa fecharam em queda nesta segunda-feira (1º), levando o principal índice da Bolsa brasileira a uma desvalorização de 4,37%, a 52.276,58 pontos.

Fizemos apenas uma pequena análise exploratória dos dados.

Nosso foco principal neste presente trabalho esta em realizar a previsão dos preços com base em apenas uma variável (OPEN).

Base de dados de treinamento consiste no período de 01/01/2013 até 29/12/2017

Para o primeiro modelo, iremos utilizar somente a coluna referente ao preço de abertura.

Precisamos normalizar os dados (preço de abertura) para melhorar a performance e dimensionalidade da rede neural.

Para isso, podemos facilmente aplicar a funcao MinMaxScaler do sklearn (escala entre 0 e 1).

Utilizaremos uma janela de 90 dias anteriores da base de treinamento para nossas previsões.

Transformando os dados para o formato do Numpy (biblioteca do Python)

Criado o quadro abaixo apenas para para demonstrar a “formação do preço” com a janela de 90 observações

Colunas 0 até a 89 contempla os dados anteriores e a coluna 0 no final o preço de saida (label)

Podemos notar que os valores estão na escala entre 0 e 1, pois normalizamos os dados para submeter ao modelo.

Iremos reverter os valores para a escala original com a função inverse_transform

Para o próximo Notebook, iremos utilizar diversas Features (Volume, Fechamento, etc).

Faremos também um janela dinâmica, assim, poderá ser realizada previsão de pregões futuros, com projeção para 30 dias.

A análise exploratório para o próximo projeto contemplará Média Movel, Sinal de Entrada, Estratégia de Long & Short!

--

--

alegeorgelustosa
Alexandre George Lustosa

Economist and entrepreneur, passionate about marketing, founder of the Don George brand!