STOCKS: Computação Inteligente Aplicada ao Mercado Accionista. Adriano Rodrigo Caetano Ribeiro Alves Simões



Documentos relacionados
Bolsa Bolhas e Crashes. Adriano Alves Simões adriano.simoes@ist.utl.pt

4 Estratégias para Implementação de Agentes

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO As Normas da família ISO 9000

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS

PRÉMIOS MORNINGSTAR DIÁRIO ECONÓMICO 2012 OBJETIVO

Modelo Cascata ou Clássico

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

ÁREA A DESENVOLVER. Formação Comercial Gratuita para Desempregados

Como elaborar um Plano de Negócios de Sucesso

Qual é o risco real do Private Equity?

Base de Dados para Administrações de Condomínios

Simulação de uma Bolsa de Valores Virtual com agentes BDI

6 Construção de Cenários

GRUPO 12. Celso André Locatelli de Almeida Gabriell Orisaka Jorge Domingos Pizollato Filho José Lucas do Nascimento Santos

A Gestão, os Sistemas de Informação e a Informação nas Organizações

INTRODUÇÃO objectivo

Análises: Análise Fundamentalista Análise Técnica

Perfil de investimentos

Segurança e Higiene no Trabalho

Tarefa Orientada 14 Subconsultas

Plus500UK Limited. Política de Execução de Ordens

4 Segmentação Algoritmo proposto

Raphael Figueredo RAFI. Módulo II - Intermediário

Ponto de vista. Metodologia para um índice de confiança. E expectativas das seguradoras no Brasil

AUDITORIAS DE VALOR FN-HOTELARIA, S.A.

Curso CPA-10 Certificação ANBID Módulo 4 - Princípios de Investimento

Introdução. Tipos de Futuros. O que são Futuros?

O que é a ciência de dados (data science). Discussão do conceito. Luís Borges Gouveia Universidade Fernando Pessoa Versão 1.

Directores Comerciais

GRANDES OPÇÕES DO PLANO 2008 PRINCIPAIS ASPECTOS

Barómetro Regional da Qualidade Avaliação das Atitudes e Conhecimentos dos Residentes sobre a Qualidade. Enquadramento.

Palavras-chave: Prioritização de Investimentos; Gestão de Activos; Matriz Multicritério; Rede de Distribuição; Sistema de Informação Geográfica.

Teoria da Decisão MÉTODOS QUANTITATIVOS DE GESTÃO

ser alcançada através de diferentes tecnologias, sendo as principais listadas abaixo: DSL (Digital Subscriber Line) Transmissão de dados no mesmo

CAP. I ERROS EM CÁLCULO NUMÉRICO

2006/2011 ES JOSÉ AUGUSTO LUCAS OEIRAS RESULTADOS DOS EXAMES DOS 11.º/12.º ANOS DE ESCOLARIDADE

Começo por apresentar uma breve definição para projecto e para gestão de projectos respectivamente.

INQUÉRITO REALIZADO A ALUNOS LABORATÓRIO DE CÁLCULO. Trabalho realizado por Lucília Rodrigues Macedo

CURSO PRÁTICO MINI CONTRATO XP Interfloat Ago/ 2014

XI Mestrado em Gestão do Desporto

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

II EDIÇÃO DO CONCURSO GESTÃO DE IDEIAS PARA ECONOMIZAR

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Criatividade e Inovação Organizacional: A liderança de equipas na resolução de problemas complexos

MINERAÇÃO DE DADOS APLICADA. Pedro Henrique Bragioni Las Casas

Futuros PRODUTO FINANCEIRO COMPLEXO

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

1. Introdução. 1.1 Apresentação

Back-Test no MetaStock

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

por João Gomes, Director Executivo do Instituto de Planeamento e Desenvolvimento do Turismo e Professor Associado da Universidade Fernando Pessoa

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Módulo 15 Resumo. Módulo I Cultura da Informação

Análise do Relatório Doing Business 2016

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO DISCIPLINA: ECONOMIA DA ENGENHARIA

Estratégias para aumentar conversões

Seção 2/E Monitoramento, Avaliação e Aprendizagem

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

Módulo 4 - Especulação e Cobertura de Riscos com Futuros

DESENVOLVER E GERIR COMPETÊNCIAS EM CONTEXTO DE MUDANÇA (Publicado na Revista Hotéis de Portugal Julho/Agosto 2004)

ESTRUTURA DE GERENCIAMENTO DE RISCO DE MERCADO

NºAULAS PONTO PROGRAMA Cap INTRODUÇÃO 1

1. Ambiente de Trabalho

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

Limitações dos Computadores

A Análise DAFO. Toward a Theory of Library Administration Alan R. Samuels & Charles R. McClure.

Programa de Parcerias e Submissão de Propostas 2014/15

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Pisa 2012: O que os dados dizem sobre o Brasil

Algoritmos Genéticos (GA s)

Ordem de Constituição de Aplicação Conjunta de DEPÓSITO BOLSA GARANTIDO EUA E JAPÃO e SUPER DEPÓSITO BIG 6%

3. RELATÓRIO DE GESTÃO ANÁLISE ECONÓMICA E FINANCEIRA

DOCUMENTO INFORMATIVO (RECTIFICAÇÃO) BES CRESCIMENTO OUTUBRO 2009 PRODUTO FINANCEIRO COMPLEXO

A MATEMÁTICA NO ENSINO SUPERIOR POLICIAL 1

1. Introdução. 1.1 Introdução

Escola Superior de Gestão, Hotelaria e Turismo 2015/2016

Utilização do SOLVER do EXCEL

Módulo 4. Construindo uma solução OLAP

. evolução do conceito. Inspecção 3. Controlo da qualidade 4. Controlo da Qualidade Aula 05. Gestão da qualidade:

CEF/0910/26436 Relatório final da CAE (Univ) - Ciclo de estudos em funcionamento

- MANCATE, Manchester College of Arts and Technology (Reino Unido); - ISCD, Ilmajoki School of Crafts and Design (Finlândia);

Ordem de Constituição de EUA RETORNO ABSOLUTO

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

ESTUDO DE PREVISÃO DE DEMANDA PARA EMPRESA DE EQUIPAMENTOS MÉDICOS DE DIAGNÓSTICO

REDE TEMÁTICA DE ACTIVIDADE FÍSICA ADAPTADA

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Negócios à Sua dimensão

EXCEL TABELAS DINÂMICAS

ADM041 / EPR806 Sistemas de Informação

PROMOTORES: PARCEIROS/CONSULTORES: FUNCIONAMENTO RESUMO

Transcrição Automática de Música

Norma Interpretativa 2 Uso de Técnicas de Valor Presente para mensurar o Valor de Uso

Logística e a Gestão da Cadeia de Suprimentos. "Uma arma verdadeiramente competitiva"

Plataforma de Gestão de Actualizações de Software Descrição do Problema

1 ARQUITECTURA DO PRODUTO - MODULARIZAÇÃO E SISTEMAS DE PLATAFORMAS NA INDUSTRIA FERROVIÁRIA

Investimento Directo Estrangeiro e Salários em Portugal Pedro Silva Martins*

Mapas de Rotas Tecnológicas Roadmaps Conceitos, Tipos e Etapas de Elaboração. LELIO FELLOWS FILHO 05 de julho de 2007

Transcrição:

STOCKS: Computação Inteligente Aplicada ao Mercado Accionista Adriano Rodrigo Caetano Ribeiro Alves Simões Dissertação para obtenção do Grau de Mestre em Engenharia Informática e de Computadores Júri Presidente: Professora Maria dos Remédios Vaz Pereira Lopes Cravo Orientador: Professor Nuno Cavaco Gomes Horta Co-orientador: Professor Rui Fuentecilla Maia Ferreira Neves Vogal: Professor Miguel Leitão Bignolas Mira da Silva Outubro de 2010

i

ii

Resumo O Mercado de Capitais é uma das componentes fundamentais do nosso sistema económico e por isso reúne um largo interesse por parte de investidores e empresas. Deste modo, o Mercado de Capitais tem vindo a tornar-se cada vez mais popular entre elementos da comunidade académica, em particular na área da Computação Inteligente. Dentro das diversas metodologias de optimização disponíveis foram escolhidos os Algoritmos Genéticos para seleccionar as Estratégias de Investimento a usar e com que parâmetros. As estratégias têm como base Indicadores de Análise Técnica (Médias Móveis, RSI), e as estratégias usadas foram: SMAC (Simple Moving Average Cross), MAD (Moving Average Derivate) RSI Level e RSI Time. Os activos usados foram diversos Índices de Acções internacionais e Acções pertencentes ao S&P500. Foram descritos os diversos passos percorridos até chegar à solução final e que implicaram a escolha de diversos parâmetros associados ao Algoritmo Genético e também às Estratégias de Investimento. As diversas configurações possíveis são avaliadas segundo diversas métricas de avaliação ( Média, Desvio Padrão das s, Drawdown, Sharpe Ratio, Sortino Ratio, entre outras). O horizonte temporal usado no teste das estratégias, que vai desde 2004 ao fim de 2009, é extremamente exigente, já que é um dos mais adversos dos últimos tempos, e foi onde se registraram piores resultados por parte dos investidores. Apesar disso, os resultados apresentados superam os do Mercado e os de diversos Fundos de Investimento analisados. Palavras-Chave: Algoritmos Genéticos, Computação Evolutiva, Mercado de Capitais, Análise Técnica,. iii

iv

Abstract The Stock Market is one of the bases of our economic system and for that reason it attracts a large amount of interest by investors and companies. With that in mind, the stock market is gaining huge popularity among the academic community, in particular in Computational intelligence. The optimization methodology chosen in this work was the use of Genetic Algorithms, which were applied to Investment Strategies and their parameters. The strategies chosen are based on Technical Indicators (Moving Average, Relative Strength Index) and the strategies used where: SMAC (Simple Moving Average Crossing, MAD (Moving Average Derivate) and RSI Level and RSI Time. The securities used were international stock market indexes, and stocks from the S&P 500. In this work it is described the steps taken to reach the final solution and to choose the parameters used in the Genetic Algorithm and in the Investment Strategies. The different configurations and parameters were evaluated using several metrics (Average Return, Standard Deviation of returns, Drawdown, Sharpe Ratio and Sortino Ratio). The time span used in the test of the strategies was from 2004 until the end of 2009 and it was one of the most adverse periods for investment and where investors had the worst results in several years. In spite of that, the results presented in this work are extremely positive because they beat the market and several Investment Funds analyzed. Keywords: Genetic Algorithms, Evolutionary Computing, Stock Market, Technical Analysis, Return. v

vi

Índice 1. INTRODUÇÃO... 1 1.1. MOTIVAÇÃO... 2 1.2. OBJECTIVOS... 2 1.3. CONTRIBUIÇÕES ORIGINAIS... 3 1.4. ESTRUTURA DO DOCUMENTO... 3 2. TRABALHO RELACIONADO... 5 2.1. INTRODUÇÃO... 5 2.2. TÉCNICAS DE OPTIMIZAÇÃO... 5 2.2.1. Redes Neuronais... 5 2.2.2. Computação Evolutiva / Algoritmos Genéticos... 6 2.2.3. Outras (Fuzzy Logic, Clustering, Classificação, etc..)... 8 2.2.4. Resumo das Soluções Existentes... 9 2.3. ESTRATÉGIAS DE INVESTIMENTO... 11 2.3.1. Análise Fundamental... 11 2.3.2. Análise Técnica... 12 2.3.3. Aplicações Existentes... 16 2.3.3.1. Aplicações de Análise Técnica... 16 2.3.3.1. Aplicações de Criação e Back-Testing de Estratégias... 16 2.3.4. Estratégias Existentes... 18 2.3.4.1. Cruzamento de Médias Móveis... 18 2.3.4.2. Derivada de Média Móvel... 19 2.3.4.3. Estratégias com base no RSI... 20 2.3.4.4. MACD... 21 2.3.4.5. Estratégias de Análise Fundamental... 22 2.3.5. Hípotese da Eficiência dos Mercados... 22 2.4. ANÁLISE DA HIPÓTESE... 23 2.4.1. Análise das Técnicas de Optimização... 23 2.4.2. Análise das Estratégias de Investimento... 23 2.5. RESUMO... 24 3. ARQUITECTURA DA SOLUÇÃO... 25 3.1. DESENHO DA ARQUITECTURA... 25 3.1.1. Descrição Geral da Arquitectura... 25 3.1.2. Módulo de Interface com o Utilizador... 26 3.1.3. Módulo de Dados... 27 vii

3.1.4. Módulo de Teste e Benchmark de Estratégias... 27 3.1.5. Módulo de Optimização... 28 3.1.5.1. Módulo de Algoritmos Genéticos... 28 3.2. IMPLEMENTAÇÃO... 28 3.2.1. Módulo de Interface com o Utilizador... 28 3.2.2. Módulo de Dados... 29 3.2.3. Módulo de Teste e Benchmark de Estratégias... 30 3.2.4. Estratégias de Investimento Implementadas... 30 3.2.5. Métricas de Investimento Implementadas... 32 3.2.6. Módulo de Algoritmos Genéticos... 32 3.2.6.1. Representação do Cromossoma... 33 3.2.6.2. População Inicial... 34 3.2.6.3. Avaliação... 35 3.2.6.3.1. Função de Avaliação... 35 3.2.6.4. Selecção... 35 3.2.6.5. Cruzamento... 36 3.2.6.6. Mutação... 36 3.2.6.7. Valores e Constantes utilizados... 37 3.3. RESUMO... 37 4. RESULTADOS... 39 4.1. MÉTRICAS DE AVALIAÇÃO... 39 4.1.1.... 39 4.1.2. Drawdown... 39 4.1.3. Sharpe Ratio... 40 4.1.4. Sortino Ratio... 41 4.1.5. Classe de Risco (Segundo Classificação da CMVM [])... 42 4.2. ESTUDOS DE CASO... 43 4.2.1. Metodologia... 43 4.2.2. Estudo de Caso A Estratégias a incluir no Cromossoma... 43 4.2.2.1. 1.ª Fase Estratégias Simples... 44 4.2.2.1.1. Histograma... 44 4.2.2.1.1. Métricas de Avaliação... 44 4.2.2.2. 2.ª Fase Cromossoma com Duas Estratégias Iguais... 45 4.2.2.2.1. Histograma... 46 4.2.2.2.2. Métricas de Avaliação... 46 4.2.2.3. 3.ª Fase Cromossoma com Combinação de 2 Estratégias Iguais e Outra Diferente... 48 4.2.2.3.1. Histograma... 48 4.2.2.3.2. Métricas de Avaliação... 49 viii

4.2.2.4. 4.ª Fase Cromossoma com Quatro Estratégias Iguais... 51 4.2.2.4.1. Histograma... 52 4.2.2.4.1. Métricas de Avaliação... 52 4.2.3. Estudo de Caso B Valor dos Parâmetros a utilizar no Algoritmo Genético... 54 4.2.3.1.1. Histograma... 55 4.2.3.1.2. Métricas de Avaliação... 56 4.2.4. Estudo de Caso C Impacto da Função de Avaliação nos Resultados... 58 4.2.4.1. Histograma... 58 4.2.4.2. Métricas de Avaliação... 59 4.2.5. Estudo de Caso D Comparação de Resultados em Índices e em Acções... 61 4.2.5.1.1. Histograma... 62 4.2.5.1.2. Métricas de Avaliação... 63 4.2.6. Estudo de Caso E Comparação de Resultados com Diversos Fundos de Investimento Reais 65 4.3. RESUMO... 70 5. CONCLUSÕES... 73 5.1. TRABALHO FUTURO... 74 6. BIBLIOGRAFIA... 75 APPENDIX A. MANUAL DE UTILIZAÇÃO... 77 ix

x

Lista de Tabelas: Tabela 1- Técnicas de Optimização Analisadas... 10 Tabela 2 Rácios de Análise Fundamental... 11 Tabela 3 Indicadores de Análise Técnica... 13 Tabela 4 - Exemplo de Padrões Gráficos... 15 Tabela 5 Comparação das principais aplicações de Análise Técnica... 18 Tabela 6 - Limites para os parâmetros do RSI Time.... 30 Tabela 7 - Limites para os parâmetros do RSI Level... 31 Tabela 8 - Limites para os parâmetros do SMAC.... 31 Tabela 9 - Limites para os parâmetros do MAD.... 32 Tabela 10 - Possível Cromossoma com base nas estratégias: SMAC e MAD... 33 Tabela 11 Exemplo de um Cromossoma com as estratégias SMAC e MAD.... 34 Tabela 12 - Exemplo de cromossomas para cruzamento.... 36 Tabela 13 - Descendentes resultantes do cruzamento.... 36 Tabela 14 - Exemplo de Mutação... 37 Tabela 15 - Exemplo de Cálculo de s... 39 Tabela 16 - Cálculo de Classe de Risco.... 42 Tabela 17 - Métricas de Avaliação dos Cromossomas com Estratégias Simples (todas as medidas se referem ao período de Teste).... 45 Tabela 18 - Métricas de Avaliação dos Cromossomas com Duas Estratégias Iguais (todas as medidas se referem ao período de teste).... 47 Tabela 19 - Métricas de Avaliação das Estratégias com base no MAD (todas as medidas se referem ao período de teste).... 50 Tabela 20 - Métricas de Avaliação das Estratégias com base no SMAC (todas as medidas se referem ao período de teste).... 51 Tabela 21 - Métricas de Avaliação das Estratégias 4xMad e 4xSMAC (todas as medidas se referem ao período de Teste).... 53 Tabela 22 - Métricas de Avaliação das configurações Normal, 2xGer, 2xPop e 2xPop e Ger (todas as medidas se referem ao período de Teste)... 56 Tabela 23 - Métricas de Avaliação das configurações Normal (repetida da tabela anterior), 1/2 Ger, 1/2 Pop e Mutação (todas as medidas se referem ao período de Teste)... 57 Tabela 24 - Métricas de Avaliação das diversas Função de Avaliação (todas as medidas se referem ao período de Teste).... 60 xi

Tabela 25 - Métricas de Avaliação das configurações com Índices (todas as medidas se referem ao período de Teste)... 64 Tabela 26 - Métricas de Avaliação das configurações relativas a Acções (todas as medidas se referem ao período de Teste).... 65 Tabela 27 - Evolução da, Risco e Classe de Risco da Estratégia Buy & Hold.... 66 Tabela 28 Evolução da, Risco e Classe de Risco do Fundo BPI Europa.... 67 Tabela 29 Evolução da, Risco e Classe de Risco ES Acções Europa.... 67 Tabela 30 - Evolução da, Risco e Classe de Risco do Cromossoma SMAC,SMAC, MAD.... 68 Tabela 31 - Evolução da, Risco e Classe de Risco do Cromossoma MAD, MAD, SMAC.... 68 Tabela 32 - Métricas de Avaliação dos Fundos de Investimento e das estratégias optimizadas analizadas.... 69 xii

Lista de Figuras: Figura 1 - Aspecto comum de uma Rede Neuronal... 6 Figura 2 - Fluxograma de um Algoritmo Genético... 7 Figura 3 - Padrão Bullish Flag... 14 Figura 4 - Aplicação Best Trading Pro... 16 Figura 5 Aplicação Pro Real Time... 17 Figura 6 - Exemplo da Estratégia de Cruzamento de Médias Móveis.... 18 Figura 7 - Exemplo da Estratégia Derivada de Média Móvel.... 19 Figura 8 - Exemplo de RSI... 20 Figura 9 - Exemplo de MACD... 21 Figura 10 - Arquitectura do Sistema... 25 Figura 11 - Detalhe do módulo do Algoritmo Genético... 32 Figura 12 Aplicação da Estratégia da Tabela 11 ao S&P 500 entre o fim de 2004 e meados de 2009.... 34 Figura 13 Exemplo de cálculo de drawdown para o DAX entre 2006 e 2010.... 40 Figura 14 - Histograma dos retornos anualizados das 4 Estratégias, no período de Teste.... 44 Figura 15 - Histograma dos retornos anualizados dos Cromossomas com Estratégias Duplicadas, no período de teste.... 46 Figura 16 - Histograma dos retornos anualizados das estratégias que têm como base a MAD no período de Teste.... 48 Figura 17 - Histograma dos retornos anualizados da estratégias que têm como base a SMAC no período de Teste... 49 Figura 18 Evolução da rentabilidade das três estratégias no período de teste (2004 a 2009).... 49 Figura 19 - Histograma dos retornos anualizados das estratégias 4xMAD e 4xSMAC no período de Teste.... 52 Figura 20 - Evolução da rentabilidade das duas estratégias no período de teste.... 53 Figura 21 - Histograma dos retornos anualizados das configurações Normal, 2xGer, 2xPop e 2xPop e Ger no período de Teste.... 55 Figura 22 - Histograma dos retornos anualizados das estratégias Mutação, 1/2Ger, 1/2Pop e 1/2 Ger e Pop no período de Teste.... 55 Figura 23 - Histograma dos retornos das quatro Funções de Avaliação em Teste.... 59 Figura 24 - Evolução da rentabilidade das funções de avaliação no período de teste (2004 a 2009).... 61 xiii

Figura 25 - Histograma dos retornos das configurações relativas a Índices.... 62 Figura 26 - Histograma dos retornos das configurações relativas a Acções.... 63 Figura 27 - Evolução da Rentabilididade dos Fundos e estratégias analisadas no Período de Teste (2004 a 2009).... 70 xiv

1. Introdução O Mercado de Capitais é uma das componentes fundamentais do nosso sistema económico e por isso reúne um largo interesse por parte de investidores e empresas. Deste modo, o Mercado de Capitais tem vindo a ganhar grande interesse por parte da comunidade académica na área da Computação Inteligente. Este interesse advém de o Mercado possuir determinadas características que vão de encontro ao pretendido pelos investigadores: Dados do Mundo Real: Ao utilizar dados reais em vez de simulações os resultados obtidos são mais fiáveis, isto é são de mais fácil aceitação perante os seus pares (a origem e utilização dos dados é mais difícilmente questionada) e podem também ser facilmente comparáveis entre diversos estudos. Grande Quantidade de Dados a custo acessível: Existe uma grande quantidade de Dados do Mercado de Capitais que podem ser obtidos gratuitamente ou a custos muito baixos. Deste modo é possível realizar inúmeros testes e aumentar em muito a qualidade dos resultados obtidos, já que a maior parte dos métodos de Computação Inteligente obtêm melhores performances quanto maior for a quantidade de dados disponíveis. É também possível realizar inúmeros testes diferentes e em vários períodos temporais com custos muito baixos. Actualização constante e dados dinâmicos: Devido ao facto de os mercados estarem abertos todos os dias úteis da semana, o Mercado pode ser usado para testar sistemas dinâmicos, já que os sistemas podem ser actualizados e testados frequentemente com novos dados. A computação Inteligente (que engloba Redes Neuronais, Computação Evolutiva, Sistemas de Agentes, Classificação, Fuzzy Logic, Clustering, etc ) tem vindo a ser utilizada cada vez mais nos Mercados de Capitais devido à sua capacidade de analisar enormes quantidades de dados em curto espaço de tempo. Enquanto que um analista humano normalmente acompanha apenas um lote de 10 ou 20 acções, um sistema computacional pode analisar milhares de acções no mesmo espaço de tempo. Devido à sua grande capacidade de armazenamento e cálculo de informação, um sistema computacional pode, para cada activo financeiro, guardar grandes quantidades de informação e cruza-la entre vários activos, de modo a descobrir padrões que muitas vezes seriam indetectáveis por um analista humano. 1

Adicionalmente, a tomada de decisão por parte de um sistema de informação em vez de por um humano pode trazer algumas vantagens: Testes mais fiáveis: Podem ser realizados testes com novos activos, ou de outros períodos temporais, de forma simples e rápida, contribuindo assim para a maior fiabilidade dos dados estatísticos apresentados (risco, retorno, perda máxima, dias no mercado). Adicionalmente, e dado que num sistema de informação rapidamente se podem testar diversos anos de mercado, é mais fácil produzir dados com maior relevância estatística. Com efeito facilmente se efectua um teste num período de por exemplo 10 anos, enquanto é mais difícil conseguir de forma fiável os resultados de um trader durante 1 ou 2 anos. Decisões mais racionais e rastreáveis: As decisões tomadas por estes sistemas são mais fáceis de analisar, já que no processo de tomada de decisão apenas entram em conta variáveis quantitativas de valor conhecido, ao contrário do ser humano, em que muita vezes factores psicológicos entram em consideração na tomada de decisão. 1.1. Motivação Com a mais recente crise económica e respectiva queda dos Mercados de Capitais, os investidores têm vindo a assumir posições de maior aversão ao risco, procurando investimentos mais seguros e que preservem o seu capital, em vez de avaliarem apenas o retorno esperado. Por outro lado, a recente queda nos mercados levou a que muitos fundos de investimento com bons resultados nos anos em que o mercado apenas subia, apresentassem grandes perdas em 2008 e 2009, e até ao momento, sem melhoras à vista. Deste modo justifica-se a procura por estratégias de investimento que calculem correctamente o risco e o retorno esperado e que consigam ter uma performance semelhante quer em mercados em subida, quer em descida ou lateralização. Assim surgiu a motivação para a pesquisa de melhores estratégias de investimento que demonstrem que se conseguem obter resultados sólidos em diversas condições de mercado, e que tenham dados estatísticos relevantes para assegurar esses resultados. 1.2. Objectivos O principal objectivo deste trabalho é produzir um sistema de apoio à decisão que análise Acções ou Índices do Mercado de Capitais e que através de técnicas de Computação Inteligente, encontre estratégias de investimento robustas e que consiga 2

também apresentar informações relevantes sobre as estratégias (retorno, risco, perda máxima, tempo no mercado). Este sistema deverá apresentar resultados competitivos relativamente a estratégias de investimento já utilizadas no Mercado. Em particular deverá obter melhores resultados que os Fundos de Investimento, uma das formas de investimento mais usadas actualmente. 1.3. Contribuições Originais No decorrer do desenvolvimento deste trabalho foi submetido e aceite um artigo numa conferência internacional dentro da área da Computação Evolutiva, em que se divulgaram parte dos resultados obtidos: An Innovative GA Optimized Investment Strategy based on a New Technical Indicator using Multiple MAs", Simões, Adriano; Neves, Rui; Horta, Nuno. Internacional Conference on Evolutionary Computation (ICEC-2010), Valencia, Spain, October 24-26, 2010. 1.4. Estrutura do Documento No Capítulo 1 é apresentada a Introdução à dissertação, e qual a sua Motivação e respectivos Objectivos. No Capítulo 2 é apresentado o Trabalho Relacionado quer no que diz respeito à Computação Inteligente quer no que diz respeito às Estratégias de Investimento usadas nos Mercados de Capitais. Nesse capítulo é também feita a Análise das Hipóteses onde são discutidas as diversas alternativas possíveis e as que foram seguidas na realização desta dissertação. No Capítulo 3 será apresentada a Arquitectura da Solução e serão descritos alguns pormenores de implementação. Finalmente, no Capítulo 4 serão apresentadas as métricas usadas para analisar a qualidade da solução e também diversos Estudos de Caso onde diversas soluções são discutidas e avaliadas. No Capítulo 5 são apresentadas as conclusões e são encaradas algumas perspectivas para futura investigação. 3

2. Trabalho Relacionado 2.1. Introdução Neste capítulo será apresentado o Estado da Arte das diversas técnicas de Computação Inteligente e também das estratégias de investimento utilizadas no Mercado de Capitais. Deste modo, na secção 2.2 é apresentado o Estado da Arte no que diz respeito à Computação Inteligente e na secção seguinte é feita uma pequena introdução ao investimento em Bolsa e é apresentado o Estado da Arte de estratégias de investimento e de aplicações comerciais que ajudam o investidor a tomar decisões. Finalmente, na Secção 2.4 é feita a Análise das Hipóteses disponíveis e das opções tomadas durante a realização desta dissertação. 2.2. Técnicas de Optimização O objectivo deste trabalho é conjugar estratégias de investimento com técnicas de Computação Inteligente, de modo a testar se as estratégias são efectivas (isto é, melhores que uma estratégia aleatória), e sobretudo optimizar essas estratégias ou descobrir novas estratégias a partir da combinação de estratégias já existentes. De seguida apresentam-se as principais abordagens encontradas em publicações no que diz respeito à Computação Inteligente: Redes Neuronais Computação Evolutiva / Algoritmos Genéticos Outras (Fuzzy Logic, Clustering, Classificação, etc..) 2.2.1. Redes Neuronais As Rede Neuronais [21] são uma técnica de computação desenvolvida na área da Inteligência Artificial que tenta imitar os mecanismos do cérebro humano (que é mais eficiente em certos problemas que as técnicas de computação comuns). O seu objectivo é descobrir soluções usando os mesmos processos que os organismos vivos usam, isto é, através de tentativa e erro, aumentando a sua eficácia à medida que mais dados vão sendo analisados. As vantagens desta abordagem é que não é necessário grande conhecimento do assunto a analisar, já que as relações entre a informação serão exploradas pela própria Rede Neuronal, sendo apenas necessário escolher que dados servirão de entrada à rede neuronal. 5

A desvantagem é que estas relações não podem ser exteriorizadas de uma maneira compreensível por um ser humano, o que leva que o modelo criado não possa ser facilmente analisado nem transmitido a um especialista da área, tornando difícil a sua melhoria. Muitas vezes as redes neuronais são aplicadas com outras técnicas já descritas para filtrar as suas entradas, para tratar dados qualitativos antes de as redes os processarem, ou para construir sistemas em cadeia, são exemplos disso [1], e [2]. Figura 1 - Aspecto comum de uma Rede Neuronal As redes neuronais apresentam tipicamente três camadas (layers): a camada de entrada, a camada intermédia e a camada de saída. Cada camada contém vários neurões (representados por circunferências na Figura 1). O número de neurões na camada de entrada é igual ao número de parâmetros de entrada do problema a resolver. E o número de neurões da camada de saída, igual ao número de saídas do problema. O número de elementos da camada intermédia é variável e o seu valor é normalmente entre 5 a 10 neurões. Cada neurão da camada intermédia está ligado a todos os neurões da camada de entrada e da camada de saída. Estas ligações são chamadas de sinapses e são representadas na Figura 2 pelas setas que ligam os neurões. A cada sinapse está também associado um peso que significa o valor que o neurão que está no início da sinapse (extremidade que não tem a seta) vai influenciar o valor do neurão que está no fim da sinapse. 2.2.2. Computação Evolutiva / Algoritmos Genéticos Os algoritmos genéticos [3] fazem parte da computação evolutiva, e são uma técnica usada em problemas de optimização e busca [4],[5],[6]. Esta técnica parte do princípio 6

de que os processos de evolução dos seres biológicos são mais eficientes que a computação tradicional e portanto, explora sistemas que tentam recriar esses processos de evolução de maneira a conseguir obter melhores resultados. São tradicionalmente aplicados em problemas complexos em que o espaço de pesquisa da solução é muito grande e em que não seria viável computacionalmente fazer uma pesquisa exaustiva para encontrar a solução. Os algoritmos genéticos são utilizados para optimizar [7] e descobrir novas estratégias ou também para optimizar o peso de cada acção num portfolio de acções [8]. O seu funcionamento tenta imitar a natureza quando esta melhora e selecciona as espécies através da Teoria da evolução das espécies e da selecção natural. Figura 2 - Fluxograma de um Algoritmo Genético Deste modo, para criar um algoritmo genético é necessário primeiro escolher uma população com um número razoável de indivíduos: por exemplo, cem. No caso deste trabalho, cada indivíduo vai representar uma estratégia de investimento. De seguida e pegando na população inicial são feitas operações sobre cada indivíduo, de maneira a aproximar a população da melhor estratégia possível. As operações mais utilizadas são o Cruzamento e a Mutação. O cruzamento consiste em primeiro seleccionar um grupo com os melhores indivíduos e de seguida escolher pares de indivíduos desse grupo para realizar o Cruzamento. Esta operação de escolha dos indivíduos é quase 7

sempre feita através de roullete-wheel selection, método que consiste em ordenar os indivíduos por função avaliação e depois atribuir à probabilidade de selecção o rácio entre a função de avaliação do indivíduo e a soma das funções de avaliação do grupo. Depois de escolhidos os dois indivíduos que irão efectuar o Cruzamento, são gerados um ou mais descendentes. Estes descendentes possuem uma combinação aleatória dos genes dos dois pais. O objectivo desta operação é que dois indivíduos com uma boa função de avaliação, quando combinados, podem dar origem a um indivíduo com ainda melhor avaliação. Outra das operações usadas é a Mutação. A mutação escolhe um indivíduo de forma aleatória e altera-lhe um dos genes, também escolhido aleatoriamente. O objectivo desta operação é assegurar a diversidade da população, tentado assim evitar ficar preso em máximos locais. Uma das diferenças em termos práticos para as redes neuronais, é que os modelos gerados pelos algoritmos genéticos são compreensíveis por humanos, e podem ser, dados por exemplo a um especialista para análise/melhoria do seu conhecimento. Esta abordagem pode também servir, por exemplo, para filtrar dados para outras técnicas, como por exemplo, seleccionar que dados devem ser usados como entrada para uma rede neuronal [1]. 2.2.3. Outras (Fuzzy Logic, Clustering, Classificação, etc..) Existem ainda diversas técnicas que podem ser aplicadas, que pertencem a vários ramos da Computação e da Matemática. Fazem parte desta categoria todos os algoritmos que resolvem problemas de optimização: segmentação (clustering), machine learning, classificação [9] (dentro destes existem vários algoritmos como: árvores de decisão, Support Vector Machines [9], K-Nearest Neighbor [9]) e também diversos ramos da estatística como a regressão, séries temporais, filtros, etc. Outras técnicas encontradas concentram-se no tratamento de outros dados para além do preço e do volume. Esses dados podem ser sobre a economia, sobre a indústria da empresa, a própria empresa, e outros dados sócio-económicos [10]. Podem também ser utilizados sistemas de pesquisa de palavras-chaves em notícias, e que relacionem essas palavras com modificações na cotação [11]. Devido ao facto de muitos destes dados serem qualitativos (posicionamento da empresa na indústria, qualidade da gestão, questões legais, estado da economia, etc.) podem ser empregues estratégias para tratar estes dados, como fuzzy-logic [10], entre 8

outras. Ou podem ser convertidos para dados quantitativos e depois usada qualquer uma das estratégias anteriores [2] [11]. A desvantagem desta abordagem é que necessita de um grande trabalho de especialistas, para analisarem todas as empresas e também a conjuntura económica e os outros parâmetros. Há que ter também em conta que estes dados têm pouca influência na cotação a curto/médio prazo. Adicionalmente, as cotações na Bolsa antecipam os ciclos económicos pelo que, quando os dados económicos são conhecidos, já se encontram há muito tempo incorporados nas cotações. Existem muito poucas aplicações destes algoritmos ao mercado bolsista, pelo que a exploração destas áreas tem o potencial de encontrar soluções inovadoras, mas também com maiores riscos de não obter qualquer espécie de resultados. Adicionalmente, estas técnicas podem ser usadas em conjugação, nomeadamente através de sistemas de votos, em que vários algoritmos são corridos em paralelo, e no fim é tomada uma acção conforme os resultados dos diversos algoritmos. Por outro lado também podem ser colocados diversos algoritmos em série (funcionando como diversos filtros em cadeia), sendo os primeiros da cadeia mais rápidos mas menos precisos, de modo a filtrar dados para os algoritmos posteriores, em geral mais lentos (computacionalmente mais pesados) mas com maior grau de fiabilidade. 2.2.4. Resumo das Soluções Existentes Na Tabela 1 encontram-se resumidas as principais características das abordagens encontradas em publicações. Olhando para a tabela, as heurísticas que possuem melhores rentabilidades e que são simultaneamente as mais exploradas pelos investigadores desta área são os Algoritmos Genéticos e as Redes Neuronais. Deste modo, a escolha deve-se focar nestas duas técnicas, já que são as que apresentam maiores possibilidades de sucesso. Alguns dos resultados da tabela são demasiado optimistas e quase impossíveis de concretizar, em particular a Abordagem [5] e [10] com 100% e 147% de Anual. Isto deve-se ao curto período em que a análise foi efectuada, respectivamente 2 anos e 1 ano e também ao facto de os Índices usados serem de Mercados emergentes (Egipto e Grécia). 9

Tabela 1- Técnicas de Optimização Analisadas Abordagem Data Publi. Heurística Avaliação de Resultados Dados Usados Activos Usados Período [1] 2002 Bull-Flag + Algor. Genéticos + Redes Neuronais Comparação com Mercado e T-Test [2] 1990 Redes Neuronais Comparação com Mercado Cotação e Volume Índice: NYSEC 1981-1996 3.02% por Trade Cotação e Volume + Análise Fundamental e Económica/ Politica Índice: TOPIX (Japão) 1987-1990 25% ao Ano. [4] 1998 Algor. Genéticos Comparação com Mercado Cotação Índice: TSEWSI (Taiwan) 1986-1996 40,52% ao Ano [5] 2005 Algor. Genéticos Comparação com Mercado e Sharpe Ratio Cotação Acções do Egipto 2003-2005 100% ao Ano [6] 2008 Algor. Genéticos Comparação com Mercado Cotação Índice: Dow Jones 2000-2005 [9] 2007 Wrapper Approach (Classificação) X², Information Gain, e com outros Modelos de Classificação [10] 2001 Fuzzy Cognitive Maps Comparação com Mercado [11] 1998 Análise de palavras-chaves em notícias Cotação Cotação e Volume + Análise Fundamental e Económica/ Politica Comparação com Mercado Cotação + Notícias Índices: Korean and Taiwan Stock Markets Acções de Atenas Stock Exchange Índices: Dow Jones (EUA), Nikkei (Japão) FTSE (Reino Unido), HSI (Hong Kong), STI (Singapura) 50% da Máxima 1 1990-1991 -- 1997-1998 147% ao Ano 1997-1998 20.8% ao Ano [15] 2008 Bull-Flag Comparação com Mercado Cotação e Volume Índice: NYSEC 1966-2001 4.59% por Trade [21] 2000 Redes Neuronais Comparação com Mercado Cotação Madrid Stock Market 1991-1997 36% ao Ano [22] 2008 Volume Spike Comparação com Mercado Cotação e Volume [23] 1997 Médias Móveis Comparação com Mercado e R² Índices: Dow Jones and S&P500 1934-2005 -- Cotação Índice: FT30 (Reino Unido) 1975-1994 16.0% ao Ano 1 A Máxima num período é o máximo de lucro que se poderia ter, isto é, é o lucro da estratégia que compra em cada mínimo local e vende em cada máximo local. 10

2.3. Estratégias de Investimento Nesta secção será também feita uma pequena introdução ao Mercado de Capitais e serão também apresentadas as principais estratégias de investimento usadas. Existem essencialmente dois grandes tipos de análises usadas pelos vários intervenientes no Mercado de Capitais, a Análise Técnica e a Análise Fundamental. Deste modo, a investigação feita nesta área concentra-se em validar, testar e optimizar estratégias semelhantes às que já são usadas pelos diversos stakeholders do mercado. De seguida é apresentada uma pequena descrição destes dois tipos de análise e algumas estratégias concretas usadas pelos investidores. 2.3.1. Análise Fundamental A Análise Fundamental defende que as decisões em Bolsa devem ter em conta o estado financeiro da empresa (entre outros factores, como o tipo de gestão), a sua área de negócio, concorrentes, vantagens competitivas, estado da economia, etc. São também usados vários rácios descritos na Tabela 2. Tabela 2 Rácios de Análise Fundamental Indicador Modo de Cálculo Comentário PER -Price Earning Ratio DY Dividend Yield (%) Capitalização Bolsista Lucros Actuais Dividendo Distribuído Cotação da Acção N.º de anos até o investidor recuperar o seu investimento na empresa. Quanto menor o PER, melhor. Percentagem do dividendo distribuído, em relação ao valor da acção. Quanto maior o DY, melhor. PBV Price Book Value EPS Earning Per Share PCF Price Cash-Flow Capitalização Bolsista Activo Passivo Lucro Número de Acções Capitalização Bolsista Cash-Flow Rácio entre o valor em Bolsa da empresa e o valor contabilístico da Empresa. Quanto menor o PBV, melhor. (significa que a empresa está subavaliada se o rácio for menor que 1.) O que deverá ser tido em conta é o aumento deste indicador ao longo do tempo, sinal de que a empresa está a gerar cada vez mais lucros. Mede a capacidade da empresa em gerar dinheiro. Quanto menor o PCF, melhor. 11

Estes rácios são comparados entre empresas, preferencialmente do mesmo sector, e também podem ser comparados com valores históricos. Deste modo, pretende-se prever o comportamento de uma acção, tendo em conta as expectativas futuras de crescimento/rentabilidade da empresa, ou escolher para a carteira de investimento empresas com dados económicos ou rácios (historicamente) muito favoráveis. 2.3.2. Análise Técnica A Análise Técnica (A.T.) afirma que para prever o preço futuro de um determinado activo apenas é necessário ter acesso aos dados passados desse activo (na maior parte dos casos: cotação e volume da acção). Afirma também que esses dois factores são o elemento mais importante na evolução do preço de um activo. Deste modo a Análise Técnica propõe diversas estratégias de investimento baseadas somente nestes dois dados: Cotação e Volume. Estas estratégias podem ser divididas em dois grupos: Indicadores Técnicos. Padrões Gráficos e linhas de tendência, suporte e resistência. Existem também outras estratégias abrangidas pela A.T. como por exemplo, Correlações entre diversos activos, tendências cíclicas, etc. Indicadores Técnicos: Os indicadores técnicos são conjuntos de valores (um valor para cada dia), calculados através de funções que têm como entrada os valores da cotação (existem alguns que têm por base o volume). Exemplos de Indicadores: RSI (Relative Strength Index, Médias Móveis Simples (Moving Average) ou Exponenciais (Exponential Moving Average), ROC (Rate of Change), Bandas de Bollinger, entre outras. Na Tabela 3 encontram-se alguns Indicadores Técnicos, bem como o método de cálculo e uma estratégia de investimento para cada um deles. Existem várias públicações que comprovaram a rentabilidade dos diversos Indicadores Técnicos: em [12] são estudados cerca de 70 Indicadores Técnicos e em [13] e [14] é dada particular atenção às Médias Móveis. Padrões Gráficos e linhas de tendência, suporte e resistência: Esta abordagem explora a parte mais gráfica da Análise Técnica, isto é, as previsões são feitas olhando para os gráficos da cotação e identificando elementos gráficos que 12

indicam a continuação ou inversão da tendência. São também usadas linhas de tendência, ou suporte e resistência, que são semi-rectas que unem vários máximos ou mínimos consecutivos. As linhas oblíquas são linhas de tendência, as linhas horizontais que unem mínimos são de suporte, e as linhas horizontais que unem máximos são de resistência. Tabela 3 Indicadores de Análise Técnica Indicador Método de Cálculo Estratégia Média Móvel X Dias Média da Cotação nos últimos X Dias. Exponencial: Quando a cotação dos dias mais recentes têm um maior peso na média que a dos mais antigos. (Este peso aumenta de forma exponencial). Comprar quando a Média Móvel é ascendente, ou cruza a linha de preços para baixo. Vender quando a Média Móvel é descendente ou cruza a linha de preços para cima. RSI Y Dias Relative Index Strength Média das valorizações e desvalorizações nos últimos Y Dias. Vender quando RSI deixa a zona dos 70. Comprar quando RSI deixa a zona dos 30. (Indicador Contrário). ROC Z Dias Rate of Change Valor da cotação Actual Valor da cotação Z dias atrás Este indicador antecipa as mudanças de sentido da cotação. Deve-se por isso comprar quando ROC se torna ascendente. Vender quando se torna descendente. MACD Moving Average Convergence/Divergen ce Diferença entre uma Média Móvel Exponencial de Médio prazo (26 dias) e uma de Curto Prazo (12) Indica uma mudança na tendência. Comprar quando MACD cruza o valor 0 para cima. Vender quando cruza o valor 0 para baixo. OBV On Balance Volume Se a cotação subiu: OBV = OBV dia anterior + Volume. Se a cotação desceu: OBV = OBV dia anterior - Volume. Se a cotação se mantiver, o OBV mantém-se. Este é dos poucos indicadores técnicos que tem por base o volume. O objectivo deste indicador é detectar a entrada ou saída de grandes investidores institucionais, mesmo que não haja grande movimentação das cotações. Comprar se o OBV subir mais que a cotação. Vender quando o OBV desce. 13

Em [15] é utilizado o padrão Bullish Flag (Bandeira Bull 2 ) para prever o valor das cotações vinte dias depois da detecção do padrão. Esta detecção é feita com base na comparação das cotações (em janela deslizante) com um padrão quadriculado (Figura 3). Este padrão tem peso 1 nas quadrículas que representam o padrão, -1 nas quadrículas vazias, e valores entre 0.5 e -0.5 nas fronteiras. A soma de todos os pesos dá o grau de semelhança da acção no período analisado com a Bullish Flag 2. Figura 3 - Padrão Bullish Flag As principais vantagens desta abordagem é que os modelos gerados por ela são compreensíveis, já que os padrões gráficos e as análises feitas à sua performance são facilmente compreendidas. Quanto às desvantagens, uma delas é a falta de estudos científicos sobre os diversos padrões, e a verificação ou não da validade e poder de precisão dos padrões (apesar de estes serem usados há décadas por vários intervenientes no mercado). Outra desvantagem é a dificuldade de detecção destes padrões, já que esta área (reconhecimento visual de padrões) está pouco desenvolvida e apresenta poucos resultados. Na Tabela 4 pode-se ver o exemplo de alguns padrões gráficos e respectivas descrições. Esta tabela e os respectivos gráficos foram retirados de [16]. 2 Bull de Bull Market, designa um período em que as cotações se encontram em tendência claramente ascendente. 14

Tabela 4 - Exemplo de Padrões Gráficos Bandeira (Bulish Flag) Este padrão é precedido de uma forte subida, uma vez que após este ocorre um movimento de consolidação que marca o reinício do movimento inicial. Este padrão é de curtoprazo e tem em média um prazo de formação entre 1 a 4 semanas. Canal ascendente - É um canal formado por duas linhas paralelas, sendo uma de suporte e outra de resistência. Este padrão é de continuação, consistindo em sucessivos testes ao suporte e resistência e acaba na quebra de uma das Linhas de Tendência. Quando a linha de canal é quebrada, o preço normalmente é projectado a uma distância igual à largura do canal. O simétrico desta formação é o Canal Descendente. Head and Shoulders - É uma formação típica de inversão de tendência, com uma duração média de 3 meses. Geralmente significa o fim de uma tendência de subida. A projecção para o fim do movimento é dada pela distância entre a cabeça e a neckline (linha que une o mínimo do ombro esquerdo juntamente com o mínimo da cabeça), desde o ponto de quebra. Duplo Fundo - É uma formação que surge após um momento de tendência baixa que mostra dois mínimos praticamente iguais. O período de tempo entre mínimos pode variar de algumas semanas a muitos meses. No entanto, o padrão habitual é de 1-3 meses. O simétrico desta formação é o Duplo Topo. 15

2.3.3. Aplicações Existentes As aplicações existentes hoje em dia podem-se dividir em 2 grandes grupos: Aplicações de Análise Técnica Aplicações de Criação e Back-Testing de Estratégias 2.3.3.1. Aplicações de Análise Técnica Estas são aplicações das corretoras/bancos, que servem maioritariamente para os investidores efectuarem transacções, e em que o suporte para apoio à decisão é muito básico: incide sobretudo em gráficos de cotação e de indicadores predefinidos e na possibilidade de o utilizador desenhar linhas de tendências e de suporte e resistência manuais. Estes sistemas também não costumam permitir a realização de transacções por métodos automáticos. (Exemplos deste tipo de aplicações: Saxo Bank/Best Trading Pro ). Figura 4 - Aplicação Best Trading Pro 2.3.3.1. Aplicações de Criação e Back-Testing de Estratégias As aplicações de suporte à decisão [17] são construídas para ajudar o investidor a definir as suas estratégias, dando suporte para a criação de novos indicadores, e de diversas estratégias, disponibilizando para isso uma linguagem de programação relativamente simples. Adicionalmente, algumas destas aplicações têm também um módulo de back test para se poder analisar qual seria a rentabilidade de determinada estratégia ao longo dos anos. Como normalmente não estão ligadas a nenhuma 16

corretora, não possuem a hipótese de se realizarem transacções na plataforma. (Exemplos deste tipo de aplicações: Pro Real Time (Figura 5), TradeStation, MetaStock). De destacar que, em todas estas aplicações, a análise técnica na sua vertente mais gráfica (isto é: detecção de padrões gráficos, linhas de tendência e suportes e resistências automáticas), é muito pouco desenvolvida em qualquer dos dois tipos de aplicações, já que apenas possibilitam a inserção manual dos diversos artefactos gráficos por parte do utilizador e, portanto, deixam ao seu critério a escolha dos valores adequados. Figura 5 Aplicação Pro Real Time O único programa que foge à regra é o Pro Real Time, que traça automaticamente linhas de suporte e resistência e linhas de tendência, mas com muito pouca qualidade. Isto é, as linhas traçadas pela aplicação são muito questionáveis quando analisadas por um especialista (principalmente as linhas de tendência têm muito pouca validade, enquanto que as linhas de suporte e resistência são um pouco mais credíveis). De qualquer modo, apenas o Saxo Bank / Best Trading Pro suporta a detecção automática de alguns padrões gráficos, embora essa detecção seja muito primitiva e com poucos padrões disponíveis. Na tabela seguinte encontra-se um comparativo das principais características das aplicações estudadas. 17

Tabela 5 Comparação das principais aplicações de Análise Técnica Aplicação Heurísticas Disponíveis Criação de novos Indicadores e Estratégias Teste de Estratégias Linhas de Sup. E Res. Automáticas Ordens de Transacção Criação Manual de Objectos Gráficos Saxo Bank Detecção de Padrões Gráficos Não Não Não Market + Stop Sim: linhas, texto e Indicadores MetaStock --- Sim, dispõe de uma linguagem de programação Sim Não Market + Stop Sim: linhas, texto e Indicadores Pro Real Time --- Sim, dispõe de uma linguagem de programação Sim Sim Não Sim: linhas, texto e Indicadores TradeStation --- OptimalTrader Redes Neuronais Sim, dispõe de uma linguagem de programação Sim Não Market + Stop Não Sim Não Não Sim: linhas, texto e Indicadores Sim: linhas, texto e Indicadores 2.3.4. Estratégias Existentes 2.3.4.1. Cruzamento de Médias Móveis Esta estratégia consiste em utilizar duas Médias Móveis (M.M.), uma de curto prazo e outra de longo prazo. Uma ordem de compra é dada sempre que a M.M. de curto prazo cruza para cima a de longo prazo, e um sinal de venda a descoberto é quando a média de curto prazo cruza para baixo a de longo prazo. Figura 6 - Exemplo da Estratégia de Cruzamento de Médias Móveis. 18

Na Figura 6 (gráfico do S&P 500, entre Julho de 2004 e Novembro de 2006) podemos ver um exemplo da estratégia de Cruzamentos de Médias Móveis; no gráfico do preço podemos ver duas Médias Móveis: a mais clara de 50 dias e a mais escura de 150 dias. No gráfico inferior (SMAC 150 25) podemos ver a diferença entre as duas Médias Móveis: sempre que a curva se encontra acima de zero (assinalada por um linha horizontal) a estratégia aconselha a comprar; sempre que a curva se encontra abaixo de zero, a estratégia aconselha a vender a descoberto. 2.3.4.2. Derivada de Média Móvel Esta estratégia consiste na aplicação da noção de derivada (ou declive) a uma Média Móvel. Esta estratégia calcula-se comparando o valor da MM actual, com o valor dessa mesma Média há X dias atrás, onde X é um inteiro, inferior ao valor da Média Móvel e constante para a mesma estratégia. Deste modo, um sinal de compra é dado quando o declive é positivo, isto é, o valor da MM actual é superior ao valor há X dias atrás, e um sinal de venda a descoberto é dado caso contrário. Figura 7 - Exemplo da Estratégia Derivada de Média Móvel. Na Figura 7 apresenta-se o gráfico com o mesmo período temporal da figura anterior, mas com a estratégia de Derivada de Médias Móveis. No gráfico do preço podemos ver a Média Móvel de 150 dias. No gráfico inferior (MAD 150 25) podemos ver a diferença do valor do declive dessa MM com o declive de há 25 dias atrás. Sempre que a curva se encontra acima de zero (assinalado por uma linha horizontal) a 19

estratégia aconselha a comprar; sempre que a curva se encontra abaixo de zero, a estratégia aconselha a vender a descoberto. Neste caso, podemos ver que esta estratégia se comporta muito melhor do que a de Cruzamento, porque durante toda a subida ocorrida em 2005 e 2006 esta estratégia dá muito poucos sinais de venda e de muito curta duração. Esta estratégia pode-se considerar uma generalização da estratégia encontrada em [18], onde é descrita uma estratégia semelhante, mas em que apenas existe um parâmetro, a Média Móvel, e o seu valor é comparado com o dia anterior. 2.3.4.3. Estratégias com base no RSI As estratégias com base no Relative Strength Index (RSI) baseiam-se no facto de este ser um Indicador Oscilatório. Como o próprio nome indica, estes Indicadores vão oscilando entre dois extremos (no caso do RSI 0 e 100). Estes Indicadores medem a força e duração do movimento actual e são utilizados para prever inversões de tendência. Quando um movimento de subida ou descida já dura há algum tempo ou quando esse movimento foi de grande amplitude. É natural que haja correcções a esse movimento. Deste modo, quando o RSI se aproxima de um dos extremos, é expectável que esse movimento esteja a acabar e surja outro de direcção contrária. Figura 8 - Exemplo de RSI 20

Uma das estratégias mais comuns com RSI encontra-se representada na Figura 8, através do RSI 14 dias (é calculado com base nos últimos 14 dias de negociação), que é comprar quando o RSI se encontra próximo do nível 30, indicando que a descida já não se deverá prolongar por muito mais tempo, e vender quando o RSI se encontra próximo do nível 70, indicando que o movimento de subida já se prolonga há demasiado tempo. 2.3.4.4. MACD O indicador Moving Average Convergence / Divergence (Convergência e Divergência de Médias Móveis) consiste na diferença de duas médias móveis exponenciais (as médias móveis exponenciais são similares às Médias Móveis, mas atribuem um peso maior aos valores mais próximos da data actual), uma de curto prazo e outra de longo prazo, tipicamente de 12 e 26 dias. Adicionalmente, existe uma linha chamada de Sinal que é uma Média Móvel também Exponencial sobre a diferença das Médias. Esta costuma ter o valor de 9 dias. Finalmente, o sinal de compra é dado quando o valor do MACD está acima do valor do Sinal, e uma ordem de venda a descoberto em caso contrário. Figura 9 - Exemplo de MACD 21

Na Figura 9 pode ver-se a estratégia MACD com parâmetros 12, 26 e 9, no mesmo período temporal do das figuras apresentadas anteriormente. No gráfico do preço podemos ver as Médias Móveis Exponenciais de 12 e 26 dias. No gráfico de baixo podemos ver o resultado da subtracção do Sinal pelo MACD, indicando assim um sinal de compra sempre que a curva se encontra acima de zero, e um sinal de venda a descoberto sempre que a curva se encontra abaixo de zero. 2.3.4.5. Estratégias de Análise Fundamental As estratégias de Análise Fundamental consistem em encontrar empresas que tenham rácios em valores interessantes. Os rácios a utilizar e a determinação do valor considerado interessante depende do perfil do investidor. Estes valores tanto podem ser valores históricos, que revelaram dar bons investimentos no passado (Exemplo: Empresas com PER perto de 12 são consideradas um bom investimento). Como podem ser valores a ser comparados com o sector ou entre sectores e servir apenas como factor de preferência entre acções (Exemplo: se o investidor decidir investir no Sector da Banca deverá preferir os Bancos que apresentem o PER mais baixo). Normalmente um investidor que tenha por base a Análise Fundamental escolhe 4 ou 5 rácios que representam aquilo que ele pretende numa empresa e procura empresas que satisfaçam essas condições. 2.3.5. Hípotese da Eficiência dos Mercados Para além destas duas estratégias há ainda que ter em conta a Hipótese da Eficiência dos Mercados [19], teoria ainda defendida por muitos economistas. Esta teoria defende que os Mercados de Capitais são eficientes na troca de informação, e que portanto não é possível ter rentabilidades superiores às do mercado de forma consistente. Isto é, qualquer estratégia tomada vai ter rentabilidades semelhantes à da estratégia Buy and Hold (esta estratégia consiste em comprar a acção no início do período em análise, e manter-se sempre com a acção. Esta estratégia parte do princípio que é muito difícil adivinhar as mudanças de tendência, e que portanto o melhor é ter uma rentabilidade semelhante à do mercado.). Contrariando esta opinião estão inúmeras publicações [2],[10],[11],[15],[20],[21], e instrumentos utilizados pelos Analistas Técnicos, que mostram ter rentabilidades muito superiores ao mercado, de uma forma consistente [22][23]. 22

2.4. Análise da Hipótese 2.4.1. Análise das Técnicas de Optimização Olhando para a Tabela 1, as heurísticas que possuem melhores rentabilidades e que são simultaneamente as mais exploradas pelos investigadores desta área são os Algoritmos Genéticos e as Redes Neuronais. Deste modo a escolha deve-se focar nestas duas técnicas já que são as que apresentam maiores possibilidades de sucesso. De entre estas duas técnicas, e como já foi explicado anteriormente, a principal diferença é que as Redes Neuronais não precisam de conhecimento de domínio e portanto não é necessário ao investigador um conhecimento aprofundado do domínio do problema. Por outro lado, devido a essa mesma não exploração do domínio do problema e à natureza de black-box das redes neuronais, os modelos/estratégias geradas são difíceis de analisar. Esta característica torna difícil a utilização da aplicação por parte de um especialista na área de investimento já que não consegue analisar como é que a Rede Neuronal toma as suas decisões e cria as estratégias, e se essas estratégias vão ou não de encontro ao seu conhecimento do mercado, tornando também impossível a aprendizagem e melhoria de estratégias por parte do utilizador. Por outro lado, os Algoritmos Genéticos permitem explorar dados pertencentes ao domínio do problema, através do cromossoma que representa a estratégia de investimento a optimizar. Deste modo o Algoritmo Genético pode testar a validade de estratégias já existentes ou gerar novas estratégias. Em ambos os casos, o modelo gerado é facilmente transmitido a um especialista da área, que pode assim testar se as estratégias que usa são as mais correctas, e pode também ficar a conhecer novas estratégias que pode incorporar na sua gestão de investimentos. Deste modo, a técnica de optimização escolhida para realizar este projecto de investigação baseou-se em Algoritmos Genéticos. 2.4.2. Análise das Estratégias de Investimento Entre a Análise Técnica e a Análise Fundamental, optou-se por escolher principalmente a Análise Técnica e em particular os Indicadores Técnicos para desenvolver o trabalho. Por diversos motivos: 23

Dados apenas quantitativos: na Análise Fundamental é necessário avaliar a concorrência de um sector, vantagens competitivas, tipo de gestão, etc.. Esta avaliação depende de quem a realiza e, por isso, é subjectiva. Dados mais actualizados (as cotações são actualizadas diariamente, os relatórios e contas só são divulgados de 3 em 3 meses) e mais fiáveis: Os dados das cotações podem ser confirmados de várias fontes, enquanto que os resultados das empresas são muitas vezes maquilhados contabilisticamente, por exemplo para diminuir a carga fiscal ou agradar aos accionistas, entre outros. É também muito mais difícil obter os relatórios e contas das empresas e outras informações da empresa, e da economia, ao longo de 20 anos, num formato único, que possa ser usado como input de um programa. Dados Históricos: como a Análise Técnica é feita através de Indicadores que apenas dependem do preço e do volume da acção, e dado que é mais fácil conseguir obter esses dois dados históricos para a maioria das acções, do que dados relativos ao negócio da empresa e ao seu sector. Torna-se assim mais fácil realizar testes mais longos e abrangendo mais tempo usando a Análise Técnica do que usando a Análise Fundamental. Avaliação dos Resultados: a Análise Fundamental de uma empresa é uma análise de longo prazo. Os períodos recomendados de investimento usando esta técnica variam de 5 a 10, 20 anos. Já na Análise Técnica os períodos são mais curtos: podem ir de minutos a dias ou meses, e portanto é mais fácil avaliar e comparar os resultados da Análise Técnica. 2.5. Resumo Neste capítulo foram abordadas as principais técnicas de optimização da Computação Inteligente e foi escolhida como técnica a utilizar neste estudo os Algoritmos Genéticos. Foram também abordadas diversas estratégias de investimento, na qual os Indicadores Técnicos, dentro da Análise Técnica, são as estratégias que mais se adequam aos objectivos desta dissertação. 24

3. Arquitectura da Solução Neste capítulo será descrito o Desenho da Arquitectura da aplicação a desenvolver (secção 3.1). Na secção 3.2 é descrito em pormenor como foi realizada a implementação dos vários módulos e são também descritas as tecnologias usadas na aplicação e as razões dessa escolha. 3.1. Desenho da Arquitectura 3.1.1. Descrição Geral da Arquitectura O requisito principal desta aplicação é a facilidade de alteração de código, já que este é um trabalho exploratório e em que deverão ser experimentadas várias abordagens, quer nos Algoritmos Genéticos, com vários parâmetros e diferentes implementações de várias funções, quer nas estratégias de investimento, com várias Estratégias e Indicadores e diversas formas de os conjugar. Deste modo, e para facilitar as diversas alterações à aplicação, o código deverá ter diversos módulos claramente separados, permitindo que a substituição ou alteração de um módulo não implique a necessidade de alterações dos outros módulos. Tendo isto em conta, a Arquitectura foi desenhada contendo três grandes módulos: Interface, Dados das Empresas e Algoritmos de Optimização. Figura 10 - Arquitectura do Sistema 25

O módulo de Interface é responsável pelas interacções com o utilizador, recebendo os parâmetros de entrada da aplicação e mostrando ao utilizador o resultado da execução da aplicação. O módulo de Dados é responsável pelo download, actualização e cálculo das várias informações relativa às empresas ou índices. Por fim, o módulo de Algoritmos de Optimização é o que vai realizar todo o trabalho de optimização com base nos parâmetros do utilizador e nos Dados sobre as empresas. Na Figura 10 encontra-se esquematizada a Arquitectura do Sistema, com mais detalhe sobre os módulos descritos anteriormente e respectivas ligações. De seguida é descrito, em mais detalhe, cada um dos módulos. 3.1.2. Módulo de Interface com o Utilizador O módulo de Interface irá ter duas implementações, uma através de ficheiros de texto, que vai ser a primeira a ser implementada e uma Interface gráfica, mais amigável para o utilizador, que irá gerar e ler os ficheiros de modo a poder funcionar sobre a outra Interface. Esta Interface gráfica deve ser multi plataforma, já que a aplicação pode correr tanto em Windows como em Linux, e de preferência deverá ter uma interface web acessível em qualquer browser. Deste modo, a tecnologia mais adequada a estes requisitos é o Adobe Flex, que funciona sobre o plug-in do Flash e por isso pode ser corrido em qualquer browser. Estas Interfaces permitirão ao utilizador fornecer os dados necessários para a execução dos algoritmos de optimização da Estratégia. Os dados de entrada fundamentais são o Risco que o utilizador deseja correr (os níveis de risco disponíveis e seu significado serão definidos posteriormente), e em que grupo de acções o investidor quer fazer a procura. Adicionalmente poderá ser indicado que rentabilidade mínima o utilizador deseja, e o Índice a que a acção pertença, de modo a que os Algoritmos de Optimização tenham dados sobre o comportamento do Mercado. Adicionalmente o sistema pode funcionar como uma simples aplicação de análise técnica, mostrando o gráfico da cotação e Indicadores Técnicos especificados pelo utilizador, de modo a este possa fazer as suas próprias análises. Quanto aos dados de Saída, o sistema irá apresentar qual a estratégia recomendada adequada ao perfil definido pelo utilizador, a rentabilidade da estratégia no passado, o grau de risco, e outras medidas para Avaliar Estratégias de Investimento definidas no próximo capítulo (Avaliação da Solução). 26

3.1.3. Módulo de Dados Quanto ao Módulo dos Dados, ele vai conter essencialmente os valores da cotação e volume, já que todos os outros Indicadores Técnicos podem ser obtidos a partir desses dados. Os dados de Acções e Índices poderão ter múltiplos formatos e ser adquiridos de várias fontes, sendo para isso necessário criar um leitor de dados para os diversos formatos de ficheiros de cotações existentes no mercado. O principal fornecedor das actualizações diárias será o finance.yahoo.com, para dados das Bolsas Norte- Americanas. Para actualização de dados europeus será usado o site da Euronext. De modo a obter um maior histórico poderão ser comprados dados históricos de diversas fontes (O Euronext só disponibiliza cotações dos últimos 5 anos). Tendo em conta que os algoritmos usados se baseiam em dados passados para fazer previsões, quanto maior a quantidade de dados históricos usados, melhor serão as previsões, já que terão em conta uma maior variedade de cenários. O sistema deverá ser robusto o suficiente para poderem ser apagados ou corrigidos manualmente dados que por qualquer motivo se encontrem corrompidos. Tendo em conta que as actualizações são feitas diariamente em servidores exteriores ao sistema, este deverá lidar bem (não perdendo o histórico de dados) com o eventual mau funcionamento dos servidores externos. O sistema deverá também estar preparado para mudar facilmente o local de actualização de dados (e respectivo formato). Deverá também permitir que diferentes acções, ou grupos de acções, tenham locais de actualização e formatos de dados diferentes. Quanto aos Indicadores Técnicos, serão calculados sempre que necessário, já que apenas dependem da informação de Preço e Volume que constam das Acções ou Índices, não havendo por isso necessidade de serem armazenados. 3.1.4. Módulo de Teste e Benchmark de Estratégias O Módulo de Testes e Benchmark será responsável por controlar a divisão temporal das acções por período de treino e de teste, calcular as diversas estratégias de investimento e também as métricas de avaliação resultantes da aplicação das estratégias de investimento às acções nos períodos definidos. 27

3.1.5. Módulo de Optimização 3.1.5.1. Módulo de Algoritmos Genéticos O módulo de Algoritmos Genéticos é o mais importante desta aplicação, já que é ele que vai realizar o trabalho de optimização. A linguagem de implementação escolhida, quer para este módulo, quer para toda a aplicação foi o C++. Esta linguagem foi escolhida por um lado por possibilitar o paradigma Orientado a Objectos, facilitando assim a implementação da arquitectura modular e por outro lado, por ser uma linguagem bastante rápida no que respeita a utilização do CPU, já que os Algoritmos Genéticos são muito exigentes em termos de utilização de CPU e memória. Dado que existem diversas abordagens e opções para implementação de Algoritmos Genéticos, este módulo deve ser genérico o suficiente para permitir a fácil modificação dos seguintes elementos: Cromossoma, função de avaliação, função de selecção, função de cruzamento, função de mutação, bem como dos diversos parâmetros do AG: número de indivíduos, número de gerações, taxa de selecção, taxa de cruzamento e taxa de mutação. 3.2. Implementação De seguida é descrito, para cada um dos Módulos, como foi implementado e que escolhas e modificações foram feitas em relação ao descrito no Desenho da Arquitectura. 3.2.1. Módulo de Interface com o Utilizador No módulo de Interface foi implementada a Interface de ficheiros de texto, ficando por implementar a Interface gráfica. Esta decisão foi tomada porque se achou mais prioritário desenvolver com mais profundidade diversas funcionalidades ligadas aos Algoritmos Genéticos em detrimento de uma interface mais familiar ao utilizador. Quanto aos parâmetros que o utilizador pode definir actualmente no módulo de Entrada são: as acções que deverão ser analisadas, os parâmetros a utilizar no Algoritmo Genético e o período temporal em que decorrerá a análise. No módulo de saída é possível obter a seguinte informação: rentabilidade passada da estratégia, Sharpe Ratio e Drawdown no período de Treino e Teste, e o Cromossoma final que o Algoritmo Genético optimizou. De seguida encontra-se o exemplo de um ficheiro de configuração: 28

#Este é o ficheiro de configuração do Stocks program=stocks function=optimizeparameters dircotacoes=c:\cotacoes\paper\ starttraindate=1993 endtraindate=2003 starttestdate=2004 endtestdate=2009 numberofruns=50 numberofgerations=80 populationnumber=60 mutationrate=0.1 chromosome=smac,mad,rsitime,rsilevel Este ficheiro de configuração define o programa a usar (a aplicação principal é comum a várias Teses de Mestrado) através da linha program=stocks. Define qual o tipo de função a executar já que o código implementado tem diversas funcionalidades: neste caso vão-se optimizar os parâmetros do cromossoma function=optimizeparameters. Define sobre que acções ou índices a optimização vai ser executada (as acções/índices devem estar na pasta indicada). É também possível definir as datas de treino e teste, bem como o número de Execuções do Algoritmo Genético, e respectivos parâmetros do A.G.: Número de Gerações, Número de Indivíduos na População, Taxa de Mutação e estratégias do Cromossoma. As estratégias devem ser separadas por virgulas, as estratégias que podem ser usadas são: smac, mad, rsitime e rsilevel. Estas estratégias encontram-se explicadas na secção 3.2.4 Estratégias de Investimento Implementadas. 3.2.2. Módulo de Dados O Módulo de Dados Sobre a Empresa permite a actualização automática para o mercado norte-americano (através do portal de finanças da Yahoo) e respectivo armazenamento da cotação das empresas, e também o cálculo de diversos Indicadores Técnicos. Este módulo está também concebido para receber outras fontes de dados, bastando para isso que seja indicado o formato dos dados no ficheiro de configuração. Os Indicadores Técnicos que se encontram implementados neste módulo são: Médias Móveis Simples, Médias Móveis Exponenciais, Médias Móveis de Hull, RSI (Relative Strength Index), MACD (Moving Average Convergence/Divergence) e OBV (On Balance Volume). 29

3.2.3. Módulo de Teste e Benchmark de Estratégias O Módulo de Testes e Benchmark é responsável por controlar os períodos de treino e de teste, e também por calcular as várias estratégias nesses períodos e respectivas métricas de Avaliação. Deste modo é possível definir períodos de tempo associados a acções (conjuntos de meses ou anos) e de seguida saber a rentabilidade, e outras métricas das várias estratégias de investimento. Este módulo é também responsável por criar as estratégias de investimento a partir dos Indicadores Técnicos (isto é, calcular os sinais de compra e venda com base na evolução do Indicador). 3.2.4. Estratégias de Investimento Implementadas De seguida são descritas as estratégias de Investimento que foram implementadas, os parâmetros que recebem (que serão optimizados), quais os Indicadores Técnicos que usam e uma breve descrição do seu funcionamento. As estratégias de Investimento podem, para cada dia, dar um de 3 sinais: Sinal de Compra (valor 1), Sinal de fora do mercado (valor 0) e sinal de venda a descoberto (valor -1). RSI Time: Esta estratégia tem como base o Indicador RSI (Relative Strenght Index) e tem 5 parâmetros: dias do RSI, nível de compra, dias em compra, nível de venda a descoberto, dias de venda a descoberto. O primeiro parâmetro é o número de dias a que o RSI é aplicado. O segundo parâmetro é o valor de RSI em que a estratégia dá sinal de compra, e o terceiro parâmetro, por quantos dias esse sinal é válido. O quarto parâmetro é o valor do RSI para o qual a estratégia dá sinal de venda a descoberto e finalmente o quinto o número de dias que esse sinal se mantém. Os limites dos parâmetros para esta estratégia encontram-se na tabela seguinte. Tabela 6 - Limites para os parâmetros do RSI Time. Parâmetro Limite Inferior Limite Superior Dia do RSI 1 10 Nível de compra 0 100 Dias em compra 1 30 Nível de venda a descoberto 0 100 Dias em venda a descoberto 1 30 RSI Level: Esta estratégia também tem como base o Indicador RSI (Relative Strenght Index) e tem também 5 parâmetros: dias do RSI, nível de compra, nível de saída da compra, nível de venda a descoberto, nível de saída da venda a descoberto. Esta 30

estratégia é semelhante à RSI Time, só que em vez de o sinal de saída (quer da compra quer da venda a descoberto) ser dado após se terem passado X dias, é dado quando o RSI atinge um determinado nível. Os limites dos parâmetros para esta estratégia encontram-se na tabela seguinte. Tabela 7 - Limites para os parâmetros do RSI Level. Parâmetro Limite Inferior Limite Superior Dia do RSI 1 10 Nível de compra 0 100 Nível de fecho da compra 0 100 Nível de venda a descoberto 0 100 Nível de fecho da compra 0 100 SMAC (Simple Moving Average Crossing): Esta estratégia tem como base dois Indicadores de Médias Móveis Simples, tendo dois parâmetros, um para cada uma das Médias Móveis. A estratégia consiste em comprar quando a Média Móvel, que tem o menor parâmetro (Média Móvel de curto prazo), tem valor superior à Média Móvel de longo prazo, e em vender a descoberto, caso contrário. Os limites dos parâmetros para esta estratégia encontram-se na tabela seguinte. Tabela 8 - Limites para os parâmetros do SMAC. Parâmetro Limite Inferior Limite Superior Média Móvel de curto prazo 1 200 Média Móvel de longo prazo 5 250 MAD (Moving Average Derivate): Esta estratégia tem dois parâmetros e tem como base uma Média Móvel Simples. Esta estratégia tem por base o conceito de derivada da Média Móvel, e tem como ideia comprar quando o valor da derivada da Média Móvel é positiva e vender a descoberto quando o valor é negativo. Como a Média Móvel tem por base a cotação, é uma função discreta (um ponto para cada dia) e, por isso, para calcular a derivada usa-se o conceito de secante, onde o segundo ponto da secante é o dia actual, e o primeiro ponto depende do prazo do investimento a considerar (no caso de curto prazo, este ponto deve ser próximo do dia actual, no longo prazo, mais distante). Deste modo o primeiro parâmetro desta estratégia é o número de dias da Média Móvel, e o segundo parâmetro é o número de dias de distância usado como segundo ponto da secante. Esta estratégia dá sinal de comprar 31

sempre que a inclinação da secante for positiva e dá sinal de venda a descoberto caso contrário. Os limites dos parâmetros para esta estratégia encontram-se na tabela seguinte. Tabela 9 - Limites para os parâmetros do MAD. Parâmetro Limite Inferior Limite Superior Média Móvel 1 250 Diferença de Dias na Secante 1 250 3.2.5. Métricas de Investimento Implementadas As métricas de investimento implementadas foram:, Drawdown, Sharpe Ratio, Sortino Ratio, Risco (definido segundo os parâmetros da CMVM para os fundos de investimento). Estas métricas serão descritas em mais pormenor no Capítulo de Resultados, secção 4.1 Métricas de Avaliação. 3.2.6. Módulo de Algoritmos Genéticos Nesta secção será descrita em pormenor a implementação do Módulo de Algoritmos Genéticos e são descritas em pormenor algumas das opções tomadas. Em algumas situações foi decidido implementar várias soluções e comparar os seus resultados. Estas comparações encontram-se no Capítulo 4.2 - Estudos de Caso. Na Figura 11 pode-se ver em mais pormenor o módulo do Algoritmo Genético. Figura 11 - Detalhe do módulo do Algoritmo Genético 32

3.2.6.1. Representação do Cromossoma O Cromossoma será constituído pelos parâmetros de uma ou mais estratégias de investimento e respectivo peso para cada uma das estratégias e também pelo peso necessário para realizar uma operação (quer de compra quer de venda a descoberto). Deste modo, cada indivíduo representa uma estratégia de investimento que contém para cada sub-estratégia os parâmetros optimizados em que se deve comprar ou vender determinada acção, e se houver mais do que uma estratégia, o peso que cada estratégia tem na decisão final. O cromossoma deverá poder ser mudado pelo utilizador sem necessidade de alteração do código, devendo para isso ser desenhada uma interface que permita ao utilizador escolher que estratégias e respectivos parâmetros pretende optimizar. Na Tabela 10 encontra-se um possível cromossoma que poderá ser optimizado pelo Algoritmo Genético: Tabela 10 - Possível Cromossoma com base nas estratégias: SMAC e MAD Parâmetros a Optimizar Peso Necessário Peso SMAC Peso MAD Param 1 SMAC Param 2 SMAC Param 1 MAD Param 2 MAD Limites dos Parâmetros 1 a 10 0 a 5 0 a 5 1 a 200 1 a 250 1 a 200 1 a 250 Este cromossoma representa uma estratégia com 2 sub-estratégias em que o Algoritmo Genético terá de optimizar os parâmetros destas duas estratégias. Na estratégia com base no SMAC terá de optimizar o número de dias das duas Médias Móveis. Para a estratégia MAD, o Algoritmo Genético deve optimizar o número de dias da Média Móvel e o número de dias de diferença para cálculo da secante. Terá também de optimizar os dois parâmetros de peso, um para cada estratégia e também o peso necessário para que uma decisão seja tomada: para uma decisão de compra ser tomada a soma das decisões de cada estratégia multiplicada pelo seu peso, tem que ser igual ou superior ao Peso Necessário. Se a soma for inferior ao valor negativo do Peso Necessário, será tomada uma decisão de venda a descoberto. Caso a soma dos pesos não se enquadre em nenhum dos casos anteriores, a estratégia fica fora do mercado. De seguida será mostrado um exemplo de uma estratégia de investimento com base num cromossoma: 33

Tabela 11 Exemplo de um Cromossoma com as estratégias SMAC e MAD. Parâmetros Peso Necessário Peso SMAC Peso MAD Param 1 SMAC Param 2 SMAC Param 1 MAD Param 2 MAD Valor 2 1 1 180 60 80 20 Na Figura 12 encontra-se o exemplo da aplicação da estratégia da Tabela 11 ao mercado S&P 500. O primeiro gráfico referente a Positions indica se a estratégia está em Compra (a verde), em Venda a Descoberto (Vermelho) ou sem posição. O segundo gráfico mostra o Valor do S&P 500 e as duas Médias Móveis relativas à Estratégia SMAC (o valor desta estratégia encontra-se no terceiro gráfico). Finalmente o quarto gráfico mostra o valor da estratégia MAD. Figura 12 Aplicação da Estratégia da Tabela 11 ao S&P 500 entre o fim de 2004 e meados de 2009. 3.2.6.2. População Inicial A população é iniciada com indivíduos aleatórios, isto é, são gerados indivíduos em que o valor de cada gene do cromossoma é gerado aleatoriamente tendo em conta os limites de cada gene. 34

3.2.6.3. Avaliação A avaliação usada no caso de serem usados mais do que um activo é dada pela Equação 1: n 1 f ( n) n Equação 1 onde n é o número de activos e f(n) o valor da função avaliação para o activo n. 3.2.6.3.1. Função de Avaliação Foram usadas diversas funções de avaliação:, - [Peso] x Drawdown, Sharpe Ratio Mensal e Anual, Sortino Ratio. Um estudo sobre os efeitos da função avaliação encontra-se descrito na secção 4.2.4 Estudo de Caso C Impacto da Função de Avaliação nos Resultados. 3.2.6.4. Selecção A função de selecção funciona da seguinte maneira: Em cada geração, com base na função de avaliação, metade dos indivíduos são excluídos e a outra metade é seleccionada para Cruzamento. O cruzamento ocorre um número de vezes igual a metade da população seleccionada na fase anterior (um quarto da população inicial). Ex.: para uma população com 100 indivíduos, 50 são excluídos, outros 50 são seleccionados para realizar 25 cruzamentos e cada cruzamento gera 2 descendentes, mantendo assim o número de indivíduos da população estável. O método de selecção de indivíduos para cruzamento é o roulette-wheel selection, onde a probabilidade de um indivíduo ser seleccionado é proporcional à sua função de avaliação. Esta função de selecção foi escolhida porque dentro das diversas funções encontradas na literatura é a que combina melhor uma boa preservação dos melhores indivíduos (50% dos melhores indivíduos são guardados para a próxima geração) com uma constante renovação da diversidade da população (50% da população é excluída e substituída por novos descendentes). Já o método da roulette-wheel selection, embora que assegure que os indivíduos com melhor fitness tenham mais descendentes, não exclui totalmente os indivíduos com pior classificação de gerarem descendentes, dando a possibilidade de o algoritmo poder continuar a evoluir caso fique preso num máximo local. 35

3.2.6.5. Cruzamento Quanto ao cruzamento em si, é usado o one point crossover. Esta técnica consiste em escolher aleatoriamente uma posição do Cromossoma que o divida em 2, e pegando nessa divisão gerar 2 indivíduos que são a combinação dos Cromossomas do pai e da mãe, divididos pela posição escolhida. Adicionalmente, e para evitar uma convergência prematura, se os dois indivíduos a serem cruzados representam a mesma estratégia (isto é: têm a mesma função avaliação), a selecção dos indivíduos é repetida até um máximo de dez vezes, de modo a tentar gerar um cruzamento entre duas estratégias diferentes. De seguida encontra-se um exemplo de cruzamento usando como base o cromossoma definido em 3.2.6.1 Representação do Cromossoma. Se usarmos os dois cromossomas da Tabela 12 para cruzamento, e sendo a posição escolhida para o one point crossover entre o 5.º e o 6.º gene, teremos como descendentes resultantes os dois cromossomas da Tabela 13. Tabela 12 - Exemplo de cromossomas para cruzamento. Pai 1 4 5 100 131 40 190 Mãe 2 1 4 30 90 80 142 Tabela 13 - Descendentes resultantes do cruzamento. Filho 1 1 4 5 100 131 80 142 Filho 2 2 1 4 30 90 40 190 3.2.6.6. Mutação A mutação é feita no fim de cada geração, e o número de mutações que a população sofre depende do parâmetro escolhido pelo utilizador, mostrando-se que os valores mais encontrados na literatura são 10% de mutação. A mutação é feita seleccionando um indivíduo aleatório para sofrer a mutação, e de seguida é escolhido também aleatoriamente qual o gene (parâmetro) a sofrer a mutação. Tendo sido escolhido o indivíduo e o gene a mutar, é só gerar um novo valor aleatório dentro dos limites para esse gene. Um exemplo de mutação encontra-se na Tabela 14, em que na linha de cima se encontra o cromossoma original, com a indicação do gene a mutar (4.º gene) e na linha de baixo o cromossoma depois de sofrer a mutação. 36

Tabela 14 - Exemplo de Mutação Antes da Mutação 1 4 5 100 131 80 142 Depois da Mutação 1 4 5 75 131 80 142 3.2.6.7. Valores e Constantes utilizados Os valores utilizados nesta dissertação para os parâmetros do Algoritmo Genético foram: N.º de Indivíduos da População: 60 N.º de Gerações: 80 Taxa de Cruzamento: 50% Taxa de Mutação: 10% Tamanho do Cromossoma: Variável. Número de Vezes que o AG é corrido para apresentação de resultados: 50 Função de Avaliação: Variável. Em alguns dos Estudos de Caso apresentados no capítulo seguinte, alguns destes parâmetros foram modificados de modo a testar o seu impacto nos resultados. Em cada Estudo de Caso são identificadas quais as modificações feitas em relação ao A.G. descrito neste Capítulo. 3.3. Resumo Neste capítulo foi descrita a Arquitectura da Aplicação a desenvolver, bem como as principais características que a implementação deve respeitar. De seguida foi descrita em pormenor a implementação dos Módulos de Interface com o Utilizador, Armazenamento de Dados, Testes e Benchmark de Estratégias, e do Módulo de Algoritmos Genéticos. Foram descritas também diversas alternativas para certas funções e parâmetro,s que serão testados no próximo capítulo, de forma a explorar as abordagens que dão melhores resultados. 37

4. Resultados Neste capítulo serão apresentadas e discutidas as diversas métricas de avaliação de estratégias de investimento (secção 4.1) e na secção 4.2 serão apresentados vários Estudos de Caso com as diversas experiências e modificações que foram feitas às diversas componentes da aplicação, em particular dos Algoritmos Genéticos e das estratégias de investimento. 4.1. Métricas de Avaliação As soluções encontradas devem ser avaliadas de maneira a que possam ser comparadas com outras estratégias de investimento como depósitos a prazo, fundos de investimento, outras estratégias com base em soft-computing, e sendo também comparadas as diversas estratégias geradas pelo sistema. Nesta secção serão abordadas as métricas de avaliação usadas para avaliação das soluções geradas. 4.1.1. Um dos métodos de avaliação mais importantes e que pode ser compreendido por qualquer investidor, é a. Esta métrica é simplesmente o ganho (lucro) Médio resultante da aplicação da estratégia a analisar e pode ser calculado usando a seguinte expressão: Vf - V R = i Equação 2 Vi onde Vf corresponde ao capital final depois de aplicada a estratégia e Vi corresponde ao capital inicial. Um exemplo de cálculo de rentabilidades encontra-se na Tabela 15. Tabela 15 - Exemplo de Cálculo de s Índice Capital Inicial da Estratégia Capital Final da Estratégia DAX 1000 2900 190% S&P 500 1000 1700 70% 4.1.2. Drawdown Uma das componentes mais importantes de qualquer estratégia de investimento (principalmente a nível psicológico) e que importa avaliar e classificar é a perda máxima (drawdown), isto é, o valor máximo que o investidor poderá vir a perder no 39

decorrer da aplicação de determinada estratégia. Esta métrica é importante porque pode ser considerada como uma aproximação para medir o Risco de uma estratégia. Esta métrica juntamente com a são suficientes para conseguir definir um perfil quer para uma estratégia, quer para um investidor e também para conseguir comparar de forma justa diversas estratégias de investimento. Deste modo, uma estratégia/investidor com maior aversão ao risco deverá optar por uma estratégia com drawdown inferior (próximo de zero) e, dentro dessa limitação, com a maior rentabilidade possível. Por outro lado, um investidor mais agressivo deverá optar pelas estratégias com melhor rentabilidade. Esta métrica, juntamente com a rentabilidade, pode servir também para comparar estratégias que apresentem Drawdown semelhantes, das quais a que tiver rentabilidade superior domina a outra estratégia. Do mesmo modo, em estratégias com rendimentos semelhantes, a que apresentar drawdown inferior domina a estratégia com maior perda máxima. Um exemplo de cálculo de drawdown encontra-se na Figura 13. Figura 13 Exemplo de cálculo de drawdown para o DAX entre 2006 e 2010. 4.1.3. Sharpe Ratio Outra maneira de medir o risco de determinada estratégia é utilizar o Desvio Padrão dos retornos. Deste modo avaliamos uma estratégia não pela sua perda máxima no passado, mas pela variância das suas rentabilidades, isto é, o desvio em relação à Média. Um pequeno exemplo em como a variância pode ajudar na Análise de Investimentos: se tentarmos comparar um Depósito a Prazo de 3% num Banco que esteja coberto pelo Fundo de Garantia de Depósitos, e um Fundo de Investimento de 40

um país emergente com uma Anual de 3,5%. Se o critério de comparação fosse exclusivamente a rentabilidade, o investidor escolheria o Fundo de Investimento, já que este oferece uma Maior. Mas será que esta é uma escolha acertada? Será que o risco de investimento num Fundo de um mercado emergente em relação a um depósito a prazo compensa os 0,5% de rentabilidade? Para ser mais fácil a comparação entre diversas estratégias de investimento, o Prémio Nobel William Sharpe criou em 1966 o Sharpe Ratio. A fórmula do Sharpe Ratio é: Re R SR = 0 StdDev( Re ) Equação 3 Sendo R e a rentabilidade média da estratégia e R 0 a associada a um investimento de risco zero. Este valor é normalmente o da rentabilidade da dívida (de prazo igual ao da estratégia de investimento) de um país economicamente estável, a maior parte das vezes é usada a T-Bill (Dívida norte-americana) e StdDev(R e ) o Desvio Padrão da estratégia. O Sharpe Ratio é assim o rácio entre a rentabilidade e o risco de um investimento, em que investimentos com Sharpe Ratio maior apresentam uma melhor relação retorno/risco. Deste modo o Sharpe Ratio pode ser utilizado para comparar duas estratégias de investimento e verificar se a rentabilidade adicional de uma estratégia em relação a outra compensa o maior risco assumido. Adicionalmente, e para duas estratégias com rentabilidades semelhantes, se uma delas possuir um Sharpe Ratio muito superior, quer dizer que essa estratégia implica muito menos risco do que a outra, e portanto deve ser preferida em relação à outra de igual rentabilidade, mas menor risco. 4.1.4. Sortino Ratio O Sortino Ratio é uma modificação do Sharpe Ratio, em que os valores considerados para o Desvio Padrão são apenas os que estão abaixo de um determinado nível, por exemplo Zero. Isto é, se se tiver uma estratégia em que as transacções com resultados negativos tenham um valor em módulo baixo (isto é, perdas pequenas), mas que os investimentos positivos tenham um grande desvio padrão (por exemplo diversas transacções entre os 2% e 200% de retorno). Nesse investimento o Sharpe Ratio teria um valor baixo porque o Desvio Padrão é muito grande, penalizando assim a estratégia, apesar de esta ser claramente vencedora (já que põe apenas uma pequena parte de capital em risco). Já usando o Sortino Ratio, e considerando apenas 41

transacções com nível de rentabilidade negativas, tendo em conta que são de pequeno valor e que os ganhos são consideráveis, esta estratégia poderia ser considerada bastante melhor que outra usando o Sortino Rate. 4.1.5. Classe de Risco (Segundo Classificação da CMVM [24]) É obrigatório esta métrica ser apresentada nos Fundos de Investimento comercializados ao público em Portugal e é por isso uma boa métrica para comparar os resultados obtidos nesta dissertação com os resultados do mundo real. Deste modo a Classe de Risco é um valor entre 1 e 6, correspondendo os valores mais baixos aos Fundos de menor risco e os valores mais altos a fundos de maior risco. O cálculo deste valor tem por base o Desvio Padrão Anualizado das rentabilidades semanais. O Desvio Padrão Anualizado das rentabilidades semanais calcula-se do seguinte modo: n D = i= 0 2 R i n -1 - R 2 52 Equação 4 Onde Ri é a da semana i, e R é a Média das. Assim a Classe de Risco é calculado segundo a seguinte tabela: Tabela 16 - Cálculo de Classe de Risco. Desvio Padrão Anualizado(%) Classe de Risco Escalão de Risco [0 ; 1.5 [ 1 Risco baixo [1.5 ; 5 [ 2 Risco médio baixo [5 ; 10 [ 3 Risco médio [10 ; 15 [ 4 Risco médio alto [15 ; 20 [ 5 Risco alto > = 20 6 Risco muito alto 42

4.2. Estudos de Caso Nesta secção serão descritos vários Estudos de Caso em que são analisadas e comparadas diversas alterações e configurações quer dos Algoritmos Genéticos quer das estratégias de investimento. 4.2.1. Metodologia Para a realização de cada Estudo de Caso são definidas as várias alterações a considerar, sendo é corrido o Algoritmo Genético para as diversas alterações. Em comum a todos os Estudos de Caso estará o período de treino e teste, que será de 1993 a 2003 para o período de treino e de 2004 a 2009 para o período de teste. Os activos utilizados serão o índice S&P 500, o DAX e o FTSE, a optimização será feita para os 3 em simultâneo. Para melhor simular as condições do mercado será aplicada uma comissão de 0,2% sobre cada transacção. De modo a ter uma melhor percepção dos resultados para cada hipótese do Estudo de Caso, o Algoritmo Genético será corrido 50 vezes e os dados apresentados serão relativos a essas 50 execuções do algoritmo. Para cada Estudo de Caso serão apresentados o Histograma com os resultados no período de teste das 50 execuções, bem como uma tabela contendo diversas Métricas de Avaliação, todas elas aplicadas também ao período de teste. 4.2.2. Estudo de Caso A Estratégias a incluir no Cromossoma Neste Estudo de Caso será analisada a composição do cromossoma em termos de Estratégias a incluir. De modo a fazer esta análise foram corridas várias versões do Algoritmo Genético com diferentes cromossomas e os resultados comparados. Este Estudo de Caso descreverá também a evolução que foi seguida desde as primeiras abordagens ao problema, até ao resultado final. Isto é, são descritas as várias modificações que foram feitas ao longo do Trabalho. O ficheiro de configuração usado para este Estudo de Caso foi: #Este é o ficheiro de configuração do Stocks program=stocks function=optimizeparameters dircotacoes=c:\cotacoes\paper\ starttraindate=1993 endtraindate=2003 starttestdate=2004 endtestdate=2009 numberofruns=50 numberofgerations=80 populationnumber=60 mutationrate=0.1 chromosome=mad 43

[O parâmetro relativo à composição do cromossoma foi obviamente variando ao longo do Estudo de Caso] 4.2.2.1. 1.ª Fase Estratégias Simples Inicialmente foi testado um cromossoma contendo apenas uma das estratégias existentes: MAD, SMAC, RSI Time e RSI Level. 4.2.2.1.1. Histograma O histograma dos retornos anualizados dos vários cromossomas no período de teste, encontra-se na Figura 14. Como se pode ver pela Figura, os Cromossomas com a Estratégia MAD e SMAC levam clara vantagem sobre as estratégias com base no RSI. Com efeito as estratégias MAD e SMAC apresentam uma curva semelhante à Distribuição Normal com média à volta de 8% a 9% e as estratégias com base no RSI apresentam a maior parte dos seus resultados com rentabilidades inferiores a zero. Figura 14 - Histograma dos retornos anualizados das 4 Estratégias, no período de Teste. 4.2.2.1.1. Métricas de Avaliação Na Tabela 17 encontram-se os resultados desse primeiro teste. Em cada linha da tabela (Métrica de Avaliação) está indicada a negrito qual a estratégia que obteve o melhor resultado. 44

Os resultados desta tabela confirmam o que já se tinha constatado no Histograma: as Estratégias MAD e SMAC têm resultados positivos, sendo a MAD claramente a melhor estratégia, já que é a que apresenta o melhor resultado na maioria das métricas, em particular na to Top3 do Treino, Média e também na média do Sharpe e Sortino Ratio. Pelo contrário, as Estratégias com base no RSI têm rentabilidades negativas. O facto de a estratégia RSI Level ter alguns Drawdowns melhores que os restantes deve-se ao facto de a estratégia estar muito pouco tempo no mercado (como é uma estratégia perdedora, a optimização executada pelo GA é negociar o menos possível) e portanto restringir as perdas. Tabela 17 - Métricas de Avaliação dos Cromossomas com Estratégias Simples (todas as medidas se referem ao período de Teste). Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino Média Desvio Padrão da MAD SMAC RSI Time RSI Level 8.3% 5.9% -2.6% -1.2% 32.3% 33.2% 64.5% 11.8% 8.8% 8.4% -1.1% -0.5% 28.2% 26.4% 40.4% 5.1% 8.8% 6.2% -2.2% -2.4% 2.2% 4.6% 2.6% 2.2% Drawdown Médio 27.3% 31.9% 30.9% 19.2% Média Sharpe Ratio Média Sortino Ratio Melhor Melhor Drawdown Pior 0.61 0.29-56.03-43.22 142.24 52.22-67.38-44.13% 13.5% 12.5% 1.5% 0.1% 20.6% 20.6% 0% 0% 2.0% -6.6% -11.4% -8.6% Pior Drawdown 43.1% 59% 72.5% 52.3% 4.2.2.2. 2.ª Fase Cromossoma com Duas Estratégias Iguais De seguida foi testado qual o impacto de usar um cromossoma com duas estratégias iguais, mas com parâmetros diferentes. Foram criados cromossomas idênticos aos da fase anterior, mas com duas estratégias em vez de uma. Os cromossomas testados 45

nesta fase foram: MAD, MAD, SMAC, SMAC, RSI Time, RSI Time e RSI Level, RSI Level. 4.2.2.2.1. Histograma O histograma dos retornos anualizados dos vários cromossomas no período de teste, encontra-se na Figura 15. Figura 15 - Histograma dos retornos anualizados dos Cromossomas com Estratégias Duplicadas, no período de teste. Em relação à Fase anterior pode-se ver que as estratégias MAD e SMAC melhoraram os seus resultados através da redução de elementos com piores rentabilidades, que passaram a ser muito menos do que no teste anterior. Quanto às estratégias com base no RSI, mantiveram o mau desempenho. 4.2.2.2.2. Métricas de Avaliação Na Tabela 18 encontram-se os resultados dos Cromossomas com duas estratégias iguais. Para cada linha da tabela (Métrica de Avaliação) está indicada a negrito qual a estratégia que obteve o melhor resultado. Mais uma vez se conclui que as estratégias MAD e SMAC obtêm muito melhores resultados em relação às estratégias com base no RSI. Levando a estratégia MAD alguma vantagem, por ter a melhor performance na maioria das métricas, em 46

particular na Média, onde obtêm 8.9% vs. os 8.2% da estratégia SMAC, e também com Desvio Padrão inferior: 2.3% vs 3.0%. Tabela 18 - Métricas de Avaliação dos Cromossomas com Duas Estratégias Iguais (todas as medidas se referem ao período de teste). Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino Média Desvio Padrão da MAD, MAD SMAC, SMAC RSI Time, RSI Time RSI Level, RSI Level 8.4% 11.1% -1.6% -5.7% 25.8% 21.0% 18.3% 36.5% 9.4% 9.3% -3.0% -6.9% 24.2% 23.4% 31.7% 41.0% 8.9% 8.2% -2.5% -3.0% 2.3% 3.0% 3.3% 2.4% Drawdown Médio 27.2% 27.4% 35.6% 24.0% Média Sharpe Ratio Média Sortino Ratio Melhor Melhor Drawdown Pior 0.60 0.49-19.22-41.79 131.98 110.67-26.92-41.00 12.1% 12.0% 4.4% 0.1% 18.4% 20.0% 0.0% 0.0% -1.5% -6.8% -11.0% -9.1% Pior Drawdown 52.3% 60.3% 68.6% 54.6% Em relação aos resultados comparativamente à fase anterior temos: A Top 3 melhora na SMAC de 8.4% para 9.3% e na MAD de 8.8% para 9.4%. A Média, onde o MAD passa de 8.4% para 8.9% e o SMAC de 6.2% para 8.2% No Sharpe Ratio a MAD praticamente mantém-se (0.61 vs 0.60), e na SMAC sobe de 0.29 para 0.49. Outro dado muito importante é que o Desvio Padrão também baixa significativamente de 4.6% para 3.0% no SMAC, e sobe ligeiramente no MAD( 2.2% para 2.3%): assim podemos concluir que o duplicar as estratégias não só melhora a rentabilidade mas contribui para resultados mais fiáveis e mais previsíveis. 47

Mais uma vez a estratégia RSI Level tem alguns Drawdowns melhores que os restantes, deve-se ao facto de a estratégia estar muito pouco tempo no mercado. 4.2.2.3. 3.ª Fase Cromossoma com Combinação de 2 Estratégias Iguais e Outra Diferente De seguida, e de maneira a testar se uma diversificação no Cromossoma traria melhores resultados, foram testadas as melhores estratégias anteriores (MAD, MAD e SMAC, SMAC) com outra estratégia adicional, ficando assim a lista das estratégias a testar: 2xMAD, SMAC, 2xMAD, RSI Level, 2xMAD, RSI Time, 2xSMAC, MAD, 2xSMAC, RSI Level, e 2xSMAC RSI Time. 4.2.2.3.1. Histograma Os histogramas relativos às estratégias que têm como base a MAD encontram-se na Figura 16, enquanto os histogramas das estratégias que têm como base a SMAC se encontram na Figura 17. Figura 16 - Histograma dos retornos anualizados das estratégias que têm como base a MAD no período de Teste. Na Figura 16 podemos ver que apesar de todas as estratégias terem desempenhos idênticos, a que apresenta mais elementos nos intervalos de maior rentabilidade é a 2xMAD, SMAC, seguida da 2XMAD, RSI Level. Na Figura 17 podemos ver que a estratégia 2xSMAC, MAD obtém os melhores resultados. 48

Figura 17 - Histograma dos retornos anualizados da estratégias que têm como base a SMAC no período de Teste. 4.2.2.3.2. Métricas de Avaliação Na figura seguinte podemos ver a evolução da rentabilidade das três estratégias no período de teste. Figura 18 Evolução da rentabilidade das três estratégias no período de teste (2004 a 2009). Na Tabela 19 são apresentadas as métricas de avaliação para as estratégias com base na MAD. Nesta tabela podemos verificar que as estratégias 2xMAD, SMAC obtêm os melhores resultados (melhor rentabilidade média, melhor drawdown, melhor Sharpe e 49

Sortino Ratio), seguida da estratégia 2MAD,RSI Time, que obtém o menor desvio padrão. A estratégia 2xMAD, RSI Level é a que apresenta os piores resultados. Comparativamente com os resultados da Fase anterior, podemos verificar que a estratégia 2xMAD, SMAC apresenta ligeiramente melhores resultados que a estratégia MAD, MAD (Tabela 18): Melhor Treino: 9.3% vs. 8.4%, Média: 9.1% vs. 8.9%, Sharpe Ratio: 0.64 vs. 0.60, Sortino Ratio: 163.38 vs. 131.98. Tabela 19 - Métricas de Avaliação das Estratégias com base no MAD (todas as medidas se referem ao período de teste). Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino Média Desvio Padrão da 2xMAD, SMAC 2xMAD, RSI Time 2xMAD, RSI Level 9.3% 9.5% 3.5% 30.4% 32.3% 38% 7.5% 8.4% 7.2% 28.4% 30.6% 30.4% 9.1% 8.2% 7.8% 2.7% 2.5% 3.5% Drawdown Médio 27.7% 28.3% 29.3% Média Sharpe Ratio Média Sortino Ratio Melhor Melhor Drawdown Pior 0.64 0.52 0.47 163.38 96.98 102.28 14.9% 12.8% 12.9% 17.2% 20.3% 20.6% -3.6% -2.2% -7.3% Pior Drawdown 55.7% 48.8% 64.7% Na Tabela 20 apresenta-se as métricas de avaliação para as estratégias com base na SMAC. A estratégia 2x SMAC, MAD obtém os melhores resultados em quase todas as métricas. 50

Comparando com a Fase anterior, podemos ver claramente que a melhor estratégia desta Fase ( 2xSMAC, MAD ) melhora consideravelmente os resultados em relação à estratégia SMAC, SMAC, ao contrário das estratégias que usam o RSI, que pioram os resultados. Tabela 20 - Métricas de Avaliação das Estratégias com base no SMAC (todas as medidas se referem ao período de teste). Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino Média Desvio Padrão da 2xSMAC, MAD 2xSMAC, RSI Time 2xSMAC, RSI Level 11.2% 1.3% 3.5% 22.4% 62.4% 37.2% 9.1% 6.1% 8.1% 26.1% 41.5% 26.3% 9.1% 6.7% 8.2% 2.6% 4.6% 2.7% Drawdown Médio 26.8% 32.7% 28.2% Média Sharpe Ratio Média Sortino Ratio Melhor Melhor Drawdown Pior 0.61 0.36 0.46 136.69 70.83 97.07 14.1% 11.3% 12.4% 19.5% 20.6% 17.3% -0.9% -13.9% -1.1% Pior Drawdown 49.3% 80.9% 56.6% Assim, tendo em conta as duas tabelas anteriores, podemos concluir que, adicionando uma estratégia diferente aos cromossomas 2xMAD e 2xSMAC, obtemos melhores resultados. 4.2.2.4. 4.ª Fase Cromossoma com Quatro Estratégias Iguais De seguida, e para verificar se com o aumento do número de estratégias iguais, continuamos a obter melhores rentabilidades, foram testados Cromossomas com as estratégias que deram melhores resultados anteriormente, usando quatro estratégias iguais (4x MAD, 4xSMAC). 51

4.2.2.4.1. Histograma O histograma dos retornos anualizados dos 2 cromossomas no período de teste, encontra-se na figura seguinte. Nesta Figura podemos ver que a estratégia 4xSMAC leva ligeira vantagem sobre a 4xMAD. Figura 19 - Histograma dos retornos anualizados das estratégias 4xMAD e 4xSMAC no período de Teste. 4.2.2.4.1. Métricas de Avaliação Na Tabela 21 encontram-se os resultados dos Cromossomas com quatro estratégias iguais. Nesta tabela podemos confirmar os dados do histograma, onde a estratégia com 4xSMAC obtém ligeiramente melhores resultados que a 4xMAD. Comparando a estratégia 4xMAD (Tabela 21) com os resultados obtidos pela estratégia MAD, MAD, SMAC (Tabela 19), podemos concluir que ambas têm resultados muito semelhantes. Comparando com as tabelas anteriores, em particular com a Tabela 20, onde são apresentados os resultados das estratégias com 2xSMAC, podemos constatar que a estratégia SMAC, SMAC, MAD obtém resultados muito semelhantes à estratégia 4xSMAC. Deste modo concluímos que em ambas as estratégias (MAD e SMAC) os resultados de usar um Cromossoma com 4 estratégias iguais não trazem melhoria relativamente a utilizar 2 Estratégias Iguais e outra diferente e que, portanto, a repetição das estratégias deixa de ser útil a partir de 4 Estratégias iguais. 52

Tabela 21 - Métricas de Avaliação das Estratégias 4xMad e 4xSMAC (todas as medidas se referem ao período de Teste). Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino Média Desvio Padrão da 4xMAD 4xSMAC 8.5% 9.9% 28.8% 24.1% 9.5% 8.8% 29.2% 26.5% 9.2% 9.2% 2.2% 2.4% Drawdown Médio 27.8% 26.8% Média Sharpe Ratio 0.67 0.55 Média Sortino Ratio 152.54 96.83 Melhor 14.3% 13.0% Melhor Drawdown 20.6% 19.7% Pior 0.1% 1.7% Pior Drawdown 47.0% 43.8% Na figura seguinte podemos ver a evolução da rentabilidade das duas estratégias ao longo do período de teste: Figura 20 - Evolução da rentabilidade das duas estratégias no período de teste. 53

4.2.3. Estudo de Caso B Valor dos Parâmetros a utilizar no Algoritmo Genético Neste Estudo de Caso serão analisados os parâmetros a utilizar no Algoritmo Genético. Deste modo serão testados vários valores para as seguintes variáveis do A.G e serão apresentados os respectivos resultados: Número de Gerações, Tamanho da População e Taxa de Mutação. O ficheiro de configuração usado para este Caso de Estudo foi: #Este é o ficheiro de configuração do Stocks program=stocks function=optimizeparameters dircotacoes=c:\cotacoes\paper\ starttraindate=1993 endtraindate=2003 starttestdate=2004 endtestdate=2009 numberofruns=50 numberofgerations=80 populationnumber=60 mutationrate=0.1 chromosome=smac,smac,mad [Os parâmetro relativos a Número de Gerações, Tamanho da População e Taxa de Mutação, serão modificados para cada configuração a analisar] Serão analisadas sete configurações: Parâmetros Normais : 80 Gerações, 60 Indivíduos, 10% de Taxa de Mutação. 2xGerações: 160 Gerações, 60 Indivíduos, 10% de Taxa de Mutação. ( 2xGer ) 2xPopulação: 80 Gerações, 120 Indivíduos, 10% de Taxa de Mutação. ( 2xPop ) 2xPopulação e Gerações: 160 Gerações, 120 Indivíduos, 10% de Taxa de Mutação. ( 2xPop e Ger ) 2.5xTaxa de Mutação: 80 Gerações, 60 Indivíduos, 25% de Taxa de Mutação. ( Mutação ) Metade das Gerações: 40 Gerações, 60 Indivíduos, 10% de Taxa de Mutação. ( 1/2 Ger ) Metade da População: 80 Gerações, 32 Indivíduos, 10% de Taxa de Mutação. ( 1/2 Pop ) 54

Metade da População e das Gerações : 40 Gerações, 32 Indivíduos, 10% de Taxa de Mutação. ( 1/2 Pop e Ger ) 4.2.3.1.1. Histograma Nas figuras seguintes encontram-se os histogramas das sete configurações analisadas: Figura 21 - Histograma dos retornos anualizados das configurações Normal, 2xGer, 2xPop e 2xPop e Ger no período de Teste. Figura 22 - Histograma dos retornos anualizados das estratégias Mutação, 1/2Ger, 1/2Pop e 1/2 Ger e Pop no período de Teste. 55

4.2.3.1.2. Métricas de Avaliação Nas tabelas seguintes encontram-se as métricas de avaliação para cada avaliação: Tabela 22 - Métricas de Avaliação das configurações Normal, 2xGer, 2xPop e 2xPop e Ger (todas as medidas se referem ao período de Teste) Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino Média Desvio Padrão da Normal 2xGer 2xPop 2xGer e Pop 11.2% 7.2% 10.8% 10.6% 22.4% 43.2% 22.4% 20.6% 9.1% 8.9% 10.3% 10.5% 26.1% 30.3% 22.1% 23.4% 9.1% 9.2% 9.3% 9.0% 2.6% 2.0% 2.1% 2.5% Drawdown Médio 26.8% 26.4% 26.8% 28.3% Média Sharpe Ratio Média Sortino Ratio Melhor 0.61 0.63 0.60 0.59 136.69 156.95 120.06 157.67 14.1% 13.4% 13.2% 12.9% Melhor Drawdown 19.5% 19.6% 19.3% 20.3% Pior -0.9% 3.0% 2.7% 2.0% Pior Drawdown 49.3% 43.2% 43.8% 46.3% Nesta tabela podemos ver que a diferença entre os resultados conseguidos entre os parâmetros normais e os parâmetros com o dobro dos valores não é muito grande. Por exemplo, com a configuração normal o melhor indivíduo encontrado no treino teve melhor que todas as outras configurações e na Média os parâmetros normais obtêm 9.1%, tendo melhor resultado que com o dobro da população e das gerações, 9.0%, ficando pouco atrás do melhor resultado, 9.3% com o Dobro da População. De salientar que as configurações 2xGer e 2xPop demoram o dobro do tempo a correr, e a configuração 2xGer e Pop demora mais 4 vezes mais a correr que a configuração normal. Deste modo, e perante a pouca diferença nos resultados em relação aos tempos de execução, deve-se optar pela configuração Normal. 56

Tabela 23 - Métricas de Avaliação das configurações Normal (repetida da tabela anterior), 1/2 Ger, 1/2 Pop e Mutação (todas as medidas se referem ao período de Teste) Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino Média Desvio Padrão da Normal 1/2 Ger 1/2 Pop Mutação 1/2 Ger e Pop 11.2% 10.3% 10.5% 13.2% 10.7% 22.4% 20.6% 27.8% 21.1% 23.2% 9.1% 8.2% 9.2% 11.5% 9.6% 26.1% 29.8% 28.3% 23.8% 30.0% 9.1% 8.7% 8.9% 9.0% 8.0% 2.6% 2.8% 2.5% 2.9% 3.0% Drawdown Médio 26.8% 27.6% 27.9% 27.8% 28.5% Média Sharpe Ratio Média Sortino Ratio Melhor Melhor Drawdown Pior 0.61 0.57 0.59 0.58 0.52 136.69 138.25 127.86 140.70 106.70 14.1% 14.0% 12.7% 13.2% 11.7% 19.5% 20.6% 17.2% 16.0% 19.9% -0.9% -1.7% 0.3% -3.8% -4.0% Pior Drawdown 49.3% 46.3% 42.1% 55.2% 56.5% Na tabela anterior podemos ver que, tirando a configuração 1/2 Ger e Pop, todas as outras apresentam resultados semelhantes. Deste modo podemos concluir que os parâmetros normais escolhidos se adequam aos resultados que se pretendem obter, e que talvez haja alguma margem de manobra para descer um pouco o valor dos parâmetros. Há porem que ter em atenção que apenas deverá ser reduzido uns dos parâmetros, já que com a redução das Gerações e da População ( 1/2 Ger e Pop ) os resultados são claramente piores. De qualquer modo a redução dos parâmetros não foi equacionada porque o Algoritmo Genético se encontra dentro dos limites de tempo aceitáveis (Cada execução demora cerca de 10 segundos por activo financeiro, demorando assim cerca de 30 segundos para 3 Índices). 57

Assim os parâmetros que foram considerados mais adequados são: número de Gerações: 80; número de indivíduos: 60; taxa de Mutação: 10%. Já que atingem bons resultados, não dão origem a overfitting, e têm tempos de execução aceitáveis. 4.2.4. Estudo de Caso C Impacto da Função de Avaliação nos Resultados Neste Estudo de Caso será analisado o impacto da função de avaliação do Algoritmo Genético nos resultados obtidos. De modo a fazer esta análise foram corridas várias versões da função avaliação. Essas funções de avaliação têm como base as métricas de avaliação descritas na secção anterior. As funções de avaliação escolhidas para análise foram: 2 x Drawdown Sharpe Ratio Anual Sortino Ratio Anual O Cromossoma utilizado tem as seguintes estratégias: SMAC, SMAC, MAD. O ficheiro de configuração usado para executar estes testes foi: #Este é o ficheiro de configuração do Stocks program=stocks function=optimizeparameters dircotacoes=c:\cotacoes\paper\ starttraindate=1993 endtraindate=2003 starttestdate=2004 endtestdate=2009 numberofruns=50 numberofgerations=80 populationnumber=60 mutationrate=0.1 chromosome=smac,smac,mad 4.2.4.1. Histograma O histograma dos retornos anualizados das 50 execuções no período de teste, com as funções de avaliação e 2 x Drawdown, Sharpe Ratio e Sortino Ratio encontram-se na Figura 23. 58

Como se pode ver pela figura, existe pouca diferença entre os resultados das quatro funções de avaliação. Figura 23 - Histograma dos retornos das quatro Funções de Avaliação em Teste. Nesta figura podemos ver que as funções têm resultados idênticos e que podem ser aproximadas à Distribuição Normal. 4.2.4.2. Métricas de Avaliação A Tabela 24 mostra as métricas de avaliação para cada função de avaliação. Para cada linha (Métrica de Avaliação) foi marcada a negrito qual das estratégias obtém os melhores resultados. Podemos verificar que a estratégia Rent. 2x Drawdown é a que tem o melhor resultado na maior parte das métricas de avaliação. As medidas mais importantes a destacar neste quadro são a da Média do Top3 no Treino, porque dá uma ideia dos resultados obtidos caso o investidor optasse por seguir as 3 Melhores estratégias encontradas no Treino. A Média, porque dá uma ideia dos resultados obtidos em todas as execuções e, finalmente, o Sharpe Ratio e Sortino Ratio, porque avaliam não só a mas também o Risco (através da variância) inerente a cada estratégia. 59

Tabela 24 - Métricas de Avaliação das diversas Função de Avaliação (todas as medidas se referem ao período de Teste). Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino Média Desvio Padrão da Rent. 2x Drawdown Sharpe Ratio Sortino Ratio 8.6% 10.6% 10.5% 9.9% 25.8% 30.2% 36.0% 23.7% 8.8% 9.0% 11.6% 9.8% 28.1% 28.8% 26.8% 22.9% 9.1% 9.0% 8.5% 8.2% 2.6% 2.2% 3.0% 3.9% Drawdown Médio 27.9% 27.2% 29.1% 27.9% Média Sharpe Ratio Média Sortino Ratio Melhor Melhor Drawdown Pior 0.61 0.61 0.58 0.52 111.43 164.58 161.03 120.24 13.7% 14.0% 14.3% 12.7% 20.6% 16.8% 20.6% 20.6% 0.8% 1.3% -3.8% -14.1% Pior Drawdown 59.4% 46.2% 55.1% 71.1% Deste modo um investidor com mais apetência para o risco poderia escolher como função de avaliação o Sharpe Ratio, já que apresenta uma melhor no Top3. Isso é explicado também pelo Desvio Padrão da, que é o que apresenta o valor mais alto (3.9%), que mostra que esta função origina estratégias com maior oscilação de rentabilidades (o que é positivo se conseguirmos através do treino, escolher as estratégias com oscilações de rentabilidade acima da média). Apesar disso, podemos ver que os resultados de todas as estratégias não têm diferenças muito significativas. Por exemplo, a média das rentabilidades oscila entre 8.2% e 9.1%, e a média do Sharpe Ratio entre 0.52 e 0.61. Na figura seguinte podemos ver a evolução das rentabilidades, onde mais uma vez se pode constatar que as rentabilidades finais são muito semelhantes. 60

Figura 24 - Evolução da rentabilidade das funções de avaliação no período de teste (2004 a 2009). 4.2.5. Estudo de Caso D Comparação de Resultados em Índices e em Acções Neste Estudo de Caso serão analisados os resultados da optimização do Algoritmo Genético usando como activos diversos índices e acções. Foi também modificado o número de índices e acções usados de modo a perceber se os resultados são melhores optimizando para um único activo. Os Índices escolhidos foram os mais importantes a nível mundial, e as acções foram escolhidas aleatoriamente do S&P 500. As configurações de índices e acções escolhidas para analisar foram: 1 Índice: S&P 500. 3 Índices: S&P 500, DAX, FTSE. 6 Índices: S&P 500, DAX, FTSE, DJI, NASDAQ e NIKKEI. 1 Acção: Baker Hughes Incorporated. 3 Acções: Baker Hughes Incorporated, CA Technologies e Constellation Energy Group. 6 Accções: Baker Hughes Incorporated, CA Technologies, Constellation Energy Group, Danaher Corp, Consolidated Edison e Eastman Kodak. 10 Acções: Baker Hughes Incorporated, CA Technologies, Constellation Energy Group, Danaher Corp, Consolidated Edison, Eastman Kodak, Eaton Corporation, Family Dollar Stores, Corning Inc. E H&R Block. 61

14 Acções: Baker Hughes Incorporated, CA Technologies, Constellation Energy Group, Danaher Corp, Consolidated Edison, Eastman Kodak, Eaton Corporation, Family Dollar Stores, Corning Inc., H&R Block, Coca-Cola, 3M, AT&T e Exxon Mobil. O ficheiro de configuração usado para este Caso de Estudo foi: #Este é o ficheiro de configuração do Stocks program=stocks function=optimizeparameters dircotacoes=c:\cotacoes\paper\ starttraindate=1993 endtraindate=2003 starttestdate=2004 endtestdate=2009 numberofruns=50 numberofgerations=80 populationnumber=60 mutationrate=0.1 chromosome=smac,smac,mad [O parâmetro relativo à directoria dos ficheiros foi sendo modificado para cada configuração a analisar]. 4.2.5.1.1. Histograma O histograma dos retornos anualizados das 50 execuções respectivos às configurações de Índices encontra-se na figura seguinte: Figura 25 - Histograma dos retornos das configurações relativas a Índices. 62

Nesta figura podemos ver claramente que a melhor configuração é a que utiliza 3 Índices. Podemos também observar que os resultados dessa configuração são semelhantes à Curva de Gauss. Figura 26 - Histograma dos retornos das configurações relativas a Acções. O histograma relativo às configurações de Acções encontra-se na Figura 26. Nesta figura podemos ver claramente que as configurações que obtêm melhores resultados são a 3 Acções seguida da 6 Acções. A configuração 1 Acção, apesar de obter bastantes elementos nas melhores rentabilidades, obtém também bastantes elementos com rentabilidades negativas (mais de 50%). Deste modo podemos considerar está estratégia como uma estratégia de risco elevado. 4.2.5.1.2. Métricas de Avaliação Na Tabela 25 são mostradas as métricas de avaliação para as configurações relativas a Índices. Como se pode ver pela tabela e confirmando os resultados do Histograma, a melhor configuração é a que contém 3 Índices, já que é a que apresenta o melhor resultado na maioria das métricas de avaliação (Melhor Média Top 3 Treino, Melhor Média, Melhor Sharpe e Sortino Ratio), seguida da configuração com 1 Índice, que apresenta uma rentabilidade inferior, mas também uma perda máxima inferior. 63

Tabela 25 - Métricas de Avaliação das configurações com Índices (todas as medidas se referem ao período de Teste) Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino 1 Índice 3 Índices 6 Índices 5.6% 11.2% 6.1% 29.8% 22.4% 47.6% 6.9% 9.1% 6.0% 22.5% 26.1% 42.0% Média 6.9% 9.1% 6.2% Desvio Padrão da 2.3% 2.6% 1.9% Drawdown Médio 20.9% 26.8% 43.6% Média Sharpe Ratio 0.37 0.61 0.38 Média Sortino Ratio 48.84 136.69 126.33 Melhor 11.2% 14.1% 8.7% Melhor Drawdown 12.6% 19.5% 24.7% Pior -1.3% -0.9% 0.7% Pior Drawdown 36.6% 49.3% 60.7% Na Tabela 26 podemos ver as métricas de avaliação relativas às configurações que usam Acções como activos a optimizar. Esta tabela mostra que as melhores configurações são com 3 e 6 Acções (6.8% e 4.1% de rentabilidade média), e que a inclusão de mais que 3 acções só piora os resultados. Podemos ver também que comparativamente com os Índices, os drawdowns das acções são muito superiores. Nos índices os drawdowns médios oscilam entre 20% a 46%, enquanto que nas acções os drawdowns vão de 68% a 82%. Quanto ao Desvio Padrão na este também é mais elevado nas acções, onde oscila entre 3.1% e 11.5%, enquanto que nos Índices a variação é entre 1.9% e 2.6%. Todas estas métricas comprovam que o investimento em Acções é muito mais arriscado que em Índices, havendo nas acções resultados mais incertos (desvio 64

padrão superior), e potenciais para grandes perdas de capital (drawdown também superior). Tabela 26 - Métricas de Avaliação das configurações relativas a Acções (todas as medidas se referem ao período de Teste). Métrica de Avaliação Melhor Treino Drawdown Melhor Treino Média Top 3 Treino Drawdown Médio Top 3 Treino 1 Acção 3 Acções 6 Acções 10 Acções 14 Acções 18.7% 2.8% 8.1% -1.3% -0.4% 39.0% 86.3% 76.4% 87.8% 86.8% 14.7% 6.7% 5.8% -2.5% 1.1% 45.4% 68.9% 74.6% 86.6% 86.8% Média -0.1% 6.8% 4.1% 1.4% 2.7% Desvio Padrão da 11.5% 6.2% 4.3% 3.5% 3.1% Drawdown Médio 68.3% 72.4% 76.4% 81.4% 82.8% Média Sharpe Ratio 0.09 0.08 0.03-0.14-0.04 Média Sortino Ratio 1.68 169.92 116.30 54.09 61.55 Melhor 19.8% 17.3% 10.4% 8.7% 8.0% Melhor Drawdown 39.0% 42.3% 62.4% 62.0% 62.1% Pior -19.6% -12.1% -7.1% -6.6% -3.9% Pior Drawdown 89.4% 91.8% 97.5% 92.4% 99.4% 4.2.6. Estudo de Caso E Comparação de Resultados com Diversos Fundos de Investimento Reais Neste Estudo de Caso serão comparadas as duas melhores Estratégias de Investimento que constam dos Casos de Estudo anteriores e comparados os resultados com dois Fundos de Investimento comercializados em Portugal e com a estratégia Buy & Hold. Deste modo as Estratégias de Investimento escolhidas foram a MAD, MAD, SMAC, e a SMAC, SMAC, MAD usando como activos o DAX, o FTSE e o CAC (3 maiores Índices Europeus). A Estratégia Buy & Hold foi também testada com estes activos. O ficheiro de configuração usado foi: 65

#Este é o ficheiro de configuração do Stocks program=stocks function=optimizeparameters dircotacoes=c:\cotacoes\europa\ starttraindate=1993 endtraindate=2003 starttestdate=2004 endtestdate=2009 numberofruns=50 numberofgerations=80 populationnumber=60 mutationrate=0.1 chromosome=[foram usadas dois cromossoms distintos: smac,smac,mad e mad,mad,smac ] Os resultados da estratégia Buy & Hold encontram-se na tabela seguinte: Tabela 27 - Evolução da, Risco e Classe de Risco da Estratégia Buy & Hold. Ano Risco CMVM Classe de Risco 2004 6.30% 14.87% 5 2005 21.41% 10.83% 4 2006 15.69% 16.20% 5 2007 7.67% 17.51% 5 2008-37.47% 37.52% 6 2009 18.65% 28.62% 3 Média 5.38% 20.93% 4.67 Anualizada 2.98% - - Os Fundos de Investimento escolhidos foram o BPI Europa [25], comercializado pelo Banco BPI, e o ES Acções Europa [26], comercializado pela ESAF (Espírito Santo Activos Financeiros). Ambos foram escolhidos por terem a mesma área geográfica que os activos usados no Algoritmo Genético (Europa). Os dados apresentados de seguida encontram-se no desdobrável simplificado dos respectivos Fundos. Na Tabela 28 podemos ver a rentabilidade, o Risco e a Classe de Risco do Fundo BPI Europa e na Tabela 29 podemos ver as mesmas métricas mas para o Fundo ES Acções Europa. 66

Tabela 28 Evolução da, Risco e Classe de Risco do Fundo BPI Europa. Ano Risco CMVM Classe de Risco 2004 13.22% 8.40% 3 2005 19.90% 8.11% 3 2006 24.05% 11.02% 4 2007-2.69% 16.06% 5 2008-49.20% 39.82% 6 2009 27.66% 27.50% 6 Média 5.49% 18.49% 4.50 Anualizada 1.02% - - Tabela 29 Evolução da, Risco e Classe de Risco ES Acções Europa. Ano Risco CMVM Classe de Risco 2004 - - - 2005 19.32% - 3 2006 13.45% - 4 2007 4.53% - 4 2008-42.65% - 6 2009 32.33% - 6 Média 5.40% - 4.60 Anualizada 1.44% - - Nas tabelas seguintes encontram-se os resultados das duas Estratégias optimizadas. Os resultados apresentados (e tendo em conta que foram feitas como habitualmente 50 execuções), são referentes à estratégia com Anualizada mais próxima da Média das 50 execuções. Assim, para o Cromossoma SMAC, SMAC, MAD, os parâmetros optimizados foram SMAC (187, 137), SMAC (199, 41), MAD (229, 82). Com peso 3 para a primeira estratégia, peso 1 para a 2.ª e 3.ª estratégias e peso para tomada de decisão de 2. Esta estratégia obteve uma Anualizada de 8.67% (a média foi 9.19%). 67

Tabela 30 - Evolução da, Risco e Classe de Risco do Cromossoma SMAC,SMAC, MAD. Ano Risco CMVM Classe de Risco 2004-4.97% 16.44% 5 2005 21.41% 11.35% 4 2006 10.38% 16.36% 5 2007 3.26% 18.44% 5 2008 17.74% 27.57% 6 2009 6.36% 11.04% 4 Média 9.03% 16.87% 4.83 Anualizada 8.67% - - Tabela 31 - Evolução da, Risco e Classe de Risco do Cromossoma MAD, MAD, SMAC. Ano Risco CMVM Classe de Risco 2004 6.30% 16.48% 5 2005 21.41% 11.35% 4 2006 15.69% 16.37% 5 2007 7.67% 18.10% 5 2008 9.05% 32.46% 6 2009-2.65% 9.25% 3 Média 9.58% 17.33% 4.67 Anualizada 9.32% Para o Cromossoma MAD, MAD, SMAC, os parâmetros optimizados foram MAD (193,165), MAD (187,110), SMAC (204, 37). Com peso 2 para a primeira estratégia, peso 5 para a 2.ª estratégia e peso 4 para 3.ª estratégias e peso para tomada de decisão de 1. Esta estratégia obteve uma Anualizada de 9.32% (a média foi 9.36%). Na tabela seguinte apresenta-se uma comparação entre as cinco estratégias, com a análise das diversas métricas de avaliação. Para cada métrica (linha da tabela) está assinalada a negrito qual a estratégia que obteve melhor resultado. 68

Tabela 32 - Métricas de Avaliação dos Fundos de Investimento e das estratégias optimizadas analizadas. Métrica de Avaliação Buy & Hold BPI Europa ES Acções Europa SMAC, SMAC, MAD MAD, MAD, SMAC Total (6 anos) Anualizada Média Risco CMVM Média Classe Risco 19.28% 6.27% 7.39% 64.70% 70.67% 2.98% 1.02% 1.44% 8.67% 9.32% 20.93% 18.49% - 16.87% 17.33% 4.67 4.50 4.60 4.83 4.67 Sharpe Ratio 0.10 0.08 0.08 0.64 0.82 Sortino Ratio 0.13 0.11 0.11 2.80 5.76 Como se pode ver pela Tabela 32, as estratégias optimizadas obtêm melhores resultados em todas as métricas, excepto na Média da Classe de Risco e mesmo nessa métrica os resultados entre todas as estratégias são bastante semelhantes. Podemos concluir que as estratégias optimizadas apresentam rentabilidades muito superiores aos Fundos de Investimento (cerca de dez vezes superiores) com risco equivalente. As novas estratégias apresentam também resultados superiores à estratégia Buy & Hold. Esta conclusão é também confirmada pelas Métricas que ponderam o Retorno e o Risco (Sharpe Ratio e Sortino Ratio), que apresentam valores muito superiores nas estratégias optimizadas relativamente aos Fundos de Investimento e Buy & Hold. Na Figura 27 podemos ver a evolução da rentabilidade das cinco hipóteses analisadas durante o período de Teste (2004 a 2009). Nesta figura podemos ver mais uma vez a superioridade das estratégias optimizadas, que quase não têm perdas, comparativamente aos Fundos de Investimento, que sofrem grandes perdas em 2008, e também ao Buy & Hold que apesar de tudo tem perdas inferiores aos Fundos. 69

Figura 27 - Evolução da Rentabilididade dos Fundos e estratégias analisadas no Período de Teste (2004 a 2009). 4.3. Resumo Neste Capítulo, foram primeiro descritas as métricas de avaliação que posteriormente foram usadas para avaliar os diversos Estudos de Caso. De seguida foram descritos os diversos Estudos de Caso realizados, que se centraram em variar diversos parâmetros e configurações do Algoritmo Genético (mantendo todos os outros iguais), de modo a determinar para cada parâmetro qual o melhor valor a utilizar para o problema em questão. O Estudo de Caso A, relativo à composição do Cromossoma, conclui que as melhores Estratégias a utilizar no cromossoma são a SMAC, SMAC, MAD e MAD, MAD, SMAC. No Estudo de Caso B foi analisado o impacto do número de indivíduos da população, número de gerações e taxa de mutação e foi concluído que os melhores valores para estes parâmetros são: número de indivíduos: 60, número de Gerações: 80, Taxa de Mutação: 10%. No Estudo de Caso C foi analizado o impacto da Função de Avaliação nos resultados e foi concluído que os melhores resultados são obtidos usando a, ou a ponderada com o Drawdown ( 2x DrawDown). No último Estudo de Caso, relativo à comparação entre diversos parâmetros do A.G., foram variados os activos, utilizando Índices e Acções em número variado e analisando os resultados. Desta análise foi possivel concluir que esta aplicação tem melhores resultados usando Índices em particular com 3 Índices foi onde obteve os melhores resultados. Já usando acções como activos os resultados não foram tão bons, 70

atingindo a rentabilidade média anualizada de 6.8% com 3 Acções, e rentabilidades muito inferiores com 1,6,10 e 10 Acções. Finalmente, depois de analisados os resultados dos Estudos de Caso anteriores, foram escolhidas duas configurações para comparar os seus resultados com Fundos de Investimento reais e também com o Buy & Hold ( Estudo de Caso E ). Neste Estudo de Caso conclui-se que as Estratégias de Investimento encontradas superam em larga escala as alternativas existentes no mercado, obtendo rentabilidades muito superiores (9.32% e 8.67% de rentabilidade anualizada por parte das estratégias optimizadas, vs 1.44% e 1.02% por parte dos Fundos de Investimento e 2.98% por parte do Buy & Hold). É também demonstrado que as estratégias optimizadas têm risco muito semelhantes aos Fundos, quer pelas medidas de avaliação de Risco, que têm valores semelhantes, quer por métricas que ponderam rentabilidade e risco (Sharpe e Sortino Ratio), que confirmam a superioridade das estratégias optimizadas. 71

5. Conclusões Neste trabalho foi desenvolvida uma aplicação de optimização de Estratégias de Investimento no Mercado de Capitais usando Algoritmos Genéticos. As estratégias usadas basearam-se em Indicadores Técnicos, consistindo o papel dos A.G. em optimizar os parâmetros usados pelos Indicadores Técnicos e também, caso o cromossoma possuísse vários Indicadores,em optimizar o peso de cada Indicador na decisão final. Esta aplicação apresenta uma arquitectura modular que permite com facilidade alterar a funcionalidade de algumas das suas componentes. Estas características tornaram mais fácil a realização de muitos dos Estudos de Caso presentes no Capítulo de Resultados. Adicionalmente, também é possível alterar algumas das características da aplicação através do ficheiro de configuração, onde é possível definir os diversos parâmetros associados ao Algoritmo Genético (número de gerações, número de indivíduos da população, taxa de mutação). É também possível escolher as estratégias que farão parte do cromossoma a ser optimizado e definir quais os activos a analisar, especificando a directoria onde se encontram os ficheiros com os dados, o que permite a análise a qualquer activo ou conjunto de activos. Finalmente, o utilizador pode também escolher quais os períodos usados para treino e teste das estratégias. Quanto ao formato de saída da aplicação, foi escolhido usar uma abordagem mais simples, usando um formado de texto (.csv - comma separated values) e deixando para o utilizador o tratamento estatístico e gráfico dos dados, usando uma folha de cálculo. Em relação ao resultado da aplicação, foi possível obter rentabilidades superiores às do Mercado, usando como activos Índices de Acções. Estas rentabilidades foram não só superiores às do Mercado (Buy and Hold), mas também a Fundos de Investimento comercializados por diversas entidades bancárias. Deste modo podemos concluir que a utilização de Algoritmos Genéticos para optimizar Estratégias de Investimento é uma alternativa viável e que pode obter resultados melhores do que Estratégias concebidas por humanos. Devido às inúmeras abordagens usadas actualmente no Mercado de Capitais, à grande diversidade de activos nesse mesmo mercado e à constante mudança de comportamentos de negociação, este trabalho deixa em aberto diversas possibilidades por explorar, que serão descritas na secção seguinte. 73

5.1. Trabalho Futuro Tendo em conta as opções tomadas durante a realização deste trabalho e os constrangimentos inerentes a uma Dissertação de Mestrado ficaram ainda por explorar as seguintes possibilidades: Incluir no Cromossoma diferentes Estratégias de Investimento com base em Indicadores Técnicos. Existem centenas, senão milhares de Indicadores Técnicos que são usados pelos investidores: estes Indicadores devem ser testados de maneira a identificar estratégias diferenciadas. Aplicar a optimização a outros activos: existem outros activos financeiros que foram pouco explorados ou que não foram analisados. As acções obtiveram resultados fracos, e os Cambios e Matérias-Primas não foram analisados. Testar Estratégias para diferentes prazos de investimento. Neste trabalho foram usados maioritariamente Indicadores com base em Médias Móveis (indicadores de tendência) que, pela sua natureza, funcionam melhor no Médio/Longo Prazo. Ficando assim por explorar estratégias de Curto Prazo. Aplicar outras estratégias de investimento para além de Indicadores Técnicos: existem outras estratégias muito usadas pelos investidores que não foram testadas, em particular os Padrões Gráficos e a Análise Fundamental. 74

6. Bibliografia [1] W. Leigh, R. Purvis and J. M. Ragusa., Forecasting the NYSE composite index with technical analysis, pattern recognizer, neural network, and genetic algorithm: a case study in romantic decision support, Decision Support Systems, vol. 32, pp. 361 377, 2002. [2] T. Kimoto and K. Asakawa, Stock Market Prediction System with Modular Neural Networks, IJCNN International Joint Conference on Neural Networks, vol. 1, pp. 1-6, 1990. [3] Michalewicz, Genetic Algorithms + Data Structures = Evolution Programs, Springer-Verlag, 2nd edition, 1994 [4] J.H. Wang and S.M. Chen, Evolutionary Stock Trading Decision Support System Using Sliding Window, IEEE - World Congress on Computational Intelligence, vol. 4, pp. 253-258, 1998. [5] F. A. Badawy, H. Y. Abdelazim, Hazem Y. Abdelazim, M. G. Darwish, Genetic Algorithms for Predicting the Egyptian Stock Market, Enabling Technologies for the New Knowledge Society: ITI 3rd International Conference on, pp. 109-122, 2005. [6] P. Fernández-Blanco, D. Bodas-Sagi, F. Soltero and J.I.Hidalgo, Technical Market Indicators Optimization using Evolutionary Algorithms, Proceedings of the 2008 GECCO conference companion on Genetic and evolutionary computation, pp. 1851 1858, 2008. [7] Bodas-Sagi, D. J., Fernández, P., Hidalgo, J. I., Soltero, F. J., and Risco-Martín, J. L., Multiobjective optimization of technical market indicators. Proceedings of the GECCO '09 Annual Conference Companion on Genetic and Evolutionary Computation Conference, Montreal, Canada, 2009, 1999-2004. [8] Gorgulho, A., Neves, R. and Horta N., et al., Using GAs to Balance Technical Indicators on StockPicking for Financial Portfolio Composition. Proceedings of the 2009 GECCO conference companion on Genetic and evolutionary computation. Montreal, Canada, pp. 2041-2046, 2009 [9] C.J. Huang, D.X- Yang, Y.T. Chuang, Application of wrapper approach and composite classifier to the stock trend prediction, Expert Systems with Applications vol. 34, pp. 2870 2878, 2007. [10] D. E. Koulouriotis, I. E. Diakouakis and D. M. Emiris, A Fuzzy Cognitive Mapbased Stock Market Model Syntesis, analysys and Experimental Results, Fuzzy Systems, 2001. The 10th IEEE International Conference on, vol. 1, pp. 465-468, 2001. [11] B. Wuthrich,V. Cho, S. Leung, D. Permunetilleke, K. Sankaran, J. Zhang and W. Lam, Daily Stock Market Forecast from Textual Web Data, 1998 IEEE International Conference on Systems, Man, and Cybernetics, vol. 3, pp. 2720-2725, 1998. 75

[12] Canegrati, E., A Non-Random Walk down Canary Wharf, MPRA Paper, University Library of Munich, 2008. [13] Brock, William & Lakonishok, Josef & LeBaron, Blake,. Simple Technical Trading Rules and the Stochastic Properties of Stock Returns. Journal of Finance, American Finance Association, vol. 47(5), pp 1731-64, 1992. [14] Ellis, Craig A. & Parbery, Simon A., Is smarter better? A comparison of adaptative and simple moving average trading strategies. Research in International Business and Finance, Elsevier, vol. 19(3), pp. 399-411, 2005. [15] W. Leigh, C. J. Frohlich, S. Hornik, R. L. Purvis, and T. L. Roberts, Trading With a Stock Chart Heuristic, IEEE Transactions on systems, man, and cybernetics Part A: Systems and Humans, vol. 38, no. 1, january 2008. [16] P. Parracho, Dissertação de Mestrado - PATTERN - Identificações de Padrões em Mercados Bolsistas, IST, 2010. [17] K. V. Nesbitt and S. Barrass, Finding Trading Patterns in Stock Market Data, IEEE Computer Graphics and Applications, vol. 24, issue 5, pp- 45 55, 2004. [18] Kaufman, P. J., New Trading Systems And Methods, John Wiley & Sons Inc., San Francisco, CA. 2005 [19] E. F. Fama, Market efficiency, long-term returns, and behavioral Finance, Journal of Financial Economics, Elsevier, vol. 49, pages 283-306, 1998. [20] Clive W.J. Granger, Forecasting stock market prices: Lessons for forecasters, International Journal of Forecasting, Vol. 8, Issue 1, pp. 3-13, 1992. [21] Fernando Fernández-Rodríguez & Christian González-Martel & Simón Sosvilla- Rivero, 2005. " On the profitability of technical trading rules based on artificial neural networks: Evidence from the Madrid stock market", Economics Letters, vol. 69, pp. 89 94, 2000. [22] W. Leigh, R. Purvis, Implementation and validation of an opportunistic stock market timing heuristic: One-day share volume spike as buy signal., Expert Systems with Applications, vol. 35, pp. 1628 1637, 2008. [23] T. C. Mills, Technical Analysis and the London Stock Exchange: Testing Trading Rules Using the FT30, International Journal of Finance & Economics, vol. 2, pp. 319-331, 1997. [24] Regulamento da CMVM n.º 8/2002 - Fundos de Investimento Imobiliário, Diário da República - II Série - 18/06/2002. [25] Prospecto Simplificado Fundo de Investimento BPI Europa, Banco BPI, Agosto 2010. [26] Ficha de Produto Fundo de Investimento Espírito Santo Acções Europa, ESAF Espírito Santo Fundos de Investimento Mobiliário, SA, Agosto 2010. 76

Appendix A. Manual de Utilização Para executar a aplicação, basta aceder à directoria bin e executar o programa Stocks.exe seguido do ficheiro de configuração a usar. Um exemplo pode ser visto na Figura 1. Figura 1 Exemplo de execução da aplicação A aplicação tem vários parâmetros que podem ser alterados no ficheiro de configuração. O ficheiro de configuração contém em cada linha o nome do parâmetro, seguido do sinal igual, =, seguido do valor do parâmetro. Exemplo de um ficheiro de configuração: #Este é o ficheiro de configuração do Stocks program=stocks function=optimizeparameters dircotacoes=c:\cotacoes\paper\ starttraindate=1993 endtraindate=2003 starttestdate=2004 endtestdate=2009 numberofruns=50 numberofgerations=80 populationnumber=60 mutationrate=0.1 chromosome=smac,mad,rsitime,rsilevel 77

De seguida é descrito em pormenor cada um dos parâmetros e quais os valores possíveis para esse parâmetro: program (Tipo: string): Este parâmetro representa a aplicação a executar e o seu único valor é stocks. function (Tipo: string): Este parâmetro representa a função a ser executada, que pode ser optimizeparameters, para optimizar os parâmetros do cromossoma, ou download, para executar o download das cotações do Índice Dow Jones e S&P 500. Caso o valor escolhido para este parâmetro seja download, não será necessário mais nenhum parâmetro. Caso se tenha optado por optimizeparameters, podem ser ainda usados os seguintes parâmetros: dircotacoes (Tipo: string): Este parâmetro é a directoria onde estão os activos a analisar. starttraindate (Tipo: inteiro): Ano onde começa o período de treino. endtraindate (Tipo: inteiro): Ano onde termina o período de treino. starttestdate (Tipo: inteiro): Ano onde começa o período de teste. endtestdate (Tipo: inteiro): Ano onde termina o período de teste. numberofruns (Tipo: inteiro): Número de Execuções do Algoritmo Genético. numberofgerations (Tipo inteiro): Número de Gerações ao fim do qual o A.G. termina. populationnumber (Tipo: inteiro): Número de indivíduos do Algoritmo Genético. mutationrate (Tipo: float): Taxa de Mutação do Algoritmo Genético por gene. chromosome (Tipo: lista de strings): Este parâmetro representa as várias estratégias a incluir no cromossoma, e é composto por strings (representando o nome da estratégia), separadas por vírgulas. Depois de executada a aplicação, e caso tenha sido escolhida a função de optimizeparameters, é gerado um ficheiro chamado histogram.csv com o resultado de todas as execuções do Algoritmo Genético, uma por cada linha. 78

Essa linha contém diversas métricas, contendo nas colunas ímpares a descrição da métrica e nas colunas pares o valor correspondente. Um exemplo desse ficheiro encontra-se na Figura 2. Figura 2 Exemplo de ficheiro de output da aplicação. 79