81
Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo Sérgio David Vitorino Ramos Dissertação para obtenção do grau de Mestre em Engenharia Física Tecnológica Orientadores: Dr. Armando Manuel Carvalho Nunes Prof. Dr. João Carlos Carvalho de Sá Seixas Júri Presidente: Prof. Dr. Luís Filipe Moreira Mendes Orientador: Prof. Dr. João Carlos Carvalho de Sá Seixas Vogais: Prof. Dr. Rui Manuel Agostinho Dilão Abril, 2016

Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Estudo e desenvolvimento de um sistemacomputacional de intraday trading autónomo

Sérgio David Vitorino Ramos

Dissertação para obtenção do grau de Mestre em

Engenharia Física Tecnológica

Orientadores: Dr. Armando Manuel Carvalho NunesProf. Dr. João Carlos Carvalho de Sá Seixas

Júri

Presidente: Prof. Dr. Luís Filipe Moreira MendesOrientador: Prof. Dr. João Carlos Carvalho de Sá Seixas

Vogais: Prof. Dr. Rui Manuel Agostinho Dilão

Abril, 2016

Page 2: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção
Page 3: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Agradecimentos

Aos meus pais por tudo

À minha família por ter acreditado

À minha namorada por todo o apoio e dedicação

Aos meus amigos pelos necessários momentos de descontração

Aos orientadores pelas discussões construtivas sobre o trabalho efetuado

À equipa da empresa BIZ por tornar esta experiência tão descontraída e agradável

Um grande e sincero obrigado.

i

Page 4: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção
Page 5: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Abstract

Although there are several factors that may influence the price of a financial asset, the main task ofa trader is not to know its real price but rather to predict future prices or trends, in order to generatereturns from the invested capital.

The main purpose of this project was the study and development of a computer model of intra-daytrading, that is, a computer algorithm that places buy and sell orders throughout the day. The studywas done with 5 years of historical data for several assets to simulate each market.

A condition was found on some days that causes the model to under perform, so was designed acombination of a trading model, optimized by a Genetic Algorithm, on top of which will be implementeda filter consisting on the forecasted range of variation of the price of the future day, and that was doneusing Boosted Decision Trees.

The results were positive but revealed that there is no single, uniform solution for all the financialassets: some had very good results, others had poor results, but the overall performance, when consideringa portfolio with all the assets studied, was positive both for the trading and the forecasting component.This is a very interesting result for further studies.

Keywords

Stocks, Computational Finance, Financial Engineering, Quantitative Analysis, Machine learning

iii

Page 6: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção
Page 7: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Resumo

Embora existam diversos fatores que influenciam a cotação de um ativo financeiro, a principal tarefade um trader não é tentar deduzir o seu valor real mas sim prever preços ou tendências futuras, de formaa obter rendimento do capital investido.

O principal objetivo desta tese foi o estudo e desenvolvimento de um modelo computacional de tradingintra-diário, ou seja, um modelo que coloca ordens de compra e venda ao longo do dia. O estudo foiefetuado com dados do histórico dos últimos 5 anos de vários títulos para simular o funcionamento domodelo aplicado a vários mercados.

Foi verificada a existência de uma situação especifica, a amplitude intra-diária, que prejudica osresultados do modelo, assim, foi desenhada uma conjugação de um modelo de trading otimizado por umAlgoritmo Genético, onde será posteriormente aplicado um filtro que consiste na previsão da amplitudede variação do preço do dia, e que é realizado por Boosted Decision Trees.

Os resultados obtidos foram positivos mas revelaram que não existe uma solução única e homogéneapara todos os títulos, alguns apresentaram resultados bons, outro apresentaram resultados fracos, noentanto o resultado geral quando se considera uma carteira com todos os títulos estudados foi positivo,tanto pela componente de trading como pela componente de previsão.

O modelo implementado neste trabalho apresenta-se como um ponto de partida interessante parapesquisa futura sobre a viabilidade de um modelo de trading intra-diário, ainda que seja necessáriorever a validade de alguns pressupostos, nomeadamente a forma como se tenta explorar a amplitude datendência intra-diária.

Palavras-chave

Ações, Finanças Computacionais, Engenharia Financeira, Análise Quantitativa, Inteligência artificial

v

Page 8: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção
Page 9: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Índice

1 Introdução 11.1 Hipótese dos mercados eficientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Teoria do random walk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.2 Evidências contra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.3 Validade do CAPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Análises ao valor real de um ativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.1 Análise fundamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.2 Análise técnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Inteligência Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3.1 Algoritmos Genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3.2 Boosted Decision Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.4 Ambiente de programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Dados financeiros 112.1 Dados reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Dados fictícios - Movimento Browniano . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Fase de treino e fase de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3.1 Validação cruzada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4 Indicadores Técnicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4.1 Médias móveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4.2 ATR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4.3 RSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.4.4 MFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.4.5 MACD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.4.6 Bandas de Bollinger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 Modelo de trading intra-diário 213.1 Avaliação dos resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Seleção do modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.1 Simulação com o modelo inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.2 Simulação com o modelo simplificado . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.3 Influência da amplitude intra-diária nos resultados . . . . . . . . . . . . . . . . . . . . . . 24

4 Machine Learning 274.1 Algoritmo Genético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.1.1 Genoma I - parâmetros do modelo de trading . . . . . . . . . . . . . . . . . . . . . 284.1.2 Genoma II - previsão com Boosted Decision Trees . . . . . . . . . . . . . . . . . . 31

vii

Page 10: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

4.1.3 Evolução das gerações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2.1 Genoma I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.2.2 Genoma II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2.3 Simulações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Conclusões e trabalho futuro 43

Bibliografia 44

Anexo A Comparação do modelo inicial com o modelo simples 49

Anexo B Esquema do algoritmo genético 53

Anexo C Resultados 54C.1 Algoritmo genético - genoma II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55C.2 Resultados - Período de treino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56C.3 Resultados - Período de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

C.3.1 Matrizes de erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60C.3.2 Gráficos comparativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

viii

Page 11: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Lista de Figuras

1.1 Exemplo de uma Decision Tree classificativa (input X é classificado em classes {-1,1}) . . 7

2.1 Movimento Browniano Simples (a) e Geométrico (b) . . . . . . . . . . . . . . . . . . . . . 132.2 Movimentos brownianos utilizados para simular o mercado (σ = 1, 4× 10−2; µ1 = 8× 10−4). 142.3 Exemplo de validação cruzada com 4-folds. . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4 True Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5 True Range com gap de abertura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1 RDSA - TR em função de ATR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2 RDSA - Variação de TR ao longo do período de treino. . . . . . . . . . . . . . . . . . . . 25

4.1 DAI - Comparação do impacto de tmin no desempenho do modelo. . . . . . . . . . . . . . 294.2 Evolução da fitness para a DAI e RDSA numa simulação com um limite de 200 gerações. 354.3 Exemplo para a INGA de um modelo treinado no período de treino total vs. a partir de

2012. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

A.1 ALV - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . . . 49A.2 ASML - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . . 49A.3 BAYN - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . . 50A.4 DAI - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . . . 50A.5 INGA - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . . 50A.6 RDSA - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . . 51A.7 SIE - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . . . . 51A.8 UNA - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . . . 51A.9 Brown0 - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . 52A.10 Brown1 - Retorno do modelo inicial e simplificado . . . . . . . . . . . . . . . . . . . . . . 52

B.1 Esquema do algoritmo genético implementado no trabalho. . . . . . . . . . . . . . . . . . 53

C.1 ALV - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . . . . 56C.2 ASML - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . . . 56C.3 BAYN - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . . . 57C.4 DAI - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . . . . 57C.5 INGA - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . . . 58C.6 RDSA - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . . . 58C.7 SIE - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . . . . . 59C.8 UNA - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . . . . 59C.9 Brownian0 - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . 60

ix

Page 12: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

C.10 Brownian1 - Retorno do modelo otimizado no período de treino . . . . . . . . . . . . . . . 60C.11 ALV - Retorno do modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . . 62C.12 ASML - Retorno do modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . 62C.13 BAYN - Retorno do modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . 63C.14 DAI - Retorno do modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . . . 63C.15 INGA - Retorno modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . . . 63C.16 RDSA - Retorno do modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . 64C.17 SIE - Retorno do modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . . . 64C.18 UNA - Retorno do modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . . 64C.19 Brown0 - Retorno do modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . 65C.20 Brown1 - Retorno do modelo com e sem BDT . . . . . . . . . . . . . . . . . . . . . . . . . 65

x

Page 13: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Lista de Tabelas

2.1 Exemplo antes (esquerda) e depois (direita) da estruturação dos dados. . . . . . . . . . . 12

3.1 Resultados do modelo inicial no período de treino. . . . . . . . . . . . . . . . . . . . . . . 223.2 Resultados do modelo simplificado no período de treino . . . . . . . . . . . . . . . . . . . 23

4.1 Simulação para a DAI com tmin = 10 (M0) e tmin = 20 (M0.1). . . . . . . . . . . . . . . 284.2 Simulação para a DAI com tmin = 10 (M0) e tmin = 20 (M0.1). . . . . . . . . . . . . . . 304.3 Indicadores técnicos e intervalos dos parâmetros relevantes. . . . . . . . . . . . . . . . . . 314.4 Parâmetros obtidos através do algoritmo genético - genoma I. . . . . . . . . . . . . . . . . 364.5 Resultados obtidos no período de treino. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.6 Resultados obtidos no período de teste. Modelo sem BDT (0) e com filtro das BDT (1). . 394.7 ASML - Resultados do modelo com filtro das BDT discriminados por semestre (período

de teste). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

C.1 Parâmetros dos indicadores técnicos obtidos através do algoritmo genético (calculados comOpen e V ol) - genoma II a). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

C.2 Parâmetros dos indicadores técnicos obtidos através do algoritmo genético (calculados comTR e ATR) - genoma II b). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

C.3 Parâmetros obtidos através do algoritmo genético - genoma II c). . . . . . . . . . . . . . . 56C.4 ALV - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . . . 60C.5 ASML - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . . 61C.6 BAYN - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . . 61C.7 DAI - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . . . 61C.8 INGA - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . . 61C.9 RDSA - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . . 61C.10 SIE - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . . . 61C.11 UNA - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . . . 61C.12 Brown0 - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . 61C.13 Brown1 - Matriz de erro das BDT no período de teste . . . . . . . . . . . . . . . . . . . . 62

xi

Page 14: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

xii

Page 15: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Lista de acrónimos

ATR Average True Range

BDT Boosted Decision Trees

CP Close Profit

DT Decision Tree

EMA Exponential Moving Average

EoD End of Day

MACD Moving Average Convergence Divergence

MBG Movimento Browniano Geométrico

MBS Movimento Browniano Simples

MFI Money Flow Index

RSI Relative Strength Index

SL Stop Loss

SMA Simple Moving Average

TR True Range

xiii

Page 16: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção
Page 17: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

1 | Introdução

A previsão do preço futuro de títulos financeiros, com o auxilio de algoritmos computacionais, é umtópico bastante abordado desde os anos 80. Devido à evolução tecnológica, não só os dados históricos dascotações começaram a estar mais facilmente acessíveis para estudos estatísticos, como o poder computa-cional começou a justificar a sua implementação. É um tópico bastante abordado porque uma entidadeque consiga prever com alguma exatidão estas oscilações, poderá gerar um enorme retorno do capital in-vestido. É também um tema de estudo abordado por diversas áreas científicas, sendo considerado um dosmaiores desafios da atualidade na área das finanças, dada a sua complexidade. As cotações das ações sãoafetadas por inúmeros fatores que podem ser bastante diversificados tais como a situação económica daempresa (e do país em que esta se encontra), notícias, eventos políticos, catástrofes naturais, especulação(psicologia), etc. Não obstante esta complexidade de variáveis, nos dias de hoje é ainda necessário terem conta que a evolução da tecnologia e a digitalização da informação veio permitir que as decisões deentrada/saída nos mercados ocorram de forma quase imediata, fazendo com que as variações dos preçossejam muito rápidas (grande volatilidade), tornando a tarefa de previsão ainda mais difícil.

Toda esta complexidade leva a que alguns autores questionem se é realmente possível prever os movi-mentos dos preços. É uma questão bastante controversa, no entanto, é atualmente aceite que existemfatores que influenciam a tomada de decisões e mesmo que parte do movimento dos mercados seja comple-tamente aleatório, é possível encontrar padrões e explorar ineficiências do mercado em certas situações.

1.1 Hipótese dos mercados eficientes

A hipótese dos mercados eficientes (HME), criada por Eugene Fama em 1960, diz-nos que o preço demercado atual é o resultado do processamento de toda a informação relevante disponível e, caso surjamnovas informações o preço ajustar-se-á rapidamente de forma a refletir esta mudança. Para a formulaçãodesta hipótese assume-se alguns pressupostos [24]:

• Racionalidade dos investidores:

Todos os investidores são racionais na tomada das decisões;

• Comportamento coletivo:

Os erros aleatórios de análise dos investidores na totalidade do mercado cancelam-se, isto é, os errosque sobrevalorizam o preço do título cancelam com os que o desvalorizam.

Assim, segundo esta teoria o preço de mercado de um título corresponde ao seu valor real, teoricamentejustificado, e não existem títulos sub ou sobre-valorizados, pelo que seria impossível para um tradersuperar o mercado. Segundo esta hipótese, definem-se três níveis de eficiência do mercado, distinguidospela forma como a informação é integrada no preço [29], tal que:

• Forma fraca:

O preço atual reflete informação de preços passados.

1

Page 18: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

• Forma semi-forte:

O preço atual reflete não só o histórico mas também toda a informação publicada (por exemplo osresultados trimestrais).

• Forma forte:

O preço atual reflete o histórico, toda a informação publicada e também toda a informação obtidaatravés de uma análise detalhada da empresa e da economia. Num mercado deste tipo nenhuminvestimento poderia superar o mercado a não ser por pura sorte e especulação.

1.1.1 Teoria do random walk

A hipótese dos mercados eficientes tem um caráter contra-intuitivo, no sentido em que quanto maiseficiente for um mercado, maior será a aleatoriedade da variação do preço, onde no limite um mercado100% eficiente é aquele em que a variação dos preços é completamente aleatória. Esta condição é resultadode um grande número de participantes de mercado que colocam ordens de entrada/saída de forma bastanteativa com o objetivo de tirar rendimento da informação que obtém. Assim, ao surgir uma nova informação(mesmo que tenha apenas uma ligeira relevância), os participantes de mercado colocam imediatamente assuas ordem e, ao fazê-lo, estão a incorporar esta informação no novo preço, eliminando possibilidades de setirar algum rendimento desta informação. Um processo deste tipo é conhecido em teoria de probabilidadescomo um martingale, um processo estocástico baseado num conceito de jogo justo (fair game) onde oconhecimento de eventos passados não ajuda a prever rendimentos futuros. Este processo é modelado naforma de um jogo [18], por exemplo o lançamento de uma moeda equilibrada, em que se fazem sucessivasapostas e se vai controlando o valor do capital remanescente. Seja X0 o nosso capital inicial, X1 o capitalapós a primeira aposta e assim sucessivamente, o processo é descrito por:

E (Xn) <∞ , (1.1)

E (Xn+1 −Xn|X1, ..., Xn) = 0 . (1.2)

Isto é, por ser um jogo justo, o valor esperado condicional do rendimento após n+ 1 apostas, Xn+1−Xn,tendo em conta os valores passados, X1, ..., Xn, é igual a 0.

Um exemplo de um martingale é um random walk (passo aleatório) e, tal como foi verificado por PaulSamuelson em 1965 [26] a hipótese dos mercados eficientes está relacionada com um random walk. Estateoria aplicada às séries temporais em mercados financeiros, na hipótese de se tratar de um movimentobrowniano descreve a forma como os preços numa série temporal variam ao longo do tempo, onde asmovimentações subsequentes do preço partem aleatoriamente de preços anteriores. A lógica por detrásdesta teoria é que a informação disponível é imediatamente refletida no preço presente, de tal forma queo preço futuro apenas será influenciado pela informação futura e não pelo que aconteceu até lá, tal comonum martingale. Isto é, num mercado eficiente em que a informação é disponibilizada a todos os partic-ipantes de forma heterogénea, as variações do preço devem ser imprevisíveis se forem convenientementeantecipadas, ou seja, se o preço incorporar toda a informação e expectativas dos participantes de mercado.Um processo que tenta simular o preço de ativos financeiros incorporando esta natureza aleatória dasoscilações dos preços é o movimento browniano, que no decorrer deste trabalho será utilizado para efeitosde comparação com os dados reais.

1.1.2 Evidências contra

No início do século XXI, a hipótese dos mercados eficientes deixou de ser tão dominante e universal,com vários economistas e matemáticos a demonstrarem que o preço de um título é, pelo menos, parcial-

2

Page 19: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

mente previsível com base no estudo de padrões passados e na análise fundamental do valor de um ativo,permitindo em teoria obter retorno do mercado. Desta forma, para se testar se um mercado é eficiente, écomum adotar um modelo que exprima a relação que existe entre risco e retorno esperado de um ativo.O modelo normalmente usado é o Capital Asset Pricing Model (CAPM), publicado em 1964 por WilliamSharpe. Este é um modelo linear utilizado para determinar a taxa de retorno teórica de um ativo re e édado por:

re = βe(rm − rf ) + rf , (1.3)

onde rm − rf é o prémio de risco, ou seja, a diferença entre a taxa de retorno esperada do mercado rme taxa de retorno livre de risco rf (por exemplo o retorno de certificados de aforro) e βe corresponde àmedida de elasticidade que relaciona o retorno do ativo com o do mercado. Existem várias situações emque este modelo não é verificado [3]:

"Momento" de curto-prazoLo e Mackinlay em 1999 [1] verificam que a correlação de curto prazo no movimento do preço de

um título não é zero. Verificam também em determinadas situações a existência de muitas oscilações nomesmo sentido, como se existisse um "momento" no preço, levando os autores a rejeitar a hipótese de queo preço segue um random walk. Lo, Mamaysky e Wang [2] verificam também numa análise estatística devários títulos, que algumas técnicas utilizadas em análise técnica como a existência de "resistências" oua formação de "head and shoulders", têm de facto alguma capacidade de previsão.

Estas conclusões são também suportadas por economistas e psicólogos que trabalham na área daeconomia comportamental (behavioural finance) e explicam-se com mecanismos de feedback em psicologia.Um trader ao ver o preço de um título a subir, pode ser coagido a entrar no mercado para tentarrentabilizar esta subida, fazendo com que o preço suba ainda mais, potenciando assim um efeito de "bolade neve" - também conhecido por "momento". Outra explicação aceite é a tendência que os investidorestêm de não reagir ao surgir nova informação, fazendo com que haja um período alargado de tempoem que o preço se ajusta à nova informação, subindo ou descendo gradualmente até que se atinge oequilíbrio, e provocando a tal correlação positiva observada por Lo e Mackinlay [1]. Independentementeda justificação, esta situação constitui uma ineficiência verificada dos mercados.

Inversões no retorno de longo-prazoNo curto-prazo (dias e semanas), o maior argumento contra a HME é o facto de existir correlação

positiva, que se inverte no longo-prazo. Fama e French [8] descobrem que cerca de 25% a 40% da variaçãode longo prazo pode ser prevista com base numa correlação negativa com variações passadas. DeBondte Thaler [40] argumentam que os investidores têm ondas de otimismo/pessimismo que fazem com que ospreços se desviem sistematicamente do seu valor real.

Efeito de escala e ações de "valor"1

No longo prazo, as ações de empresas mais pequenas (menor capitalização) têm tendência a gerarmaiores retornos do que as ações de empresas maiores [9][11][5]. Existem também evidências (como vistoem 1960 por Nicholson[36] e mais tarde confirmado por Ball [34] e Fama e French [9]) que ações devalor, ou seja, ações de empresas com baixos valores de alguns indicadores fundamentais (por exemploo índice de Preço/Lucro ou Price to Book Value), produzem em média maiores retornos do que açõesde crescimento (growth stocks), ou seja, ações com altos valores dos mesmos indicadores fundamentais.Embora esta ineficiência tenha significativamente diminuído desde a sua publicação (talvez porque ostraders incorporaram esta informação nas suas decisões), foi um efeito bastante notório até ao final dosanos 80.

BolhasShiller [32] descreve o crescimento do mercado de ações nos EUA no final dos anos 90 como sendo um

1Traduzido do termo inglês value stocks.

3

Page 20: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

contágio psicológico (outro exemplo de feedback positivo descrito anteriormente), tornando os preços nomercado sobrevalorizados. Este fenómeno que ficou conhecido como a bolha "dotcom" faz transparecera dificuldade que existe em obter o valor real de um título. Esta dificuldade leva a que os investidoresobtenham o preço atual de um título com base no preço de dias anteriores ou através da comparaçãocom outros títulos de alguma forma semelhantes (considerando que estes benchmarks estão corretos).No entanto, pelas mais variadas razões, às vezes surge alguma desconfiança por parte dos investidoressobre estes benchmarks tornando o mercado bastante volátil até se atingir um novo ponto de equilíbrio demercado, supostamente o valor real de mercado, que normalmente se encontra significativamente abaixodo anterior (momento em que a bolha rebenta). No caso da bolha dotcom, representou uma queda de78% do índice NASDAQ[23].

1.1.3 Validade do CAPM

Embora estes resultados levantem sérias questões sobre a validade da HME, até certo ponto poderá serquestionável a validade do próprio modelo CAPM, dada a sua simplicidade. Neste sentido o autor da HMEformulou uma hipótese[10] para um modelo de atribuição de preço a ativos que adiciona ao CAPM trêsnovos parâmetros para descrever as fragilidades descritas anteriormente (conhecido por Fama–Frenchthree-factor model). No entanto, embora este modelo descreva melhor o preço dos títulos, pode serconsiderado overfitting e não é ainda universalmente aceite como uma melhor descrição do mercado emcomparação com o CAPM.

1.2 Análises ao valor real de um ativo

As duas formas de analisar o valor de um ativo são a análise fundamental e a análise técnica que sedetalham de seguida.

1.2.1 Análise fundamental

A análise fundamental é um método que visa inferir o valor intrínseco de uma empresa, através daanálise de dados contabilísticos e económicos relevantes. Alguns fatores que podem contribuir para estaavaliação são:

• Fatores micro-económicos

- Organização empresarial;

- Evolução da produtividade;

- Curva oferta/procura do produto ou serviço;

• Fatores macro-económicos

- Inflação, taxas de juro;

- Política fiscal e monetária;

Assim que se determina este valor intrínseco, verifica-se a relação entre o valor obtido e o valor demercado, comprando ou vendendo a ação consoante o diagnóstico. A análise fundamental tem tambémum caráter de médio/longo prazo, uma vez que determina apenas a relação entre o valor intrínseco dotítulo e o seu valor de mercado, deixando para segundo plano o melhor timing para realizar as operações.

4

Page 21: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

1.2.2 Análise técnica

A análise técnica é o estudo do histórico do preço e volume de um título (na forma de séries temporais),com o objetivo de encontrar padrões que possibilitem fazer uma previsão de preços futuros. Embora asbolsas de valores existam há bastante tempo (séc. XVI), foi com o nascimento da New York StockExchange (NYSE ) no século XIX que Charles Dow dá início ao que é hoje conhecido como a teoria deDow, numa série de artigos que escreveu para o Wall Street Journal. Estes artigos escritos no final doséculo XIX são a base da análise técnica no mercado de ações na forma de séries temporais utilizadaatualmente, cujas principais premissas podem ser resumidas a:

• O preço de um título reflete o equilíbrio entre a oferta e a procura do mesmo;

• Um desequilíbrio na oferta/procura faz com que os preços oscilem em trends (tendências).

Enquanto que o foco da análise fundamental é deduzir o valor real da ação através dos dados funda-mentais da empresa, o foco da análise técnica é nos dados de preço e volume, em particular nos padrõesque estes exibem ao longo do tempo, tentando encontrar algum tipo de ineficiência no mercado. En-quanto que a análise fundamental tem um caráter de investimento de mais longo prazo onde um traderirá normalmente colocar apenas algumas ordens de compra/venda por ano[19], visto que os dados preçoe volume relevantes para a análise técnica estão disponíveis em tempo real, o horizonte temporal para aanálise técnica é mínimo, fazendo com que o trader possa colocar várias ordens de compra/venda por dia(trading intra-diário).

Murphy [20] descreve as três principais premissas base da análise técnica:

• A ação do mercado desconta todos os fatores relevantes

Murphy [20] define a ação de mercado como sendo toda a informação disponível para o trader,isto é, o preço e o volume de um título. Com esta definição basicamente assume-se que todos osfatores que poderiam influenciar o preço de um ativo (por exemplo dados de análise fundamental)devem estar integrados no preço e volume do mesmo. Assim, o estudo da cotação do preço de umativo será suficiente para prever variações de oferta e procura. Com base nisto um trader deveráinterpretar uma variação positiva do preço de um ativo como um aumento na procura, que deveráadvir de algum dado de análise fundamental positivo (este facto não é relevante para o trader).

• Os preços movem-se em trends

Uma trend é definida como sendo uma tendência ou direção principal em que o preço de um ativose move durante um período de tempo. Existem tendências de curto, médio e longo prazo.

• A história repete-se

Ao utilizar análise técnica para estudar um ativo, examina-se dados históricos do preço à procurade padrões que possam prever a direção do preço no futuro. Uma premissa básica desta análise éentão que os padrões que ocorreram no passado possam voltar a repetir-se no futuro com algumaregularidade. Murphy [20] atribui este facto à natureza das interações e expectativas do ser humano,remetendo o estudo para a psicologia e dinâmicas de grupo.

1.3 Inteligência Artificial

O processo de previsão do mercado financeiro é um tema bastante complexo e que envolve váriasdificuldades como o ruído inerente às séries temporais financeiras, o grande número de variáveis quepodem influenciar o preço, ou até a natureza de random walk dos mercados. Como tal, para um ser

5

Page 22: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

humano torna-se bastante difícil reconhecer e distinguir todos os padrões com significado estatístico.Assim, a utilização de algoritmos de inteligência artificial é bastante útil, nomeadamente algoritmos deaprendizagem que possam "aprender" estes padrões ou descobrir, de uma série de padrões já conhecidos,qual a parametrização que teria melhor rendimento para cada ação. No decorrer deste trabalho foramutilizados dois tipos de algoritmos: os algoritmos evolutivos, nomeadamente os Algoritmos Genéticose as Boosted Decision Trees. Ambos os modelos pertencem à classe dos algoritmos de aprendizagemsupervisionada (supervised learning), onde o objetivo é a procura da melhor solução que resulta de umacombinação de parâmetros num hiper-espaço de hipóteses/parâmetros [4].

1.3.1 Algoritmos Genéticos

Os algoritmos genéticos (AG) utilizam conhecimentos de seleção natural e evolução das espécies,tentando simular o processo de evolução dos indivíduos de uma população, onde as sucessivas geraçõesvão melhorando as suas caraterísticas (performance) de acordo com o princípio da seleção natural.

A primeira utilização destes algoritmos aplicados aos mercados foi em 1999, quando Allen e Kar-jalainen [13] utilizaram um AG para identificar padrões técnicos que possibilitassem a previsão do preçodo índice S&P 500 de 1928 a 1995. Contudo, não conseguiram melhores resultados do que uma simplesestratégia de "buy and hold". De forma semelhante Badawy, Abdelazim and Darwish [12] em 2005, uti-lizaram um AG para selecionar estratégias de trading baseadas em 9 indicadores técnicos, maximizandoo retorno no mercado de ações do Egito. Neste estudo os autores utilizaram dados de 1999 a 2005 everificaram que neste período esta estratégia resultou em maiores retornos do que uma outra técnicautilizando o Sharpe Ratio, também conhecida como Modern Portfolio Theory. Ainda em 2005, Pan et. al[17] aplicaram um AG baseado apenas na mutação, a ações de grandes empresas tecnológicas dos EUAà procura de regras de trading que maximizassem os retornos. Neste estudo concluiu-se que regras detrading que envolviam a compra, venda e troca de títulos transacionados batiam o mercado e também asusuais estratégias de buy and hold. Lipinski [27] também utilizou AG com regras de trading, comparandoa performance de um Extended Compact Genetic Algorithm (ECGA) com um algoritmo de otimizaçãoBayesiana (AOB) e também com o método buy and hold. Verificou-se neste estudo que o ECGA, superouos resultados das outras duas formas de trading. Dada a capacidade de computação na altura o autoracabou por recomendar o AOB para uma aplicação em tempo real devido ao imenso tempo utilizado peloECGA.

Com o objetivo de maximizar o retorno e minimizar o risco do investimento, Hassan [14] utilizou umalgoritmo conhecido por multi objective genetic programming (MOGP) para otimização de um portfóliode ações incluídas no índice FTSE-100 (Reino Unido), num período compreendido entre 2002 e 2005.Descobriu-se neste estudo que as soluções obtidas eram modelos não lineares de indicadores financeirosconhecidos: maximização do retorno - média do retorno anual; minimização do risco - desvio padrão doretorno.

P. Parracho et. al [28] estudaram a aplicação de algoritmos genéticos na escolha de estratégias detrading com base em indicadores técnicos para reconhecimento de padrões, utilizando dados entre 2005e 2010 dos índices S&P500, Dow Jones e NYSE, obtendo um resultado médio aproximadamente 20%superior à estratégia de buy and hold. Ainda em 2010, Chiu e Chian [6] desenvolveram um AG paraotimizar os valores de vários parâmetros utilizados em indicadores técnicos para estratégias de tradingque atuariam nos mercados dos EUA, Taiwan, Indonésia e Singapura. Chegaram à conclusão que devido àdinâmica dos mercados do Taiwan, Indonésia e Singapura, era mais fácil obter uma otimização, concluindoassim que países menos desenvolvidos apresentam mercados menos eficientes.

6

Page 23: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

1.3.2 Boosted Decision Trees

As boosted decision trees (BDT) são na verdade uma combinação de dois modelos de aprendizagemsupervisionada, bastante utilizados em problemas classificativos (mas também utilizados em problemasregressivos), as Decision Trees e o método de Boosting.

Decision Trees

As Decision Trees, no contexto de Machine Learning, são um algoritmo baseado num conjunto deregras sucessivas de separação de conjuntos de dados (ou eventos), com o objetivo de os classificar emclasses. Estes algoritmos, tal como o nome sugere, apresentam uma estrutura semelhante a uma árvore,onde se pode identificar (ver figura 1.1) as seguintes partes constituintes:

Nós - com as condições de separação

Ramos - com os valores condicionais dos atributos

Folhas - onde se faz a classificação dos inputs

Figura 1.1: Exemplo de uma Decision Tree classificativa (input X é classificado em classes {-1,1})

Estas árvores são bastante utilizadas como estimadores2 base no algoritmo de boosting devido à suasimplicidade, robustez e rapidez [33][22][16].

Boosting

O algoritmo de boosting pertence à classe dos ensemble methods, ou seja, é um método que utiliza váriosestimadores (ou vários estimadores ligeiramente diferentes entre si mas produzidos com o mesmo algoritmobase) com o objetivo de obter uma melhor capacidade de previsão que qualquer um dos algoritmos porsi só[16]. Com este tipo de métodos pretende-se aproveitar a capacidade de previsão que cada um dosalgoritmos do conjunto tem (nos vários sub-espaços), conjugando todas as hipóteses numa única hipótese(que supostamente terá maior exatidão e será mais robusta).

A forma usual de aplicação do boosting (e que foi utilizada no decorrer deste trabalho) é a aprendizagembaseada nos dados (X), previamente etiquetados de acordo com o output desejado (Y ), com o objetivode fazer previsões válidas com novos dados (onde não se conhece à partida o output). Um algoritmodeste tipo dá-nos uma função h(X) que produz uma solução para o problema que tem como inputs

X(x1, x2, ..., xn). O problema classificativo mais simples, e que foi utilizado na realização deste trabalho,2O termo estimador na área de inteligência artificial refere-se a um algoritmo ou modelo utilizado para realizar uma

previsão (classificativa ou regressiva).

7

Page 24: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

consiste em separar um conjunto de dados em duas classes, codificadas como {-1,1}. O algoritmo nestecaso deverá aprender com um conjunto de n observações (X1, y1), ..., (Xn, yn) para no futuro prever aclasse desconhecida yn+1 de uma nova observação Xn+1. Idealmente teríamos:

aprendizagem[(X1, y1), ..., (Xn, yn)]→ h(Xn+1) = yn+1.

A grande questão por detrás do conceito de boosting surge da discussão sobre se seria possível tornarum estimador fraco num estimador forte[25]. Num problema de classificação binária, um estimador fracoé aquele que apresenta uma exatidão ligeiramente melhor do que uma escolha aleatória (por exemploatirar uma moeda ao ar), isto é com uma taxa de classificação correta > 50%. Pelo contrário, umestimador forte é o que apresenta uma capacidade de previsão quase perfeita, à volta dos 99%. Schapire eFreund [30][41] provaram que utilizando este conceito de boosting é possível melhorar iterativamente umclassificador base fraco, transformando-o num classificador forte. Estes autores sintetizam a ideia base doboosting como "garnering wisdom from a council of fools" [31], isto é, os fools são os estimadores fracosque apresentam uma performance ligeiramente melhor do que uma escolha aleatória. Estes estimadorespor si não apresentam uma solução viável para qualquer problema, no entanto, a tarefa do algoritmode boosting será aprender através das sucessivas aplicações do estimador base (iterações), conjugando ainformação obtida para construir uma estimativa mais forte.

É necessário compreender que a aplicação sucessiva do estimador base não traria à partida nenhumamelhoria sobre a aplicação única do mesmo; o que o algoritmo de boosting faz nas sucessivas iterações éatribuir diferentes pesos às observações conforme o desempenho do estimador base, onde as observaçõesque vão ficar com um maior peso são as observações onde se obteve um pior desempenho. Ao atribuir pesoscrescentes conforme a "dificuldade" de classificação, o algoritmo vai focar-se mais nestes casos, melhorandoa sua exatidão para as iterações futuras. Em cada iteração m = 1, ...,mmax, o vetor Wm = (wm

1 , ..., wmn )

contém os pesos wi de cada observação, conforme o sucesso obtido na classificação de iterações anteriores.Por fim, conjuga-se os resultados de todas as iterações para se formar um estimador mais exato, atribuindopesos superiores às melhores soluções. O resultado final é um voto da maioria, ponderado conforme osucesso obtido.

Existem vários algoritmos de boosting onde os pesos são calculados de diferentes formas. O algoritmoinicial era o AdaBoost, no entanto é reconhecido que este algoritmo sofre vários problemas de overfittingao atribuir um peso demasiado alto às classificações erradas [15]. Assim, optou-se por utilizar nestetrabalho o algoritmo gradient boosting.

1.4 Ambiente de programação

Todo o código desenvolvido no decorrer deste trabalho foi escrito utilizando a linguagem Python, coma versão 2.7. Foram também utilizadas algumas bibliotecas para facilitar o processo, entre as quais sedestaca as principais:

• Matplotlib - para produzir as representações gráficas dos dados;

• Multiprocessing - utilizada na computação paralela do algoritmo genético;

• NumPy - para operações matemáticas;

• Pandas - utilizada para análise de dados, nomeadamente operações com matrizes;

• Scikit-learn - para a implementação dos algoritmos de machine learning bem como vários métodos(cross validation, feature selection e grid search) e extração de métricas associadas.

8

Page 25: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Foram também criadas duas bibliotecas locais para dar suporte ao programa principal:

• GeneticFunctions.py - com todas as funções utilizadas pelo algoritmo genético, nomeadamente paragerar as populações (incluindo funções onde se faz o cruzamento, seleção e mutação dos indivíduos)e avaliar a performance de cada indivíduo;

• ModelAux.py - onde se dá o processamento dos dados intra-diários;

• TAindicators.py - utilizada para cálculo dos indicadores técnicos.

Para a simulação dos dados do movimento browniano criou-se ainda o programa brownian.py.

9

Page 26: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

10

Page 27: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2 | Dados financeiros

As simulações obtidas na elaboração deste trabalho, foram realizadas utilizando dados do históricode preços intra-diários no período compreendido entre 01/10/2010 e 01/10/2015, onde cada dia contémvárias cotações por segundo, desde a abertura (8h) até ao fecho de mercado (16h:30m). Foram obtidosdados para as cotações das seguintes ações:

ALV - Autoliv

ASML

BAYN - Bayer AG

DAI - Daimler AG

INGA - ING Group

RDSA - Royal Dutch Shell

SIE - Siemens

UNA - Unilever

Para além deste conjunto de dados reais, e por motivos de comparação, simularam-se também doisconjuntos de dados fictícios que seguem um processo estocástico1, conhecido por movimento browniano.Estes conjuntos de dados foram tratados de igual forma que os títulos e, no decorrer do trabalho foramdenominados por Brown0 e Brown1. De seguida apresenta-se a forma como foi efetuado o tratamentodos dados reais e como foram produzidos os dados fictícios.

2.1 Dados reais

Os dados das ações, estruturados na forma [data; hora; preço; volume], contêm todas as transaçõesefetuadas nos 5 anos do período referido, o que implica uma enorme quantidade de dados brutos, comvárias cotações por milissegundo. Esta estruturação bruta dos dados tornar-se-ia ineficiente e morosapara qualquer modelo computacional, o que implicou uma reestruturação (ou limpeza) dos dados. Emprimeiro lugar, retirou-se linhas sucessivas com preços iguais (no mesmo dia), mantendo o somatório dovolume numa única linha para que esta informação não fosse perdida, tal como se pode observar na tabela2.1. De seguida dividiu-se o ficheiro de cada cotação em 10 sub-ficheiros, onde cada um contém 6 mesesde informação e normalizou-se o horário, subtraindo uma hora aos dados com horário de verão. Foramtambém apagados os dias com dados incompletos.

1Processo que representa a evolução aleatória de um sistema ao longo do tempo.

11

Page 28: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Dia Hora Preço Volume01/10/10 08:00:00 10.0 20001/10/10 08:00:05 10.0 5001/10/10 08:00:10 10.9 80001/10/10 08:00:15 10.5 50001/10/10 08:00:20 10.0 10001/10/10 08:00:25 10.0 500

Dia Hora Preço Volume01/10/10 08:00:00 10.0 25001/10/10 08:00:10 10.9 80001/10/10 08:00:15 10.5 50001/10/10 08:00:20 10.0 600

Tabela 2.1: Exemplo antes (esquerda) e depois (direita) da estruturação dos dados.

2.2 Dados fictícios - Movimento Browniano

Uma questão que naturalmente surge ao estudar os mercados financeiros, é se realmente existempadrões nas movimentações do preço ou se na verdade é tudo derivado de um conjunto de interaçõesaleatórias dos intervenientes no mercado, impossibilitando qualquer tarefa de previsão. Desta forma etambém para validar o modelo computacional, decidiu-se estudar um processo estocástico cujos resultadossão conhecidos.

Um movimento Browniano standard (MBS) é um processo estocástico onde se verifica as seguintescondições:

• É contínuo;

• Cada novo incremento (observação) é independente e identicamente distribuído (iid);

• Segue uma distribuição Wt ∼ N(0, 1), onde Wt é um processo de Wiener, que pode ser aproximadoa uma distribuição normal, N , com média 0 e desvio padrão 1.

Um processo estocástico St diz-se um Movimento Browniano Geométrico (MBG) se tomar a forma

dSt = µStdt+ σStdWt , (2.1)

onde µ e σ são constantes que traduzem, respetivamente, a deriva (drift) e a volatilidade do mercado.A solução analítica do movimento browniano geométrico é:

S1t = S0 exp

[(µ− σ2

2

)t+ σWt

], (2.2)

onde S0 é um valor inicial arbitrário. Para um movimento browniano simples retira-se o termo de derivaµ e tem-se:

S0t = S0 exp

(−σt

2+Wt

)]. (2.3)

Nas figuras seguintes, 2.1(a) e 2.1(b), pode observar-se simulações efetuadas com as equações 2.3 e2.2, respetivamente, onde se torna evidente a função do termo µ. Nas figuras pode observar-se o processode Wiener que deu origem aos movimentos Brownianos, a solução analítica St das equações anteriores eos movimentos brownianos resultantes.

12

Page 29: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

WienerS0MBS

(a) σ = 0, 2; µ = 0

S1MBG

Wiener

(b) σ = 0, 2; µ = 0, 1

Figura 2.1: Movimento Browniano Simples (a) e Geométrico (b)

Por questões de visualização foram utilizados parâmetros nestas simulações que não refletem correta-mente a evolução da cotação de um ativo. Desta forma, para se obter dados mais semelhantes aos reaisfoi considerado:

• S0 = 1, que funciona como uma normalização ao preço ao inicial;

• Para o valor de σ: volatilidade intra-diária entre 1% e 5% do preço de abertura;

• Para o valor de µ: retorno médio dos 3 ativos com maior valorização nos 5 anos de história, ≈ 170%;

O volume destes dados também foi modulado, onde cada observação segue uma distribuição normal talque V ol = 1500× |(N(1, 1)|.

Obviamente para se obter dados mais fidedignos, que verdadeiramente traduzissem a evolução dopreço de uma ação, teria de incluir na equação 2.1 outros fatores mais complexos como por exemplouma distribuição com dependência temporal em σ, o que levaria a tendências de volatilidade de médioprazo, pois a volatilidade real do mercado não é constante ao longo do tempo. Basta observar que osvalores de ATR no início da crise financeira (período de elevada especulação) apresentaram valores sub-stancialmente superiores. Apesar de se tornar a equação mais complexa para melhor descrever a situaçãoreal, existem ainda dúvidas se na verdade será possível descrever corretamente o preço de uma açãoutilizando simplesmente um movimento browniano[35]. Desta forma, como provavelmente ao introduzirum movimento browniano mais complexo ficaríamos sempre distantes da situação real e como o objetivopara este trabalho é apenas obter dados aleatórios que se aproximem das oscilações de um ativo real,foram considerados o movimento browniano simples (MBS) e o geométrico (MBG) das equações 2.3 e2.2, respetivamente, e cujos resultados se apresentam na figura 2.2.

13

Page 30: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

0

1

Figura 2.2: Movimentos brownianos utilizados para simular o mercado (σ = 1, 4× 10−2; µ1 = 8× 10−4).

Ambos os dados têm por base a mesma simulação de um processo de Wiener, no entanto o MBGapresenta claramente uma tendência ascendente devido ao termo de deriva, µ, enquanto que o MBS temuma movimentação lateral como seria de esperar. Foram feitas estas duas simulações para verificar seexiste alguma relação entre uma tendência de médio/longo prazo e os resultados do modelo de tradingou até se tem algum efeito na previsão das BDT. No decorrer do trabalho, o MBS foi denominado porBrown0 e o MBG por Brown1.

2.3 Fase de treino e fase de teste

Os dados contêm 5 anos de informação, no entanto, para que se possa efetuar um estudo com signifi-cado estatístico, este período não deve ser todo utilizado para otimizar o modelo, é necessário que hajaum período de treino onde se ajusta o modelo, separado de um período de teste onde se faz a validaçãodo mesmo. Assim, os dados foram separados em 2 períodos:

• Fase de treino - 7 semestres2 (de 01/10/2010 a 01/04/2014);

• Fase de teste - 3 semestres (de 01/04/2014 a 01/10/2015);

Durante o período de treino, pretende-se construir um modelo com bons resultados (no caso das BDTcom uma boa exatidão na previsão) mas que ao mesmo tempo seja robusto ao overfitting dos dados.Overfitting é um problema que ocorre quando um modelo se especializa em determinadas particularidadesdos dados onde foi treinado, fazendo com que a performance em novos dados seja bastante baixa. Destaforma, o algoritmo de inteligência artificial não deverá tentar apenas encontrar o melhor modelo possívelpara o período de treino, mas também o modelo com maior robustez [38]. Para tentar prevenir esteproblema, o período de treino foi tratado com cuidado para não se usar resultados do "futuro", ou seja,para não se utilizar resultados que o modelo aplicado na vida real não teria acesso. Outra ferramentautilizada para tentar prevenir o problema foi a aplicação da técnica da validação cruzada que se explicade seguida.

2Cada semestre deverá conter aproximadamente 128 dias de trading, no entanto, devido ao tratamento de dados efetuadoem 2.1 e a outros fatores externos (interferência das entidades reguladoras, feriados, etc.), cada semestre pode conter umnúmero ligeiramente diferente de dias, no entanto esta diferença é pequena (< 3%), pelo que foi desprezada.

14

Page 31: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2.3.1 Validação cruzada

Na elaboração deste trabalho utilizou-se a variante k-fold da validação cruzada, onde o períodode treino é dividido em k partes iguais que são sucessivamente combinadas em diferentes períodos detreino/teste. Na figura 2.3 está esquematizado o procedimento utilizando validação cruzada de 4-folds.Começando com um período de treino completo, este será previamente dividido em k partes. De seguidaa cada iteração o procedimento será:

• Treinar o modelo com k − 1 dos k períodos;

• Validar o modelo obtido na fold que ficou de fora na fase de treino (a azul na imagem). Nesta faseé onde se obtêm as métricas que vão permitir avaliar a performance do modelo;

• Repetir k vezes de forma a utilizar todo o período de treino.

1-fold

2-fold

3-fold

4-fold

Período de treino completo

Validação

Validação

Validação

Validação

Treino

Treino

Treino

Treino

Figura 2.3: Exemplo de validação cruzada com 4-folds.

Este procedimento é bastante importante porque permite diminuir os efeitos do overfitting, uma vezque é pouco provável que um modelo que se ajuste demasiado bem a uma particularidade numa foldtenha bons resultados nas restantes, reduzindo assim a performance geral desse modelo. É de notar noentanto que esta técnica não é utilizada para realizar a aprendizagem das BDT, dado que a cada fold éajustada uma nova BDT (apagando o ajuste anterior). É usada sim para obter as métricas de uma BDTcom um determinado conjunto de parâmetros, de forma a selecionar a combinação de parâmetros maisrobusta em todo o período de treino. Neste trabalho utilizou-se uma fold por semestre, ou seja, 7-foldpara o período de treino.

15

Page 32: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2.4 Indicadores Técnicos

Como inputs das BDT foram utilizados vários indicadores técnicos, a forma como foram calculados édetalhada de seguida.

2.4.1 Médias móveis

SMA(P, n)

Média móvel simples das últimas n observações da série temporal P , tal que:

SMA =

∑ni=0 Pi

n, (2.4)

EMAt(P, n)

Média móvel exponencial das últimas n observações da série temporal P , tal que:

EMAt =

n∑i=0

α(1− α)iPi, (2.5)

α =2

1 + n(2.6)

onde i = 0 corresponde à ultima observação, ou seja, o peso das observações vai decrescer exponen-cialmente com a sua "antiguidade".

Para que estas médias fossem comparáveis em diferentes períodos, os valores destes indicadoresforam divididos pelo preço de abertura. Os valores de n variam conforme a aplicação, utilizandovalores maiores (tipicamente com n ≥ 50) para procurar tendências de longo prazo e vice-versa.

2.4.2 ATR

Este indicador, desenvolvido por Wilder nos anos 70 como uma medida de volatilidade do preço deativos financeiros[21] é a base do modelo de trading que será utilizado neste trabalho. Para compreenderesta métrica é necessário explicar primeiro o indicador True Range (TR), cujo objetivo é calcular aamplitude de variação do preço num determinado dia t, tal que:

TRt = max(Hight, Closet−1)−min(Lowt, Closet−1) , (2.7)

onde Hight e Lowt correspondem respetivamente aos valores máximo e mínimo atingidos pelo preço doativo no dia t, e Closet−1 corresponde ao preço de fecho no dia anterior.

Na figura 2.4 pode observar-se a evolução hipotética do preço de um ativo entre dois dias, nomeada-mente desde o final do dia 1 e ao longo do dia 2, num mercado que funciona desde as 08:00 às 16:30(como é o exemplo da Euronext Lisboa). Os pontos a laranja na figura são os pontos necessários parao cálculo do indicador TR. No dia 1 este ponto corresponde ao preço de fecho, Close = 119.00 e,no dia 2 os pontos correspondem respetivamente ao mínimo diário, Low = 118.20 e e ao máximodiário, High = 120.50 e. Calculando TR com os pontos da figura 2.4 para o dia 2, este indicador ficaTR = max(120.50, 119.00) −min(118.20, 119.00) = 2.30 e, que corresponde à amplitude de variação dopreço do ativo nesse dia.

Tal como foi dito, com esta métrica pretende-se calcular a variação do preço num determinado dia,no entanto, por vezes acontece uma descontinuidade entre o preço de dias diferentes, isto é, o preçoabre acima/abaixo do preço de fecho do dia anterior (Open Gap) e continua sempre acima/abaixo desse

16

Page 33: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

119

118

118.5

119

119.5

120

120.5

121

15:00 16:00

Preço(€)

Dia1

118.2

120.5

8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00

Hora

Dia2

Figura 2.4: True Range

valor. Isto pode acontecer por várias razões, mas em geral será quando alguma informação relevantesurgiu enquanto o mercado estava fechado, fazendo com que o preço de abertura já tenha essa informaçãodescontada. Caso a métrica utilizasse apenas a volatilidade diária (High−Low), não se estaria a contarcom o gap ocorrido, sendo esta a razão que justifica a inclusão do preço de fecho do dia anterior no cálculodesta métrica (e o nome True Range em vez de apenas Range). Pode observar-se uma representação destasituação na figura 2.5. Neste caso o indicador seria TR = max(120.50, 118.50)−min(119.10, 118.50) = 2.00

e, em vez de utilizar apenas High− Low = 120.50− 119.10 = 1.40 e.

118.5

118

118.5

119

119.5

120

120.5

121

15:00 16:00

Preço(€)

Dia1

119.1

120.5

8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00

Hora

Dia2

Figura 2.5: True Range com gap de abertura

Este indicador, embora seja uma boa medida de volatilidade, não nos permite retirar grande infor-mação sobre o comportamento do mercado se for apresentado desta forma. Em primeiro lugar porqueé um valor absoluto, ou seja pode apresentar o mesmo valor quer o mercado esteja a subir ou a descer,logo não permite que se retire nenhuma informação sobre tendências de mercado. Em segundo lugarporque existem naturalmente mercados mais voláteis que outros, como tal, estar a analisar que num diaa ação da empresa X teve um TR de 18e não tem grande valor para uma estratégia de trading. O quefaz mais sentido é analisar a tendência do próprio indicador, normalmente utilizando uma média móvel(que é atualizada ao final de cada dia com o valor mais recente de TR) que de seguida será utilizadacomo benchmark para comparação. Frequentemente é feita uma média exponencial de TR, que origina o

17

Page 34: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

indicador denominado Average True Range, ATR, tal que:

ATRn = EMA(TR, n). (2.8)

Novamente, para que os valores obtidos com esta métrica sejam comparáveis, o valor de ATR foi medidocomo uma percentagem do preço de abertura.

2.4.3 RSI

O Relative Strength Index (índice de força relativa), RSI, é utilizado para identificar períodos emque o título está overbought ou oversold ("caro" ou "barato"). Utiliza para isto uma relação entre asobservações em que o preço teve uma variação positiva (Pt−1 < Pt) e em que o preço teve uma variaçãonegativa (Pt−1 > Pt), tal que:

RSI(P, n) = 100− 100

1 + rs(P, n), (2.9)

rs(P, n) =SMA(Pup, n1)

SMA(P dwn, n1), (2.10)

onde Pup e P dwn são respetivamente os preços, dentro do intervalo temporal de n dias, em que o títuloapresentou uma variação positiva e negativa. Como se percebe das equações anteriores, este indicadorjá tem uma escala entre 0 e 100% pelo que não é necessário proceder com nenhuma normalização. Emanálise técnica é normalmente considerado que o título está sub-valorizado quando RSI ≤ 20% ou queestá sobre-valorizado quando RSI ≥ 80%. O valor típico que se utiliza para calcular este indicador én = 14.

2.4.4 MFI

O MFI pode ser entendido como um RSI com a ponderação do volume, ou seja, é uma medida dafluidez do capital que está a ser transacionado em determinado título (uma ordem é sempre P × V ), talque:

MFI(P, V, n) = 100− 100

1 +mf(P, V, n), (2.11)

mf(P, V, n) =SMA(Pup.V, n1)

SMA(P dn.V, n1), (2.12)

onde V olt é o volume do dia t e Pup e P dwn são idênticos aos do RSI. De forma semelhante ao RSI,é normalmente considerado que o título está sub-valorizado quando MFI ≤ 20% ou que está sobre-valorizado quando MFI ≥ 80%. Tal como no RSI, o valor típico que se utiliza para calcular esteindicador é n = 14.

2.4.5 MACD

O MACD (Moving Average Convergence Divergence) calcula a convergência e divergência entre mé-dias móveis exponenciais, uma rápida com período f e uma lenta com período s (MACD line). De seguidaé utilizada uma terceira média exponencial (signal line) ainda mais curta, tipicamente com 9 dias, com

18

Page 35: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

a qual se calcula um histograma (MACD Hist).

MACD line = EMA(P, s)− EMA(P, f), (2.13)

Signal line = EMA(P, n), (2.14)

MACD Hist = MACD line− Signal line (2.15)

onde tipicamente f = 12 e s = 18, 26, 30.

2.4.6 Bandas de Bollinger

Utilizando uma média móvel simples de n períodos como ponto de referência, SMA(P, n), as bandasde Bollinger são calculadas em função de k desvios padrão σ a que estão desviadas desta referência, talque:

Bollingerup(P, n, k) = SMA(P, n) + kσSMA(P,n), (2.16)

Bollingerdn(P, n, k) = SMA(P, n)− kσSMA(P,n). (2.17)

Os traders também utilizam este indicador para identificar períodos em que o título está overbought ouoversold, isto é, colocam posições longas quando o preço tem um valor inferior à Bollingerdn ou posiçõescurtas quando o preço tem um valor superior à Bollingerup. Para normalizar este indicador, os valorestambém foram apresentados em relação com o preço de abertura do dia. Os valores comuns nas análisescom este indicador são n = 20 e k = 2.

19

Page 36: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

20

Page 37: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

3 | Modelo de trading intra-diário

Nesta secção, será introduzido o modelo base de trading que vai ser posteriormente implementado nosalgoritmos de machine learning. O ponto de partida é um modelo idealizado pela empresa BIZ, sobreo qual se vão realizar testes preliminares para decidir se será utilizado ou se são necessárias algumasalterações.

O modelo adotado neste trabalho vai procurar utilizar e tirar partido da volatilidade intra-diária dasações, com base no indicador ATR. O pressuposto base por detrás da construção deste modelo de tradingé que a amplitude intra-diária média de variação do preço é algo que tem alguma regularidade, pelo quese assume que a cada dia esta amplitude será cumprida. Neste modelo existem 4 tipos de ordens:

• Trigger - Ordem de disparo, ou seja, quando se coloca uma ordem de compra (longa1 ou curta2);

• Close Profit - Ordem de fecho com lucro;

• Stop Loss - Ordem de fecho para limitar as perdas;

• End of Day - Ordem de fecho ao fim do dia (caso o preço não atinja a Close Profit ou Stop Loss).

A formulação mais detalhada deste modelo, bem como a forma analítica de todas as ordens descritasanteriormente encontra-se no Anexo Confidencial.

Por razões práticas, o modelo conta também com um gap temporal no início do dia, denominado tmin,onde não são colocadas quaisquer ordens mesmo que o preço atinja o Trigger. Após este tempo mínimosão aceites ordens longas quando, Pi−1 < TriggerL ≤ Pi e ordens curtas quando Pi ≤ TriggerS < Pi−1.Isto foi definido desta forma porque na abertura do mercado e durante um período subsequente, o mercadoapresenta uma volatilidade bastante superior ao restante do dia, o que dificulta a colocação de ordensa um valor exato numa situação real. De igual forma, também foi introduzido no modelo um tempomáximo, tmax, que fecha as ordens ao final do dia e que basicamente antecipa EoD. Por uma questão deconveniência, por vezes no decorrer deste trabalho os nomes CloseProfit e StopLoss foram abreviadospara CP e SL.

3.1 Avaliação dos resultados

Antes de continuar com a seleção do modelo, é necessário definir métricas para avaliar os resultadosobtidos. Desta forma, para avaliar os resultados é importante ter em conta o retorno total no período emestudo, no entanto, ao ter em conta apenas o retorno, não se sabe qual o risco que se incorreu. Para umaimplementação prática deste modelo, é bastante importante controlar a magnitude de eventuais perdas,pois pretende-se ganhar o máximo com o menor risco possível. A medida de risco utilizada foi o Risk

1Ordens em que se ganha com a subida do preço2Ordens em que se ganha com a queda do preço

21

Page 38: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Multiple, R, que mede basicamente o que se ganhou (ou perdeu) quando foi concluída uma transação, emrelação com o que se arriscou (value at risk - V AR), tal que:

R =Retorno %

V AR, (3.1)

V AR = 100× |Trigger − StopLoss|Trigger

. (3.2)

Ao longo do trabalho esta métrica vai ser utilizada fazendo uma média de todos os R obtidos nasordens que foram colocadas, para avaliar o risco médio que foi incorrido no período.

É importante referir que os gráficos que são apresentados no decorrer do trabalho têm em conjunto osretornos do mercado e do modelo, contudo isto é apresentado desta forma apenas para efeitos ilustrativose não deve ser entendido como uma comparação direta entre o retorno do modelo e o do mercado, vistoque esse não é o objetivo deste modelo nem deste trabalho. O objetivo será apenas construir um modelocom um retorno positivo (o mais constante possível), em que se arrisca o mínimo possível.

3.2 Seleção do modelo

No início da elaboração deste trabalho foi sugerido que fosse testado um modelo de trading desen-volvido pela empresa BIZ, o modelo inicial. No entanto, este modelo é complexo e implica cálculos acada novo preço (ou seja, a cada milissegundo), o que exige um grande esforço computacional. Destaforma, testou-se o modelo inicial, descrito no Anexo Confidencial A.0.1 no período de treino e tentou-sesimplificar o mesmo de forma a reduzir o tempo das simulações.

3.2.1 Simulação com o modelo inicial

Foi realizada uma simulação da atuação intra-diária do modelo no período compreendido entre01/10/2010 e 01/04/2014 (que corresponde ao período de treino referido em 2.3) para todos os títu-los enumerados em 2.1 e para o movimento browniano simples e geométrico. Os resultados obtidos foramos que se apresentam de seguida na tabela 3.1.

Título Ordens Trigger CP SLEoD R Retorno (%)# % Pos. L S 1 2 1 2

ALV 838 35,08 438 400 40 3 125 706 4 -0,04 -6,26ASML 836 37,44 387 439 67 3 175 649 9 -0,02 -5,48BAYN 825 34,18 418 407 36 6 154 663 2 -0,06 -10,44DAI 834 35,61 418 416 37 4 122 703 5 -0,02 -12,66INGA 828 41,79 391 437 44 2 119 700 7 0,06 22,41RDSA 831 34,90 407 424 47 5 203 618 5 -0,10 -16,98SIE 828 35,02 442 386 34 5 160 661 2 -0,07 -14,87UNA 813 35,30 426 387 75 6 213 588 6 -0,05 -12,80

Brown0 888 35,47 455 433 37 3 107 778 0 -0,05 -13,30Brown1 889 36,56 467 422 42 3 109 777 0 -0,04 -11,55

Média s/Brown 828 35,77 410 417 47 5 161 658 5 -0,04 -8,44Média total 838 35,81 419 418 46 4 152 678 4 -0,04 -9,10

Tabela 3.1: Resultados do modelo inicial no período de treino.

Apesar da aparente complexidade deste modelo, o resultado geral nos 3,5 anos da simulação é bastantenegativo com todos os títulos a apresentarem um retorno negativo menos a INGA, o que resultou numretorno médio total de -8,44% (com as brownianas -9,10%) e onde o indicador de risco R foi -0,04, ou seja

22

Page 39: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

perdeu-se 4% do que se arriscou. É interessante retirar dos resultados gerais, que foram colocadas aprox-imadamente tantas ordens longas como curtas e que a percentagem de ordens com retorno positivo foide aproximadamente 35,8%. É também interessante notar que os resultados obtidos para os movimentosbrownianos não foram muito diferentes dos restantes títulos, com os valores a ficar bastante próximos damédia.

3.2.2 Simulação com o modelo simplificado

Visto que os resultados do modelo de trading inicial não se aproximam do desejável, e devido àcomplexidade do modelo, procedeu-se à simplificação do mesmo para retirar apenas o essencial. Oessencial no modelo é o facto de se pretender explorar a amplitude intra-diária, tentando rentabilizar atrend mas ao mesmo tempo manter o controlo do risco. Este novo modelo simplificado, apresenta-se emdetalhe no Anexo Confidencial A.0.2.

Foi realizada uma nova simulação com este modelo simplificado no mesmo período da anterior (nova-mente para todos os títulos enumerados em em 2.1 e para o movimento browniano simples e geométrico).Os resultados obtidos foram os da tabela 3.2 que se apresenta de seguida.

Título Ordens TriggerCP SL EoD R Retorno (%)# % Pos. L S

ALV 823 30,50 428 395 242 563 18 -0,13 -18,70ASML 807 34,57 400 407 262 523 22 -0,02 -7,09BAYN 813 30,50 414 399 241 561 11 -0,12 -27,64DAI 815 36,07 404 411 281 515 19 0,05 12,87INGA 812 36,08 389 423 275 515 22 0,04 17,26RDSA 819 31,50 401 418 249 554 16 -0,10 -21,36SIE 815 30,06 434 381 233 561 21 -0,13 -29,28UNA 814 32,56 434 380 255 542 17 -0,06 -13,00

Brown0 886 33,86 448 438 300 586 0 -0,01 -2,71Brown1 887 33,48 464 423 296 588 3 -0,02 -5,59

Média s/Brown 814 32,33 407 407 251 545 18 -0,07 -12,95Média total 826 32,55 415 411 259 552 15 -0,06 -11,48

Tabela 3.2: Resultados do modelo simplificado no período de treino

Analisando os resultados deste modelo simplificado tanto na tabela 3.2 como nos gráficos comparativosentre o retorno do mercado e do modelo no anexo A, verifica-se que os resultados continuam negativos.Apesar de nesta simulação surgir um novo título com um retorno positivo, a DAI, quando se compara estesresultados com os da tabela 3.1, pode-se concluir que houve um ligeiro deterioramento na performancevisto que tanto o retorno total médio como o R foram ligeiramente inferiores aos anteriores, no entantoos resultados gerais são bastante semelhantes, tanto graficamente como analiticamente. Verifica-se quecontinua a existir um equilíbrio entre as ordens de compra longas e curtas que foram colocadas, no entantoa percentagem de ordens com um retorno positivo foi um pouco inferior, aproximadamente 33% quandoanteriormente se tinha 36%. Este resultado seria de esperar porque o objetivo da StopLoss variável nomodelo inicial é limitar as perdas, no entanto o que acontece é que essa ordem acaba por limitar tambémos ganhos e o resultado geral acaba por não ser muito melhor que neste modelo simplificado.

Apesar desta ligeira redução nos resultados, o tempo de computação é significativamente inferior,≈ 80%3. Esta redução prende-se com o facto de o modelo ser mais estático, o que implica um númeroinferior de cálculos necessários por dia e, em linguagem de programação, passou-se de um ciclo iterativofor onde se faz uma iteração sobre todos os preços, para um ciclo while onde se dão saltos discretos

3O tempo das simulações variou de aproximadamente 3 minutos para menos de 1 minuto, dependendo do título emquestão (existem títulos com maior volatilidade o que implica um maior no de preços por dia para analisar).

23

Page 40: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

entre os preços impostos no cálculo das ordens. Estes fatores justificaram a implementação deste modelosimplificado no decorrer do trabalho. Nas próximas secções, este modelo com os valores dos parâmetrosmencionados em detalhe no Anexo Confidencial A.0.2, será denominado por Modelo 0.

Tal como na simulação anterior com o modelo inicial, os movimentos brownianos apresentam resulta-dos bastante semelhantes aos dos restantes títulos, um resultado que poderá ser preocupante visto quepode significar que, pelo menos nesta abordagem, o movimento dos mercados pode ser aproximado a ummovimento estocástico. No entanto, antes de retirar conclusões prematuras, estudou-se várias situaçõesque se apresenta nas secções seguintes.

3.3 Influência da amplitude intra-diária nos resultados

Uma das premissas principais da construção deste modelo, é o facto da amplitude intra-diária serrelativamente constante e aproximadamente igual à média dos n dias anteriores (TR ≈ ATRn). Para secompreender melhor a validade desta condição, procedeu-se ao estudo mais detalhado da relação entre aamplitude diária TR e os resultados do modelo.

Tendo em conta esta premissa, numa primeira abordagem faz sentido afirmar que mesmo que o pontode compra, Trigger, não seja um bom indicador da tendência do preço (50% de probabilidade de subidaou descida), caso exista uma tendência intra-diária que cumpre ou supera a amplitude média dos diasanteriores TR ≥ ATRn, o modelo irá apresentar resultados positivos, simplesmente porque se definiu|CloseProfit| > |StopLoss|.

Tendo como motivação este raciocínio, na figura 3.1 fez-se um plot do TR do dia em função do ATRutilizado nesse dia, para a ação da RDSA, atribuindo diferentes cores e símbolos consoante o resultadofinal da ordem colocada seja positivo (R > 0) ou negativo (R < 0).

0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

ATR(%)

0

2

4

6

8

10

TR

(%)

TR=ATR

R > 0

R < 0

Figura 3.1: RDSA - TR em função de ATR.

Tal como esperado, o que se observa de imediato nesta figura é que grande parte das ordens que foram

24

Page 41: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

colocadas em dias com uma amplitude inferior à média utilizada (TR < ATR) foram negativas (maiorconcentração de pontos vermelhos por baixo da reta TR = ATR). Em termos mais concretos, obteve-seo seguinte:

• TR < ATR20: 484 trades, 22% positivas com R = −0, 39 e um retorno de -38%

• TR ≥ ATR20: 335 trades, 44% positivas com R = 0, 32 e um retorno de 16%

O resultado é bastante nítido, uma das causas para o modelo não funcionar é porque simplesmentea amplitude do dia foi inferior ao esperado, e nestas condições um dos pressupostos do modelo falha,pelo que não se poderia esperar que o mesmo obtivesse resultados positivos. Pelos resultados obtidos,na realidade até pode existir uma trend, no entanto muitas vezes (aproximadamente 60%) é inferior aoesperado pelo modelo. Este resultado sugere que, se fosse possível retirar os dias com amplitudes inferioresà média, à partida seria possível construir um modelo funcional e com resultados positivos.

Uma outra representação do mesmo estudo mas agora com uma dependência temporal apresenta-sena figura 3.2.

2011 2012 2013 2014

Data

0

2

4

6

8

10

TR

(%)

ATR

Long > 0

Long < 0

Short > 0

Short < 0

Figura 3.2: RDSA - Variação de TR ao longo do período de treino.

Este plot foi realizado para se compreender a dependência temporal de ATR e TR e a sua influêncianas ordens que foram colocadas. Na figura cada ponto representa um dia em que foi colocada uma ordemde compra pelo modelo, os triângulos representam ordens com retorno positivo e as cruzes representamordens com retorno negativo (as cores diferenciam o tipo de ordem, Long ou Short). Tal como na figura3.1 observa-se que a concentração de pontos com retorno negativo acontece quando TR é inferior à média.

É também interessante constatar que no período de elevada especulação sobre a crise da dívidasoberana em 2011, o valor de ATR atingiu um pico, o que significa que foi um período de grandevolatilidade dos mercados. Em todo o restante período, o valor de ATR apresentou valores entre 0,8%e 2% aproximadamente, tendo períodos com alguma estabilidade, o que não inviabiliza o pressupostoinicial.

25

Page 42: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

26

Page 43: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

4 | Machine Learning

Os resultados do modelo de trading, como se pode concluir dos resultados preliminares obtidos nasecção anterior, não são satisfatórios. Podem existir várias razões para isto acontecer:

I. A combinação dos parâmetros livres do Modelo 0 não é eficiente;

II. Existem situações específicas em que o Modelo 0 não funciona;

III. O pressuposto das ordens de compra Trigger não é adequado;

IV. Não existe uma tendência intra-diária definida pois o mercado apresenta um movimento estocástico(para o intervalo temporal em estudo).

A componente de inteligência artificial deste trabalho foi desenhada específicamente para responderaos pontos I. e II.. O ponto III. implicaria a construção de um novo modelo, por isso para efeitos destatese não foi considerado, no entanto pode ser um bom ponto de partida para estudos futuros. O pontoIV. inviabilizaria qualquer tentativa de retirar rendimento do mercado, pelo que não há alternativa seesse for o fator relevante.

4.1 Algoritmo Genético

Numa tentativa de resolver os problemas I. e II. descritos anteriormente e otimizar o Modelo 0,implementou-se um algoritmo genético que vai correr para cada título separadamente e onde os indivíduostêm o genoma separado em duas partes, genoma I e genoma II (detalhados de seguida). Pode observar-seum esquema do algoritmo genético completo na figura B.1 em anexo.

Antes de continuar, é necessário definir alguma nomenclatura utilizada:

• População: Conjunto de indivíduos;

• Indivíduo: Cada indivíduo representa um modelo de trading (genoma I) e um conjunto de indi-cadores técnicos (genoma II);

• Genoma: Conjunto de parâmetros que controlam o funcionamento do modelo (genoma I) e funçõesassociadas aos indicadores técnicos (genoma II);

• Fitness: Função que avalia o desempenho de cada indivíduo;

Na população inicial deste algoritmo genético são gerados 200 indivíduos. O primeiro indivíduocriado é o Modelo 0, onde os indicadores técnicos utilizam parâmetros standard na literatura[20]. Deseguida, cada novo indivíduo criado é uma mutação deste indivíduo inicial (o que resulta em 199 mutaçõesaleatórias).

Foi bastante importante começar com um grande1 número de indivíduos por três razões:1O valor absoluto do número de indivíduos é sempre questionável, à partida quanto maior melhor, no entanto, é preciso

ter em conta o custo computacional que isto acarreta. Desta forma, considerou-se 200 indivíduos como um bom ponto departida para a evolução do algoritmo genético.

27

Page 44: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

• Introduzir variedade na geração inicial:

O processo de mutação utilizado para evoluir a população modifica apenas uma caraterística indi-vidualmente, desta forma foi necessário começar com um número grande de indivíduos para que oalgoritmo experimente várias combinações dos diferentes parâmetros.

• Reduzir o número de iterações necessárias:

Observou-se que iniciar com um número de indivíduos grande, fazia com que a qualidade da primeirageração fosse superior, o que implicava menos iterações necessárias até se chegar a uma soluçãoestável2;

• Aumentar o número de indivíduos válidos:

Visto que foi imposto um limite mínimo de 350 ordens de compra no período de treino (aproxi-madamente 100 por ano), em média, são descartados cerca de 60% dos indivíduos por não atingiremeste valor. Esta condição foi imposta por razões de aplicação prática3 do modelo e também parase conseguir uma amostragem relevante no período de treino.

4.1.1 Genoma I - parâmetros do modelo de trading

Como já foi referido no início deste capítulo, uma das possíveis razões para o modelo de tradingnão funcionar é uma combinação pouco eficiente dos seus parâmetros. A título de exemplo, e para secompreender a importância dos valores destes parâmetros na performance do modelo, na figura 4.1 etabela 4.1 mostra-se os resultados de duas simulações, uma utilizando o Modelo 0, onde tmin = 10min(M0) e outra utilizando o Modelo 0 com tmin = 20min (M0.1). Ambas as simulações foram efetuadaspara o período de treino da DAI e todos os parâmetros com exceção de tmin foram mantidos constantes,de forma a comparar apenas o impacto deste parâmetro no resultado do modelo.

Semestre R Retorno (%) %R>0

M0 M0.1 M0 M0.1 M0 M0.11 0,22 0,18 7,2 6,0 41 402 -0,01 0,17 0,8 9,8 33 393 0,03 0,04 1,6 1,8 35 354 -0,08 0,02 -3,7 0,5 31 345 0,15 0,12 3,7 2,9 39 386 0,11 0,22 3,0 6,9 38 427 -0,02 0,01 0,3 0,6 34 35

Total 0,05 0,11 12,9 28,5 36 38

Tabela 4.1: Simulação para a DAI com tmin = 10 (M0) e tmin = 20 (M0.1).

2Como vai ser explicado mais à frente em 4.1.3, uma solução estável implica uma performance (fitness) constantedurante pelo menos 40 gerações.

3É preciso notar que este seria o número de ordens colocadas pelo modelo sem a previsão das BDT. A tarefa das BDTserá filtrar o número de dias em que o modelo vai funcionar e, se as BDT refletirem o rácio em 3.3, o número de ordenscolocadas será inferior a 50% deste valor sem filtro.

28

Page 45: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2011 2012 2013 2014

Data

40

30

20

10

0

10

20

30

40

50Retorno(

%)

Mercado

Modelo

(a) tmin = 10

2011 2012 2013 2014

Data

40

30

20

10

0

10

20

30

40

50

Retorno(

%)

Mercado

Modelo

(b) tmin = 20

Figura 4.1: DAI - Comparação do impacto de tmin no desempenho do modelo.

Como se pode concluir, aparentemente esta pequena modificação para a DAI produz um modelo commelhores resultados (maior retorno total e maior R) e mais robusto (todos os semestres apresentaramum resultado positivo, embora alguns com resultados bastante pequenos). Esta foi a motivação para setentar encontrar para todos os títulos, utilizando o algoritmo genético, a combinação de parâmetros quemaximiza a performance. Os parâmetros a otimizar foram:

• tmin: a variável tmin foi introduzida no modelo porque se observou que por vezes, na abertura domercado existem períodos com bastante volatilidade, que fazem disparar falsas ordens de compra.Para combater este problema, esta variável introduz um período medido desde o inicio do dia(to = 8h) onde não se colocam ordens. Pode tomar os valores: to ≤ tmin ≤ to + 120, com intervalosde 10 min.

• tlimit: visto que se pretende aproveitar uma trend intra-diária, faz sentido que se proíba o modelode colocar ordens de compra muito tardias. Assim, introduziu-se um intervalo temporal como sendoo período ideal para colocar a ordem de compra, ou seja, esta ordem só poderá ser colocada entretmin e tlimit, mesmo que se atinja o valor de disparo antes ou depois deste intervalo. O intervalode valores para este parâmetro é: tmin + 20 ≤ tlimit ≤ tmin + 240, com intervalos de 20 minutos;

• tmax: de forma análoga à explicação para tmin, por vezes no fecho do mercado existem períodoscom bastante volatilidade, que podem transformar uma ordem com um ligeiro ganho numa ordemcom uma perda acentuada. Basicamente este parâmetro antecipa a ordem EoD desde o final do dia,onde tf = 16h:30m. Assim, o intervalo para esta variável é: tf − 180 ≤ tmax ≤ tf , com intervalosde 20 minutos.

A escolha dos valores dos parâmetros relacionados com a amplitude das ordens Trigger, Close eStopLoss é bastante complexa, visto que estão todos relacionados e afetam de uma forma não linear osresultados do modelo. Por exemplo, poderia pensar-se que aumentar a amplitude da ordem CloseProfit,mantendo as restantes constantes, traria maiores ganhos. Contudo o resultado não é assim tão linear,aumentar a ordem Close vai de facto gerar maiores retornos, quando a ordem é atingida, no entanto estaserá atingida menos vezes, o que pode comprometer a performance geral do modelo. Esta complexidadefaz com que seja difícil tomar a priori uma escolha racional. Analisar todos os casos individualmenteestá fora de questão pelo tempo que iria demorar, no entanto é o tipo de tarefa ideal para um algoritmogenético.

As restantes variáveis e os seus intervalos são:

29

Page 46: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

• ATRp: para controlar a amplitude das ordens de compra Trigger. O intervalo escolhido foi 0, 2 ≤ATRp ≤ 0, 5, com intervalos de 0,01;

• Closep: para controlar a amplitude das ordens de venda com lucro. O intervalo escolhido foi0, 1 ≤ Closep ≤ 0, 8−ATRp, com intervalos de 0,01;

• Stopp: para controlar a amplitude das ordens de venda com perda. O intervalo escolhido foi0, 1 ≤ Stopp ≤ Closep, com intervalos de 0,01;

• ATRn: para escolher o número ideal de dias, n, que a média exponencial de TR é calculada. Ointervalo escolhido foi ATR5 ≤ ATRn ≤ ATR30, com intervalos de 5 dias.

Avaliação da performance - Fitness1

O propósito genérico de um algoritmo genético é maximizar, de geração em geração, uma funçãode avaliação, normalmente designada por Fitness4. O objetivo desta parte do genoma em concreto éconstruir um modelo de trading que seja rentável e ao mesmo tempo robusto (resultados constantes porsemestre). Assim, a função de fitness utilizada foi:

Fitness1 = Rets × exp

(−σ(Rets)

100

), (4.1)

Rets =

7∑s=1

Rets7

, (4.2)

onde Rets é o retorno médio semestral (durante os 7 semestres do período de treino) e σ(Rets) o seudesvio padrão.

Para se compreender melhor a escolha desta função, pegando nos exemplos da tabela 4.1 e introduzindouma nova coluna com dados simulados (modelo Ms), foram calculados os passos intermédios para chegarao valor final da função de avaliação.

Semestre Retorno (%)M0 M0.1 Ms

1 7,2 6,0 2,02 0,8 9,8 -1,03 1,6 1,8 4,04 -3,7 0,5 -1,05 3,7 2,9 8,06 3,0 6,9 -1,07 0,3 0,6 20,0

Total 12,9 28,5 31,0Média 1,84 4,07 4,43σ/100 0,031 0,033 0,071

Fitness1 1,90 4,21 4,13

Tabela 4.2: Simulação para a DAI com tmin = 10 (M0) e tmin = 20 (M0.1).

Como se pode concluir da tabela 4.2, o termo exponencial foi introduzido para incentivar a robustez,ao valorizar indivíduos com um retorno constante por semestre (menor σ).

Convém também ter em conta que caso fosse considerado apenas Rets como input da função deavaliação, um retorno anormalmente grande num semestre poderia fazer com que esse indivíduo fosseselecionado (ver Rets do modelo Ms na tabela 4.2) e isto tem dois problemas:

4É importante recordar que este algoritmo procura simular o processo de evolução das espécies, onde sobrevivem osindivíduos mais aptos. Aqui, os indivíduos mais aptos são os que conseguirem o maior valor da função de Fitness.

30

Page 47: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

• Pode ser uma consequência de overfitting ;

• Mesmo que não seja overfitting, não é um modelo robusto;

Qualquer um destes pontos implicaria que o modelo obtido não serve o propósito do trabalho, daí amotivação para a introdução do termo exponencial.

4.1.2 Genoma II - previsão com Boosted Decision Trees

Esta parte do genoma está intrinsecamente relacionada com as BDT e a sua tarefa de previsão. Oobjetivo será identificar situações em que o modelo não funciona, de forma a filtrar esses dias e melhorar aperformance geral. Para esta tarefa, será utilizado o seguinte conjunto de indicadores técnicos e intervalos5

dos seus parâmetros variáveis:

Fi Indicador Parâmetros IntervalosF0 EMA n n ∈ [2; 30]F1 SMA n n ∈ [2; 30]F2 RSI n n ∈ [2; 30]F3 MFI n n ∈ [2; 30]F4 MACD sign; f ; s sign ∈ [2; 15]; f ∈ [n; 30]; s ∈ [f ; 30]F5 Bollingerup n; k n ∈ [2; 30]; k ∈ [1; 3]F6 Bollingerdn n; k n ∈ [2; 30]; k ∈ [1; 3]F7 Comb 1 Fa; Fb; op. a,b ∈ [0; 6], a 6= b; op.∈ {+;−;×;÷}F8 Comb 2 Fa; Fb; op. a,b ∈ [0; 6], a 6= b; op.∈ {+;−;×;÷}F10 Comb 3 Fa; Fb; op. a,b ∈ [0; 6], a 6= b; op.∈ {+;−;×;÷}F11 Comb 4 Fa; Fb; op. a,b ∈ [0; 6], a 6= b; op.∈ {+;−;×;÷}

Tabela 4.3: Indicadores técnicos e intervalos dos parâmetros relevantes.

Para se conseguir uma implementação correta, é necessário algum cuidado na escolha das variáveisa introduzir nestes indicadores. Isto é, no inicio do dia as BDT, tendo como inputs os valores destegenoma II, irão fazer uma previsão sobre o dia em questão, pelo que foi tido cuidado em fornecer às BDTapenas os dados que estariam disponíveis no início do dia (imaginando uma implementação real destemodelo). Assim, estes indicadores foram calculados utilizando o preço de abertura do dia, Open, o preçode fecho de mercado do dia anterior, Close−1, o somatório do volume do dia anterior, V ol−1, e o valorda amplitude do dia anterior TR−1.

Foram ainda adicionados os seguintes indicadores:

• Opengap: gap de abertura referido em 2.4.2, em percentagem do preço de abertura do dia;

• σATR: desvio padrão dos ultimos n valores de ATRn;

• TR−1

Open : valor de amplitude do dia anterior calculado em relação ao preço de abertura do dia;

• σTR−1: desvio padrão dos ultimos n valores de TR (até ao dia anterior);

• TR−1

ATR : valor de amplitude do dia anterior medido em relação ao valor de ATR utilizado no dia;

• ∆TR: variação de TR, entre "ontem" e "anteontem" (o de "hoje" ainda não se conhece);

• ∆ATR: variação do ATR utilizado, entre "hoje" e "ontem".5As variáveis nos intervalos tomam apenas valores inteiros.

31

Page 48: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Utilizando os valores do genoma II como inputs, o objetivo das BDT será identificar dias (ou situações)em que o modelo não funciona, de forma a filtrar esses dias (proibir previamente o funcionamento domodelo nesses dias), melhorando a performance geral. Para a implementação deste modelo de previsãoforam feitas algumas tentativas (utilizando sempre as BDT):

• Modelo classificativo para:

Previsão direta dos dias mais favoráveis para colocar o modelo a funcionar;

Previsão da tendência do dia: long/short/out ;

• Modelo regressivo para:

Previsão do preço de fecho do dia (outra forma de prever a tendência do dia).

Estas tentativas não foram suficientes para se chegar a um modelo com uma capacidade de previsãosatisfatória. No entanto, com base nas conclusões da secção 3.3 (estudo do ATR e TR), dado quese verificou que a qualidade (ou viabilidade) deste modelo estaria dependente de dias cuja amplitudede oscilação do preço não fosse inferior à média dos n dias anteriores, foi implementado um modeloclassificativo tal que:

• TR ≥ ATRn − σATR −→ y = 1;

• TR < ATRn − σATR −→ y = −1;

onde TR é a amplitude do dia, ATRn a média das amplitudes dos n dias anteriores, σATR o desviopadrão dos últimos n valores de ATRn e y a variável de classificação das BDT.

Como também se verificou em 3.3, existe um desequilíbrio entre o número de dias em que se ver-ifica TR ≥ ATRn e TR < ATRn (em maior número), o que provocou nas experiências preliminaresefetuadas um fenómeno conhecido por accuracy paradox. Este fenómeno acontece quando, num modeloclassificativo, existe um desequilíbrio entre as classes (no próprio conjunto de dados), de tal forma queeste modelo acaba por ter melhor exatidão se escolher sempre a mesma classe. No exemplo em 3.3, se oalgoritmo classificar todos os dias como -1, terá um erro de 40% (dado que se verifica esta condição em60% dos dias). Na verdade o que está a acontecer é que o modelo não está a aprender nenhum padrão nosdados, apenas está a refletir o desequilíbrio no conjunto dos dados. Para tentar minimizar este problemae equilibrar o conjunto de dados, reduziu-se o valor de separação das classes ao subtrair σATR.

Parâmetros

Como já foi explicado anteriormente em 1.3.2, uma BDT é uma combinação de dois algoritmos,as Decision Trees (que constituem a base do modelo) e o algoritmo de boosting (que vai melhorar acapacidade de previsão). Cada um destes modelos contém parâmetros que podem ser ajustados paramelhorar a exatidão da BDT final, nomeadamente:

• Decision Trees

– Tree Depth: A profundidade das árvores utilizadas (árvores demasiado grandes podem implicaroverfitting dos dados e implicam um maior tempo de computação[39]);

– Leaf Samples: Este parâmetro serve como uma pré-poda (pruning6) pois limita o número desamples em cada folha para se considerar uma classificação bem sucedida, caso contrário estenó não será considerado.

6O conceito de pruning é bastante utilizado quando se trabalha com BDT porque permite remover folhas e até nós comseparações pouco relevantes.

32

Page 49: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

• Boosting

– Taxa de aprendizagem, ρ: Este parâmetro controla o peso atribuído aos casos que foram malclassificados. Se por um lado aumentar este valor pode antecipar a estabilização das BDT, poroutro pode impedir que exista a estabilização porque a BDT vai dar saltos discretos e podenão passar pela solução ideal;

– Número de estimadores, nest: Número de estimadores (decision trees) utilizados pelo algoritmode boosting. Corresponde também ao número de iterações realizadas pelo algoritmo, visto quecada iteração corresponde ao ajuste de um novo estimador.

No decorrer do período de aprendizagem do algoritmo genético, optou-se por implementar uma versãostandard das BDT, isto é, com os parâmetros referidos anteriormente fixos. Esta opção permitiu reduziro tempo de computação por cada geração, visto que são criados menos 4 indivíduos por geração, devido àtécnica de mutação escolhida e que será explicada com detalhe em 4.1.3. Esta escolha permitiu tambémum tempo de estabilização mais rápido da fitness do genoma II, visto que com estes parâmetros fixos omodelo fica apenas dependente da informação contida nos inputs (são menos variáveis livres onde seránecessário procurar a melhor solução).

Para além da redução do custo computacional, a lógica por detrás desta decisão foi que ao encontrar omelhor conjunto de parâmetros dos indicadores técnicos para uma BDT standard, utilizando a posterioriuma BDT otimizada (por via de uma grid search explicada na secção seguinte) estes indicadores irãoproduzir ainda melhores resultados. Desta forma, os parâmetros utilizados foram: Depth = 3, Samples =

5, ρ = 0, 1 e nest = 100.

• Feature selection

– A escolha das melhores features (inputs) para utilizar nas BDT é também um outro fatorde grande importância na construção de um modelo, visto que podem existir atributos compouca ou nenhuma informação relevante (ou até redundante), que apenas contribuiriam paraa degradação da exatidão. Desta forma, antes de se treinar a BDT final, foram selecionadas asfeatures mais relevantes. Isto foi feito com base num ajuste prévio aos dados com um conjuntode 30 Decision Trees (também denominado por floresta). Com base neste ajuste, onde vãoentrar todos os inputs, atribui-se um score (exatidão) a cada árvore, que passa para os inputs.De seguida, somam-se todos os scores de cada input e seleciona-se os que conseguirem o melhorresultado.

Grid Search

Visto que se utilizou parâmetros standard na constituição das BDT, para encontrar os melhores valoresdestes parâmetros, na última geração da fase de treino do algoritmo genético, efetuou-se uma grid search(no ponto 1.4 da figura B.1 no anexo). Este método faz uma busca exaustiva sobre um conjunto deparâmetros, utilizando também o procedimento de validação cruzada em cada iteração para se compararas métricas obtidas com cada combinação. O objetivo será utilizar o conjunto de parâmetros que obtémos melhores resultados para realizar um último treino (sobre o período de treino completo) e passar asBDT treinadas para o período de teste, onde finalmente se validam os resultados.

Desta forma, os intervalos de pesquisa foram:

• Decision Trees

2 ≤ Depth ≤ 6, com valores inteiros;

5 ≤ Samples ≤ 40, com intervalos de 5;

33

Page 50: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

• Boosting

0, 1 ≤ ρ ≤ 1, 5, com intervalos de 0,2;

20 ≤ nest ≤ 200, com intervalos de 20.

Avaliação da performance - Fitness2

Pelas mesmas razões referidas para a equação 4.1, utilizou-se a seguinte função para avaliar o desem-penho deste genoma:

Fitness2 = score× exp (−σ(score)) , (4.3)

score =

7∑s=1

scores7

. (4.4)

Onde o scores é a exatidão obtida pela BDT em cada fold da validação cruzada (em cada semestre).Esta função, ao contrário de Fitness1, está limitada entre [0; 1], visto que ambos os termos da equaçãoestão compreendidos nesse intervalo (score ∈ [0; 1] e σ(score) ≥ 0).

4.1.3 Evolução das gerações

Provavelmente a componente mais importante deste algoritmo é a evolução da população, uma vez quetodo o algoritmo sem esta componente seria apenas uma combinação aleatória de indivíduos (soluções).Desta forma e para se compreender como as gerações evoluem, é necessário em primeiro lugar compreendercomo se avaliou a Fitness (qualidade) de cada indivíduo da população:

Fitness = Fitness1 × Fitness2. (4.5)

Foi escolhida esta função para a Fitness geral, visto que se está à procura de um indivíduo queproduza um bom modelo de trading (Fitness1), mas que ao mesmo tempo consiga uma boa capacidadede previsão através das BDT (Fitness2), de forma a filtrar os dias de funcionamento do modelo. Estaúltima componente da equação 4.5 vai servir como uma ponderação para o modelo de trading pois, pelosresultados da secção 3.3, este tipo de modelo será melhorado caso se consiga prever a amplitude futurado dia, TR.

A primeira geração é iniciada com 200 indivíduos, onde cada um deles vai correr 7 semestres de dados(período de treino) e depois gerar resultados associados a cada parte do genoma. Tendo em conta estesresultados individuais, avalia-se a Fitness e ordena-se os indivíduos com base nesta métrica. De seguida,na expectativa de melhorar os resultados e para se criar uma nova geração, foram realizadas as seguintesoperações:

• Seleção - O indivíduo que conseguiu melhor Fitness na população, passa diretamente para ageração seguinte (inalterado);

• Cruzamento - O cruzamento é efetuado através da combinação de partes do genoma de diferentesindivíduos. Foram utilizados dois critérios para efetuar o cruzamento dos indivíduos:

1. Melhor Fitness1 (genoma I) com melhor Fitness2 (genoma II)7;

2. 50% do genoma do indivíduo melhor Fitness com 50% do 2o melhor8;7Este cruzamento acontece apenas se Fitness1 e Fitness2 não corresponderem ao mesmo indivíduo, o que seria uma

repetição da seleção feita anteriormente.8Este cruzamento resulta em 2 novos indivíduos pela combinação das partes do genoma ([1o;2o] + [2o;1o]). Esta

conjugação de genomas é diferente da anterior, visto que o genoma I corresponde apenas a cerca de 25% do genoma total.

34

Page 51: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

• Mutação - A técnica de mutação utilizada no trabalho foi one-bit mutation, ou seja, pegando noindivíduo com melhor Fitness, foram criados novos indivíduos que resultam da mutação individualde cada um dos parâmetros do genoma, o que resulta em 29 novos indivíduos.

Todos os restantes indivíduos que não foram incluídos nestes processos "morrem" e não deixam descen-dentes9.

Estas operações vão sendo iterativamente efetuadas, de geração em geração, até que é satisfeito umdos dois critérios de paragem:

• Fitness constante durante 40 gerações;

• Limite máximo de N gerações (iterações) = 150.

Estes valores foram otimizados após algumas experiências realizadas, por um lado é bastante penosoter um número muito grande de gerações pelo tempo que demora a correr (cada geração demora entre 8e 16 minutos a correr10, dependendo do conjunto de dados em análise), no entanto não se pode limitardemasiado este valor para se conseguir obter solução estáveis.

Pode observar-se um exemplo para a evolução da fitness de duas ações diferentes (DAI e RDSA) nafigura 4.2. O limite para uma paragem prévia após uma fitness constante de 40 gerações foi impostopara evitar tempo de computação desnecessário (continuar a iterar gerações que já estabilizaram numasolução). Já para o limite máximo, constatou-se que a fitness estabilizava à volta das 130 gerações,tal como se pode observar na figura, e daí o limite máximo de 150 gerações para se ter ainda algumamargem11.

Figura 4.2: Evolução da fitness para a DAI e RDSA numa simulação com um limite de 200 gerações.

9Apesar destes indivíduos morrerem, o seu genoma é guardado num ficheiro, de forma a prevenir que sejam novamentecriados no futuro (aleatoriamente).

10Este valor foi obtido utilizando a capacidade de computação paralela, onde se dividiu os indivíduos pelo no de proces-sadores disponíveis.

11Para se ter mais certezas sobre a estabilização da fitness apenas com um limite por excesso, no entanto e devido aocusto computacional, considerou-se que o limite conservador de 150 gerações era suficiente.

35

Page 52: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

4.2 Resultados

Após realizadas as simulações para todos os títulos e para os movimentos brownianos, obteve-se osresultados finais que estão presentes nas secções seguintes e no anexo C. Estes resultados foram obtidostanto para o período de treino onde os modelos "aprendem", como para o período de teste onde se feza validação dos modelos. No período de teste foi também realizada uma comparação entre os resultadosdo modelo de trading com e sem o filtro das BDT do genoma II.

4.2.1 Genoma I

Os resultados obtidos através do algoritmo genético para os parâmetros do modelo de trading es-tão presentes na tabela 4.4. Como se pode observar, aparentemente não existe um modelo (conjuntode parâmetros) típico e homogéneo para todos os títulos, pois cada um estabilizou numa configuraçãoligeiramente diferente, o que já se estava à espera, visto que cada mercado deverá ter uma dinâmicaprópria.

Título tmin tmax tlimit ATRp Closep Stopp ATRn

ALV 08:20 11:10 14:20 0,22 0,52 0,5 10ASML 09:50 12:20 16:00 0,29 0,41 0,3 30BAYN 08:10 09:20 14:20 0,23 0,27 0,27 5DAI 08:40 11:20 16:20 0,29 0,25 0,2 25INGA 08:50 13:20 15:00 0,42 0,38 0,21 5RDSA 09:00 13:20 16:20 0,23 0,44 0,35 10SIE 08:40 09:20 14:00 0,29 0,17 0,13 5UNA 08:10 09:10 16:20 0,3 0,49 0,42 5

Brown0 08:10 11:20 15:40 0,25 0,41 0,32 20Brown1 09:10 10:00 16:00 0,28 0,32 0,27 10

Tabela 4.4: Parâmetros obtidos através do algoritmo genético - genoma I.

Overfitting à crise da dívida europeia

Um resultado interessante (mas problemático) que surgiu em algumas simulações, foi o facto de omodelo de trading ter resultados excecionalmente bons durante a queda acentuada dos mercados em2011, situação que se torna bastante visível na figura 4.3.

2011 2012 2013 2014

Data

50

40

30

20

10

0

10

20

30

40

Retorno(

%)

Mercado

Modelo

(a) Modelo overfitted

2011 2012 2013 2014

Data

60

40

20

0

20

40

60

80

100

Retorno(

%)

Mercado

Modelo

(b) Modelo treinado a partir de 2012

Figura 4.3: Exemplo para a INGA de um modelo treinado no período de treino total vs. a partir de 2012.

36

Page 53: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Como se pode verificar na figura 4.3 (a) houve um período em 2011 em que o modelo funcionouextraordinariamente bem, tendo um retorno de aproximadamente 30% nesse curto intervalo temporal.Neste período houve um conjunto de eventos relacionados com a crise europeia da dívida pública, o quelevou a uma elevada volatilidade dos mercados. Estes eventos macroeconómicos influenciaram o normalfuncionamento do mercado, criando padrões que não são depois replicados no futuro, pelo que não têmgrande interesse para a construção de um modelo12. Desta forma, e apesar de no restante intervalotemporal se ter obtido resultados negativos ou próximos de zero, o retorno total do modelo no períodode treino foi de aproximadamente 20%, sustentado pelos grandes ganhos de 2011. Um modelo como estepoderá obter melhor fitness e ficar melhor classificado do que um modelo mais constante mas com umretorno inferior. Estas situações, mesmo tendo em conta o termo exponencial da equação 4.1, não forampossíveis de ultrapassar sem que fosse retirado este intervalo temporal do período de treino do algoritmogenético. Desta forma, para os seguintes títulos foi utilizado um período de treino que começou em 2012:ALV, BAYN, DAI, INGA, SIE. Para o caso da INGA, como se pode observar na figura 4.1 a), ao obrigaro modelo a treinar num período que não englobava a situação anómala, foi possível obter um modelo maisequilibrado e que acabou por ter um resultado mais constante ao longo do restante período, culminandonum retorno total bastante superior. Os resultados finais do genoma I, presentes na tabela 4.4, refletemas simulações do AG que foram efetuadas com esta situação resolvida.

4.2.2 Genoma II

Os resultados obtidos para este genoma encontram-se presentes no anexo C.1. A parte variável dogenoma II, que representa um conjunto de indicadores técnicos e os seus parâmetros, está presente nastabelas C.1 e C.2 em anexo. O restante deste genoma (que também serviu de input das BDT) nãotem parâmetros variáveis (é calculado sempre da mesma forma), pelo que foi suprimido destas tabelas.Como já foi referido em 4.1.2, estes inputs são: Opengap, σATR,

TR−1

Open , σTR−1 ,TR−1

ATR , ∆TR e ∆ATR.Nestas tabelas apenas foram apresentados os atributos (inputs) que foram considerados importantes peloprocesso de feature selection referido em 4.1.2. O vetor de inputs escolhidos está presente na tabela C.3.Nesta tabela apresenta-se também os parâmetros escolhidos para construção das BDT, otimizados atravésde grid search. Um ponto importante que se verificou nos resultados da tabela C.3 foi que um destesinputs foi escolhido por 7 dos 8 títulos estudados, o Opengap, o que significa que este indicador deverá terrelevância na amplitude futura que o dia vai apresentar. Uma possível explicação é o facto de os tradersse retraírem de entrar no mercado (ou pelo menos de apostarem numa grande variação) quando o preçode abertura é de certa forma distante do preço de fecho do dia anterior. O que seria de esperar para osmovimentos brownianos é que este fator nunca vai influenciar a tendência do dia e os resultados obtidosvão de encontro com esta previsão, visto que o Opengap não está presente nas features selecionadas paraestes conjuntos de dados. Este resultado representa uma boa validação para os testes realizados e implicaque existe alguma diferença entre os dados produzidos pelos movimentos brownianos e as cotações reaisdas ações, embora seja necessário um estudo mais detalhado para se compreender verdadeiramente asrazões desta observação.

Da tabela C.3 também foi possível retirar que a profundidade das árvores mais escolhida pela gridsearch efetuada para as BDT foi a mínima, Depth = 2, com apenas um dos títulos e os movimentosbrownianos a apresentar árvores com profundidade 3. O número de samples mais mais escolhido foi5, com apenas 2 títulos a escolherem 10 e apenas um a escolher um número superior, 30. A taxa deaprendizagem ficou constante em 0,1 (o valor standard) e o número de estimadores mais escolhido foi 60,com nenhum dos títulos a estabilizar com mais de 120 estimadores.

12Para o desenvolvimento deste trabalho, este período não tem interesse porque é um período em que os mercados tiveramum comportamento anómalo. No entanto, poderá ter interesse analisar este período (e outros como este) caso o objetivoseja explorar as ineficiências do mercado em períodos de crise ou de importantes eventos macroeconómicos.

37

Page 54: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

4.2.3 Simulações

Na tabela seguinte apresenta-se o resultado do melhor indivíduo obtido para cada título (no períodode treino).

Título R Ret (%) Pos Trades (%) # Trades BDT score 95% CIALV 0,03 39,2 50,8 770 0,61 0,03ASML 0,03 4,9 46,1 477 0,65 0,02BAYN 0,02 19,0 50,8 661 0,63 0,01DAI 0,08 26,6 48,1 616 0,61 0,04INGA 0,21 91,2 45,6 536 0,60 0,03RDSA 0,06 24,3 49,1 699 0,61 0,01SIE 0,03 7,2 44,9 439 0,69 0,03UNA 0,04 20,8 48,5 520 0,59 0,06

Brown0 0,03 15,6 46,3 838 0,56 0,12Brown1 0,09 19,7 49,7 453 0,49 0,07

Média s/Brown 0,06 29,9 48,3 - 0,62 0,03Média c/Brown 0,06 27,2 48,1 - 0,60 0,04

Tabela 4.5: Resultados obtidos no período de treino.

Como se pode observar na tabela 4.5, o algoritmo genético conseguiu encontrar para todos os títulose até para as brownianas13, um modelo de trading que produz um retorno total positivo no período detreino. O resultado médio14 é positivo, embora existam títulos com resultados bastante superiores aoutros. Por exemplo, o modelo otimizado para a INGA obteve um resultado bastante superior à médiacom um R = 0, 21 e um retorno de 91%, enquanto que a ASML apenas teve um R = 0, 03 que resultounum retorno inferior a 5% no mesmo período. Nos gráficos apresentados no anexo C.2 esta diferençade desempenho também é bastante visível, no entanto não há uma razão óbvia para explicar porquese conseguiu obter melhores resultados para uns títulos que para outros, apenas se pode afirmar queeventualmente este modelo se ajusta melhor à dinâmica de uns mercados do que à de outros.

É importante referir que o valor de R nos dá o valor do retorno que se obteve em relação ao risco quese abdicou, ou seja dá-nos a relação média entre os retornos de CloseProfit e StopLoss. Estes valoressão diferentes para cada título (ver tabela 4.4), o que implica por exemplo, que um R para a ALV setraduza num valor absoluto de eventuais perdas superior do que o mesmo valor de R para a SIE, naverdade para a ALV a média do retorno negativo foi de -0,9% enquanto que para a SIE foi de apenas-0,3%. Isto acontece porque a ordem StopLoss tem uma maior amplitude para a ALV do que para a SIE(0,5 vs. 0,13 da tabela 4.4).

Analisando agora os valores obtidos para BDT score para as ações, a média de exatidão obtida foi de62% com um intervalo de confiança médio a 95%15 de 3%, ou seja consegue-se em média uma capacidadede previsão 12% superior a uma escolha aleatória. A grande questão a verificar posteriormente no períodode teste é se este poder de previsão se mantém e se é suficiente para melhorar o modelo.

Já para os movimentos brownianos o resultado de BDT score foi bastante diferente, com uma exatidãomédia de 53% e um intervalo de confiança a 95% de 10%. Ou seja, não só o erro desta previsão é superiorcomo também o valor médio obtido é inferior, o que implica que para estes movimentos brownianos não foipossível construir um modelo de previsão satisfatório, tal como seria de esperar dada a natureza aleatóriadestes movimentos. Este resultado por si já é bastante motivador, visto que existe uma diferença claraentre os resultados obtidos para os títulos e para os movimentos brownianos, que novamente servem como

13É normal que o AG tenha encontrado uma solução para os movimentos brownianos no período de treino, no entantoserá expectável, dada a natureza aleatória destes processos, que no período de teste este resultado não se mantenha.

14Foi calculada a média ponderada de R, Ret(%) e Pos Trades (%) com o número de trades. A média de BDT score e ointervalo de confiança é simples dado que não está dependente do número de ordens colocadas.

15O intervalo de confiança de 95% corresponde a 2 desvios padrão da média.

38

Page 55: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

um controlo de qualidade dos resultados. O resultado esperado para os estocásticos seria de 50% (escolhaaleatória) e embora para Brown0 se tenha conseguido uma exatidão de 56%, o valor esperado de 50%encontra-se dentro do intervalo de confiança.

De forma a validar os resultados e testar cada modelo de trading completo (com o filtro das BDT), natabela 4.6 apresentam-se os resultados para o período de teste, utilizando dados que até este ponto ficaraminutilizados. Esta validação, utilizando um período que não foi incluído no treino do algoritmo genético,é bastante importante pois permite verificar se os resultados obtidos são consistentes, ou se resultaramapenas de um ajuste a caraterísticas específicas do período de treino. Na tabela 4.6 apresentam-se osresultados para o modelo sem BDT (0) e com o filtro das BDT (1), para se verificar se houve ou não umamelhoria dos resultados. O filtro é aplicado no início do dia, onde é fornecido às BDT todos os inputsnecessários para efetuar a previsão. De seguida, caso a previsão seja "1" (TR ≥ ATR−σATR), o modelode trading otimizado pelo algoritmo genético é colocado em funcionamento, caso contrário fica-se fora domercado (supostamente evitando dias em que a probabilidade de ocorrer uma perda é superior16).

Título R Ret (%) Pos Trades (%) # Trades BDT score0 1 0 1 0 1 0 1ALV 0,04 -0,02 9,4 0,1 52,1 47,8 323 134 0,60ASML 0,03 0,15 1,3 9,4 45,3 51,9 217 54 0,62BAYN 0,11 0,11 18,5 9,5 54,7 53,8 299 145 0,61DAI 0,07 0,07 7,8 4,2 47,3 47,9 261 117 0,59INGA 0,13 0,16 16,6 8,3 43,7 45,4 231 119 0,63RDSA 0,16 0,19 26,5 13,5 55,7 55,8 291 147 0,57SIE 0,15 0,56 5,6 8,9 49,3 66,7 167 66 0,63UNA 0,00 0,02 -0,8 5,7 47,3 47,7 225 86 0,59

Brown0 0,01 0,07 3,5 14,0 44,5 47,0 356 273 0,50Brown1 0,06 -0,02 8,6 -1,7 48,7 45,3 186 106 0,52

Média s/Brown 0,09 0,13 11,5 7,4 49,9 51,5 - - 0,61Média c/Bwown 0,07 0,11 10,2 9,1 49,1 50,0 - - 0,59

Tabela 4.6: Resultados obtidos no período de teste. Modelo sem BDT (0) e com filtro das BDT (1).

Na tabela anterior pode observar-se que o resultado médio17, mesmo sem o filtro das BDT, é positivo,embora seja novamente bastante superior para alguns títulos que outros. A maioria dos valores de BDTscore encontra-se dentro do intervalo de confiança obtido no período de treino (não se verificou paraASML, BAYN, RDSA e SIE), contudo, apesar de se ter verificado uma melhoria tanto para a médiade R como para a média da percentagem de ordens com retorno positivo18, não foi possível obter umamelhoria para todos os títulos individualmente, por exemplo a ALV foi o caso mais notório visto quepassou de um resultado positivo com R = 0, 04 e retorno total de 9,4% para um resultado ligeiramentenegativo de R = −0, 02 e retorno total de 0,1%. Neste caso os valores de R e do retorno total têmsinais opostos, isto é devido ao valor de ATR não ser constante ao longo do período e também devidoàs ordens EoD que podem tomar vários valores de R. Estas ordens de fim do dia, EoD, podem estara ter um papel contraproducente nos resultados, visto que nada nos garante que o seu retorno sejapositivo. Existem modelos com bastantes ordens deste tipo (os com tmax mais pequeno ou com grandeamplitude das ordens de venda), por exemplo na ALV quase 40% das ordens de venda são EoD, o quepode justificar alguma falta de robustez. Para melhorar este problema, uma das possibilidades é imporum tempo após a compra para vender a posição, passando a existir apenas Close e StopLoss para evitarperdas acentuadas. Visto que esta solução altera dinâmica do modelo atual, outra possibilidade será

16Como se viu em 3.3, a percentagem de ordens positivas será superior, no entanto este filtro não nos garante que omodelo irá funcionar, apenas melhora os resultados.

17Ver nota 14.18Não é preocupante que o valor do retorno total seja inferior, visto que se fizeram menos trades, mesmo com a melhoria

obtida pelo filtro das BDT não foi suficiente para melhorar o retorno total.

39

Page 56: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

correr o algoritmo genético ignorando os resultados provenientes destas ordens de fim do dia, contandoapenas com as ordens CloseProfit e StopLoss (assume-se que o retorno das ordens EoD vai seguir umadistribuição normal).

Pode dizer-se que o resultado obtido foi bastante positivo para a INGA, RDSA e SIE. Para estes títulos,tanto os resultados sem o filtro foram positivos (em média superiores até que no período de treino) como,após a aplicação do filtro das BDT se verificou uma melhoria no valor de R e na percentagem de ordenspositivas. De entre todos os títulos o melhor resultado foi claramente o da SIE, pois como se podeobservar tanto na tabela anterior como na figura C.17 em anexo, todos os valores foram melhorados e,apesar do número de trades ter sido substancialmente inferior ao modelo sem filtro (de 167 para 66),conseguiu-se um resultado final com um retorno superior, evidenciando que a percentagem de tradespositivas foi bastante superior (de 49% para 67%). Este resultado torna evidente a função das BDTque, limitando as perdas fez com que o modelo produzisse um resultado quase constante para todos ossemestres em que o teste foi efetuado. Para a INGA e RDSA também se verifica graficamente que o filtrodas BDT limitou algumas perdas, tornando o resultado mais homogéneo e melhorando os valores de R,no entanto para estes casos também limitou alguns períodos de ganhos pelo que a melhoria já não foi tãoexpressiva. Já para os restantes títulos, o resultado não foi tão evidente e as melhorias são questionáveispois, se houve períodos em que as BDT limitaram as perdas, também houve outros em que limitaramos ganhos, fazendo com que o resultado final não fosse tão evidente graficamente. Por exemplo paraa ASML, analisar apenas os resultados da tabela poderia induzir-nos em erro sobre o desempenho domodelo e do filtro das BDT pois verificou-se uma melhoria significativa tanto no R (de 0,03 para 0,15),como no retorno total (de 1,3% para 9,4%). No entanto, quando se observa a figura C.12 verifica-se queo desempenho foi bastante questionável, próximo de 0, excluindo no final do período de teste, onde seconseguiu um retorno de quase 10%. Este resultado torna-se ainda mais evidente quando se analisa osresultados discriminados por semestre na tabela seguinte.

Semestre R Ret (%) Pos Trades (%) # Trades1 -0,24 -1,3 33 122 0,19 2,3 53 153 0,31 8,4 59 27

Tabela 4.7: ASML - Resultados do modelo com filtro das BDT discriminados por semestre (período deteste).

Como se pode observar, o número de ordens foi bastante reduzido (principalmente nos dois primeirossemestres), no entanto no último semestre o número de ordens foi aproximadamente o dobro dos outrose o resultado obtido foi bastante positivo, o que influenciou o resultado final. No entanto, como tambémse pode observar graficamente, a robustez deste modelo é questionável porque o número de ordens foimuito reduzido e os resultados foram bastante diferentes em cada semestre.

Um outro ponto importante de analisar são as matrizes de erro (também conhecidas por "matrizesde confusão"19) na previsão das BDT, presentes no anexo C.3.1. Nestas matrizes o resultado foi coer-ente entre títulos, onde o erro apresentado na previsão dos dias com TR ≥ ATR − σATR (pred 1 ) foiconstantemente inferior ao erro da previsão contrária. Em parte, este facto pode ser explicado devido aodesequilíbrio de classes que existe, o que poderá implicar que o termo σATR, que foi colocado exatamentecom o propósito de equilibrar as classes, está a ter uma contribuição demasiado grande e deverá serrevisto. No entanto, este desequilíbrio até joga a favor dos resultados pretendidos para a previsão domodelo porque é mais importante que o modelo acerte nos dias com TR ≥ ATR − σATR, pois apenasnos dias em que a BDT prevê "1", é que o modelo de trading vai funcionar. Nos outros dias, em que a

19Tradução literal do termo inglês confusion matrix.

40

Page 57: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

BDT prevê "-1" podem não existir ganhos mas também não existem perdas, visto que se vai ficar forado mercado.

Neste período de teste o único ponto que fica sem resposta é o facto de os movimentos brownianosterem obtido resultados positivos com R e retorno total positivos no modelo sem filtro das BDT. Esteresultado não vai de encontro ao resultado esperado, que seria obter modelos com uma rentabilidadepróxima de 0. A única explicação possível para este resultado é que foi derivado de mera sorte. Vistoque ambos os conjuntos de dados dos movimentos brownianos têm por base a mesma simulação de umprocesso de Wiener, é normal que se o MBS apresenta um resultado positivo, o MBG tenha um resultadoainda superior devido ao termo de deriva µ. No entanto, a única forma de comprovar que se tratou deum resultado aleatoriamente favorável, seria efetuar novas simulações com novos conjuntos de dados demovimentos brownianos e verificar se ainda se consegue obter modelos com resultados positivos. Poroutro lado, como seria de esperar pelo BDT score dos movimentos brownianos na tabela 4.6, as matrizesde erro para estes casos apresentam erros superiores e não aparentam qualquer capacidade de previsão,apenas o desequilíbrio de classes inerente aos dados.

41

Page 58: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

42

Page 59: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

5 | Conclusões e trabalho futuro

O ponto de partida deste trabalho foi um modelo de trading complexo mas ineficiente, cujos resultadosnão se adequavam às expectativas. Desta forma procedeu-se à alteração do modelo inicial, mantendoapenas o essencial, o que resultou numa versão bastante mais simples do mesmo (o Modelo 0), mas comresultados que ainda ficavam aquém do desejado. No estudo que foi efetuado sobre a performance destemodelo simplificado, verificou-se uma situação que comprometia os resultados, a amplitude insuficientede oscilação do preço. Posteriormente foi também verificado que a alteração dos parâmetros livres domodelo poderia trazer à partida uma melhoria significativa nos resultados. Tendo como motivação estesresultados, foi idealizada e implementada uma solução que consiste em:

a) otimizar os parâmetros livres do modelo de trading ;

b) criar um filtro que utiliza BDT para prever a amplitude de variação do preço intra-diário.

Para a implementação desta solução criou-se um algoritmo genético com o genoma bipartido (genoma Ie II). O genoma I consiste nos parâmetros livres que são utilizados pelo modelo de trading e os inputs daBDT (indicadores técnicos e seus parâmetros) fazem parte do genoma II.

Dos resultados obtidos, pode concluir-se que foi possível construir, partindo do Modelo 0, um modelode trading com resultados positivos pois, tanto na fase de treino como depois na fase de teste, o resultadomédio para todos os títulos (ponderado com o número de ordens) foi positivo. Quando se analisa aodetalhe, fica ainda por explicar porque é que a qualidade do modelo obtido não foi homogénea e consistenteentre todos os títulos, visto que uns apresentaram resultados substancialmente superiores a outros. Noentanto, o importante a retirar dos resultados é que caso se juntasse uma carteira completa com todos ostítulos estudados e se aplicasse este modelo, o resultado geral seria positivo.

É interessante verificar que foi possível, ainda que com uma margem de erro bastante significativa (àvolta de 40%), prever a amplitude da oscilação do preço do dia futuro. Esta previsão permitiu que oresultado geral do período de teste fosse melhorado, a percentagem média de trades positivas aumentou,o que resultou numa melhoria do indicador de risco, R. Desta forma, o pressuposto da aplicação do filtrocom recurso à previsão das BDT foi validado: a média dos resultados na fase de teste foi melhoradaquando se compara os modelos com e sem filtro. Apesar destes resultados serem promissores, um errode 40% é ainda bastante significativo. Desta forma, num trabalho futuro deverão ser exploradas novasalternativas para diminuir este erro, nomeadamente experimentando novos inputs para as BDT ou atéoutros modelos de supervised learning, por exemplo Support Vector Machines - SVM, para verificarse existe algum modelo (ou até uma combinação de modelos) que resulte numa melhor capacidade deprevisão.

É importante referir que, embora os resultados finais sejam "positivos", não implica que sejam ren-táveis, pois ficou de fora deste trabalho a análise do impacto dos custos de transação (fees), e o que severifica é que o retorno médio obtido está no limiar destes custos, o que poderá inviabilizar a sua aplicaçãoprática.

43

Page 60: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Os resultados obtidos neste trabalho são motivadores e sem dúvida que poderão ser um bom pontode partida para a construção de um modelo de trading rentável. O facto de se estar à procura de umatendência intra-diária pode não ser possível sem mais informação sobre o sentido desta tendência. Porconseguinte, visto que se está no limiar dos custos, antes de se pensar numa aplicação prática (rentável)deste modelo terão de ser introduzidas novas fontes de informação, por exemplo:

• Introduzir fatores macroeconómicos (análise fundamental) para prever uma tendência de médio/longoprazo, na expectativa que esta tendência se traduza depois nas tendências intra-diárias;

• Realizar novas análises estatísticas de padrões intra-diários, incluindo novos modelos de inteligênciaartificial para posteriormente os prever;

• Verificar se existe alguma correlação entre os diferentes títulos, incluindo novos indicadores técnicospara tentar aproveitar alguma ineficiência ou atraso na circulação de informação entre os títulos;

• Os parâmetros do modelo de trading, por exemplo o valor do número de dias que é calculada a médiamóvel exponencial de TR, ATRn, podem não ser sempre constantes como se assumiu, sendo quepoderá também ser estudada alguma forma de introduzir variabilidade temporal nestes parâmetros.

Poderão ainda ser estudadas outras alternativas para trabalho futuro, divergentes das hipóteses referi-das anteriormente (e até do âmbito deste trabalho) mas convergentes no objetivo final de tornar o modelomais robusto. Por exemplo, pode ser estudada a hipótese de se incorporar partes (ou pressupostos) destemodelo de trading numa perspetiva inter-diária (em vez de intra-diária), que não limite tanto as possibil-idades de estudo. De qualquer forma, o objetivo deste trabalho foi cumprido e os pressupostos validados,abrindo portas para novos desenvolvimentos.

44

Page 61: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Bibliografia

[1] A. Lo e C. MacKinlay, "A Non-Random Walk Down Wall Street", Princeton University Press, 1999

[2] A. Lo, H. Mamaysky e J. Wang, "Foundations of Technical Analysis: Computational Algorithms,Statistical Inference, and Empirical Implementation", The Journal of Finance, 2000

[3] B. G. Malkiel "The Efficient Market Hypothesis and Its Critics", Princeton University, 2003

[4] C. M. Bishop et al. "Pattern Recognition and Machine Learning", vol. 4, Springer New York, 2006

[5] D. B. Keim, “Size-Related Anomalies and Stock Return Seasonality: Further Empirical Evidence”,Journal of Financial Economics, 12, 13-32, 1983

[6] D. Chiu e S. Chian, "Exploring stock market dynamism in multi-nations with genetic algorithm,support vector regression, and optimal technical analysis.", Proceedings of the Sixth InternationalConference on Networked Computing and Advanced Information Management (NCM) (pp. 694-699),2010

[7] E. Fama, "Efficient Capital Markets: A Review of Theory and Empirical Work", The Journal ofFinance, Vol. 25, No. 2, 1970

[8] E. Fama e K. French, "Permanent and temporary components of stock prices", Journal of PoliticalEconomy 96, 1988

[9] E. Fama, K. French, "The cross-section of expected stock returns", Journal of Finance 47, 1992

[10] E. Fama e K. R. French, "Common risk factors in the returns on stocks and bonds", Journal ofFinancial Economics, 1993

[11] E. Fama e K. French "Size, value, and momentum in international stock returns", Journal of Finan-cial Economics, 2012

[12] F. A. Badawy, H. Y. Abdelazim e M.G. Darwish, "Genetic algorithms for predicting the Egyptianstock market", Preceedings of the ITI 3rd International Conference on Information and Communi-cations Technology: Enabling Technologies for the New Knowledge Society (pp. 109-122), 2005

[13] F. Allen e R. Karjalainen, "Using Genetic Algorithms to Find Technical Trading Rules", Journal ofFinancial Economics, 1999

[14] G. Hassan, "Non-linear factor model for asset selection using Multi Objective Genetic Programming",Proceedings of the 2008 GECCO conference companion on Genetic and evolutionary computation(pp. 1859-1862), 2008

[15] G. Ratsch, T. Onoda, K.R. Muller, "Soft Margins for AdaBoost", Machine Learning, pp.287–320,2001

45

Page 62: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

[16] G. Ridgeway, "The state of boosting", Computing Science and Statistics, 1999

[17] H. Pan, C. Tilakaratne e J. Yearwood "Predicting the Australian Stock Market Index Using NeuralNetworks Exploiting Dynamical Swings and Intermarket Influences", Springer Berlin Heidelberg,2003

[18] J. B. Walsh, "Notes on Elementary Martingale Theory", University of British Columbia

[19] J. Ginyard, "Position-sizing Effects on Trader Performance: An experimental analys", UppsalaUniversity - Department of Psychology, 2001

[20] J. J. Murphy, "Technical analysis of the financial markets: a comprehensive guide to trading methodsand applications", volume 2. Prentice Hall Press, 1999

[21] J. W. Wilder, "New Concepts In Technical Trading Systems", Trend Research, 1978

[22] L. Breiman, "Arcing classifiers", The Annals of Statistics, 1998

[23] M. Carlson, "A Brief History of the 1987 Stock Market Crash", Federal Reserve Board, Washington,D.C., 2006

[24] M. H. Pesaran, "Market Efficiency Today", University of Cambridge and USC, 2005

[25] M. J. Kearns, L. G. Valiant "Cryptographic Limitations on Learning Boolean Formulae and FiniteAutomata", Proceedings of the 21st Annual ACM Symposium on Theory of Computing, 1989

[26] P. A. Samuelson, "Proof That Properly Anticipated Prices Fluctuate Randomly", Massachuttets In-stitute of Technology, 1965

[27] P. Lipinski, "ECGA vs. BOA in discovering stock market trading experts", Proceedings of the 9thAnnual Conference on Genetic and Evolutionary Computation (pp. 531-538), 2007

[28] P. Parracho, R. Neves e N. Horta, "Trading in Financial Markets using Pattern Recognition Opti-mized by Genetic Algorithms", Genetic and Evolutionary Computation Conference (GECCO-2010):Late Breaking Papers, Portland, Oregon, 2010

[29] R. A. Brealey, S. C. Myers e F. Allen, "Principles of Corporate Finance", 9th edition, McGraw-HillInternational Edition

[30] R. E. Schapire, "The Strength of Weak Learnability", Machine Learning, 1990;5(2):197–227

[31] R.E. Schapire, Y. Freund, "Boosting: Foundations and Algorithms", MIT Press, 2012

[32] R. J. Shiller, "Irrational Exuberance", Princeton University Press, 2000

[33] R. J. Quinlan, "Bagging, boosting, and C4.5", National Conference on Artificial Intelligence, 1996

[34] R. Ball, "Anomalies in Relationships Between Securities’ Yields and Yield- Surrogates”, Journal ofFinancial Economics, 1978

[35] R. Marathe, "On The Validity of The Geometric Brownian Motion Assumption", Dep. of Industrial& Manufacturing Systems Engineering, Iowa State University, 2004

[36] S. F. Nicholson, "“Price-Earnings Ratios”, Financial Analysts Journal, 1960

[37] S. Morris e H. S. Shin, "Market Risk With Interdependent Choice", Oxford Review of EconomicPolicy, 2000

46

Page 63: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

[38] T. Dietterich, "Overfitting and Undercomputingin Machine Learning", ACM Computing Surveys(CSUR) pp.(326–327),1995

[39] T. Hastie, R. Tibshirani, J. H. Friedman, "10. Boosting and Additive Trees", The Elements ofStatistical Learning (2nd ed.), New York: Springer. pp. 337–384, 2009

[40] W. DeBondt e R. Thaler, "Does the stock market overreact?", Journal of Finance 40, 1985

[41] Y. Freund, "Boosting a Weak Learning Algorithm by Majority", Fulk MA, Case J, editors. Proceed-ings of the Third Annual Workshop on Computational Learning Theory, COLT 1990

47

Page 64: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

48

Page 65: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

A | Comparação do modelo inicial como modelo simples

2011 2012 2013 2014

Data

40

30

20

10

0

10

20

30

40

50

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

40

30

20

10

0

10

20

30

40

50

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.1: ALV - Retorno do modelo inicial e simplificado

2011 2012 2013 2014

Data

50

0

50

100

150

200

250

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

50

0

50

100

150

200

250

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.2: ASML - Retorno do modelo inicial e simplificado

49

Page 66: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2011 2012 2013 2014

Data

40

20

0

20

40

60

80

100

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

40

20

0

20

40

60

80

100

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.3: BAYN - Retorno do modelo inicial e simplificado

2011 2012 2013 2014

Data

40

30

20

10

0

10

20

30

40

50

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

40

30

20

10

0

10

20

30

40

50

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.4: DAI - Retorno do modelo inicial e simplificado

2011 2012 2013 2014

Data

50

40

30

20

10

0

10

20

30

40

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

50

40

30

20

10

0

10

20

30

40

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.5: INGA - Retorno do modelo inicial e simplificado

50

Page 67: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2011 2012 2013 2014

Data

20

10

0

10

20

30

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

30

20

10

0

10

20

30

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.6: RDSA - Retorno do modelo inicial e simplificado

2011 2012 2013 2014

Data

30

20

10

0

10

20

30

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

30

20

10

0

10

20

30

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.7: SIE - Retorno do modelo inicial e simplificado

2011 2012 2013 2014

Data

20

10

0

10

20

30

40

50

60

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

30

20

10

0

10

20

30

40

50

60

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.8: UNA - Retorno do modelo inicial e simplificado

51

Page 68: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2011 2012 2013 2014

Data

25

20

15

10

5

0

5

10

15

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

25

20

15

10

5

0

5

10

15

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.9: Brown0 - Retorno do modelo inicial e simplificado

2011 2012 2013 2014

Data

20

0

20

40

60

80

100

Retorno(

%)

Mercado

Modelo

(a) Modelo inicial

2011 2012 2013 2014

Data

20

0

20

40

60

80

100

Retorno(

%)

Mercado

Modelo

(b) Modelo simplificado

Figura A.10: Brown1 - Retorno do modelo inicial e simplificado

52

Page 69: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

B | Esquema do algoritmo genético

1.Treino

1.3Avaliação

1.2Análise

1.1Criarnovageração

Análise 1• Correromodelodetrading comosparâmetrosdogenomaI(paracadaindivíduo)durante3,5anos;

• Acadadiacalcularosvaloresdos indicadorestécnicos(genoma II) –>[X];

• Guardarosresultadosdecadatrade efetuadoedosindicadorestécnicos nessesdias;

• Classificarcadadiacomo{-1,1},onde:- 𝑇𝑅 < 𝐴𝑇𝑅 − 𝜎()* → 𝑦 = −1;- 𝑇𝑅 ≥ 𝐴𝑇𝑅 − 𝜎()* → 𝑦 = 1;

• CalcularFitness1(análise 1): 𝐹𝑖𝑡𝑛𝑒𝑠𝑠6 = 𝑅𝑒𝑡7×exp −< *=>?6@@

• CalcularFitness2(análise 2): 𝐹𝑖𝑡𝑛𝑒𝑠𝑠A = 𝑠𝑐𝑜𝑟𝑒×exp −𝜎 𝑠𝑐𝑜𝑟𝑒

• Calcular aFitnessgeral domodelo: 𝐹𝑖𝑡𝑛𝑒𝑠𝑠 = 𝐹𝑖𝑡𝑛𝑒𝑠𝑠6×𝐹𝑖𝑡𝑛𝑒𝑠𝑠A

• Após N-1gerações ou quando seatingir ocritério deparagem (fitnessconstante em 40gerações)passar para1.4,casocontário voltar a1.1;

CRUZ

AMEN

TO;MUT

AÇÃO

;SELEÇÃ

O

2.Teste• Correr omodelo otimizado efiltrado pelas BDTnoperíodo deteste(1,5anos);• Avaliaromodelodetrading (retornototaleindicadorderiscoR);• Calcularaexatidão dasBDTe“matrizes confusão”;

Genoma

Parâmetros associados aomodelo detradingintra-diário:- Ordens:Trigger;StopLoss;CloseProfit;- DiasdoATR;- Filtros temporais:tmin,tmax,tlimt

Parâmetrosassociadosà previsão dasBDT:- Indicadorestécnicoseseusparâmetros;- Decision Trees:

- Profundidadeenºdesamples;- Boosting:

- nºdeestimadoresetaxadeaprendizagem;

I II

Análise 2

• Comos inputs [X]obtidos naanálise 1,construirumaBoosted Decision Tree (BDT);

• AvaliaracapacidadedesteestimadorpreveroresultadodoModelo0atravésdométodo7-Fold cross-validation,obtendo asmétricas:

- Exatidãomédia dos7-Folds;- Desvio padrão daexatidão;

1.4Última geração

• Realizar uma gridsearchparadescobrir omelhor ponto defuncionamento daBDT;• Avaliar aperformancedamesma formaque em 1.3;• Guardar os melhores 3indivíduos epassar paraoperíodo deteste(comasBDTtreinadas noperíodo detreino completo);

Figura B.1: Esquema do algoritmo genético implementado no trabalho.

53

Page 70: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

C | Resultados

54

Page 71: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

C.1 Algoritmo genético - genoma II

Título EMA(n) SMA(n) RSI(n) MFI(n) MACD(sign; f ; s) Bollup(n; k) Bolldwn(n; k) Comb1 Comb2 Comb3 Comb4ALV - - 18 4 - - - - - - -ASML - 16 30 - - - 12; 2 F1 × F2 - - -BAYN - 16 - - - - - - - - -DAI - - - - - - 14; 2 F3 × F0 - -INGA - - 4 6 - - - - F3 × F2 - -RDSA 8 - - - - - - - - - -SIE - - - 2 - 2; 1 - - F3 ÷ F5 - -UNA 28 28 - 22 - - - F0 × F1 - - -

Brown0 16 - - - 6; 18; 19 6; 1 - F4 + F0 - F0 ÷ TR−1 -Brown1 - 24 - - - 6; 1 6; 1 - - - F1 ÷ TR−1

Tabela C.1: Parâmetros dos indicadores técnicos obtidos através do algoritmo genético (calculados com Open e V ol) - genoma II a).

Título EMA(n) SMA(n) RSI(n) MFI(n) MACD(sign; f ; s) Bollup(n; k) Bolldwn(n; k) Comb1 Comb2 Comb3 Comb4ALV - - 22 - - - - - - - -ASML 26 - - - - - - - - - -BAYN 2 - 4 - 12; 21; 23 22; 1 - - F2 ÷ F4 - -DAI - 20 12 - - - - - - - F2 −ATRINGA - - - 2 - - - - - - -RDSA - 20 - 12 7; 13; 23 - - - F3 × F4 - -SIE - 30 24 18 - - - F2 − F3 - - -UNA - 22 - - - - - - - - -

Brown0 - 4 - - 13; 22; 26 - - F1 − F4 - - -Brown1 - - - - - - 10; 3 - - - -

Tabela C.2: Parâmetros dos indicadores técnicos obtidos através do algoritmo genético (calculados com TR e ATR) - genoma II b).

55

Page 72: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

Título Features Depth Samples ρ nestALV [2;3;13;22] 2 5 0,1 60ASML [6;7;11;22;26] 2 5 0,1 60BAYN [1;11;13;15;19] 2 10 0,1 60DAI [6;7;12;21;22] 2 30 0,1 120INGA [2;8;14;22;25] 2 5 0,1 80RDSA [0;12;19;22] 2 10 0,1 80SIE [3;8;12;18;22;23] 3 5 0,1 60UNA [3;7;12;22;25] 2 5 0,1 60

Brown0 [4;7;9;18;23] 3 5 0,1 60Brown1 [5;6;10;17;24] 3 5 0.1 60

Tabela C.3: Parâmetros obtidos através do algoritmo genético - genoma II c).

C.2 Resultados - Período de treino

2011 2012 2013 2014

Data

40

20

0

20

40

60

Retorno(

%)

Mercado

Modelo

Figura C.1: ALV - Retorno do modelo otimizado no período de treino

2011 2012 2013 2014

Data

50

0

50

100

150

200

250

Retorno(

%)

Mercado

Modelo

Figura C.2: ASML - Retorno do modelo otimizado no período de treino

56

Page 73: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2011 2012 2013 2014

Data

40

20

0

20

40

60

80

100

Retorno(

%)

Mercado

Modelo

Figura C.3: BAYN - Retorno do modelo otimizado no período de treino

2011 2012 2013 2014

Data

50

40

30

20

10

0

10

20

30

40

Retorno(

%)

Mercado

Modelo

Figura C.4: DAI - Retorno do modelo otimizado no período de treino

57

Page 74: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2011 2012 2013 2014

Data

60

40

20

0

20

40

60

80

100

Retorno(

%)

Mercado

Modelo

Figura C.5: INGA - Retorno do modelo otimizado no período de treino

2011 2012 2013 2014

Data

5

0

5

10

15

20

25

30

35

Retorno(

%)

Mercado

Modelo

Figura C.6: RDSA - Retorno do modelo otimizado no período de treino

58

Page 75: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2011 2012 2013 2014

Data

20

10

0

10

20

30

40

Retorno(

%)

Mercado

Modelo

Figura C.7: SIE - Retorno do modelo otimizado no período de treino

2011 2012 2013 2014

Data

10

0

10

20

30

40

50

60

Retorno(

%)

Mercado

Modelo

Figura C.8: UNA - Retorno do modelo otimizado no período de treino

59

Page 76: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2011 2012 2013 2014

Data

30

20

10

0

10

20

30

Retorno(

%)

Mercado

Modelo

Figura C.9: Brownian0 - Retorno do modelo otimizado no período de treino

2011 2012 2013 2014

Data

20

0

20

40

60

80

100

120

Retorno(

%)

Mercado

Modelo

Figura C.10: Brownian1 - Retorno do modelo otimizado no período de treino

C.3 Resultados - Período de teste

C.3.1 Matrizes de erro

true 1 true -1 Erro (%)pred 1 105 48 32pred -1 98 116 46Total 203 164 40

Tabela C.4: ALV - Matriz de erro das BDT no período de teste

60

Page 77: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

true 1 true -1 Erro (%)pred 1 66 19 23pred -1 116 150 44Total 182 169 39

Tabela C.5: ASML - Matriz de erro das BDT no período de teste

true 1 true -1 Erro (%)pred 1 132 40 24pred -1 85 95 48Total 217 135 36

Tabela C.6: BAYN - Matriz de erro das BDT no período de teste

true 1 true -1 Erro (%)pred 1 114 47 30pred -1 81 92 47Total 195 139 38

Tabela C.7: DAI - Matriz de erro das BDT no período de teste

true 1 true -1 Erro (%)pred 1 124 62 33pred -1 74 92 45Total 188 154 40

Tabela C.8: INGA - Matriz de erro das BDT no período de teste

true 1 true -1 Erro (%)pred 1 128 69 36pred -1 72 84 47Total 200 153 40

Tabela C.9: RDSA - Matriz de erro das BDT no período de teste

true 1 true -1 Erro (%)pred 1 118 35 23pred -1 93 98 49Total 211 133 37

Tabela C.10: SIE - Matriz de erro das BDT no período de teste

true 1 true -1 Erro (%)pred 1 98 40 29pred -1 102 112 48Total 200 152 40

Tabela C.11: UNA - Matriz de erro das BDT no período de teste

true 1 true -1 Erro (%)pred 1 146 151 51pred -1 35 37 49Total 181 188 50

Tabela C.12: Brown0 - Matriz de erro das BDT no período de teste

61

Page 78: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

true 1 true -1 Erro (%)pred 1 114 97 46pred -1 81 75 52Total 195 172 52

Tabela C.13: Brown1 - Matriz de erro das BDT no período de teste

C.3.2 Gráficos comparativos

2015

Data

20

10

0

10

20

30

40

50

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.11: ALV - Retorno do modelo com e sem BDT

2015

Data

10

0

10

20

30

40

50

60

70

80

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.12: ASML - Retorno do modelo com e sem BDT

62

Page 79: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2015

Data

10

0

10

20

30

40

50

60

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.13: BAYN - Retorno do modelo com e sem BDT

2015

Data

20

10

0

10

20

30

40

50

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.14: DAI - Retorno do modelo com e sem BDT

2015

Data

10

0

10

20

30

40

50

60

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.15: INGA - Retorno modelo com e sem BDT

63

Page 80: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2015

Data

30

20

10

0

10

20

30

40

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.16: RDSA - Retorno do modelo com e sem BDT

2015

Data

25

20

15

10

5

0

5

10

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.17: SIE - Retorno do modelo com e sem BDT

2015

Data

10

0

10

20

30

40

50

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.18: UNA - Retorno do modelo com e sem BDT

64

Page 81: Engenharia Física Tecnológica - ULisboa€¦ · Estudo e desenvolvimento de um sistema computacional de intraday trading autónomo SérgioDavidVitorinoRamos Dissertação para obtenção

2015

Data

15

10

5

0

5

10

15

20

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.19: Brown0 - Retorno do modelo com e sem BDT

2015

Data

10

0

10

20

30

40

50

60

Retorno(

%)

Mercado

Modelo com BDT

Modelo sem BDT

Figura C.20: Brown1 - Retorno do modelo com e sem BDT

65