Você está na página 1de 86

INSPER

Instituto de Ensino e Pesquisa

Guilherme Sola dos Santos

INTELIGÊNCIA ARTIFICIAL APLICADA NO MERCADO FINANCEIRO

São Paulo

2015
Guilherme Sola dos Santos

Inteligência Artificial Aplicada no Mercado Financeiro

Trabalho de conclusão de curso de


Graduação para aprovação na
matéria de Monografia - Insper

Orientador:
Prof. Dr. Marco Antonio Leonel
Caetano – Insper

São Paulo

2015
Guilherme Sola dos Santos

Inteligência Artificial Aplicada no Mercado Financeiro

Trabalho de conclusão de curso de


Graduação para aprovação na
matéria de Monografia - Insper

Orientador:
Prof. Dr. Marco Antonio Leonel
Caetano – Insper

Data de Aprovação:__/__/____

Banca Examinadora

_________________________________

Marco Antonio Leonel Caetano


Prof. Dr.
Insper

_________________________________

Raul Ikeda Gomes da Silva


Professor
Insper

_________________________________

Leonidas Sandoval Junior


Professor
Insper
Eu dedico esse trabalho aos meus
amigos e família, em especial aos
meus pais, irmã e namorada.
4

AGRADECIMENTOS

Agradeço ao Insper e comunidade, especialmente ao professor Marco Antonio


Leonel Caetano pela orientação e por ser um mentor para mim. Agradeço aos
meus amigos próximos, que me ajudaram em diversos momentos durante a
produção desse trabalho. Agradeço aos meus pais, que sempre me apoiaram e me
ofereceram tudo o que foi necessário eu para chegar até aqui e minha irmã e
namorada por todo o apoio. Muito Obrigado.
5

RESUMO

SANTOS, Guilherme Sola dos Santos. Inteligência artificial aplicada no mercado


financeiro. São Paulo, 2015. 85p. Monografia – Faculdade de Economia e
Administração, Insper Instituto de Ensino e Pesquisa.

Nesse trabalho estudamos a capacidade da lógica fuzzy ser usada no


mercado de ações, principalmente na bolsa brasileira. Para tal, foram realizados
diversos testes com diferentes tipos de carteiras de investimentos baseadas em
ativos do Brasil e dos EUA para que fosse possível comparar os resultados. Dentre
estes testes, foram simuladas previsões a partir de retornos de dias passados e
intradiários, utilizando códigos programados em Matlab e em VBA-Excel. Além
disso, o trabalho traz luz e visão acadêmica para uma ferramenta atual, no sentido
de tornar prática a utilização e confrontá-la com a metodologia tradicional de
investimentos em portfólios de ações.

Palavras-chave: lógica fuzzy, testes, previsão


6

ABSTRACT

In this work we studied the capability of fuzzy logic being used in stock markets, and
particularly the Brazilian stock Market. To do that, many tests were made with
different types of portfolios based on Brazilian and American assets to make
possible various ways of comparison. Price previsions were simulated from daily
and intraday returns, using programed codes at Matlab and VBA-Excel. This work is
an academic version for these new tools of fuzzy logic to show practical results,
making possible to compare this new methodology with other classic ones used to
forecast stock market portfolios returns.
7

Lista de Ilustrações

Figura 1 - Conjuntos e interpretação de funções de pertinência ............................. 18


Figura 2 – Exemplos de sobreposição de funções de pertinência .......................... 18
Figura 3 – Exemplos dos tipos de função de pertinência ........................................ 19
Figura 4 – Métodos de deffuzyficação..................................................................... 20
Figura 5 – Abertura da interface fuzy no software Matlab ....................................... 21
Figura 6 – Definição do deffuzyficador na interface fuzzy do Matlab ...................... 21
Figura 7 – Adição de variáveis de entrada e/ou saída na interface fuzzy ............... 22
Figura 8 – Demonstração de renomeação de variáveis na interface fuzzy ............. 22
Figura 9 – Tela da interface fuzzy onde são editadas as funções de pertinência ... 23
Figura 10 – Adição de novas funções de pertinência na interface fuzzy ................. 24
Figura 11 – Adição de regras de decisão na interface fuzzy ................................... 24
Figura 12 – Características da deffuzyficação na interface fuzzy ........................... 25
Figura 13 – Modelagem do Problema ..................................................................... 26
Figura 14 – Escolha de dados a serem extraídos da Bloomberg ............................ 27
Figura 15 – Escolha das ações do banco de dados Bloomberg ............................. 27
Figura 16 – Exemplo de ações já selecionadas ...................................................... 28
Figura 17 – Definindo o tipo de série histórica dos dados ....................................... 29
Figura 18 – Definindo o período da série histórica .................................................. 29
Figura 19 – Finalização da extração de dados da Bloomberg ................................ 30
Figura 20 – Preços históricos (1000 d.u.) de PETR4, CIEL3, GGB4 e USIM5 ....... 31
Figura 21 – Exemplo gráfico das funções de pertinência escolhidas ...................... 33
Figura 22 – Fluxograma simplificado representativo da lógica fuzzy ...................... 34
Figura 23 – Lógica criada para estudos de retornos entre ações ........................... 37
Figura 24 – Exemplo de Excel que serve de entrada para programação em Matlab
(Planilha 1) .............................................................................................................. 40
Figura 25 – Exemplo de Excel deque serve de entrada para programação em
Matlab (Planilha 2) .................................................................................................. 40
Figura 26 – Variáveis básicas com capacidade de alteração pelo usuário ............. 41
Figura 27 – Lógica de leitura de ação pivô e adequação dos nomes dos gráficos . 42
Figura 28 – Leitura dos inputs em Excel ................................................................. 42
Figura 29 – Criação da lógica fuzzy ........................................................................ 42
8

Figura 30 – Definição de nome, domínio e funções de pertinência da variável de


entrada .................................................................................................................... 43
Figura 31 – Definição de nome, domínio e funções de pertinência da variável de
saída ....................................................................................................................... 44
Figura 32 – Gráficos de funções de pertinência ...................................................... 44
Figura 33 – Adição da matriz regra na programação .............................................. 44
Figura 34 – Criação dos gráficos de funções de pertinência ................................... 45
Figura 35 – Preparação dos retornos para leitura da lógica fuzzy .......................... 45
Figura 36 – Programa de execução da lógica fuzzy................................................ 46
Figura 37 – Cálculo do percentual de acertos ......................................................... 47
Figura 38 – Criação do gráfico de comparação entre previsão fuzzy e resultados
reais da ação pivô durante o período escolhido ...................................................... 47
Figura 40 – Exemplo de planilha resultado exportada ............................................ 48
Figura 41 – Retornos reais X Retornos fuzzy para USIM5...................................... 50
Figura 42 – Coluna de pesos na matriz regra ......................................................... 50
Figura 43 – Esquema exemplificando a consequência da alteração dos pesos das
regras ...................................................................................................................... 51
Figura 44 – Preços das ações da carteira diversificada nos 21 dias úteis de
simulação ................................................................................................................ 60
Figura 45 – Preços das ações da carteira diversificada nos 252 dias úteis de
simulação .............................................................................................................. 535
Figura 46 – Preços das ações da carteira setorial nos 21 dias úteis de simulação
558
Figura 47 – Preços das ações da carteira setorial nos 126 dias úteis de
simulação .............................................................................................................. 589
Figura 48 – Exemplificação da decisão de compra ou venda e retornos obtidos 5960
9

Lista de Tabelas

Tabela 1 - Leitura de determinados tipos de intervalos de retornos ........................ 32


Tabela 2 – Resultados médios de retornos de cada ação em relação aos retornos
da Pivô (PETR4) para cada intervalo ...................................................................... 32
Tabela 3 – Tradução dos resultados da tabela 2 em variáveis linguísticas ............. 33
Tabela 4 – Resultados médios de retornos de cada ação em relação aos retornos
da Pivô (PETR4) para cada intervalo ...................................................................... 38
Tabela 5 – Regras de transformação das variáveis linguísticas em números para
possível leitura pelo software Matlab ...................................................................... 38
Tabela 6 – Exemplo de matriz numérica de entrada para a programação Matlab .. 39
Tabela 7 – Correlação da carteira diversificada ...................................................... 49
Tabela 8 – Resultados da carteira diversificada para 21 dias úteis [D0] ................. 52
Tabela 9 – Resultados da carteira diversificada para 126 dias úteis [D0] ............... 53
Tabela 10 – Resultados da carteira diversificada para 252 dias úteis [D0] ............. 54
Tabela 11 – Volume médio de 252 dias úteis para as ações da carteira setorial
brasileira .................................................................................................................. 56
Tabela 12 – Correlação da carteira setorial ............................................................ 56
Tabela 13 – Resultados da carteira setorial para 21 dias úteis [D0] ....................... 57
Tabela 14 – Resultados da carteira setorial para 126 dias úteis [D0] ..................... 58
Tabela 15 – Tabela resumo dos resultados ............................................................ 61
Tabela 16 – Resultado exemplo de um Teste-F ..................................................... 63
Tabela 17 – Tabela resumo dos testes-F para comparação entre carteiras
diversificada e setorial ............................................................................................. 63
Tabela 18 – Resultado exemplo de um Teste-T ..................................................... 64
Tabela 19 – Tabela resumo dos testes-T para comparação entre carteiras
diversificada e setorial ............................................................................................. 64
Tabela 20 – Tabela resumo dos testes-F para comparação entre carteiras [D0] e
[D-1] ........................................................................................................................ 65
Tabela 21 – Tabela resumo dos testes-T para comparação entre carteiras [D0] e
[D-1] ........................................................................................................................ 66
Tabela 22 – Tabela resumo dos testes-T para comparação entre carteiras [D0] e
[D-1] ........................................................................................................................ 67
Tabela 23 – Intervalo de regras de decisão para teste de retornos intradiários ...... 67
Tabela 24 – Resultados da carteira intra-diárial para 21 dias úteis [D-1] ................ 68
10

Tabela 25 – Tabela resumo dos testes-F e testes-T para comparação entre


carteiras com ações brasileira [D-1] e carteira intra-diária ...................................... 68
11

Sumário

Capítulo 1 – Revisão Bibliográfica....................................................................... 13


Capítulo 2 – Teoria Fuzzy ..................................................................................... 17
2.1 – Funções de Pertinência ..................................................................... 17
2.2 – Defuzzificação.................................................................................... 19
2.3 – Aplicação ........................................................................................... 20
Capítulo 3 – Modelagem do Problema ................................................................. 26
3.1 – Aquisição dos Dados ......................................................................... 26
3.2 – Estudo de Correlações ...................................................................... 30
3.3 – Criação das Regras de Decisão Fuzzy ............................................. 31
3.4 – Definição das Funções de Pertinência das Ações ............................. 33
3.5 – Preparação da estatégia de ação fuzzy em Matlab ........................... 34
3.6 – Testes computacionais das estratégias de programação .................. 34
3.7 – Análise e discussão dos Resultados.................................................. 35
Capítulo 4 – Implementação Computacional ...................................................... 36
4.1 – Planilha de Excel ............................................................................... 36
4.2 – Ambiente Matlab ................................................................................ 39
4.2.1 – Preparando o Input ............................................................................ 39
4.2.2 – Programação Matlab.......................................................................... 41
4.2.3 – Planilha Exportada ............................................................................. 48
Capítulo 5 – Análise de Cenários ......................................................................... 49
5.1 – Testes com carteira diversificada....................................................... 49
5.1.1 – Correlação ......................................................................................... 49
5.1.2 – Ajuste de pesos de regra ................................................................... 50
5.1.3 – Resultado da Lógica Fuzzy para 21 dias úteis .................................. 52
5.1.4 – Resultado da Lógica Fuzzy para 126 dias úteis ................................ 53
5.1.5 – Resultado da Lógica Fuzzy para 252 dias úteis ................................ 54
5.2 – Testes com carteira constituida por ativos de um mesmo setor ........ 55
5.2.1 – Correlação ......................................................................................... 56
5.2.2 – Resultado da Lógica Fuzzy para 21 dias úteis .................................. 57
5.2.3 – Resultado da Lógica Fuzzy para 126 dias úteis ................................ 58
5.3 – Teste considerando dados de dias anteriores ................................... 59
12

5.4 – Comparação estatéstica dos resultados ............................................ 62


5.4.1 – Comparação dos retornos das carteiras diversificada e setorial ........ 62
5.4.2 – Comparação dos retornos das carteiras entre [D0] e [D-1]................ 65
5.5 – Testes com dados intradiários ........................................................... 66
Capítulo 6 – Conclusão e Discussões Finais...................................................... 69
Bibliografia ............................................................................................................ 71
Apêndice ................................................................................................................ 75
13

Capítulo 1 – Revisão Bibliográfica

O Mercado Financeiro proporciona grandes oportunidades de crescimento


patrimonial àqueles que se arriscam, mas para isso é necessário entendê-lo. Uma
das tentativas foi originada por Charles H. Dow entre 1900 e 1902 com a
formulação de sua teoria, que não foi concluída em questão de seu falecimento.
Entretanto, autores como Hamilton (1922) e Rhea (1932) continuaram os estudos
sobre Análise Técnica, que se baseia na observação de séries temporais,
ilustradas em gráficos, para a tomada de decisão.

Alguns anos depois, Graham & Dodd (1934) criaram uma nova hipótese,
tentando agora entender o mercado a partir de análises feitas com base nas
informações numéricas das empresas. Conhecido como Análise
Fundamentalista, esse estudo é feito a partir de balanços financeiros,
demonstrativos de resultados e fluxos de caixa.

Posteriormente, Markowitz (1952) escreveu sobre a teoria de carteiras,


modelo responsável pela criação de uma curva de carteiras ótimas para diversos
níveis de risco, baseado na racionalidade dos investidores em diversificar seus
ativos. Sharpe (1964) desenvolveu um modelo importante para o entendimento
do mercado financeiro, o CAPM (Capital Asset Pricing Model).

Logo a seguir, Fama (1970) cria a Hipótese da Eficiência de Mercado


(HEM), tentando entender o reflexo das informações nos preços dos ativos. Para
ele, nenhum ganho anormal deveria ser derivado de qualquer nova informação,
uma vez que todas já estariam refletidas nos preços.

Paralelamente a esses estudos, durante o século XX começou o advento


dos primeiros computadores. Graças à velocidade de cálculo, eles logo foram
adotados pelo mercado financeiro que, ano após ano, adota cada vez mais essa
tecnologia. Com o aumento da velocidade de transmissão de informações entre
bolsas e entre investidores, ocorreu o aumento de alguns riscos.

Em 1987, o uso dessa tecnologia foi considerado um dos motivos da crise


da bolsa conhecida como a primeira da era da informática, onde o número de
14

“trading programs” (programas ou algoritmos de negociações de ativos por


computador) foi muito grande. De acordo com Furbush (1989), como esses
programas estavam preparados para negociar futuro de índice baseado na
hipótese de arbitragem, a rápida queda dos índices durante o ápice da crise fez
com que os algoritmos disparassem, afetando um alto volume de negociações,
resultando em uma maior queda dos índices. Tal evento, além de comprovar o
potencial da capacidade e velocidade de reação dos “trading programs”, também
alertou o mercado para os novos riscos que acompanham a sua utilização.

Com a intenção de ajudar na tomada de decisão dos algoritmos,


responsáveis por muitas das operações em Wall Street hoje em dia, a
Inteligência Artificial (IA) começou a ganhar espaço no mercado financeiro. O
primeiro grande trabalho reconhecido como IA foi realizado por McCulloch &
Pitts (1943). Para Luger & Stubblefield (1993), inteligência artificial pode ser
definida como o ramo da ciência da computação que se preocupa com a
automação do comportamento inteligente.

Entre as técnicas de inteligência artificiais mais conhecidas está a Rede


Neural Artificial, estudada por Hebb (1949) e Rosemblatt (1958). Essas redes são
basicamente técnicas computacionais que apresentam um modelo matemático
inspirado na estrutura neural de organismos inteligentes e que adquirem
conhecimento através da experiência.

Outro método de inteligência bastante conhecido é o de Enxame de


Partículas (Particle Swarm Optimization – PSO) introduzido por Kennedy &
Eberhart (1995), que foi criado a partir da observação de população de animais,
como formigas e aves.

Por fim, um último exemplo de técnica de inteligência artificial é a Lógica


Fuzzy (Nebulosa). Lotfi Asker Zadeh (1965) foi o primeiro a nomeá-la dessa
maneira. Definida por Kwakernaak (1978) como uma generalização natural de
variáveis aleatórias, a fim de representar as relações entre os resultados de um
experimento aleatório e dados não estatisticamente relacionados; e por Li & Liu
(2006) como uma função mensurável a partir de uma probabilidade espacial para
o conjunto de variáveis nebulosas; a Lógica Fuzzy se baseia em funções que
utilizam graus de pertinência para a tomada de decisões.
15

Atualmente, diversos estudos estão sendo feitos para testar a capacidade


de estimação de tais algoritmos de inteligência artificial. Dentre eles alguns temas
se destacam, como a tentativa de previsão de volatilidade. Através da integração
entre a Lógica Fuzzy, Redes Neurais e EGARCH (Exponential Generalized
Autoregressive Conditional Heteroskedasticity), Dash et al (2015), encontrou um
modelo com maior potencial de previsão de volatilidade em comparação com
modelos tradicionais. Josip et al (2014) utilizou Redes Neurais com o objetivo de
capturar relações não lineares entre retornos passados e variância condicional,
conseguindo assim comprovar superioridade de estimação de variância entre
esse método em relação aos tradicionais. Além de previsão de volatilidade e
variância, Sumarti & Wahydudi (2014) estudaram o processo de tomada de
decisão na negociação de ações e opções com a utilização da Lógica Fuzzy
através de uma carteira simulada. A partir de seus resultados, concluíram que o
método apresenta uma boa capacidade em prever o preço dos ativos e que a
carteira simulada obteve retornos consideráveis.

Os estudos envolvendo inteligência artificial já são feitos para diversos


tipos de ativos e índices em países do mundo inteiro, dentre eles: (a) Alemanha,
onde Hafezi et al (2015) testaram a capacidade de previsão de Redes Neurais
para o índice DAX em um momento de crise financeira global; (b) México, Pulido
et al (2014) utilizaram um modelo híbrido de Lógica Fuzzy, Redes Neurais e
Enxame de Partículas na Bolsa Mexicana; (c) Indonésia, Napitulu & Wijaya
(2013) testaram a aplicação de Redes Neurais para prever o resultado de um
ativo; (d) Índia, onde Pradesh (2013) estudou a capacidade de previsão de ações
na bolsa indiana utilizando modelos baseados em Redes Neurais; (e) Istanbul,
Yunusoglu & Selim (2013) analisaram o potencial de decisão da Lógica Fuzzy
para investimentos de médio prazo na bolsa de Istanbul, considerando aversão a
risco. Os pesquisadores compararam os resultados com os obtidos através de
outras estratégias ou em relação a determinados índices e, em todos os casos,
as inteligências artificiais mostraram uma capacidade de previsão melhor do que
os benchmarkings. Tal fato deixa explícito o potencial de tais inteligências para
aplicações no mercado financeiro global.
16

Hassan et al (2013) propôs, inclusive, um modelo de inferência por Lógica


Fuzzy que é capaz de adaptar-se a partir de novos dados. Ele testou esse
modelo em diversos índices de bolsas e obteve resultados que mostram sua
maior capacidade de previsão em relação a modelos tradicionais, concluindo com
o reforço do potencial da Lógica Nebulosa.

No Brasil, A aplicação da Lógica Fuzzy no mercado financeiro foi pouco


estudada e desenvolvida na área do mercado financeiro, sobretudo com relação
à bolsa de valores. Alguns autores que já obtiveram algum resultado com tais
pesquisas foram Pereira (2008), que usou um sistema de tomada de decisão
para compra e venda de ativos financeiros baseado na Lógica Fuzzy e em
indicadores técnicos e Aguiar et al (2008), que usou a lógica para investigar a
ocorrência de fenômenos de sobre-reação e sub-reação na bolsa de ações
brasileira.

Tais trabalhos ao redor do mundo mostram que a capacidade de tomada de


decisão da Lógica Fuzzy tem potencial para auxiliar analistas na hora de escolher
portfólios, uma vez que seu resultado não é de caráter binário (Bayesiano).
17

Capítulo 2 – Teoria Fuzzy

Como mostrado no capítulo anterior, a lógica fuzzy já foi testada em diversas


bolsas desde sua descoberta no século XX. Ela é capaz de associar variáveis
linguísticas (características de determinadas situações) e discretas (números), ou
seja, além de modelos matemáticos, ela também utiliza informação subjetiva para a
tomada de decisão. Tal característica faz dessa lógica muito versátil e interessante,
pois torna possível adicionar opiniões (imensurável) à Estatística e métricas
definidas (mensurável).

Neste trabalho serão usadas variáveis linguísticas para interpretar retornos


de ações. Desse modo, será possível atribuir características a retornos que
apresentem determinados padrões, ou seja, quando uma ação apresentar retorno
diário negativo, por exemplo, ele receberá uma interpretação de queda de valor,
podendo ser classificado como “Pouco Baixo” ou “Muito Baixo”.

2.1 Funções de Pertinência

A lógica nebulosa também conta com a utilização de funções de pertinência


para a tomada de decisão. Tais funções formam um aglomerado de distribuições
estatísticas que se sobrepõem, eliminando a possibilidade de resultados
bayesianos.

Tal propriedade permite que o usuário determine conjuntos em que não


existe certeza de resposta, mas sim uma possibilidade de diferentes interpretações,
da mesma forma que existem conjuntos em que a interpretação é certa. A figura 1,
a seguir, exemplifica essa característica:
18

Figura 1 - Conjuntos e interpretação de funções de pertinência

De acordo com Zadeh (1965), quanto mais sobrepostas as funções de


pertinência, maior é a incerteza da variável resposta, fazendo ser possível simular
situações onde as opiniões de diversos especialistas são divergentes. Porém, o
contrário também é verdade, onde quanto menos sobrepostas, menor a incerteza.

Figura 2 – Exemplos de sobreposição de funções de pertinência


19

Além disso, existem diversos tipos de possibilidades de distribuição


(exemplificadas na figura 3), permitindo ao usuário criar diferentes cenários de
acordo com as interpretações linguísticas de determinada situação.

Fonte: Caetano (2006)

Figura 3 – Exemplos dos tipos de função de pertinência

2.2 Defuzzificação

A deffuzificação é o momento em que a lógica pondera os resultados


linguísticos e os transforma de volta em valores discretos. Tais valores serão
utilizados para a definição da decisão final, no caso podendo ser de “Vender
Pouco” até “Comprar Muito”.

Essa etapa pode ser feita de algumas maneiras, sendo as mais conhecidas:
(a) baseando a decisão no centro de massa das funções de pertinência e (b)
através do método Mamdani, elaborado por Mamdani (1974), onde a decisão é
baseada na média dos máximos das funções.

Tais métodos são retratados na figura 4 a seguir:


20

Fonte: Caetano (2006)

Figura 4 – Métodos de deffuzyficação

2.3 Aplicação

Nos próximos capítulos, seguindo as utilizações já mencionadas na revisão


bibliográfica, o trabalho estará centrado em ações do mercado brasileiro. Com isso,
uma programação será desenvolvida para a realização de testes, utilizando dados
e tomada de decisão.

Nos dias atuais, muito softwares são utilizados para o desenvolvimento


comercial da inteligência artificial com o uso da teoria fuzzy. Um deles, que
inclusive será utilizado neste trabalho, é o Matlab.

Nesse software é possível programar a lógica nebulosa através de uma


interface já disponível ao usuário ou através de programação. Ambas as
abordagens serão tratadas, começando pela interface, método mais simples e de
mais fácil entendimento.

(a) Para abrir a interface é preciso apenas digitar “fuzzy” na ‘Command


Window’ do Matlab.
21

Figura 5 – Abertura da interface fuzy no software Matlab

(b) O primeiro passo é definir a lógica de deffuzificação que será utilizada em


‘File’ > ‘New FIS...’ > lógica desejada.

Figura 6 – Definição do deffuzyficador na interface fuzzy do Matlab

(c) Na interface fuzzy, caso exista a necessidade de adicionar mais variáveis


de entrada ou de saída, basta clicar, no menu, em ‘Edit’ > ‘Add
Variable...’ > tipo de variável.
22

Figura 7 – Adição de variáveis de entrada e/ou saída na interface fuzzy

(d) Para nomear as variáveis, basta clicar em cada uma e alterar o campo
‘Name’ na caixa que mostra as características das variáveis.

Figura 8 – Demonstração de renomeação de variáveis na interface fuzzy


23

(e) Com um clique duplo em cima da representação gráfica de qualquer


variável, uma nova tela é aberta. É nessa tela que são definidas as
funções de pertinência, tanto para variáveis de entrada quanto de saídas.

Elas podem ser modificadas manualmente arrastando as curvas, ou


definindo valores de média e intensidade de decaimento em ‘Params’ na
caixa de propriedades das variáveis. Além disso, também é possível
nomear cada uma das curvas em ‘Name’, seu tipo em ‘Type’ e definir o
campo de visão dos gráficos em ‘Range’.

Figura 9 – Tela da interface fuzzy onde são editadas as funções de pertinência

(f) É possível adicionar mais funções de pertinência em cada variável. Para


isto basta ir ao menu e selecionar ‘Edit’ > ‘Add MFs...’. Na caixa que abrir,
é necessário definir a quantidade de funções a serem adicionadas e o
tipo das mesmas.

Quando as funções estiverem prontas, basta fechar a interface de


modificação de tais funções e retornar para a interface inicial da lógica
fuzzy.
24

Figura 10 – Adição de novas funções de pertinência na interface fuzzy

(g) Já na tela inicial novamente, é necessário adicionar as regras de decisão


da lógica nebulosa. Para isso, acessar o menu e clicar em ‘Edit’ >
‘Rules...’
Agora é preciso adicionar cada uma das regras de decisão. Aqui existe
uma diversidade de tipos de regras e correlações, podendo conter desde
inferências simples até de negação.
Ao definir uma linha de regra, basta clicar em ‘Add rule’ para salvá-la.
Quando todas as regras forem definidas, basta fechar essa aba.

Figura 11 – Adição de regras de decisão na interface fuzzy


25

(h) Com a lógica fuzzy programada, é possível ver as características da


deffuzificação. Para isso, na tela inicial da interface, basta clicar em
‘View’ > ‘Rules’ no menu.
Nessa tela, é necessário colocar os dados de entrada na caixa de ‘Input’.
Para cada série de dados de entrada, os gráficos são atualizados e uma
variável resposta é alcançada.

Figura 12 – Características da deffuzyficação na interface fuzzy

Nos próximos capítulos serão mostradas maneiras de programação da lógica


fuzzy. Desse modo, será mais fácil executar a lógica repetidas vezes, uma vez que
a programação é muito mais rápida do que o módulo gráfico apresentado
anteriormente.
26

Capítulo 3 – Modelagem do Problema

A modelagem de um problema consiste na tradução matemática de dados


para compreensão e tomada de decisão. No caso deste trabalho, a lógica fuzzy
eliminará a utilização de equações.

A modelagem do problema pode ser representada da seguinte maneira:

Figura 13 – Modelagem do Problema

3.1 Aquisição dos Dados

Para a execução deste trabalho foram coletados na Bloomberg, inicialmente,


os preços de fechamento diário de quatro empresas: Petrobrás (PETR4), Cielo
(CIEL3), Gerdau (GGBR4) e Usiminas (USIM5). Tais dados são relativos às datas
de jan/2010 até jul/2015.

Esses dados foram adquiridos através da ferramenta da Bloomberg


instalada no Excel. Com ela é possível selecionar que padrão, tipo, de quais
empresas e período de dados o usuários deseja transferir para o Excel. A seguir,
esse processo está demonstrado em um pequeno guideline:
27

(a) Após a abertura do Excel, selecionar o padrão de dados na aba


Bloomberg > Import Data > Escolher o tipo de dado, no caso Real Time
(Historical) > Historical End of Day (preços de fechamento).

Figura 14 – Escolha de dados a serem extraídos da Bloomberg

(b) Escolher as ações que deseja no campo ‘Security Identifier’. No exemplo,


as ações escolhidas foram: PETR4, CIEL3, GGBR4, USIM5. Quando o
código da ação aparecer na lista, basta clicar duas vezes em cima de seu
nome para adicioná-lo à amostra.

Figura 15 – Escolha das ações do banco de dados Bloomberg


28

A tabela deve ficar da seguinte maneira:

Figura 16 – Exemplo de ações já selecionadas

Para passar para o próximo passo, basta clicar no botão ‘Next’.

(c) Definir a informação que deseja. Para isso, basta procurar no campo
‘Search Text’. No caso a informação desejada era o último preço da ação
de cada dia, denominado ‘PX_LAST’ pela Bloomberg.
29

Figura 17 – Definindo o tipo de série histórica dos dados

(d) Definir o período na sessão ‘Time frame’ e clicar em ‘Next’.

Figura 18 – Definindo o período da série histórica


30

(e) Finalizar a consulta no botão ‘Finish’ para que os dados apareçam na


planilha.

Figura 19 – Finalização da extração de dados da Bloomberg

3.2 Estudo de Correlações

A primeira etapa de análise dos dados foi o cálculo de correlação entre os


retornos diários das ações coletadas. O sentido dessa análise é entender se
grupos de ações mais correlacionadas (como de um mesmo setor, por exemplo)
resultam em melhores previsões de retorno do que grupos mais diversificados
(como o caso de uma carteira com diferentes ações do índice Bovespa.)

Foram utilizados os primeiros 1000 dias úteis dos dados coletados, relativos
à jan/2010 até jan/2014. Tais dados estão na figura 20 a seguir:
31

Figura 20 – Preços históricos (1000 d.u.) de PETR4, CIEL3, GGB4 e USIM5

Nesse gráfico é interessante perceber que as ações PETR4, GGB4 e USIM3


perderam valor desde o início da série, enquanto as ações da CIEL3 ganharam
valor. Além disso, existem dias em que, aparentemente, as ações seguiram um
mesmo padrão de retorno.

3.3 Criação das Regras de Decisão Fuzzy

Paralelamente ao cálculo de correlações, foram realizados os primeiros


estudos para a definição das regras para a lógica nebulosa. O processo contou
com algumas etapas:

(a) Primeiramente foram definidos intervalos de retornos. Cada intervalo


possui sua característica linguística, como mostrado na tabela 1 abaixo:
32

Tabela 1 – Leitura de determinados tipos de intervalos de retornos

Em resumo, se uma ação teve retorno diário de -2% até -0,75%, ele pode
ser interpretado linguisticamente como um retorno “Muito Baixo” nesse
dia. Essa lógica funciona para todos os intervalos.

(b) Foi necessário estudar o comportamento dos retornos das ações em


relação a uma ação específica, que será denominada como ação Pivô ao
longo do trabalho. Tal Pivô pode se qualquer ação ou até mesmo o índice
Ibovespa. Nesse exemplo, foi escolhida uma ação que oscilou bastante
durante o período analisado, a PETR4. A partir dela, foi feito um estudo
para entender como as outras ações (CIEL3, GGBR4 e USIM5) se
comportaram em relação à PETR4. Ou seja, como foram os retornos
médios de cada uma delas quando a Petrobrás apresentou retorno
“Muito Baixo”, “Pouco Baixo”, “Neutro”, “Pouco Alto” e “Muito Alto”?
A tabela 2, a seguir, mostra o resultado.

Tabela 2 – Resultados médios de retornos de cada ação em relação aos


retornos da Pivô (PETR4) para cada intervalo

PETR4 CIEL3 GGBR4 USIM5


-2,00% -0,75% -0,23% -0,89% -0,94%
-0,75% -0,25% 0,16% -0,16% -0,26%
-0,25% 0,25% 0,14% 0,04% -0,07%
0,25% 0,75% 0,15% 0,50% 0,51%
0,75% 2,00% 0,52% 0,64% 0,88%
33

Desse modo, em dias que o retorno da PETR4 esteve entre -2% e


-0,75%, o da CIEL3 foi, em média, de -0,23%, o da GGBR4 -0,89% e o
da USIM5 de -0,94%. Tal interpretação vale para todos os intervalos.

(c) Feito isso, foi possível criar uma matriz de relações que servirão de base
para a criação das regras. Partindo da tabela anterior, a matriz fica da
seguinte maneira:

Tabela 3 – Tradução dos resultados da tabela 2 em variáveis linguísticas

Resumindo, quando PETR4 apresentou retorno “Muito Baixo”, em média,


a CIEL3 apresentou retorno “Neutro”, a GGBR4 apresentou retorno
“Muito Baixo” e a USIM5 retorno “Muito Baixo” também.

3.4 Definição das Funções de Pertinência das Ações

A definição das funções de pertinência é construída de maneira simples.


Foram usadas distribuições gaussianas de média igual à média do intervalo de
retorno, ou seja, a função de “Muito Baixo” segue uma distribuição de retornos
normais com média de -1,38%. Essa regra de definição foi usada tanto para as
variáveis de entrada quando para a de saída. Segue um exemplo visual abaixo:

Figura 21 – Exemplo gráfico das funções de pertinência escolhidas


34

3.5 Preparação da estratégia de ação fuzzy em Matlab

Para a aplicação da lógica nebulosa, foi utilizado o software Matlab. Nele foi
necessário programar um algoritmo para, além de efetuar a lógica, ser possível
repeti-la diversas vezes. O capítulo 4 irá tratar de maneira mais detalhada sobre
esse tema, mostrando a programação, entradas necessárias e as saídas criadas a
partir dos resultados encontrados.

3.6 Testes computacionais das estratégias de programação

Após a preparação da programação é realizada a execução da mesma, que


efetua a lógica Fuzzy para alcançar seus resultados. Foram necessários diversos
testes e ajustes na programação durante as tentativas de rodar o algoritmo.

A lógica pode ser simplificada na figura 22 abaixo:

Figura 22 – Fluxograma simplificado representativo da lógica fuzzy

A lógica consiste em apresentar os dados de entrada, no caso os retornos


diários das ações, que serão transformados em entradas Fuzzy através da
Fuzzificação, que nada mais é do que a transformação de um determinado retorno
em uma classificação linguística. (Exemplo: retorno de -1,5% -> Muito Baixo)
35

Em seguida, acontecerá o processo de Inferência, onde será necessária a


utilização da base de conhecimento, constituída pelas regras criadas a partir da
base de dados. Tal inferência irá resultar em uma saída Fuzzy, que será
Defuzzificada e transformada em dados discretos novamente.

3.7 Análise e discussão dos Resultados

A partir das saídas discretas, será possível analisar o percentual de sucesso


da estratégia e o retorno acumulado no período de teste determinado. Além disso,
tais resultados podem ser usados para comparar a eficiência dessa estratégia em
comparação com outras que não envolvem Inteligência Artificial.

Diversas simulações serão feitas, com diferentes grupos de ações e


diferentes regras para novas tomadas de decisão e maior poder de comparação da
Lógica fuzzy em diferentes cenários.

Os próximos capítulos apresentarão tais simulações, seus respectivos


resultados e as conclusões acerca da eficiência da lógica nebulosa.
36

Capítulo 4 – Implementação Computacional

A implementação computacional contou com duas grandes etapas: Planilha


de Excel e Programação em Matlab. Uma vez que Excel e Matlab estão
conectados com funções reconhecidas em ambas as plataformas, a programação
torna o processo mais eficiente e de fácil repetição, algo essencial em um estudo
com diversos testes.

4.1 Planilha de Excel

Na planilha de Excel, para que fosse possível realizar os estudos da seção


3.3 (criação das regras Fuzzy), foi necessário, além da aquisição dos dados e
cálculos dos retornos e correlações, o desenvolvimento de um algoritmo
responsável por construir a tabela de regras. A lógica desse pseudocódigo é a
seguinte:
37

Figura 23 – Lógica criada para estudos de retornos entre ações

As variáveis “somas” e “contagens” dos retornos das ações são utilizadas


para calcular a média dos retornos de cada ação dentro de cada categoria em
relação ao pivô.

Esse pseudocódigo pode ser implementado em qualquer linguagem de


programação. No caso do Excel, nesse trabalho foi utilizada a linguagem de VBA
(Visual Basic for Applications).

As médias são colocadas em determinadas células do Excel, gerando a


tabela 4, já apresentada anteriormente na sessão 3.3 (Supondo que a Ação1 seja a
PETR4, a Ação2 a CIEL3, a Ação3 a GGBR4 e a Ação4 a USIM5):
38

Tabela 4 – Resultados médios de retornos de cada ação em relação aos retornos


da Pivô (PETR4) para cada intervalo

PETR4 CIEL3 GGBR4 USIM5


-2,00% -0,75% -0,23% -0,89% -0,94%
-0,75% -0,25% 0,16% -0,16% -0,26%
-0,25% 0,25% 0,14% 0,04% -0,07%
0,25% 0,75% 0,15% 0,50% 0,51%
0,75% 2,00% 0,52% 0,64% 0,88%

A partir dessa tabela de resultados médios é possível criar a matriz de


regras que servirá de input para o programa do Matlab. Para tal, é necessário ter
em mente as seguintes regras de transformação:

Tabela 5 – Regras de transformação das variáveis linguísticas em números para


possível leitura pelo software Matlab

A transformação das leituras linguísticas em números é essencial. Em


programação Matlab, o código da lógica fuzzy só aceita matrizes numéricas para
efetuar seus cálculos.

Ao efetuar as transformações necessárias, a matriz final fica com essa


configuração:
39

Tabela 6 – Exemplo de matriz numérica de entrada para a programação Matlab

CIEL3 GGBR4 USIM5 PETR4 Peso And(1) / Or(2)


3 1 1 1 1 1
3 3 2 2 1 1
3 3 3 3 1 1
3 4 4 4 1 1
4 4 5 5 1 1

As primeiras 3 colunas representam as condições encontradas


anteriormente na matriz feita pelo algoritmo (1-“Muito Baixo” até 5-“Muito Alto”),
enquanto a quarta mostra a resposta da PETR4, a ação pivô, para essas regras (1-
“Vende Muito” até 5-“Compra Muito”). As duas últimas colunas representam,
respectivamente, o peso que cada regra terá na decisão e a condicional do
conjunto de regras, onde 1 significa “E” e 2 “OU”. Em ambas serão usadas a
classificação 1, ou seja, todas as regras serão levadas em consideração e com
pesos iguais na decisão final.

Como exemplo de leitura da primeira linha: se CIEL3 apresentar retorno


“Neutro”, a GGBR4 retorno “Muito Baixo” e a USIM5 retorno “Muito Baixo”, então
PETR4 vai apresentar retorno de “Muito Baixo”.

4.2 Ambiente Matlab

4.2.1 Preparando o Input

As informações encontradas na planilha de Excel servirão de inputs para a


programação em Matlab. Para isso, foi necessária a criação de uma planilha com
duas abas específicas.

A primeira aba recebe as datas na primeira coluna, os retornos diários da


ação pivô na segunda coluna e os retornos das outras ações nas colunas seguintes
(os retornos diários usados são dos dias seguintes da amostra utilizada para definir
a matriz regra), como demonstrado na imagem abaixo:
40

Figura 24 – Exemplo de Excel que serve de entrada para programação em Matlab


(Planilha 1)

A segunda aba recebe somente a matriz de regras feita anteriormente. Esta


deve ser posicionada no canto superior esquerdo da planilha e a ação pivô deve
estar na quarta coluna:

Figura 25 – Exemplo de Excel deque serve de entrada para programação em


Matlab (Planilha 2)
41

4.2.2 Programação Matlab

A programação em Matlab é a responsável por ler as entradas criadas via


Excel, rodar a Lógica Fuzzy e, por fim, exportar as saídas. Para isso ela conta com
alguns passos:

(a) Definição das variáveis básicas pelo usuário

É necessário que o usuário escolha a Ação Pivô da rodada e a


quantidade de dias úteis que serão previstos. No Exemplo: PETR4 é a
Ação Pivô e a previsão será feita para 21 dias úteis.

Figura 26 – Variáveis básicas com capacidade de alteração pelo usuário

(b) Leitura da Ação Pivô e definição do nome da planilha input e output,


legenda dos gráficos e ordem da série de retornos condicionais

Note que: A ordem dos retornos condicionais segue a ordem em


que eles se encontram na planilha de input.
42

Figura 27 – Lógica de leitura de ação pivô e adequação dos nomes dos gráficos

(c) Leitura dos Inputs da Planilha Excel

O mais importante aqui é entender que uma matriz chamada


“num” está sendo criada e é nela que ficam salvos os retornos
históricos e que a matriz regra está sendo gravada na variável
“regras”.

Figura 28 – Leitura dos inputs em Excel

(d) Criação da Lógica Fuzzy

O comando “newfis” apenas cria a matriz fuzzy, no caso


nomeada como “m_fuzzy”.

Figura 29 – Criação da lógica fuzzy


43

(e) Definição do nome e domínio das entradas, seguida pela criação das
funções de pertinência

O comando “addvar” é responsável por adicionar entradas e


saídas na matriz fuzzy. Primeiro adicionamos as entradas, sinalizadas
pela expressão ‘input’ na função. Depois, como a nossa primeira
entrada é a CIEL3 (novamente seguindo a ordem dos inputs da
planilha Excel), informamos qual a variável em que ela está salva, no
caso “acao2”. Por fim, indicamos o intervalo de visão do gráfico das
funções de pertinência, sendo de -1,75 até 1,75 no exemplo.

Já o comando “addmf” adiciona cada uma das funções de


pertinência, explicadas na sessão 3.4.

Esse passo deve ser feito para cada uma das variáveis de
entrada e também para a variável de saída (Ação Pivô). As imagens a
seguir mostram um exemplo de código para entrada, código para
saída e a saída final das funções de pertinência.

Figura 30 – Definição de nome, domínio e funções de pertinência da variável de


entrada
44

Figura 31 – Definição de nome, domínio e funções de pertinência da variável de


saída

Figura 32 – Gráficos de funções de pertinência

(f) Adição da matriz regra à matriz fuzzy

O comando “add_rule” que faz esse trabalho. Para tal, basta


informar qual é a matriz regra. No caso, ela foi salva na variável
“regras” no momento em que usamos a planilha Excel como input.

Figura 33 – Adição da matriz regra na programação


45

(g) Criação dos Gráficos das Funções de Pertinência

Comando básico de plotagem de gráficos da plataforma


Matlab, sendo necessário apenas indicar o que se deseja observar
graficamente.

Figura 34 – Criação dos gráficos de funções de pertinência

(h) Preparação dos Retornos para a Lógica Fuzzy

Apenas salvando os retornos contidos na matriz “num” em


vetores separados.

Figura 35 – Preparação dos retornos para leitura da lógica fuzzy

(i) Execução da Lógica Fuzzy e criação da Matriz Resultado

O código a seguir mostra a execução da lógica fuzzy


juntamente com os passos para a criação da matriz resultado,
nomeada “sinal”. Todas as informações contidas nessa matriz são
referentes à Ação Pivô, no caso a PETR4.
46

Figura 36 – Programa de execução da lógica fuzzy


47

(j) Calcular o percentual de acertos

Após a execução da Lógica Fuzzy, é importante calcular o


percentual de acerto que ela alcançou em relação à realidade, ou
seja, quantos dias ela acertou a direção do retorno (se positivo ou
negativo) na base 100.

Figura 37 – Cálculo do percentual de acertos

(k) Criação do Gráfico de comparação da previsão da lógica com a realidade

Apenas uma nova plotagem, dessa vez definindo algumas


características de cor e tipo de linha.

Figura 38 – Criação do gráfico de comparação entre previsão fuzzy e resultados


reais da ação pivô durante o período escolhido

(l) Exportação dos Resultados para uma planilha Excel

Comando responsável por exportar a matriz resultado para


uma planilha de Excel.

Figura 39 – Exportação dos resultados para Excel


48

4.2.3 Planilha Exportada

A planilha exportada pelo Matlab contém apenas a matriz resultado (matriz


“sinal” do programa). Nela são mostrados, em ordem de coluna: (a) a previsão da
lógica fuzzy (se -1 então previsão de retorno negativo, se 1 então previsão de
retorno positivo), (b) o retorno real do dia, (c) o retorno obtido pela lógica (supondo
que vendeu se -1 e comprou se 1), (d) o retorno acumulado do período, (e) a
definição de acerto ou erro de previsão da lógica (se 0 então erro, se 1 então
acerto) e (f) o percentual de acerto na primeira linha.

No exemplo, então, a lógica obteve sucesso em 66,7% dos retornos de


PETR4 previstos, atingindo assim um retorno acumulado de 23,77% em 21 dias
úteis.

Figura 40 – Exemplo de planilha resultado exportada


49

Capítulo 5 – Análise de Cenários

5.1 Testes com carteira diversificada

Para esse teste foi simulada uma carteira com as ações PETR4 (Petrobras),
CIEL3 (Cielo), GGBR4 (Gerdau) e USIM5 (Usiminas). Todas elas pertencem a
diferentes setores e fazem parte do índice Bovespa. Os primeiros resultados foram
adquiridos através de uma simulação considerando ser possível utilizar os preços
de fechamento das ações não-Pivôs em determinado dia para estimar o retorno da
ação Pivô neste mesmo dia [D0].

5.1.1 Correlação

Com toda a automação pronta foi possível aplicar o processo para as outras
ações. O primeiro resultado básico obtido é a matriz correlação, que ficou da
seguinte maneira:

Tabela 7 - Correlação da carteira diversificada

Essa tabela ficará armazenada para futuras comparações com outros tipos
de carteiras diferentes, como uma com ações de um mesmo setor, por exemplo.
50

5.1.2 Ajuste de pesos de regra

Quando o algoritmo foi rodado considerando a USIM5 como ação Pivô, os


resultados encontrados ficaram visivelmente deslocados daquilo que era esperado,
como é possível ver na figura 41.

Figura 41 – Retornos reais X Retornos fuzzy para USIM5

Para resolver esse problema foi preciso alterar a quarta coluna da matriz de
regras de entradas para USIM5, a coluna de pesos de regra.

Figura 42 – Coluna de pesos na matriz regra


51

Em todas as situações em que isso acontecer, basta alterar a coluna de


pesos seguindo as seguintes regras: para diminuir a média dos retornos previstos,
basta diminuir o peso das regras de compra, e para aumentar a média diminuir o
peso das regras de venda.

No final, a lógica adotada e o gráfico estão representados na figura, a seguir


(lembrando que, na coluna da ação pivô, o número 1 é para “VendeMuito” e o 5
para “CompraMuito”):

Figura 43 – Esquema exemplificando a consequência da alteração dos pesos das


regras

O intuito de tais mudanças foi forçar com que o vetor dos retornos estimados
pela lógica fuzzy tivesse média próxima de zero, da mesma forma que acontece
com a média dos retornos de mercado.
52

5.1.3 Resultados da Lógica Fuzzy para 21 dias úteis

Após a execução do programa, foi possível observar os resultados para


cada Ação Pivô. A tabela a seguir mostra os percentuais de acertos da lógica para
cada uma delas e o retorno acumulado para 21 dias úteis (lembrando que as
regras foram criadas a partir de uma amostra de 1000 dias úteis).

Tabela 8 – Resultados da carteira diversificada para 21 dias úteis [D0]

Em média, a lógica fuzzy obteve um percentual de acerto de 67,86% e um


retorno acumulado de 24,30%.

Em todas as simulações a lógica nebulosa teve um índice de acerto da


movimentação do retorno maior que 60%, ou seja, considerando apenas o
aumento e queda de retorno, a lógica acertou o que aconteceria com o valor da
ação em mais de metade das vezes.

É importante lembrar que nesses primeiros testes a previsão está levando


em conta os retornos das ações em um mesmo dia. Em testes futuros, as
previsões serão feitas levando em conta retornos de dias passados.

O gráfico de preços das ações durante esse período ficou da seguinte


maneira:
53

Figura 44 – Preços das ações da carteira diversificada nos 21 dias úteis de


simulação

Obs: Os preços da CIEL3 estão representados no eixo secundário.

5.1.4 Resultados da Lógica Fuzzy para 126 dias úteis

Os testes feitos considerando 21 dias úteis foram repetidos para 126 dias
úteis. A intenção de tal teste é tentar identificar como as regras baseadas nos
mesmos 1000 dias úteis observados anteriormente se comportam em um prazo
maior.

A tabela resultado para essa simulação ficou da seguinte maneira:

Tabela 9 – Resultados da carteira diversificada para 126 dias úteis [D0]


54

Em média, a lógica fuzzy obteve um percentual de acerto de 61,31% e um


retorno acumulado de 81,62%.

Aparentemente a lógica continua mostrando potencial para um período


maior de previsão, mesmo sem a utilização de técnicas de movimento de
observação de dados para atualização das regras.

Em sequência, mais um teste será feito para testar tal propriedade.

5.1.5 Resultados da Lógica Fuzzy para 252 dias úteis

As avaliações para 21 e 126 dias úteis, apresentadas anteriormente, foram


repetidas considerando todos os fatores da última previsão, somente com alteração
do período de previsão, dessa vez 252 dias úteis. Novamente, a tabela a seguir
mostra os percentuais de acertos da lógica para cada uma delas e o retorno
acumulado.

Tabela 10 – Resultados da carteira diversificada para 252 dias úteis [D0]

Em média, a lógica fuzzy obteve um percentual de acerto de 62,60% e um


retorno acumulado de 206,59%.

Mais uma vez é interessante destacar o alto percentual de acerto da lógica,


onde ela previu corretamente o movimento do preço da ação em mais da metade
das vezes.

Dessa vez, o cenário de preços era o seguinte:


55

Figura 45 – Preços das ações da carteira diversificada nos 252 dias úteis de
simulação

Além desses testes feitos para a carteira diversificada, também foram feitas
simulações considerando uma carteira com ativos do mesmo setor.

5.2 Testes com carteira constituída por ativos de um mesmo setor

Para esse teste foram usadas as ações ARZZ3 (Arezzo), AMAR3 (Marisa),
HGTX3 (Hering) e LREN3 (Renner), todas pertencendo ao setor de roupas e
calçados do mercado brasileiro.

A escolha dessas ações foi decorrida do fato de que existem poucos setores
no mercado brasileiro com quatro ou mais ações listadas na bolsa. Além disso,
dentro dos setores que existem com tal característica, é difícil encontrar pelo
menos quatro ações com um volume de negociação razoável. No setor de roupas e
calçados (considerando essas quatro ações), por exemplo, o volume médio anual
de ações negociadas é cerca de 1,4 milhões por dia, como visto na tabela.
56

Tabela 11 – Volume médio de 252 dias úteis para as ações da carteira setorial
brasileira

Essa quantidade de volume é bem baixa quando comparada com outras


bolsas, fato que ficará mais visível nas próximas sessões.

Os dados de volume foram obtidos no banco de dados Bloomberg.

5.2.1 Correlação

Para essa amostra a correlação ficou da seguinte maneira:

Tabela 12 - Correlação da carteira setorial

É possível perceber que essas correlações parecem um pouco maiores do


que as apresentadas na carteira diversificada, o que já era esperado pelo fato das
ações pertencerem a um mesmo setor. O intuito agora é estudar se tais
correlações impactam a eficiência da lógica fuzzy.
57

5.2.2 Resultados da Lógica Fuzzy para 21 dias úteis

Foram replicados os mesmos testes feitos com a carteira diversificada, com


todas as condições iguais. A única diferença são os ativos que constituem a
carteira, fazendo com que os valores de entrada para a criação sejam diferentes e,
portanto, gerem matrizes de regras com novos números. (Todas as matrizes de
regras podem ser encontradas nos Apêndice).

Para 21 dias úteis obtivemos os seguintes resultados:

Tabela 13 – Resultados da carteira setorial para 21 dias úteis [D0]

Diferentemente do que era esperado, pelo fat, os resultados foram piores do


que aqueles encontrados na carteira diversificada.

De qualquer maneira, a lógica atingiu um nível de acerto médio de 54,76%,


mais do que a metade novamente, e um retorno médio de 10,26%, mesmo obtendo
um resultado negativo na operação com HGTX3.

Os preços dessa amostra estão representados no gráfico a seguir:


58

Figura 46 – Preços das ações da carteira setorial nos 21 dias úteis de simulação

Obs: Os preços de ARZZ3 estão representados no eixo secundário.

5.2.3 Resultados da Lógica Fuzzy para 126 dias úteis

Novamente com o intuito de verificar a capacidade da estratégia de previsão


de maior prazo sem a modificação das regras, foram repetidos os testes para 126
dias úteis.

Os resultados encontrados foram os seguintes:

Tabela 14 – Resultados da carteira setorial para 126 dias úteis [D0]


59

O interessante aqui é reparar que eles melhoraram em relação aos


resultados encontrados com a amostra de 21 dias úteis. Nesse caso, a média de
acertos foi de 56,15% e de retornos 61,93%, sendo que os preços ficaram da
seguinte maneira:

Figura 47 – Preços das ações da carteira setorial nos 126 dias úteis de simulação

Obs: Os preços de ARZZ3 estão representados no eixo secundário.

Para essa carteira setorial não foi possível executar os teste para 252 dias
úteis, pois nem todas as ações tinham preço histórico para esse período.

5.3 Teste considerando dados de dias anteriores

Para retratar melhor a realidade, foram efetuados testes em que as regras


eram feitas a partir dos dados de retorno dos dias anteriores. Isso quer dizer que,
considerando a PETR4 como ação pivô, para criar as regras de decisão foram
utilizados os valores de CIEL3, GGBR4 e USIM5 anteriores.

Como exemplo dessa situação, imagine que no final do dia 23/jan/2014 o


usuário observa os retornos das ações CIEL3, GGBR4 e USIM5 e, a partir deles,
60

toma a decisão de como vai ser posicionar nas ações da PETR4 para o dia
seguinte (24/jan/2014). Esse tipo de teste vai ser denominado como [D-1],
enquanto os testes anteriores como [D0].

É importante ressaltar que a programação desconsidera custo de transação


das operações, portanto o retorno acumulado apresentado é somente uma
somatória dos retornos de quando a lógica acertou subtraída a somatória dos
retornos de quando ela errou. A figura abaixo mostra essa relação para o exemplo
da PETR4 no teste [D-1].

Figura 48 – Exemplificação da decisão de compra ou venda e retornos obtidos

No gráfico, a série representada por colunas só pode ter valores ‘1’,


significando compra, ou ‘-1’, significando venda. Na série representada por linha
estão guardados os retornos diários da ação.

No primeiro dia, por exemplo, a lógica sinalizou uma operação de venda,


mas na verdade o retorno foi positivo, fazendo o retorno acumulado da estratégia
diminuir. Já no quarto ponto, a lógica sinalizou venda e o retorno foi negativo, o que
fez com que o retorno acumulado aumentasse. Com essa interpretação, é possível
entender a tomada de decisão da lógica e, portanto, os resultados encontrados.
61

Previsões foram feitas para todos os cenários em que foram obtidos


resultados simulados anteriormente. Tais resultados, inclusive os das simulações
em [D0], podem ser encontrados na tabela resumo abaixo. Nela, estão agrupados
os resultados da carteira diversificada e setorial, divididos por dias úteis e tipo de
teste ([D0] ou [D-1]). Para cada agrupamento, são mostrados os percentuais de
acertos e retornos para cada ação Pivô e suas respectivas médias, além de
apresentar um indicador de retorno por dia útil que pode ser utilizado para enxergar
as primeiras comparações entre carteiras.

Tabela 15 – Tabela resumo dos resultados


62

5.4 Comparação estatística dos resultados

Para se comparar os resultados encontrados nos testes anteriores foi


necessário fazer testes estatísticos de hipótese. Tais testes são importantes para
definir se dois resultados são realmente diferentes ou não.

Será feito o cálculo pressupondo que a distribuição amostral segue a


distribuição de probabilidade t-Student. Isso porque o que será comparado são os
retornos de cada situação, ou seja, cada amostra é feita de apenas 4 indivíduos.

Nesses testes, sempre são consideradas duas hipóteses, denominadas de


H0 e H1, onde H0 é a hipótese nula (no caso do teste-T, a hipótese H0 é que a
média dos retornos são semelhantes) e H1 é a hipótese alternativa (no caso do
teste-T, a hipótese H1 é que a média dos retornos não são semelhantes). Tais
hipóteses podem ser observadas com a formulação matemática a seguir.

H0: μA = μB

H1: μA ≠ μB ou H1: μA > μB ou H1: μA < μB

Antes de aplicar o teste-T, é necessário saber se as amostras em


comparação possuem variância equivalente ou não. Para descobrir tal propriedade
é aplicado o teste-F. Nesse teste, H0 é que as variâncias das amostras são
equivalentes e H1 é que elas não são.

Todos os testes nesse trabalho foram feitos utilizando a ferramenta de


“Análise de Dados” do Excel e podem ser encontrados no apêndice.

5.4.1 Comparação dos retornos das carteiras diversificada e setorial

A primeira etapa foi estudar se os retornos da carteira diversificada foram


maiores do que os retornos da carteira setorial. Para isso, foram efetuados testes-F
e testes-T nos resultados de 21 e 126 dias úteis, para as carteiras de [D0] e [D-1].
63

O resultado teste-F da amostra de 21 dias úteis do tipo [D0] ficou da


seguinte maneira:

Tabela 16 – Resultado exemplo de um Teste-F

Nesse caso, o p-valor uni-caudal é de 0,22. Considerando um cenário de


95% de confiança, não é possível rejeitar H0, uma vez que 0,22 é maior do que o
alfa (no caso 0,05). Isso quer dizer que, para essas amostras, as variâncias são
equivalentes.

Tal procedimento foi repetido para todos os resultados comparativos entre


carteiras diversificada e setorial. Em todos eles, a conclusão foi a mesma, como
mostrado na tabela abaixo:

Tabela 17 – Tabela resumo dos testes-F para comparação entre carteiras


diversificada e setorial
64

Com esses resultados, os testes-T já podem ser feitos, sempre


considerando variâncias equivalentes. Novamente, segue o exemplo do resultado
para a amostra de 21 dias úteis do tipo [D0]

Tabela 18 – Resultado exemplo de um Teste-T

Nesse teste, a hipótese nula é que as médias dos retornos das carteiras são
iguais. Como o p-valor uni-caudal desse teste é ligeiramente maior do que alfa
(considerando 95% de confiança novamente), não é possível rejeitar H0. Isso quer
dizer que, tanto para carteira diversificada, quanto para carteira setorial, a eficiência
da lógica fuzzy foi a mesma.

Como feito com o teste-F, o teste-T foi repetido para todas as situações de
comparação das carteiras e, novamente, os resultados foram os mesmos.

Tabela 19 – Tabela resumo dos testes-T para comparação entre carteiras


diversificada e setorial
65

As conclusões obtidas são contrárias às expectativas iniciais desse trabalho,


em que era esperado que a lógica fuzzy mostrasse melhores resultados com a
carteira setorial.

5.4.2 Comparação dos retornos das carteiras entre [D0] e [D-1]

Além dos testes feitos para entender a diferença de retornos entre as


carteiras com ativos diversificados e de um mesmo setor, também foram efetuados
estudos com o intuito de identificar a variação na capacidade da lógica definir
retornos dependendo dos dados de entrada.

Para esses testes estatísticos foram efetuados os mesmo procedimentos da


sessão 5.4.1, com a aplicação dos testes-F e testes-T.

Os resultados encontrados para os testes-F foram os seguintes:

Tabela 20 – Tabela resumo dos testes-F para comparação entre carteiras [D0] e [D-1]

Como nos testes entre carteiras, as variâncias são equivalentes entre todas
as carteiras comparáveis de [D0] e [D-1]. Lembrando que não existem testes para a
carteira setorial de 252 dias úteis pelo fato de não ter sido possível fazer os testes
para essa carteira nesse prazo.

Após os testes-F, foram feitos os testes-T para entender se os retornos


obtidos nas amostras com regras definidas em [D-1] realmente são menores do
que aqueles em [D0]. Os resultados estão na tabela seguinte:
66

Tabela 21 – Tabela resumo dos testes-T para comparação entre carteiras [D0] e [D-1]

Os resultados comprovam que a lógica fuzzy realmente foi melhor em prever


os valores considerando os retornos das ações não pivôs no mesmo dia em que foi
feita a previsão para quase todos os casos. Isso quer dizer que, considerar os
preços de fechamento do dia anterior para prever o preço da ação pivô no dia pode
não ser rentável no mercado de ações.

Por conta desse resultado, um último teste foi feito para estudar se é
plausível a utilização dessa lógica em situações reais de mercado. Para tal, foi
necessária a aquisição de novos dados, dessa vez intradiários.

5.5 Testes com dados intradiários

Um último teste foi feito, ainda, considerando dados intradiários de preços de


negociação de ações americanas. A escolha por ações da bolsa americana foi feita
por conta de, no Brasil, o volume de negociações de ações de um mesmo setor ser
muito baixo, o que prejudica os dados intradiários e, portanto, a tomada de decisão
da lógica fuzzy.

Para esse teste foram usadas as ações GM (General Motors), F (Ford),


HOG (Harley-Davidson) e TSLA (Tesla), todas empresas do setor automotivo e
participantes do índice Dow Jones.

Como visto anteriormente, o volume médio das ações de um mesmo setor


na bolsa brasileira era de cerca de 1,4 milhões de negociações por dia. Na bolsa
americana, com as ações escolhidas, a média dos volumes é mais de 9 vezes
maior, alcançando cerca de 13 milhões de negociações por dia, como visto na
tabela abaixo.
67

Tabela 22 – Volume médio de 252 dias úteis para as ações da carteira setorial
americana

Além disso, a metodologia utilizada para a tomada de decisão foi aquela em


que a decisão de posicionamento na ação pivô é tomada a partir dos retornos
anteriores das outras ações, só que dessa vez, ao invés de considerar os preços
do dia anterior, foram considerados os preços de apenas 10 minutos passados.

Para construir a matriz regra desse cenário foram utilizados 822 valores de
retornos, equivalentes a um mês de mercado, considerando dados de preços
intradiário das 10h30 até as 16h50 em intervalos de 10 minutos. Além disso, a
previsão foi feita para um mês sequente ao mês utilizado para a criação das regras,
fazendo com que seja possível comparar os resultados com aqueles de 21 dias
úteis das previsões com ações das bolsas brasileiras.

Essa matriz, diferente das utilizadas nos testes anteriores, tem um intervalo
muito menor para montar as regras de “MuitoBaixo” até “MuitoAlto”. Dessa vez, o
intervalo vai de -0,15% até 0,15%, como visto na tabela a seguir:

Tabela 23 – Intervalo de regras de decisão para testes de retornos intradiários


68

Todo o resto do processo é o mesmo, lembrando que a matriz regra muda


para cada ação pivô e que todas as matrizes utilizadas nesse trabalho podem ser
encontradas no apêndice.

Após a execução de todos os testes, o resultado foi o seguinte:

Tabela 24 - Resultados da carteira intra-diárial para 21 dias úteis [D-1]

A média de acertos foi de 47,49% e de retornos -1,5%, onde apenas quando


a HOG era a ação pivô a lógica fuzzy apresentou resultados positivos.

Tais resultados foram comparados com aqueles das carteiras diversificada e


setorial [D0] para 21 dias úteis. A tabela a seguir mostra a comparação da variância
a partir dos testes-F e também a comparação das médias a partir de testes-T.

Tabela 25 – Tabela resumo dos testes-F e testes-T para comparação entre


carteiras com ações brasileira [D-1] e carteira intra-diária

Todos os testes foram feitos considerando um confiança de 95%.

A partir deles é possível concluir que os retornos intradiários não foram tão
bons quanto aqueles obtidos pela carteira diversificada [D0], mas foram tão bons
quanto os da carteira setorial [D0], ou seja, já foram menos piores do que os
retornos das carteiras em [D-1].
69

Capítulo 6 – Conclusão e Discussões Finais

Com o intuito de entender melhor as capacidades da lógica fuzzy no


mercado financeiro, foram feitos diversos testes com diferentes tipos de carteira de
ações, principalmente aquelas encontradas na bolsa brasileira.

Primeiramente, foi estudada a diferença da capacidade de simulação de


retornos da lógica para carteiras diversificadas, ou seja, com ações de empresas
pertencentes a diferentes setores, e carteira setorial, com ações de empresas de
um mesmo setor. Para esse teste, chegamos à conclusão de que essa
característica de carteira não faz diferença para a eficiência da lógica nebulosa em
prever retornos das mesmas.

Em sequência, foi testada a capacidade de previsão da lógica com a


utilização de preços de fechamento anteriores para as ações não pivô, em
comparação com as simulações utilizando preços do mesmo dia. Para esse teste,
descobrimos que a eficiência lógica nebulosa cai consideravelmente quando
utilizamos retornos passados. Por conta disso, para eventuais usos da mesma no
mercado atual, seria preciso um maior aprofundamento dos estudos para um
conjunto específico de ações.

No final, para tentar agregar os dois testes em um só, foram utilizados dados
de retornos intradiários em um novo teste. O intuito deste era agrupar os bons
resultados encontrados na primeira bateria de testes ao fator de realidade com o
fator de realidade embutido no segundo, ou seja, utilizar dados passados para
prever, mas sendo tais dados de retornos das ações no mesmo dia da previsão.
Infelizmente, novamente os testes não foram muito bons para a eficiência da lógica
no mercado financeiro, mas ainda muito pode ser explorado.

Em sequência a esse trabalho é possível estudar mais profundamente a


lógica fuzzy para um conjunto de ações, de maneira a testar diversas modificações
de dados de entrada (como, por exemplo, simular dados de entrada móveis no
tempo), distribuições das regras (testar diferentes tipos para diferentes ações), ou
70

até mesmo utilizar dados intradiários mais curtos (de 5 em 5 minutos ou de minuto
a minuto).

A lógica fuzzy mostrou-se flexível em diversos aspectos e, com os softwares


em que ela já está disponível, é possível a execução de inúmeras simulações para
testar a eficiência dela com diferentes tipos de ativos em diversos mercados.
71

Bibliografia

HAMILTON, WILLIAM. The Stock Market Barometer: A Study of Its Forecast


Value Based on Charles H. Dow's Theory of the Price Movement. Barron's, New
York, N.Y., 1922

RHEA, ROBERT. The Dow Theory. Barron's, New York, N.Y., 1932

DODD, D. L.; GRAHAM, B. (1934). Security Analysis: Principles and


Technique. 6th ed. United States of America: The McGraw-Hill Companies, Inc.,
2009. 764p.

MARKOWITZ, H. Portfolio selection. The Journal of Finance, v. 7, p. 71-91,


1952.

SHARPE, W. F. Capital asset prices: a theory of market equilibrium under


conditions of risk. The Journal of Finance, v. 19, n. 3, p. 425-442, 1964.

FAMA, E. F. Efficient capital markets: a review of theory and empirical


work. The Journal of Finance, v. 25, n. 2, p. 383-417, Cambridge, May, 1970.

FURBUSH, D. Program trading and price movement: Evidence from the


October 1987 market crash. Financial Management, p. 68-83, 1989.

MCCULLOCH, W. S.; PITTS, W. H. A logical calculus of the ideas immanent


in nervous activity. Bulletin of Mathematical Biophysics, v. 5, p. 115-133, 1943

LUGER, G. F.; STUBBLEFIELD, W. A. Artificial Intelligence. 1993.


72

HEBB, D. O. (1949). The Organization of Behavior: A Neuropsychological


Theory. 3rd ed. United States of America: Lawrence Erlbaum Associates, Inc.,
2009. 378p.

ROSENBLATT, F. (1958), The Perceptron: A Probabilistic Model for


Information Storage and Organization in the Brain, Cornell Aeronautical
Laboratory, Psychological Review, v. 65, n. 6, p. 386–408.

KENNEDY J, EBERHART R. (1995). Particle Swarm Optimization. Proc of


IEEE International Conference on Neural Network,Perth, Australia, IEEE
Service Center Piscataway NJ,1995:1942-1948.

ZADEH, L. A. Fuzzy sets, Information and Control, vol. 8, 338-353, 1965

DASH, R.; DASH, P. K.; BISOI, R. A differential harmony search based hybrid
interval type2 fuzzy EGARCH model for stock market volatility prediction.
International Journal of Approximate Reasoning, v. 59, p. 81–104, 2015.

JOSIP, A.; TEA, P.; ZDRAVKA, A. GARCH based artificial neural networks in
forecasting conditional variance of stock returns. v. 5, p. 329–343, 2014.

SUMARTI, N.; WAHYUDI, N. Stock and option portfolio using fuzzy logic
approach. v. 507, n. Icmns 2012, p. 504–507, 2014.

HAFEZI, R.; SHAHRABI, J.; HADAVANDI, E. A bat-neural network multi-agent


system (BNNMAS) for stock price prediction: Case study of DAX stock price.
Applied Soft Computing, v. 29, p. 196–210, 2015.

PULIDO, M.; MELIN, P.; CASTILLO, O. Particle swarm optimization of


ensemble neural networks with fuzzy aggregation for time series prediction
of the Mexican Stock Exchange. Information Sciences, v. 280, p. 188–204,
2014.
73

NAPITUPULU, T. A.; WIJAYA, Y. B. Prediction of stock price using Artificial


Neural Network: A case of Indonesia. Journal of Theoretical and Applied
Information Technology, v. 54, n. 1, p. 104–109, 2013.

PRADESH, M. Optimal Model Design of Artificial Neural Networks for


Forecasting Indian Stock Trends : An Experimental Approach. XIMB Journal, v.
10, p. 1–10, 2013.

YUNUSOGLU, M. G.; SELIM, H. A fuzzy rule based expert system for stock
evaluation and portfolio construction: An application to Istanbul Stock
Exchange. Expert Systems with Applications, v. 40, n. 3, p. 908–920, 2013.

HASSAN, M. R. et al. A HMM-based adaptive fuzzy inference system for


stock market forecasting. Neurocomputing, v. 104, p. 10–25, 2013.

KWAKERNAAK, H. Fuzzy Random Variables-I.Definitions and Theorems.


Information Sciences, v. 29, p. 1–29, 1978.

LI, X.; LIU, B. New independence definition of fuzzy random variable and
random fuzzy variable. World Journal of Modeling and Simulation, v. 2, n. 5, p.
338–342, 2006.

AGUIAR, R. A.; SALES, R. M.; SOUSA, L. A. DE. Um Modelo Fuzzy


Comportamental para análise de sobre-reação e sub-reação no mercado de
ações brasileiro. Revista de Administração de Empresas, v. 48, n. 3, p. 8–22,
2008.

PEREIRA, C. R. T. Sistema de Tomada de Decisão para Compra e Venda de


Ativos Financeiros Utilizando Lógica Fuzzy. 2008. 128 f. Dissertação
(Mestrado em Engenharia Elétrica) - Universidade de São Paulo, São Paulo,
2008.
74

CAETANO, M. A. L. Lógica fuzzy para tomada de decisão em negócios e


finanças. Revista de Economia e Administração, Ibmec São Paulo, v. 5, n.1, p.
12-39, 2006.

MAMDANI, E.H. Application of fuzzy algorithms for control of simple


dynamic plant. Proc. IEE. v.121, n.12, p.1585-1588, 1974.

CAETANO, M. A. L. A lógica nebulosa das competências. Revista de


Economia e Administração, v. 5, p. 385-412, 2006.
75

Apêndice

Regras utilizadas para cada ação pivô:

[D0]
76

[D-1]
77

Intradiários
78

Testes-F e Testes-T para comparação Carteira Diversificada x Setorial


79
80
81

Testes-F e Testes-T para comparação tipo [D0] x [D-1]


82
83
84

Testes-F e Testes-T para comparação intradiários x carteiras


85

Você também pode gostar