Você está na página 1de 41

U NIVERSIDADE F EDERAL DO R IO G RANDE DO N ORTE

C ENTRO DE T ECNOLOGIA
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
D EPARTAMENTO DE E NGENHARIA DE C OMPUTAÇÃO E AUTOMAÇÃO

Lucas Lyon de Azevedo

Uma Análise Exploratória de Dados Aplicado


ao Mercado Financeiro

Natal, RN, novembro de 2019


Lucas Lyon de Azevedo

Uma Análise Exploratória de Dados Aplicado


ao Mercado Financeiro

Trabalho de Conclusão de Curso


apresentado à Banca Examinadora do
curso de Engenharia de Computação,
em cumprimento às exigências le-
gais como requisito parcial à obtenção
do título de Engenheiro de Computação.

Orientador: Prof. Dr. Ivanovitch Me-


deiros Dantas da Silva

Natal, RN, novembro de 2019


Uma Análise Exploratória de Dados Aplicado
ao Mercado Financeiro

Lucas Lyon de Azevedo

Trabalho de Conclusão de Curso aprovado em 29 de novembro de 2019 pela banca exa-


minadora composta pelos seguintes membros:

Prof. Dr. Ivanovitch Medeiros Dantas da Silva - Orientador . . . . . . . . . . . UFRN

MSc. Aguinaldo Bezerra Batista Junior - Membro externo . . . PPgEEC/UFRN

MSc. Rute Souza de Abreu - Membro externo . . . . . . . . . . . . . . PPgEEC/UFRN


“A ciência nunca resolve um
problema sem criar pelo
menos outros dez.”
– George Bernand Shaw
Dedico esse trabalho a toda minha
família e amigos.
Agradecimentos

A Deus por tudo que tem proporcionado na minha vida e pelo Seu amor incondicional.

Ao meu orientador Ivanovitch Medeiros Dantas da Silva por todo tempo disposto e em-
penho para auxiliar em todos os momentos que precisei. Seus referenciais e textos foram
de extrema importância para a realização deste trabalho.

À minha família, por todo o amor, e força que me deram durante todo o decorrer do curso,
e pela compreensão nos momentos de ausência.

Ao meu amor Vanessa, além de namorada, companheira e amiga é com quem posso contar
nos momentos onde mais preciso. Obrigado por acreditar e confiar em mim.

Aos meus amigos Alexandre, Gabriel, Samuel, Laís e Felipe, pelo carinho e amizade
durante toda essa jornada. Aos colegas de curso, cujo empenho e solidariedade foram de
suma importância para alcançar minhas metas.

E aos professores do DCA pelo empenho e dedicação durante todo o curso em especial
ao Prof. Dr. Luiz Affonso H. Guedes, pelos ensinamentos de grande importância para
minha carreira.
Resumo

A proposta desse trabalho é aplicar técnicas e metodologias em ciência de dados para


facilitar a análise de dados do mercado financeiro. O trabalho descreve o processo de
obtenção de dados, limpeza e fórmula para a obtenção dos resultados através de indica-
dores financeiros unidos a ciência de dados. Por fim esse trabalho tornou a busca pelas
melhores ações mais dinâmica. Python foi à linguagem escolhida para o desenvolvimento
deste trabalho, juntamente como suas bibliotecas de manipulação e visualização. Em con-
junto com as bibliotecas básicas, foram utilizadas técnicas de análise financeira e análise
estatística. Por fim os resultados encontrados foram satisfatórios.
Palavras-chave: Ciência de Dados, Python, Análise, Bolsa de Valores.
Abstract

The purpose of this paper is to apply data science techniques and methodologies to
facilitate the analysis of Stock Exchange. The paper describes the process of data col-
lection, cleaning and formulate to have the results obtained through financial indicators
linked to data science. Finally this work made the search for the best shares most dy-
namic. Python was to the chosen language for this work, along with it is manipulation
and visualization libraries. In conjunction with the basic libraries, financial analysis and
statistical analysis techniques were used. Finally the results were satisfactory.
Keywords: Data Science, Python, Analysis, Stock Exchange.
Lista de Figuras

1.1 Ciclo de vida Ciência de dados . . . . . . . . . . . . . . . . . . . . . . . 14


1.2 Diagrama do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.1 Bibliotecas e pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18


2.2 Diagrama de Venn - Ciência de dados . . . . . . . . . . . . . . . . . . . 20

3.1 Diagrama do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21


3.2 Request para o site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Conversão das tuplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4 Captura de informações . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5 Laço principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.6 Colocando em um DataFrame . . . . . . . . . . . . . . . . . . . . . . . 25
3.7 Chamada do crontab no UNIX . . . . . . . . . . . . . . . . . . . . . . . 25
3.8 Programação da execução do arquivo . . . . . . . . . . . . . . . . . . . . 26
3.9 Descrição do P/L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.10 Box Plot do P/L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.11 Descrição do DY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.12 Box Plot do DY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.13 Descrição do ROE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.14 Box Plot do ROE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.15 Descrição do Pat.Liq . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.16 Box Plot do Pat.Liq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.17 Descrição do Liq.2m. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.18 Box Plot do Liq.2m. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.19 Descrição do Cresc.5a . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.20 Box Plot do Cresc.5a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.21 Dados após EDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.22 Fórmula da análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.1 Melhores do Petróleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34


4.2 Melhores dos Bens Industriais . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Melhores do Consumo . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Melhores da Utilidade Pública . . . . . . . . . . . . . . . . . . . . . . . 36
4.5 Melhores do Financeiro . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.6 Melhores da Tecnologia . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.7 Melhores da Saúde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.8 Melhores dos Outros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

i
Lista de Quadros e Tabelas

3.1 Setores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Indicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

ii
Lista de Símbolos e Abreviaturas

ADVFN Advanced Financial Network

API Application programming interface

B3 Brasil Bolsa Balcão

BM&FBOVESPA Bolsa de Valores, Mercadorias e Futuros de São Paulo

CADE Conselho Administrativo de Defesa Econômica

CETIP Central de Custódia e de Liquidação Financeira de Títulos

CNAE Classificação Nacional das Atividades Econômicas

CSV Comma-Separated Values

CTEEP Companhoa de Transmissão de Energia Elétrica Paulista

CVM Comissão de Valores Mobiliários

DY Dividend Yield

EDA Exploratory Data Analysis

HTML HyperText Markup Language

IBGE Instituto Brasileiro de Geografia e Estatística

IDC International Data Corporation

JSON JavaScript Object Notation

NYSE New York Stock Exchange

P/L Preço pelo Lucro

ROE Retorno sobre o Patrimônio Líquido

SFN Sistema Financeiro Nacional

SQL Structured Query Language

URL Uniform Resource Locator

iii
Sumário

1 Introdução 13
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Fundamentação Teórica 16
2.1 Mercado Financeiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1 Sistema financeiro Nacional . . . . . . . . . . . . . . . . . . . . 16
2.1.2 Ações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.3 Análise Técnica e Fundamentalista . . . . . . . . . . . . . . . . 17
2.2 Tecnologias Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.2 Pacotes e Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2.1 Pandas . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2.2 Numpy . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2.3 Matplotlib . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2.4 Colab . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Ciência de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.1 Análise Exploratória . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Metodologia 21
3.1 Obtenção do Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.1 Web Scraping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Análise exploratória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.1 Limpeza dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.2 Divisão das Categorias . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.3 Análise e Escolha dos Indicadores . . . . . . . . . . . . . . . . . 25
3.3 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4 Resultados 34
4.1 Petróleo, Gás e Biocombustíveis . . . . . . . . . . . . . . . . . . . . . . 34
4.2 Bens Industriais e Materiais Básicos . . . . . . . . . . . . . . . . . . . . 35
4.3 Consumo Cíclico e Consumo Não Cíclico . . . . . . . . . . . . . . . . . 35
4.4 Utilidade Pública e Telecomunicação . . . . . . . . . . . . . . . . . . . . 36
4.5 Financeiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.6 Tecnologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.7 Saúde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

iv
4.8 Outros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Conclusão 39
Capítulo 1

Introdução

Mercado financeiro é todo o conjunto de compra e venda de ativos financeiros, sendo


o ambiente onde essas operações podem ser realizadas. Existe Valores mobiliários (ações,
opções e títulos), câmbio (moedas estrangeiras) e mercadorias (commodities) as quais é
possível investir (Assaf Neto,2014).
É possível investir de formas diferentes, sendo que, para a maioria dos investidores,
o objetivo é de aumentar os lucros e ter ganhos financeiros. Entretanto, existe um fator
que influencia as altas e baixas do mercado: as decisões humanas, que por meio dessas
é impossível encontrar uma fórmula que à defina. O que se torna viável e praticável
é entender como as pessoas agiram em determinada ocasião e tentar predizer qual será a
atitude para um caso semelhante. Para este trabalho, os dados, obtidos através do mercado
financeiro, foram explorados para gerar uma solução.
A questão maior é como podemos utilizar as informações sobre as ações financeiras
para gerar “insights”. Para isso, existe a ciência de dados.
De acordo com (CONWAY, 2010), para fazer ciência de dados é necessário conhe-
cimento interdisciplinar, tanto em computação, matemática, estatística e conhecimento
especifico na área a ser estudada.
Nesse contexto, é necessário entender como fazer ciência com dados e quais os passos
necessários para que haja a construção de um conhecimento sólido a partir desse processo.
A figura 1.1 descreve o ciclo de vida da ciência de dados, adaptado da universidade de
Berkeley por (JALES, 2019).
CAPÍTULO 1. INTRODUÇÃO 14

Figura 1.1: Ciclo de vida Ciência de dados

Fonte – Berkeley - adaptado

O cientista de dados precisa dominar o ciclo de vida e também dominar o conheci-


mento específico para o qual irá trabalhar, tornando assim sua trajetória direcionada e
projetada corretamente para as respostas de suas perguntas.

1.1 Motivação
Desde a antiguidade, o homem realiza transações de compra e venda, e com o pas-
sar dos anos essas operações foram mudando de plataformas, entretanto, a base teórica
permanece a mesma (Assaf Neto,2014), por esse motivo, é plausível a utilização da tec-
nologia para auxiliar aqueles com menor conhecimento a negociarem como as grandes
empresas e grandes investidores financeiros (HILPISCH, 2015).
A extração de dados não é uma tarefa fácil para esse caso, já que se utiliza de APIs
(Application programming interface) para coletar as informações sobre o mercado finan-
ceiro e assim gerando custo financeiro maior.
O objetivo deste trabalho, é entregar ao final um conjunto de ações que podem ser boas
opções de investimentos para os investidores. Utilizando dados obtidos diariamente no
período de um mês, a fim de gerar um modelo simplista para que seja fácil o entendimento,
ou seja, recomendar uma carteira de ações, separadas por segmento, auxiliando na escolha
CAPÍTULO 1. INTRODUÇÃO 15

do investidor.

1.2 Estrutura do Trabalho


Este capítulo, apresenta uma Introdução sobre o tema, mostrando os fatores que mo-
tivam a implantação da ideia, além da justificativa e dos objetivos. Em sequência, o
Capítulo 2 traz a fundamentação teórica necessária para o bom entendimento e introduz
a principal linguagem de programação utilizada nesse trabalho, as principais bibliotecas
e pacotes utilizadas no tratamento e visualização dos dados, bem como a análise explora-
tória dos dados. O Capítulo 3, por sua vez, explica a metodologia e todo o processo que
envolveu o tratamento e visualização dos dados. O Capítulo 4 trata dos resultados obtidos
a partir das análises e respostas geradas. Por fim, o Capítulo 5 traz as principais conclu-
sões e contribuições deste trabalho, como também uma proposta para trabalhos futuros.
A figura 1.2 descreve como o trabalho está disposto.

Figura 1.2: Diagrama do trabalho

Fonte: Elaborado pelo autor


Capítulo 2

Fundamentação Teórica

Nesse capítulo, serão abordados os principais temas necessários para o entendimento


desse trabalho. Explicando conceitos importantes sobre o mercado financeiro, definindo
o conceito de ação financeira, apresentando quais são os tipos de análises para o mercado
financeiro e qual será abordada neste trabalho, assim como as tecnologias utilizadas e por
fim definindo o que é ciência de dados.

2.1 Mercado Financeiro


2.1.1 Sistema financeiro Nacional
O Sistema Financeiro Nacional (SFN), é o conjunto de instituições financeiras e ins-
trumentos financeiros que visam, em última análise, transferir recursos dos agentes econô-
micos (pessoas, empresas, governo) superavitários (pessoas que emprestam) para os defi-
citários (pessoas que pegam emprestado) (Assaf Neto,2014).
A ADVFN (Advanced Financial Network), adota o padrão internacional de classifi-
cação econômica e social, permitindo que o investidor compare o desempenho de um
grupo de empresas listadas na BM&F Bovespa pertencentes a um mesmo setor econô-
mico com um grupo de empresas do mesmo setor listadas na NYSE, a Bolsa de Valores
de Nova Iorque, ou em qualquer outra Bolsa de Valores do Mundo. Apesar de ser um
padrão de classificação setorial diferente do sistema utilizado pela Bovespa, o padrão de
classificação setorial adotado pela ADVFN é semelhante ao sistema CNAE (Classifica-
ção Nacional das Atividades Econômicas) adotado pelo IBGE – Instituto Brasileiro de
Geografia e Estatística. (BM&FBOVESPA, 2016).

2.1.2 Ações
Segundo a (BM&FBOVESPA, 2016), ações são valores mobiliários emitidos por soci-
edades anônimas representativos de uma parcela do seu capital social. Em outras palavras,
são títulos de propriedade que conferem a seus detentores (investidores) a participação na
sociedade da empresa.
As ações são emitidas com o objetivo de obter recursos para o desenvolvimento de
projetos que viabilizam o crescimento da empresa. Existem dois principais tipos de ações,
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 17

as ordinárias que dão direito ao voto nas assembleias e as preferenciais que permitem o
recebimento preferencial de dividendos. Dividendo, é uma parte do lucro da empresa que
é distribuído entre os acionistas (portadores da ação). Cada empresa é representada por
uma sigla onde o número no final desta, simboliza se a ação é ordinária ou preferencial.
Por exemplo a Petrobras, representada pelas siglas PETR, é ordinária quando terminada
em 3 (PETR3) e preferencial quando terminada em 4 (PETR4) (Assaf Neto,2014).
A B3 (Brasil Bolsa Balcão), é o órgão responsável pela negociação de ações e foi
criado a partir da fusão da BM&FBOVESPA (Bolsa de Valores, Mercadorias e Futuros
de São Paulo) com a CETIP (Central de Custódia e de Liquidação Financeira de Títulos),
aprovada pela CVM (Comissão de Valores Mobiliários) e pelo Conselho Administrativo
de Defesa Econômica (CADE) em 22 de março de 2017.

2.1.3 Análise Técnica e Fundamentalista


Enquanto a análise técnica, também conhecida como análise gráfica, estuda os movi-
mentos do mercado por meio dos gráficos e, com base nisso, tenta prever os preços futuros
dos ativos no curto, médio e longo prazo negociados em Bolsa, a análise fundamentalista
é focada em estudar os aspectos financeiros e econômicos das companhias emissoras das
ações no médio e longo prazo.
A análise técnica, é formada por um conjunto de ferramentas gráficas que estudam
o preço e o volume dos ativos. Por meio dela, é possível encontrar a tendência de um
determinado papel (uma ação) baseando-se no volume, quantidade de ativos disponíveis
para negociação na Bolsa, e na oferta, que é a quantidade de compradores interessados.
A análise fundamentalista, é aquela que estuda os fatores econômicos e a saúde fi-
nanceira das empresas listadas na Bolsa. Ela consegue projetar os resultados no longo e
médio prazo e, assim, determinar um preço justo para as ações, levando em consideração
os aspectos macro e microeconômicos que impactam diretamente em seu desempenho na
Bolsa.
Os analistas fundamentalistas analisam os fatores da economia, como taxa de juros,
inflação, decisões públicas, as informações do setor em que a empresa em análise atua e
por fim, os aspectos qualitativos e quantitativos da organização, como balanços, receitas,
lucros, administração, entre outros.

2.2 Tecnologias Utilizadas


2.2.1 Python
Segundo (Python org, 2019), Python é uma linguagem de programação interpretada
e de alto , orientada a objetos e de alto nível com semântica dinâmica. Suas estruturas
de dados, combinadas com digitação dinâmica e ligação dinâmica, a tornam muito atra-
ente para o Desenvolvimento rápido de aplicativos, bem como para ser usado como uma
linguagem de script ou “cola” para conectar componentes existentes juntos. A sintaxe
simples e fácil de aprender do Python enfatiza a legibilidade e, portanto, reduz o custo de
aprendizagem e financeiro, já que é código aberto. O Python suporta módulos e pacotes, o
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 18

que incentiva a modularidade do programa e a reutilização de código. O intérprete Python


e a extensa biblioteca padrão estão disponíveis na fonte ou no formato binário, sem custo
para todas as plataformas principais e pode ser distribuído gratuitamente.
Foi escolhido o Python para a análise, justamente por ser simples seu entendimento,
além de proporcionar menor custos de tecnologia no setor financeiro, já que é open source.
Existem bibliotecas que facilitam o uso da tecnologia para novos negócios e inovação, mi-
nimiza a distância entre tecnologia e o setor financeiro e aumenta a velocidade, a frequên-
cia e volumes dos dados e cria possibilidades para a ascensão da análise em tempo real
(HILPISCH, 2015).
De acordo com (VANDERPLAS, 2016), a utilidade do Python para a ciência de dados
advém principalmente do grande e ativo ecossistema de pacotes de terceiros: NumPy
para manipulação de dados baseados em arrays com um único tipo de variável, Pandas
para manipulação de dados heterogêneos e Matplotlib para visualizações de qualidade de
publicação.

2.2.2 Pacotes e Bibliotecas


Para a realização desse trabalho foram utilizadas algumas bibliotecas, como repre-
sentado na figura 2.1, principalmente para a captura dos dados, sendo assim, essa seção
abordaremos as principais para as análises:

Figura 2.1: Bibliotecas e pacotes

Fonte = Elaborado pelo autor

2.2.2.1 Pandas
A biblioteca do Pandas, de acordo com a documentação (PANDASTEAM, 2011),
proporciona estruturas de dados e ferramentas de análise de dados de alta performance.
As estruturas básicas desse pacote são os objetos chamados de DataFrames. Esses objetos
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 19

são estruturas que podem ser visualizadas como tabelas e possuem diferentes maneiras de
serem acessadas e posteriormente modificadas.

2.2.2.2 Numpy
O NumPy, fornece um objeto de matriz multidimensional para armazenar dados ho-
mogêneos ou dados heterogêneos; também fornece métodos otimizados para operar neste
objeto de matriz (HILPISCH, 2015).

2.2.2.3 Matplotlib
Esta é a biblioteca de visualização e gráfica mais popular para o Python, fornecendo
tanto Recursos de visualização 2D como 3D (HILPISCH, 2015).

2.2.2.4 Colab
O Colab, é uma ferramenta de pesquisa para machine learning criado pelo google.
Ele é executado no próprio navegador e pode ser usado tanto no google chrome, firefox
quanto no safari. Sua utilização é gratuita e além de fornecer um ambiente simples e fácil
de usar, permite a utilização de placa de vídeo para projetos mais complexos (COLAB,
2014).

2.3 Ciência de Dados


É uma ciência que visa estudar as informações, seu processo de captura, transfor-
mação, geração e, posteriormente, análise de dados. A ciência de dados envolve diversas
disciplinas sendo interdisciplinar e unificando a computação, estatística, matemática e co-
nhecimento especifico. O diagrama de Venn na figura 2.2 representa melhor esse conceito
(CONWAY, 2010).
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 20

Figura 2.2: Diagrama de Venn - Ciência de dados

Fonte – Blog Drew Conway - adaptado

2.3.1 Análise Exploratória


A análise exploratória dos dados, se refere ao conjunto de técnicas e práticas iniciais
referentes às investigações dos dados, a fim de, descobrir padrões, identificar possíveis
anomalias, testar hipóteses e checar suposições. Através de técnicas estatísticas, os dados
que inicialmente parecem confusos e desorganizados, são sumarizados, resumidos e por
fim representados em forma de tabelas e gráficos. Essa análise busca construir uma narra-
tiva a partir das informações obtidas e o cientista de dados se utiliza da parte visual como
meio facilitador na compreensão da história contada (VANDERPLAS, 2016).
Capítulo 3

Metodologia

Nesse capítulo, será abordada a metodologia para a realização desse trabalho. Apre-
sentando a captura dos dados, a limpeza e organização, os indicadores financeiros, assim
como os setores escolhidos e a fórmula que define o valor da ação. O diagrama na figura
3.1 defini como o trabalho está disposto:

Figura 3.1: Diagrama do trabalho

Fonte: Elaborado pelo autor

3.1 Obtenção do Banco de Dados


Parte fundamental do trabalho, considerando que sem os dados seria impossível reali-
zar a análise exploratória de dados.
Existem diversas formas para a criação do banco de dados, pode ser utilizado arquivo
em CSV (Comma-separated values), arquivo em JSON (JavaScript Object Notation) ou
CAPÍTULO 3. METODOLOGIA 22

ainda APIs. Além dos especificados, existem sites como o Kaggle que fornece uma grande
quantidade de banco de dados que podem ser utilizados para determinadas pesquisas e
estudos, sendo que, sua principal funcionalidade é de realizar competições para a ciência
de dados. E por fim, existe a técnica de web scraping que será a utilizada para esse
trabalho.

3.1.1 Web Scraping


Segundo (MITCHELL, 2018), a coleta automatizada de dados da Internet é quase tão
antiga quanto a própria internet. Embora, a web scraping não seja um termo novo, nos
últimos anos a prática foi mais comumente conhecida como screen scraping, data mining,
web harvesting entre outros. Hoje, o consenso geral definiu a captura de dados da web
como web scraping (MITCHELL, 2018).
É uma técnica utilizada para coletar dados que consulta um servidor Web, solicita
dados, geralmente na forma de HTML (HyperText Markup Language) e outros arquivos
que compõem páginas da Web e analisa esses dados para extrair as informações neces-
sárias. Implementar um programa que faça web scraping ou fazer web scraping abrange
mais áreas. Para esse trabalho, foi necessário a implementação de uma coleta automati-
zada justamente por ser a bolsa de valores brasileira onde os bancos de dados são pagos.
Visando a economia de custo, web scraping foi implementada para capturar os dados do
site (FUNDAMENTUS, 2019), entretanto, não existia dados passados, sendo assim uma
coleta diária foi realizada.
Para a realização da requisição http, foi necessário a URL (Uniform Resource Loca-
tor), a qual representa o endereço onde o site está, e o mesmo utiliza cookies, sendo assim
algumas técnicas a mais foram necessárias, como exemplo temos a figura 3.2.

Figura 3.2: Request para o site

Fonte: Elaborado pelo autor

A função urllib.parse.urlencode(), conforme figura 3.4, tem como objetivo converter


tuplas em uma série de pares chave e valor. A variável data é uma lista com todos os
parâmetros de busca das ações. ISO-8859-1 é o padrão na qual o site está codificado e
portanto precisa ser convertido para UTF-8
Esse bloco, na figura 3.4, é responsável pela comparação e captura de texto do site. É
a partir dele que obtemos todas as informações, entretanto ainda não estão organizadas,
apenas fragmentadas.
O laço representado na figura 3.5 é o mais importante do algoritmo, já que é nele onde
conseguimos separar as informações do site em uma lista ordenada OrderedDict(), cada
elemento é obtido através do getchildren() que por sua vez, gera o valor correto que deve
pertencer a cada elemento.
CAPÍTULO 3. METODOLOGIA 23

Figura 3.3: Conversão das tuplas

Fonte: Elaborado pelo autor

Figura 3.4: Captura de informações

Fonte: Elaborado pelo autor

Por fim, basta colocar a lista em um DataFrame, uma estrutura de dados tabular, e
salvar como CSV. Perceba que essa coleta é de apenas um dia, mais especificamente de
uma determinada coleta. A figura 3.6 representa essa etapa.
CAPÍTULO 3. METODOLOGIA 24

Figura 3.5: Laço principal

Fonte: Elaborado pelo autor

O site (FUNDAMENTUS, 2019) faz sua atualização duas vezes ao dia e portanto,
temos os dados na abertura e fechamento do mercado. Para a captura automatizada foi
utilizado um crontab, que é um arquivo de configuração do UNIX (Sistema operacional)
que programa a execução automática do Script a seguir temos na imagem 3.7 a chamada
para alterar o arquivo de configuração e na imagem 3.8 a linha do crontab responsável
pela execução do algoritmo.
Com o objetivo de obter os dados de abertura e fechamento o crontab foi programado
para às 10 horas e às 19 horas todos os dias de segunda a sexta durante o mês inteiro.

3.2 Análise exploratória


3.2.1 Limpeza dos Dados
A partir da obtenção de dados, como descrito na seção anterior foi necessário encon-
trar uma forma de deixar claro e utilizável os dados obtidos. Como eram 60 DataFrames
em 60 arquivos CSV, abertura e fechamento de cada dia no período de 30 dias, foi neces-
sário unir todos através do comando concat(). Com isso, apenas um Dataset (DataFrame)
foi criado e assim facilitando a análise exploratória.
CAPÍTULO 3. METODOLOGIA 25

Figura 3.6: Colocando em um DataFrame

Fonte: Elaborado pelo autor

Figura 3.7: Chamada do crontab no UNIX

Fonte = Elaborado pelo autor

3.2.2 Divisão das Categorias


Como o mercado financeiro possui diversas categorias, suas análises necessitam ser
separadas. Sendo assim, os dados aqui presentes foram divididos em 8 setores. São eles,
conforme tabela 3.1 :
Tabela 3.1: Setores

Setor
1 Petróleo, Gás e Biocombustíveis
2 Bens Industriais e Materiais Básicos
3 Consumo Cíclico e Consumo Não Cíclico
4 Utilidade Pública e Telecomunicação
5 Financeiro
6 Tecnologia
7 Saúde
8 Outros

3.2.3 Análise e Escolha dos Indicadores


Com os dados todos unidos, onde as linhas são as ações e as colunas as features,
percebeu-se que, seria mais viável trabalhar com a média das cotações entre abertura e
fechamento, gerando uma média para cada ação, já que assim, é possível gerenciar o risco
de investimento com base em sua cotação e também o retorno esperado, segundo (Assaf
Neto,2014), o retorno esperado é justamente a média das cotações de um determinado
ativo (ação).
Outro fator levado em consideração é a teoria de Markowitz que afirma que quando
um determinado ativo possuir o mesmo retorno esperado que outro a preferência fica para
o com o menor risco.
CAPÍTULO 3. METODOLOGIA 26

Figura 3.8: Programação da execução do arquivo

Fonte = Elaborado pelo autor

Risco :
s
∑N
i=1 (xi − x̄)
2
(3.1)
N −1
Onde N é o número total de amostra por ação durante o período calculado , xi são as
cotações diárias e x̄ é a média das cotações.
Retorno esperado:
∑N
i=0 (xi )
(3.2)
N
Onde N é o número total de amostra por ação durante o período calculado e xi são as
cotações diárias.
Em seguida, foi necessário entender como os dados estavam dispostos e encontrar
quais seriam os parâmetros a serem utilizados para a análise, para assim, encontrar uma
relação de índices que poderiam ser utilizados considerando indicadores eficientes se-
gundo (Assaf Neto,2014). Com base nisso, alguns indicadores foram selecionados:

Tabela 3.2: Indicadores

Índice
1 P/L
2 DY(%)
3 ROE(%)
4 Pat.Liq
5 Liq.2m.
6 Cresc. 5a (%)

Esses foram os 6 indicadores escolhidos para análise, onde P/L é o preço pelo lucro,
um dos mais utilizados no mercado financeiro, informando em quanto tempo a ação se
pagará. Exemplo: Um P/L 4, afirma ao investidor que aquele papel levará 4 anos para os
lucros cobrirem seus investimentos.
A figura 3.9 representa uma análise para o indicador P/L utilizando a função describe
do (Pandas):
Na figura 3.10 temos a visualização mais exata de como estão distribuídos os dados
do indicador P/L, utilizando a função boxplot da biblioteca matplotlib.
CAPÍTULO 3. METODOLOGIA 27

Figura 3.9: Descrição do P/L

Fonte: Elaborado pelo autor

Figura 3.10: Box Plot do P/L

Fonte: Elaborado pelo autor

Perceba que a distribuição do P/L está bem homogênea e sua mediana próximo de 10,
percebe-se assim, que os valores mais significantes estão entre 2 e 15.
O Dividend Yield (DY) é o dividendo pago por ação dividido pelo preço da ação. É o
rendimento gerado ao dono da ação pelo pagamento de dividendos.
A figura 3.11 representa uma análise para o indicador DY utilizando a função describe
do (Pandas):
Na figura 3.12 temos a visualização mais exata de como estão distribuídos os dados
do indicador DY, utilizando a função boxplot da biblioteca matplotlib.
CAPÍTULO 3. METODOLOGIA 28

Figura 3.11: Descrição do DY

Fonte: Elaborado pelo autor

Figura 3.12: Box Plot do DY

Fonte: Elaborado pelo autor

Perceba que a distribuição do DY tende a ficar mais baixo entre 0 e 4 e sua mediana
próximo de 2, sendo assim, os valores mais significantes estão acima da mediana.
O Retorno sobre o Patrimônio Líquido (ROE) é o lucro líquido dividido pelo Patrimô-
nio líquido. É responsável por calcular a rentabilidade de uma empresa a outra desde que
sejam do mesmo setor, um índice muito importante para ver como é o crescimento da
empresa.
A figura 3.13 representa uma análise para o indicador ROE utilizando a função des-
cribe do (Pandas):
CAPÍTULO 3. METODOLOGIA 29

Figura 3.13: Descrição do ROE

Fonte: Elaborado pelo autor

Na figura 3.14 temos a visualização mais exata de como estão distribuídos os dados
do indicador ROE, utilizando a função boxplot da biblioteca matplotlib.

Figura 3.14: Box Plot do ROE

Fonte: Elaborado pelo autor

Perceba que a distribuição do ROE é mais homogênea e sua mediana próximo de 10,
sendo assim, os valores mais significantes estão acima da mediana.
O Patrimônio Líquido (Pat.Liq) representa os valores que os sócios ou acionistas têm
na empresa em um determinado momento. No balanço patrimonial, a diferença entre
valor dos ativos e dos passivos e resultado de exercícios futuros representa o Patrimônio
Líquido, que é o valor contábil devido pela pessoa jurídica aos sócios ou acionistas.
A figura 3.15 representa uma análise para o indicador Pat.Liq utilizando a função
describe do (Pandas):
Na figura 3.16 temos a visualização mais exata de como estão distribuídos os dados
do indicador Pat.Liq, utilizando a função boxplot da biblioteca matplotlib.
CAPÍTULO 3. METODOLOGIA 30

Figura 3.15: Descrição do Pat.Liq

Fonte: Elaborado pelo autor

Figura 3.16: Box Plot do Pat.Liq

Fonte: Elaborado pelo autor

Perceba que a distribuição do Pat.Liq é mais homogênea e sua mediana próximo de


2 ∗ 109 , sendo assim, os valores mais significantes estão acima da mediana.
O (Liq.2m.) é justamente o patrimônio líquido dos últimos dois meses da empresa,
representa de maneira mais sucinta como está o andamento da companhia em um curto
espaço de tempo recente.
A figura 3.17 representa uma análise para o indicador Liq.2m. utilizando a função
describe do (Pandas):
Na figura 3.18 temos a visualização mais exata de como estão distribuídos os dados
do indicador Liq.2m., utilizando a função boxplot da biblioteca matplotlib.
CAPÍTULO 3. METODOLOGIA 31

Figura 3.17: Descrição do Liq.2m.

Fonte: Elaborado pelo autor

Figura 3.18: Box Plot do Liq.2m.

Fonte: Elaborado pelo autor

Perceba que a distribuição do Liq.2m. tende a ficar mais para baixo e sua mediana
próximo de 4 ∗ 105 , sendo assim, os valores mais significantes estão acima da mediana.
Por último temos o Cresc. 5a que é o crescimento da receita Liquida nos últimos
cinco anos.
A figura 3.19 representa uma análise para o indicador Cresc.5a utilizando a função
describe do (Pandas):
Na figura 3.20, temos a visualização mais exata de como estão distribuídos os dados
do indicador Cresc.5a, utilizando a função boxplot da biblioteca matplotlib.
CAPÍTULO 3. METODOLOGIA 32

Figura 3.19: Descrição do Cresc.5a

Fonte: Elaborado pelo autor

Figura 3.20: Box Plot do Cresc.5a

Fonte: Elaborado pelo autor

Perceba que a distribuição do Cresc.5a é mais homogênea e sua mediana próximo de


4, sendo assim, os valores mais significantes estão acima da mediana.
A partir dessas análises, os dados ficaram dispostos conforme figura 3.21, já que os
indicadores foram selecionados e toda parte de EDA (Exploratory Data Analysis) finali-
zada.

3.3 Algoritmo
Após a obtenção dos gráficos e análise anteriores é possível perceber que cada in-
dicador tem sua característica e levando em consideração outros aspectos da teoria do
mercado financeira descrita por (Assaf Neto,2014) alguns indicadores, para serem consi-
derados, precisam possuir uma certa fórmula para encontrar a melhor ação.
O P/L por exemplo, deve estar entre 2 e 15, já o demais indicadores precisam ser maior
CAPÍTULO 3. METODOLOGIA 33

Figura 3.21: Dados após EDA

Fonte: Elaborado pelo autor

que a metade dos dados, já que quanto maior ele for melhor será a ação. Sendo assim, foi
proposta a seguinte fórmula, descrita na figura 3.22, para a obtenção das melhores ações.

Figura 3.22: Fórmula da análise

Fonte: Elaborado pelo autor

Perceba que, para a criação dessa fórmula alguns conceitos de análise financeira foram
utilizados, e por esse motivo, o P/L se encontra em uma escala entre 2 e 15 como os
melhores e os demais indicadores utilizam a mediana como parâmetro de comparação,
considerando que para encontrar a melhor ação é necessário que a mesma esteja acima
dos 50% melhores daquele setor.
Capítulo 4

Resultados

Esse capítulo é reservado para apresentação e discussão dos resultados obtidos.


Como o objetivo era entregar de forma simples as melhores ações separadas por ca-
tegoria, obtivemos através da fórmula descrita no capítulo anterior um novo índice deno-
minado value, conforme figura 3.22, que representa o nível que o papel possui dentre os
demais.
Outro fator importante a ser considerado é que o índice P/L teve maior peso para a
definição desse value, sendo assim, temos os seguintes resultados para cada setor:

4.1 Petróleo, Gás e Biocombustíveis


Ao total foram 11 ações selecionadas para esse setor, com base nisso, as cinco melho-
res estão descritas conforme figura 4.1:

Figura 4.1: Melhores do Petróleo

Fonte: Elaborado pelo autor

Observe que temos dentre as selecionas a PETR3 e PETR4, ambas são da Petrobras,
entretanto é importante avaliarmos o value da ação e não somente, mas como o risco e a
sua cotação também pois são esses que definem a escolha segundo a teoria de Markowitz.
Sendo assim, percebemos que BDRT3 é uma excelente opção para investir, possui todos
os indicadores propostos na seção anterior e um risco baixo, juntamente com uma cotação
próxima a da Petrobras. Levando isso mais perto do real, foi verificado que BDRT é a BR
distribuidora Petrobras, possui 37% das ações da Petrobras e é a maior distribuidora de
petróleo do país.
CAPÍTULO 4. RESULTADOS 35

4.2 Bens Industriais e Materiais Básicos


Ao total foram 102 ações analisadas para esse setor. Com base nessa análise 5 dessas
foram escolhidas como as melhores, conforme figura 4.2.

Figura 4.2: Melhores dos Bens Industriais

Fonte: Elaborado pelo autor

Nessa caso, como o value foi igual para certas ações o segundo critério utilizado é o
Risco(%), justamente pois, quanto menor o risco melhor. Sendo assim, temos a KLBN
representando a empresa Klabin de papel e celulose, grande potência no mercado e exce-
lente opção de investimento. Perceba que, aqui temos KLBN4 e KLBN11, a diferença é
que a com final 4 é apenas preferencial, e a com final 11 é uma Unit (pacote com ações
preferenciais e ordinárias).

4.3 Consumo Cíclico e Consumo Não Cíclico


Ao todo foram analisadas 107 ações, dentre essas, 5 foram escolhidas como as me-
lhores conforme figura 4.3:

Figura 4.3: Melhores do Consumo

Fonte: Elaborado pelo autor

Dentre as 5 temos a SLCE (SLC Agrícola) uma das maiores produtoras agrícolas do
Brasil, a empresa possui 460.600 hectares de terras cultiváveis. Foi a primeira empresa
do setor (grãos e algodão) cujas ações foram negociadas em bolsa de valores. Sendo, uma
das melhores opções para se investir.
CAPÍTULO 4. RESULTADOS 36

4.4 Utilidade Pública e Telecomunicação


Foram analisadas 77 ações, e as 5 melhores estão dispostas conforme figura 4.4:

Figura 4.4: Melhores da Utilidade Pública

Fonte: Elaborado pelo autor

Dentre as 5 temos a TRPL - CTEEP (Companhia de Transmissão de Energia Elétrica


Paulista) é uma concessionária de transmissão de energia elétrica. A companhia é respon-
sável pelo transporte anual de cerca de 25% de toda a energia elétrica produzida no país.
Também responde por 60% da energia consumida na Região Sudeste e quase 100% no
Estado de São Paulo. Sendo então, uma ótima opção de investimento.

4.5 Financeiro
Foram avaliadas 86 ações. Onde 5 foram selecionadas como as melhores, segundo a
figura 4.5:

Figura 4.5: Melhores do Financeiro

Fonte: Elaborado pelo autor

Dentre as cinco melhores, temos a ITSA (Itaúsa) que é uma empresa de holding,
companhia dona de outras empresas. As principais empresas que a Itaúsa controla são
o Itaú Unibanco, Duratex e Alpargatas. Sendo portanto, uma empresa consolidada e
excelente opção de investimento.
CAPÍTULO 4. RESULTADOS 37

4.6 Tecnologia
Nesse, apenas 4 foram definidas e analisadas para o setor tecnologia. Portanto para
esse caso em específico temos todas as ações da amostra. Conforme figura 4.6:

Figura 4.6: Melhores da Tecnologia

Fonte: Elaborado pelo autor

A Linx SA (LINX3) classificada como a melhor nesse caso, é uma empresa brasileira
de software de gerenciamento e a maior casa de software em sistemas de gerenciamento
de varejo da América Latina. Segundo a empresa americana de consultoria em tecnologia
IDC (International Data Corporation), a Linx retém 40,2% do software de gerenciamento
de varejo no Brasil. Em 2007, a Linx foi listada pela terceira vez no relatório anual Valor
1000, que lista as 1000 maiores empresas brasileiras.

4.7 Saúde
Ao total foram analisadas 18 ações, e selecionada as melhores 5 conforme figura 4.7:

Figura 4.7: Melhores da Saúde

Fonte: Elaborado pelo autor

Dentre as cinco melhores temos como melhor a FLRY3 (Fleury) é uma das maio-
res e mais tradicionais empresas de medicina diagnostica do País. Em 2019, o Grupo
Fleury conquistou, na categoria Saúde, o prêmio “Melhores Empresas da Bolsa”. Sendo
selecionada, nesse trabalho como a melhor no setor saúde.
CAPÍTULO 4. RESULTADOS 38

4.8 Outros
Para o caso outros apenas 16 entraram nesse quesito e entre essas 5 foram seleciona-
das como as melhores, conforme figura 4.8:

Figura 4.8: Melhores dos Outros

Fonte: Elaborado pelo autor

A maioria das ações classificadas como outros são do tipo holding, como explicado
anteriormente são empresas que possuem diversas empresas. Sendo assim, temos como
melhor a ATOM que é classificada como holding, mas sua atuação é no setor financeiro
e sua principal função é justamente a de aquisição de novas empresas. Sendo então, uma
ótima opção de investimento.
Capítulo 5

Conclusão

Como mostrado no desenvolvimento deste trabalho, a obtenção dos dados, juntamente


com a análise exploratória de dados é um passo essencial para o desdobramento das ati-
vidades do cientista de dados. É a partir dela que se instaura uma sequência de limpeza,
reestruturação de informações, formulação de hipóteses de acordo com análises estatísti-
cas e posterior visualização dessas informações.
Juntando a análise estatística com a financeira foi possível encontrar as melhores ações
de maneira simples, gerando um conjunto de ações separados por categoria que facilitam e
auxiliam as tomadas de decisões para o mercado financeiro. Visto que no cenário atual do
país a renda fixa (investimento mais conservador) teve um grande declínio devido a queda
de suas taxas de juros, a renda variável (investimento em ações) se tornou mais atrativa
e sendo assim esse trabalho consegue auxiliar tanto os que possuem maior conhecimento
na área quanto os com menos experiências.
As dificuldades foram enfrentadas desde o início do trabalho foi uma das dificuldade
obter um banco de dados, já que os dados do mercado financeiro não são disponibilizados
de maneira simples para análises e os que existem, possuem custo muito alto. Depois
de resolvida essa questão, iniciaram-se os problemas com a manipulação dos dados, e a
seleção de como eles seriam projetados. Porém, sua manipulação e organização se deram
de forma satisfatória.
Outra dificuldade encontrada foi a seleção das categorias, conseguir separar correta-
mente a qual categoria determinada ação pertencia, foi um trabalho custoso e manual. E
sendo assim chegamos a elaboração do algoritmo de análise que gerou um valor para cada
ação, que foi extremamente efetivo.
Por fim, uma proposta de trabalho futuro é a ampliação dos dados, gerando a execução
do arquivo fundamentus.py o Web Scraping durante um período maior e em uma máquina
como o supercomputador da UFRN, gerando assim um quantidade muito maior de dados
deixando mais eficiente. Além da obtenção maior seria possível encontrar e testar ou-
tros algoritmos utilizando machine learning validando assim sua eficiência, utilizando o
conceito de 70% dos dados para treino e 30% para teste, da biblioteca do scikit-learn.
Referências Bibliográficas

Assaf Neto, Alexandre. Mercado Financeiro. 4. ed. - São Paulo : Atlas, 2001

LOUKIDES, M. What is Data Science?. 1. ed. United States of America: O’Reilly Media,
2016.

CONWAY, D. The Data Science Venn Diagram. 2010. http://drewconway.com/zia/


2013/3/26/the-data-science-venn-diagram. Accessed: 2019-20-10.

JALES,D. M. Abordagens para análise de dados geográficos em transportes urbanos,


UFRN, 2019

BMFbovespa, Ações. 2010. http://www.bmfbovespa.com.br/pt_br/produtos/listados-a-


vista-e-derivativos/renda-variavel/acoes.htm. Accessed: 2019-20-10.

INVESTING. B3 fusão 2017. https://br.investing.com/news/mercado-de-


a%C3%A7%C3%B5es-e-financeiro/cvm-aprova-fus%C3%A3o-entre-bm-
amp;fbovespa-e-cetip-234503. Accessed: 2019-20-10.

VANDERPLAS, J. Python Data Science Handbook. 1. ed. United States of America:


O’Reilly Media, 2016.

Python, Org. 2019. https://www.python.org/doc/essays/blurb/. Accessed: 2019-22-10.

PANDASTEAM. pandas powerful Python data analysis toolkit. 2011. http:


//pandas.pydata.org/pandas-docs/stable/. Accessed: 2019-22-10.

HILPISCH, Y. Python for Finance. 1. ed. United States of America: O’Reilly Media,
2015.

COLAB, Google. 2014. https://colab.research.google.com. Accessed: 2019-22-10.

DAVILA, V. H. L. Estatística Descritiva. 2019. https://www.ime.unicamp.br/ hla-


chos/estdescr1.pdf. Accessed: 2019-22-10.

MITCHELL, R. Web Scraping with Python. 2. ed. United States of America: O’Reilly
Media, 2018.

FUNDAMENTUS, 2019. https://www.fundamentus.com.br Accessed: 2019-22-10.

Você também pode gostar