stocks: computação inteligente aplicada à gestão de...

17
(Versão 1.9) 1 STOCKS: Computação Inteligente aplicada à Gestão de Acções Adriano Rodrigo Caetano Ribeiro Alves Simões Orientador: Prof. Nuno Horta, Co-orientador: Prof. Rui Neves Departamento de Engenharia Informática Instituto Superior Técnico [email protected] Resumo. O objectivo deste trabalho é aplicar técnicas de computação evolutiva ao investimento em activos transaccionados nas Bolsa de Valores, como por exemplo, acções, Índices de Acções ou Matérias-Primas. A aplicação a desenvolver deve ter como dados de entrada, respectivamente, o preço, o volume do activo e inúmeros Indicadores Técnicos e Fundamentais associados aos activos considerados, bem como novos indicadores que possam ser propostos durante o trabalho. Esta aplicação deverá para cada activo procurar uma ou mais estratégias de investimento que maximizem os objectivos a atingir, que poderão ser rentabilidade, redução de risco, ou outra métrica usada neste tipo de investimentos. 1 - Introdução A computação evolutiva tem vindo a ser cada vez mais utilizada para resolver problemas em que os métodos tradicionais de computação não são capazes (por limitações de processamento/armazenamento), ou as soluções encontradas por esses métodos ficam muito atrás das decisões tomadas por humanos. Isto deve-se ao facto, de em diversas áreas do conhecimento, os seres humanos terem uma performance muito superior à que qualquer máquina pode atingir hoje em dia. Estas áreas são mais vastas do que à primeira vista se possa pensar, o ser humano não só tem uma capacidade superior às máquinas em áreas que há muito são reconhecidas como por exemplo: raciocínio lógico, criatividade, aprendizagem. Mas também noutras áreas que à partida se poderia considerar mais aptas para as máquinas, como a visão, reconhecimento de padrões, abstracção, construção e manipulação de modelos, inferência, adaptação ao meio envolvente, entre outros. Deste modo pretende-se estudar diversas técnicas ligadas à computação evolutiva que possibilitem a um investidor a obter rentabilidades acima dá média nos Mercados de Capitais, mais concretamente na transacção de acções de empresas nas diversas Bolsas Mundiais. Este sistema deverá apenas analisar uma ou mais acções e emitir uma previsão sobre se o investidor deve comprar ou vender cada acção, e uma avaliação da “certeza” dessa previsão (por exemplo através de uma percentagem). Deste modo estão excluídas muitas outras decisões a ter em conta quando se investe no mercado de capitais, como estratégias de gestão de capital (“money management”), estratégias de diversificação e controlo de risco, e composição e actualização da carteira de acções (“portfolio management”). Finalmente, o objectivo deste trabalho não é fazer um sistema totalmente automático de trading, mas sim um Sistema de Apoio à Decisão que ajude o investidor a tomar decisões. Assim, é pretendido optimizar o binómio homem-máquina, de modo a que o computador execute as tarefas que faz melhor, como tratamento de grande quantidade de dados, e execução de tarefas repetitivas. E o investidor se concentre no que sabe fazer melhor, tomar decisões complexas. 1.1. Estratégias de Investimento Usadas na Bolsa Existem essencialmente dois grandes tipos de análises usadas pelos vários intervenientes no Mercado de Capitais, a Analisa Técnica e Análise Fundamental.

Upload: votram

Post on 15-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

(Versão 1.9) 1

STOCKS: Computação Inteligente aplicada à Gestão de Acções

Adriano Rodrigo Caetano Ribeiro Alves Simões

Orientador: Prof. Nuno Horta, Co-orientador: Prof. Rui Neves Departamento de Engenharia Informática

Instituto Superior Técnico [email protected]

Resumo. O objectivo deste trabalho é aplicar técnicas de computação evolutiva ao investimento em activos transaccionados nas Bolsa de Valores, como por exemplo, acções, Índices de Acções ou Matérias-Primas. A aplicação a desenvolver deve ter como dados de entrada, respectivamente, o preço, o volume do activo e inúmeros Indicadores Técnicos e Fundamentais associados aos activos considerados, bem como novos indicadores que possam ser propostos durante o trabalho. Esta aplicação deverá para cada activo procurar uma ou mais estratégias de investimento que maximizem os objectivos a atingir, que poderão ser rentabilidade, redução de risco, ou outra métrica usada neste tipo de investimentos.

1 - Introdução

A computação evolutiva tem vindo a ser cada vez mais utilizada para resolver problemas em que os métodos tradicionais de computação não são capazes (por limitações de processamento/armazenamento), ou as soluções encontradas por esses métodos ficam muito atrás das decisões tomadas por humanos.

Isto deve-se ao facto, de em diversas áreas do conhecimento, os seres humanos terem uma performance muito superior à que qualquer máquina pode atingir hoje em dia.

Estas áreas são mais vastas do que à primeira vista se possa pensar, o ser humano não só tem uma capacidade superior às máquinas em áreas que há muito são reconhecidas como por exemplo: raciocínio lógico, criatividade, aprendizagem. Mas também noutras áreas que à partida se poderia considerar mais aptas para as máquinas, como a visão, reconhecimento de padrões, abstracção, construção e manipulação de modelos, inferência, adaptação ao meio envolvente, entre outros.

Deste modo pretende-se estudar diversas técnicas ligadas à computação evolutiva que possibilitem a um investidor a obter rentabilidades acima dá média nos Mercados de Capitais, mais concretamente na transacção de acções de empresas nas diversas Bolsas Mundiais. Este sistema deverá apenas analisar uma ou mais acções e emitir uma previsão sobre se o investidor deve comprar ou vender cada acção, e uma avaliação da “certeza” dessa previsão (por exemplo através de uma percentagem). Deste modo estão excluídas muitas outras decisões a ter em conta quando se investe no mercado de capitais, como estratégias de gestão de capital (“money management”), estratégias de diversificação e controlo de risco, e composição e actualização da carteira de acções (“portfolio management”).

Finalmente, o objectivo deste trabalho não é fazer um sistema totalmente automático de trading, mas sim um Sistema de Apoio à Decisão que ajude o investidor a tomar decisões. Assim, é pretendido optimizar o binómio homem-máquina, de modo a que o computador execute as tarefas que faz melhor, como tratamento de grande quantidade de dados, e execução de tarefas repetitivas. E o investidor se concentre no que sabe fazer melhor, tomar decisões complexas.

1.1. Estratégias de Investimento Usadas na Bolsa

Existem essencialmente dois grandes tipos de análises usadas pelos vários intervenientes no Mercado de Capitais, a Analisa Técnica e Análise Fundamental.

2

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.

1.1.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 1. 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.

Tabela 1 – Rácios de Análise Fundamental

Indicador Modo de Calculo Comentário

PER -Price Earning Ratio Lucros Actuais

Valor da Empresa

N.º de anos até investidor recuperar o seu investimento na empresa. Quanto menor o PER, melhor.

DY – Dividend Yield (%)

Dividendo Distribuído

Cotação da Acção

Percentagem do dividendo distribuído, em relação ao valor da acção. Quanto maior o DY, melhor.

PBV – Price Book Value Capitalização Bolsista

Activo – Passivo

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.)

EPS – Earning Per Share Lucro

Número de Acções

O que deverá ser tido em conta é o aumento deste indicador ao longo do tempo, sinal que a empresa está a gerar cada vez mais lucros.

PCF – Price Cash-Flow Capitalização Bolsista

Cash-Flow

Mede a capacidade da empresa gerar dinheiro. Quanto menor o PCF, melhor.

1.1.2. Análise Técnica A Análise Técnica 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). E que esses dois factores são o elemento mais importante na evolução do preço de um activo. Deste modo a Analise Técnica propõe diversas estratégias de investimento baseado somente nestes dois dados: Cotação e Volume.

Estas estratégias podem ser dívidas em dois grupos:

• Indicadores Técnicos.

• Padrões Gráficos e linhas de tendência, suporte e resistência.

3

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 das 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 Moveis Simples (Moving Average) ou Exponenciais (Exponential Moving Average), ROC (Rate of Change), Bandas de Bollinger, entre outras.

Tabela 2 – Indicadores de Análise Técnica

Indicador Método de Calculo 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 os 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 Strength Index

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/Divergence

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.

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 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 obliquas 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.

4

Em [1] é utilizado o padrão Bullish Flag (Bandeira Bull1) para prever o valor das cotações 20 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 1). Este padrão tem peso 1 nas quadriculas que representam a figura, -1 nas quadriculas “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 Flag1.

Figura 1 - 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 e 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 à 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.

1.1.3. Análise Técnica vs Análise Fundamental Entre a Análise Técnica e a Análise Fundamental, optou-se por escolher principalmente a Analise

Técnica (embora também possa ser usada alguns aspectos da Análise Fundamental) para desenvolver o trabalho. Por diversos motivos:

• 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).

• 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.

1 Bull – de Bull Market, designa um período em que as cotações se encontram em tendência claramente ascendente.

5

1.2. Hipótese 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 [2] ,

teoria ainda defendida por muitos dos economistas. Que 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 inicio do período em análise, e manter-se sempre com a acção. Esta estratégia parte do principio 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 [1],[3],[4]-[8],[12],[13], e de instrumentos utilizados pelos Analistas Técnicos, que mostram ter rentabilidades muito superiores ao mercado, de uma forma consistente [5][6].

1.3. Objectivos do Trabalho

O objectivo deste trabalho é estudar diversas técnicas ligadas à computação evolutiva que possibilitem a um investidor a obter rentabilidades acima dá média nos Mercados de Capitais. O sistema deverá analisar cada acção individualmente, juntamente com uma série de indicadores e outras informações sobre a empresa. E com essa informação descobrir uma estratégia que permita emitir uma previsão sobre se o investidor deve comprar ou vender essa acção. O utilizador da aplicação deverá poder escolher que parâmetros a aplicação deverá ou não optimizar, bem como colocar restrições aos parâmetros, poderá também escolher o nível de risco ou qual a metodologia de avaliação das estratégias (rentabilidade, percentagem de negócios acertados, etc…). Para ajudar à escolha do utilizador, deverão ser mostradas informações relativamente ao desempenho da estratégia no passado. Adicionalmente a aplicação poderá servir também como ferramenta de Análise Técnica permitindo ao utilizador ver o gráfico da acção e de vários indicadores.

2 - Trabalho Relacionado

Neste capítulo será apresentado o Estado da Arte das diversas técnicas de optimização usadas para definir estratégias de investimento de forma automática (sub-capítulo 2.1), e de seguida serão apresentadas as principiais aplicações comerciais de Análise Técnica utilizadas pelos investidores (sub-capítulo 2.3).

2.1. Técnicas de Optimização

O objectivo deste trabalho é conjugar as estratégias de investimento referidas anteriormente, com técnicas usadas na área de soft computing, como Redes Neuronais, Computação Evolutiva, Clustering, entre outras. Estas abordagens permitem antes de mais testar se as estratégias são efectivas (isto é, melhores que uma estratégia aleatória), e principalmente optimizar as estratégias já descritas ou descobrir novas estratégias a partir das já existentes.

De seguida apresenta-se as principais abordagens encontradas em publicações:

• Redes Neuronais • Algoritmos Genéticos / Computação Evolutiva • Análise Qualitativa / Fundamental • Outras (Segmentação, Clustering, Machine Learning, etc..)

6

Redes Neuronais: As Rede Neuronais [4] 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.

A desvantagem é que estas relações não podem ser exteriorizadas de uma maneira compreensível por um ser humano, o que leva ao modelo criado não poder 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 das redes os processarem, ou para construir sistemas em cadeia, são exemplos disso [7], e [8].

Figura 2 – 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 2). 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.º de saídas do problema. O n.º de elementos da camada intermédia é variável e pode varia tipicamente 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 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.

Algoritmos Genéticos: Os algoritmos genéticos fazem parte da computação evolutiva, e são uma técnica usada em problemas de

optimização e busca [9][10][11]. Esta técnica parte do princípio que os processos de evolução de 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.

Os algoritmos genéticos são utilizados para optimizar e descobrir novas estratégias. O seu funcionamento tenta imitar a maneira da natureza melhora e selecciona as espécies através da “Teoria da evolução das espécies” e da “selecção natural”. Deste modo, para criar um algoritmo genético primeiro é

7

necessário 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.

A população inicial pode ser aleatória, ou pode incluir as melhores estratégias já conhecidas.

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 por exemplo dados 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 exemplos seleccionar que dados devem ser usados como entrada para uma rede neuronal [7].

Análise Qualitativa / Fundamental: Nesta categoria encontram-se todas as metodologias que utilizam mais dados do que apenas o preço e o

volume. Esses dados podem ser sobre a economia, sobre a indústria da empresa, a própria empresa, e outros dados socio-económicos [12]. 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 [13] .

Devido a muitos destes dados serem qualitativos (posicionamento da empresa na industria, qualidade da gestão, questões legais, estado da economia, etc.) podem ser empregues estratégias para tratar estes dados, como fuzzy-logic [12], entre outras. Ou podem ser convertidos para dados quantitativos e depois usadas quaisquer uma das estratégias anteriores [8] [13].

A desvantagem desta abordagem é que necessita de um grande trabalho de especialistas, para analisar 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 à muito tempo incorporados nas cotações.

Outros: 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 [14] (dentro destes existem vários algoritmos como: árvores de decisão, Support Vector Machines [14], K-Nearest Neighbor [14]), também diversos ramos da estatística como a regressão, séries temporais, filtros, etc.

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 quaisquer tipos de resultados.

Adicionalmente estas técnicas podem ser usadas em conjugação, quer através de sistemas de votos, em que vários algoritmos são corridos em paralelo, e no final é tomada uma acção conforme os resultados dos diversos algoritmos. Ou 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. Resumo das soluções existentes:

Na Tabela 3 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. 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

8

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 trabalho foi os Algoritmos Genéticos. Alguns dos resultados da tabela são demasiado optimistas e quase impossíveis de concretizar, em

particular a Abordagem [10] e [12] com 100% e 147% de Rentabilidade Anual, isto deve-se ao curto período em que a Análise foi efectuada, respectivamente 2 anos e 1 ano. E também aos Índices usados serem de Mercados emergentes (Egipto e Grécia).

(Versão 1.9) 9

Tabela 3 – Soluções Analisadas

Abordagem Data Publi. Heurística Avaliação de Resultados Dados Usados Activos Usados Período Rentabilidade

[1] 2008 Bull-Flag Comparação com Mercado Cotação e Volume Índice: NYSEC 1966 - 2001 4.59% por Trade

[4] 2000 Redes Neuronais Comparação com Mercado Cotação Madrid Stock Market 1991 - 1997 36% ao Ano

[5] 2008 Volume Spike Comparação com Mercado Cotação e Volume Índices: Dow Jones and S&P500 1934 - 2005 --

[6] 1997 Médias Moveis Comparação com Mercado e R²

Cotação Índice: FT30 (Reino Unido) 1975 - 1994 16.0% ao Ano

[7] 2002 Bull-Flag + Algor. Genéticos +

Redes Neuronais Comparação com Mercado e

T-Test Cotação e Volume Índice: NYSEC 1981 - 1996 3.02% por

Trade

[8] 1990 Redes Neuronais Comparação com Mercado

Cotação e Volume + Análise

Fundamental e Económica/ Politica

Índice: TOPIX (Japão) 1987 - 1990 25% ao Ano.

[9] 1998 Algor. Genéticos Comparação com Mercado Cotação Índice: TSEWSI (Taiwan) 1986 - 1996 40,52% ao Ano

[10] 2005 Algor. Genéticos Comparação com Mercado e Sharpe Ratio

Cotação Acções do Egipto 2003 - 2005 100% ao Ano

[11] 2008 Algor. Genéticos Comparação com Mercado Cotação Índice: Dow Jones 2000 - 2005 50% da

Rentabilidade

Máxima2

[12] 2001 Fuzzy Cognitive Maps Comparação com Mercado

Cotação e Volume + Análise

Fundamental e Económica/ Politica

Acções de Atenas Stock Exchange

1997 - 1998 147% ao Ano

[13] 1998 Analise de palavras-chaves em noticias Comparação com Mercado Cotação + Noticias

Índices: Dow Jones (EUA), Nikkei (Japão) FTSE (Reino

Unido), HSI (Hong Kong), STI (Singapura)

1997 - 1998 20.8% ao Ano

[14] 2007 “Wrapper Approach” (Classificação)

X², Information Gain, e com outros Modelos de

Classificação Cotação Indices: Korean and Taiwan

Stock Markets 1990 - 1991 --

2 A Rentabilidade 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.

(Versão 1.9) 10

2.3. Aplicações Existentes

As aplicações existentes hoje em dia podem-se dividir em 2 grandes grupos:

• Aplicações das correctoras/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 da cotação e de indicadores predefinidos e a 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 3).

Figura 3 - Aplicação Best Trading Pro /

• Aplicações de suporte à decisão [15], 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 correctora, não possuem a hipótese de se realizarem transacções na plataforma. (Exemplos deste tipo de aplicações: Pro Real Time (Figura 4), TradeStation, MetaStock).

Figura 4 – Aplicação Pro Real Time

11

De destacar que em todas estas aplicações, a analise 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), são muito pouco desenvolvidas 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. 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, já as linhas de suporte e resistência são um pouco mais credíveis). De qualquer modo, apenas o Best Trading Pro/Go Bulling 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.

Tabela 4 – 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

Best Trading Pro

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 ---

Sim, dispõe de uma

linguagem de programação

Sim Não Market + Stop

Sim: linhas, texto e

Indicadores

OptimalTrader Redes

Neuronais Não Sim Não Não

Sim: linhas, texto e

Indicadores

3 - Arquitectura do Sistema

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, quer nas estratégias de investimento, com vários indicadores e várias 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 necessidade de alterações dos outros módulos.

Na Figura 5 encontra-se esquematizada a Arquitectura do Sistema, com os diversos módulos e respectivas ligações.

12

Figura 5 - Arquitectura do Sistema

De seguida é descrito, em mais detalhe, cada um dos módulos: 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 aos Algoritmos de Optimização terem 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 poder 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).

Quanto ao Módulo dos Dados sobre a Empresa, 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. Esses dados 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

13

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 grande 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 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.

Na Figura 6 pode-se ver em mais pormenor, o módulo do Algoritmo Genético.

Figura 6 - Detalhe do módulo do Algoritmo Genético

Este módulo é composto pela implementação do Algoritmo Genético, pela função de avaliação, é através

desta função que são escolhidos os melhores indivíduos para as gerações seguintes, e são descartados os piores. Este módulo contém também as várias operações do Algoritmo Genético: Para cada uma destas operações existem na literatura diversas possibilidades de implementação, deverão ser escolhidas e testadas as implementações mais adequadas a este domínio.

Quanto ao Cromossoma, este será constituído pelos parâmetros de um ou mais Indicadores e respectivo peso para cada um dos Indicadores. Deste modo, cada indivíduo representa uma estratégia de investimento que contem para cada Indicador os parâmetros optimizados em que se deve comprar ou vender determinada acção, e se houver mais do que um Indicador, o peso que cada Indicador tem na decisão final. O Cromossoma deverá poder ser mudados pelo utilizador sem necessidade de alteração do código, devendo para isso ser desenhada uma interface que permita ao utilizador escolher que Indicadores e respectivos parâmetros pretende optimizar.

3.1. Implementação Actual

Para a presente entrega já se encontram implementados os seguintes módulos: Nos módulos de Interface apenas os que utilizam ficheiros se encontram implementados. No módulo de

Entrada é possível especificar quais 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 encontra-se

14

implementado a rentabilidade passada da estratégia, e os parâmetros da estratégia. O Módulo de Dados Sobre a Empresa encontra-se praticamente implementado na totalidade, já está implementado o download automático e respectivo armazenamento da cotação das empresas, e também o cálculo de diversos Indicadores Técnicos (RSI, Médias Móveis, OBV, entre outros). Quanto ao módulo do Algoritmo Genético em si e respectivas operações (Mutação, Selecção e Cruzamento), já existe uma implementação, onde a função avaliação é a rentabilidade. Este Algoritmo Genético foi testado com diversos Cromossomas todos tendo por base o Indicador Relative Strength Índex.

4 - Metodologia da Avaliação da Soluçã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 computação evolutiva, e também a serem comparadas as diversas estratégias geradas pelo sistema.

Deste modo um dos parâmetros mais importantes e que pode ser compreendido por qualquer investidor, por mais baixo que seja o seu conhecimento sobre o sistema financeiro, é a Rentabilidade Anual. Este parâmetro é simplesmente o ganho (lucro) Anual Médio resultante da aplicação da estratégia a analisar.

A principal falha desta medida de avaliação é não ter em conta o risco associado à Estratégia. Um pequeno exemplo em como o risco é um elemento fulcral da Análise de Investimentos: Se tentarmos comparar um Deposito a Prazo de 3% num Banco relativamente seguro (ficando por definir o que é um banco relativamente seguro nos tempos que correm), e um Fundo de Investimento de um país emergente com uma Rentabilidade Anual de 3.5%. Se o critério de comparação for exclusivamente a rentabilidade, o investidor escolheria o Fundo de Investimento, já que este oferece uma Rentabilidade Maior, mas será que está é 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 é:

SR = Rentabilidade Estratégia Escolhida – R0

Desvio Padrão da Estratégia Escolhida

Sendo R0 a Rentabilidade associada a um investimento de risco zero, este valor é normalmente o da rentabilidade de uma divida de curto prazo de um pais economicamente estável, na maior parte das vezes é usada a T-Bill (Divida norte-americana).

O Sharpe Ratio é assim o rácio entre a rentabilidade e o risco de um investimento. Sendo 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.

Poderão também ser usadas outras medidas que possam ser consideradas mais interessantes, ou que foquem determinadas perspectivas de avaliação do risco, e da relação entre a rentabilidade e o risco. Como por exemplo a Sortino Ratio, que é 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 modulo 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 desta ser claramente vencedora (já que põe apenas uma pequena parte de capital em risco). Já usando o Sortino Ratio, e considerando apenas 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.

De modo a melhor poderem ser clarificados estes conceitos é de seguida apresentado um exemplo onde se comparam duas estratégias de investimento juntamente com o Buy and Hold, tendo por base de

15

comparação a Rentabilidade e o Sharpe Ratio. Estas estratégias não foram geradas pelo Algoritmo Genético, são estratégias de investimento que podem ser encontradas na literatura de Análise Técnica [16].

A primeira estratégia, designada MAC (Moving Average Crossing) consiste em utilizar duas Médias Móveis, uma de curto prazo, 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.

A segunda estratégia, chamada de MAD (Moving Average Derivate) consiste na aplicação da noção de derivada (ou declive) a uma Média Móvel. Esta estratégia consiste em comparar 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.

Estas duas estratégias foram testadas para um período de investimento de longo prazo e por isso foram escolhidos os valores mais comuns para este horizonte temporal nos parâmetros das estratégias: 200 e 50 dias. Assim, a estratégia MAC vai utilizar 200 dias para a Média de longo prazo, e 50 para a de curto prazo. Enquanto que a estratégia MAD usará uma Média Móvel de 200 dias, e calculará o declive com 50 dias de diferença. AS estratégias foram testadas no período de 1 de Janeiro de 1990 a 31 de Dezembro de 2008 em 4 dos mais importantes Índices mundiais: S&P 500 (EUA), FTSE 100 (Inglaterra), DAX 30 (Alemanha), NIKKEI 225 (Japão).

As rentabilidades obtidas encontram-se na Tabela 5.

Tabela 5 - Rentabilidade das Estratégias MAC, MAD e Buy & Hold.

S&P 500 FTSE 100 DAX 30 NIKKEI 225 Rentabilidade Média

Buy and Hold 151 82 232 -77 97

MAC (50; 200) 306 8 260 118 173

MAD (50; 200) 538 112 725 91 367

Mostrando que as estratégias com base na Análise Técnica conseguem bater a rentabilidade da estratégia

Buy and Hold nos últimos 18 anos em todos os índices (excepto a estratégia MAC no FTSE 100). Adicionalmente e para comparar se este acréscimo de Rentabilidade se deve a um maior risco assumido

pelas estratégias, ou de facto a melhores estratégias de investimento, é apresentado os resultados do Sharpe Ratio na Tabela 6. Para calcular o Desvio Padrão e a Rentabilidade das estratégias e do Buy & Hold, foram considerados as rentabilidades anuais dos 18 anos. O valor usado para a Rentabilidade com Risco Zero foi a 10 Year Note, divida do Estado Norte-Americano a 10 anos, que entre 1990 e 2008 teve um valor médio de 6.5%

Tabela 6 - Sharpe Ratio das Estratégias MAC, MAD e Buy & Hold

S&P 500 FTSE 100 DAX 30 NIKKEI 225 Média

Buy and Hold -0.032 -0.180 0.071 -0.554 -0.174

MAC(50; 200) 0.099 -0.365 0.083 -0.141 -0.081

MAD (50; 200) 0.301 -0.166 0.331 -0.212 0.064

Como se pode ver, mais uma vez todas as estratégias baseadas na Análise Técnica (excepto a MAC para

o FTSE 100), obtiveram melhor rácio retorno/rentabilidade que o Buy & Hold. Isto quer dizer que a rentabilidade adicional destas estratégias em relação ao Buy & Hold não é conseguida à custa de correr mais riscos, mas sim de uma estratégia de investimento mais inteligente, e portanto com menos risco.

Os valores acima ou abaixo de zero indicam a comparação com a Rentabilidade de Risco Zero, isto é, as estratégias com valores negativos têm menor rentabilidade que a estratégia de comprar Títulos do Tesouro Norte-Americano com prazo de 10 anos.

16

Figura 7 - Evolução do capital das várias estratégias

Como se pode ver na Figura 7, que mostra a evolução do capital investido ao longo do tempo, as perdas ocorridas nas estratégias com base na Análise Técnica são muito menores que as perdas sofridas pelo Buy and Hold.

5 - Conclusões

Neste trabalho foram estudadas e discutidas diversas técnicas de optimização na área de soft-computing, aplicadas ao investimento no mercado de capitais. De todas as técnicas estudadas a que apresenta maiores vantagens para este tipo de problema são os Algoritmos Genéticos. Esta escolha deve-se ao factor de se encontrarem bastantes publicações com bons resultados com esta técnica e também porque os modelos/estratégias geradas podem ser examinados e manipulados por um especialista.

Foi também desenhada a Arquitectura da aplicação a desenvolver, cuja principal característica é a modularidade, devido à hipótese de poderem surgir diversas mudanças de requisitos da aplicação.

Quanto à implementação já foi realizado o módulo mais importante, o do Algoritmo Genético e já foram feitos também alguns testes com estratégias muito simples. Também já foi implementada a Interface em modo de texto e o download e armazenamento de cotações. Ficando assim para a 2ª parte da Dissertação a exploração mais aprofundada de diversas estratégias e a implementação da Interface Gráfica.

6 - Referencias:

[1] 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

[2] E. F. Fama, “Market efficiency, long-term returns, and behavioral Finance”, Journal of Financial

Economics 49, pp. 283-306, 1998. [3] Clive W.J. Granger, “Forecasting stock market prices: Lessons for forecasters” , International

Journal of Forecasting 8, pp 3-13, 1992 [4] 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 69, pp. 89–94, 2000.

17

[5] 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 35, pp. 1628–1637, 2008.

[6] T. C. Mills, “Technical Analysis and the London Stock Exchange: Testing Trading Rules Using the

FT30”, Int. J. Fin. Econ., Vol. 2, pp. 319-331, 1997. [7] 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 32, pp 361– 377, 2002.

[8] T. Kimoto and K. Asakawa, “Stock Market Prediction System with Modular Neural Networks”,

IJCNN International Joint Conference on Neural Networks 1990, 1990 [9] J.H. Wang and S.M. Chen, “Evolutionary Stock Trading Decision Support System Using Sliding

Window”, IEEE - World Congress on Computational Intelligence, 1998 [10] F. A. Badawy , H. Y. Abdelazim, Hazem Y. Abdelazim, M. G. Darwish, “Genetic Algorithms for

Predicting the Egyptian Stock Market”, IEEE - Information and Communications Technology, 2005 [11] 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, 2008

[12] D. E. Koulouriotis, I. E. Diakouakis and D. M. Emiris, “A Fuzzy Cognitive Map-based Stock

Market Model Syntesis, analysys and Experimental Results”, IEEE - Internacional Fuzzy Systems Conference , 2001.

[13] 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.

[14] 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 34, pp. 2870–2878, 2007 Elsevier. [15] 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. [16] Gartley, H. M,. “Profits in the Stock Market”, H. M. Gartley Inc., New York, N.Y, 1935.