Algoritmos Matemáticos no Mercado Financeiro Aluno: João Pedro Fontaine de Carvalho Orientador: Carlos Frederico Borges Palmeira Introdução A indústria financeira tem grande relevância para a economia mundial por sua capacidade como agente financiador, pela quantidade de empregos que gera e pelo canal de propagação tecnológico que se mais recentemente transformou. Apesar de toda essa evolução, a recente crise de 2008 nos mostrou que um problema crucial, entretanto, continua sendo a mensuração da real probabilidade de perda de capitais nos mercados financeiros. Por esse motivo, técnicas de rastreamento de oportuniddes, assim como de gestão de risco, são cada vez mais procuradas e valorizadas. Algo que está bastante presente no mercado atual é o assim chamado Trading Sistemático, que consiste em um conjunto de programas de computador que recebem informações e dados de mercado e tomam decisões pseudo-autônomas de emitir (ou não) ordens de compra e venda de ativos financeiro. Com ações tão importantes sendo decididas por máquinas, algo tem que garantir que elas estejam certas, ou que, pelo menos, que a probabilidade de que uma decisão gere prejuízo seja minimizada. A crescente necessidade de proteção para investidores nos incentivou a estudar e testar algoritmos matemáticos de filtragem de dados e informações, no intuito de determinar em tempo real o comportamento do mercado a partir de dados recentes. Objetivos Desenvolver (pelo menos) um filtro estocástico para lidar com dados típicos de mercado financeiro brasileiro, além de um indicador que aponte se o mercado está seguindo (ou não) uma determinada tendência, procurando ver se o passado nos permite inferir algo sobre o presente ou futuro. Via de regra, tais ferramentas tornam os dados mais confiáveis, reduzindo o ruído branco (que tende a ser problemático para um programas pseudo-autônomos de tomada de decisão) e mensurando até que ponto o mercado esta seguindo uma certa tendência. Outro objetivo da pesquisa foi testar de fato a eficiência dessas ferramentas, ou seja, avaliar o resultado da aplicação desenvolvida no mercado financeiro brasileiro. Essa avaliação foi fundamental para garantir a qualidade do trabalho e abrir as portas para novas pesquisas. Elaboração do método de filtragem Depois pesquisar na literatura um conjunto de filtros estocásticos conhecidos, verificamos que, para altas frequencias (como no nosso caso), wavelets [1] tinham maior capacidade de eliminar ruidos (na informação) do que outras ferramentas. Tendo em vista que o Professor Carlos Tomei, do Departamento de Matemática da PUC-Rio deu um curso sobre esse tema em 2011.2, verificamos que as wavelets da família Daubechies eram apropriadoas para os nossos objetivos (embora não fossem as únicas que pudessem ser usadas).
Apesar dos algoritmos das vawavelets Daubechies serem conhecidas, era preciso determinar um conjunto de parâmetros para que o resultado fosse o melhor possível. Medida da Tendência do Mercado Associado ao método de filtragem de dados, aprendeu-se a estimar o Local Hölder Exponent [2], que fornece uma medida do quanto o mercado está seguindo uma tendência. Valores altos desse índice mostram com bastante clareza que o mercado está passando por um momento de incerteza e seu comportamento é realmente nervoso. Nos momentos em que o Local Hölder Exponent mostra-se baixo, isso indica que há tendência e, portanto, as informações passadas tem relevância no presente. Quando o Local Hölder Exponent encontra-se num nível intermediário, então temos o chamado Movimento Browniado, que não guarda memória alguma e que, a partir do qual, nada pode ser inferido. Metodologia Uma vez que um conjunto de algoritmos foi escolhido e estudado, eles precisavam ser testados em mercado financeiro real. Para isso foi desenvolvido um programa de Trading Sistemático, dessa forma os algoritmos foram testados sem que a interação humana atrapalhasse as conclusões do estudo. As figuras abaixo mostram o filtro e o Local Hölder sendo aplicados. Figura 1
Figura 2 Figura 3
Figura 4 As figuras acima mostram a mesma coisa, mas para dias diferentes. O primeiro retângulo mostra o Local Hölder, uma wavelet aplicada a ele e uma média móvel. No segundo é exibida a série original com os preços do INDG12. O último mostra os retornos e os mesmos depois de aplicada a wavelet. A. Escolha do Ativo e Obtenção de Dados Por razões técnicas de mercado, o Índice Futuro curto (primeiro vencimento) do IBOVESPA foi o escolhido para testes. Além da elevada liquidês, esse ativo é mais estável do outros, o que evita caídas e subidas mais bruscas no preço, tal como acontece com algumas ações, pois mapear eventos intensos não era propriamente o objetivo maior da pesquisa. Sabendo como os testes seriam feitos, passou-se a acumular e tratar dados da Bola de Valores (Bovespa & BMF) para poder simular o funcionamento do programa numa quantidade considerável de dias, usando MATLAB. B. Elaboração da Estratégia Foi feita uma estratégia intraday o que permite ganhos mesmo quando um ativo termina o dia valendo menos do que no início, pelo fato dele alternar entre ganhos e perdas antes de fechar o dia. Para que essa estratégia seja capaz de gerar ganhos, os pontos de inversão de comportamento, ou tendência, devem ser identificados com bastante acuidade, caso contrário o resultado pode ser desastroso. Uma ferramenta muito comum no mercado, o VWAP (volume-weighted average price), foi utilizado como informação base do programa. O VWAP é calculado em diferentes janelas de tempo, o que é muito útil quando se deseja comparar uma tendência curta a uma tendência
longa. Tal comparação é um ótimo indicador de pequenas perturbações, que não devem ser levadas em conta na hora de tomar uma decisão. Ficou claro que usar o log retorno dos VWAP s funcionou muito melhor para a interpretação do comportamento do ativo, e portanto, ele foi utilizado como informação a ser filtrada e interpretada pelo programa. Nesse momento, as wavelets são aplicadas nos log retorno para eliminar pequenas oscilações que poderiam ser mal interpretadas só então é calculado o Local Hölder. Após esse cálculo, as wavelets e o Local Hölder, além de outras informações básicas como preço e volume, são analisados pelo programa para que então ele tome decisões, minuto a minuto, do que fazer. As ações tomadas pelo programa são mostradas, assim como o montante de dinheiro ao final do dia, isso permitiu pequenas modificações em parâmetros da estratégia, para que essa fosse mais consistente. C. Testes Com vários meses de dados reais da bolsa armazenados, foram executados inúmeros testes e melhoras nos códigos, o desempenho, que no início parecia não gerar lucro algum, passou a mostrar-se muito satisfatório. O Filtro que foi aplicado, associado à estratégia utilizada, mostrou-se muito eficaz em dias de extremo nervosismo no mercado, ou seja, com muita oscilação no preço. Nesses dias os ganhos eram substancias, mas em dias calmos o programa mostrava-se falho, o que foi resolvido com limitadores de prejuízo e reguladores de frequência. Depois de muitas modificações o programa chegou a um ponto que é muito funcional e com certeza comercial, foram obtidos lucros simulados bastante consideráveis, mesmo em dias de queda do valor da ação. Conclusões O filtro aplicado mostrou-se muito eficaz quando submetido a dados com muitas oscilações curtas, mas nem tanto nos casos em que havia pouca perturbação. Já o Local Hölder mostrou com bastante exatidão os momentos que as informações passadas eram relevantes. Fazendo uso dessas ferramentas, o programa que foi criado simulou diversos meses de funcionamento com dados reais e obteve um retorno médio de 3% ao mês, isso permite concluir que tais ferramentas são de fato úteis e comercializáveis. Deve-se ter em mente, entretanto, que as simulações foram feitas para somente um único ativo (Ínice Futuro do IBOVESPA) e que os filtros, apesar de fundamentais, são apenas uma pequena parcela do programa. Referências 1 - Mallat, Stéphane. A Wavelet Tour of Signal Processing. Terceira edição, The Sparse Way. 2 - Zbigniew R. Struzik. Local Effective Hölder Exponent Estimation on the Wavelet Transform Maxima Tree. Centre for Mathematics and Computer Science (CWI)