KAPITTEL 5 – ANALYSE OG DISKUSJON
5.2 Aftenposten: Tilblivelsesprosess
apenas uma vez. Estas otimizações contribuem para os experimentos onde os cálculos sejam pesados e a massa de dados muito grande.
A aplicação ŞloaderŤ, Figura 34, é responsável por realizar a carga e correção dos dados históricos. Inicialmente, o Şwtrader-loader-dataŤ realiza a carga de arquivos contendo os
históricos das cotações. Os arquivos são disponibilizados pela BM&FBOVESPA1. Já o
Şwtrader-loader-crawlerŤ acessa o site da BM&FBOVESPA e captura dados das empresas, tais como os proventos em ações. Posteriormente, estes dados são armazenados no banco de dados e usados para normalizar as cotações em função das operações de split e reverse split. Detalhes das correções são apresentados no Capítulo 6.
A parte mais importante da pesquisa, colocada na Figura 35, é a aplicação ŞplannerŤ. Nestes módulos estão os algoritmos de planejamento. Inicialmente, o Şwtrader-planner- analysis-correlationŤ possui as técnicas de correlação de ativos e montagem da carteira de investimento. Em Şwtrader-planner-marketŤ são realizadas as simulações de negociação e geração de relatórios contendo os resultados. No Şwtrader-planner-gaŤ são colocados os códigos relativos aos AGs. Os métodos referentes aos processos de planejamento estão em Şwtrader-planner-pomdpŤ e Şwtrader-planner-momdpŤ. O portfólio de algoritmos e a extração de características estão presentes no Şwtrader-planner-portfolioŤ. Em Şwtrader- planner-rddlsimŤ está a biblioteca para processar os modelos em RDDL. Finalmente, para iniciar a execução dos experimentos temos o Şwtrader-planner-factoryŤ.
Todo o desenvolvimento foi realizado em Java, C e C++. Para otimizar o desenvol- vimento foram usadas diversas bibliotecas. Entre as principais bibliotecas destacam-se a RDDLSim2, Encog3, Neuroph4, Weka5, pomdp-solve6, APPL7, libpomdp8, AI-Toolbox9,
ZMDP10, TA-Lib11, Spring, Spring Data JPA, Log4j, JFreeChart, Guava, Apache Mina,
Hibernate, C3P0, Apache Commons IO, Joda Time, Commons Lang3, MySQL e Apache POI. Outras tecnologias e bibliotecas são estudadas de acordo com as necessidades do projeto.
7.2 Sistema Desenvolvido
Além dos conceitos que norteiam a arquitetura, alguns requisitos funcionais são neces- sário para modelar o sistema. A Figura 36 demonstra cada parte que compõe o sistema
1 Disponível em: <http://www.bmfbovespa.com.br/pt-br/cotacoes-historicas/ FormSeriesHistoricasArq.asp>
2 Disponível em: <https://github.com/ssanner/rddlsim> 3 Disponível em: <http://www.heatonresearch.com/encog/> 4 Disponível em: <http://neuroph.sourceforge.net/>
5 Disponível em: <http://www.cs.waikato.ac.nz/ml/weka/> 6 Disponível em: <http://www.pomdp.org/>
7 Disponível em: <http://bigbird.comp.nus.edu.sg/pmwiki/farm/appl/> 8 Disponível em: <https://github.com/dmaniloff/libpomdp>
9 Disponível em: <https://github.com/Svalorzen/AI-Toolbox> 10 Disponível em: <https://github.com/trey0/zmdp>
108 Capítulo 7. Arquitetura da Solução e a sequência de passos executadas para a realização dos experimentos. Os passos foram separados em dois momentos. No primeiro momento é realizada a Carga e Correção, que consiste em carregar os dados do mercado em um banco de dados e posteriormente remover inconsistências dos dados. Estas inconsistências são descritas na metodologia apresentada no Capítulo 6, já no Treinamento e Simulação são realizados os procedi- mentos de treinar os algoritmos de aprendizado e ao Ąnal simular situações de negociação no mercado Ąnanceiro. O que difere Carga e Correção e Treinamento e Simulação é que a Carga e Correção ocorre apenas uma vez e o Treinamento e Simulação consiste nos experimentos e simulações.
Figura 36 Ű Elementos que compõem o ambiente.
Primeiramente, antes de realizar treinamentos e simulações é preciso que os dados sejam carregados e corrigidos. Para realizar a carga dos dados inicialmente um Web Crawler (1. Web Crawler) realiza a captura de dados na web. Os dados capturados pelo Web Crawler correspondem a informações sobre as empresas, tais como a lista de ativos, início das atividades na bolsa, data de início das negociações em lotes unitários e proventos em ações.
Uma vez que os dados das empresas foram armazenados em um banco de dados, é realizada a carga dos arquivos (2. Carga dos Dados) que contêm as cotações históri- cas. Estas cotações contemplam apenas os dados diários. Para se ter acesso aos dados de todas as negociações durante todo um dia se faz necessário entrar em contato com a bolsa ou empresas especializadas em prover dados de negociação. O histórico diário
normalmente pode ser obtidos no site dos mercados12 ou através de serviços de dados
12 O histórico de cotações da BM&FBOVESPA e a respetiva formatação dos arquivos históricos estão disponíveis em: <http://www.bmfbovespa.com.br/pt-br/cotacoes-historicas/FormSeriesHistoricas. asp>
7.2. Sistema Desenvolvido 109
de negociação13. Neste momento apenas os dados diários de fechamento de pregão estão
sendo armazenados. Contudo, poucas alterações são necessárias para adaptar o ambiente para trabalhar com intervalos menores, tais como 5, 10 ou 15 minutos entre cada negoci- ação. Neste momento os dados por ativo que são armazenados são o preço de abertura, maior preço negociado, menor preço negociado, média do preço de negociação, preço de fechamento, maior preço de oferta de compra, menor preço de oferta de venda, número de negócios efetuados, quantidade total de ações negociadas, volume total negociado e a data do registro.
Uma vez que todo o processo de carga foi realizado a próxima fase, 3. Correção dos Dados, consiste na correção da base de dados. Essa correção é descrita no Capítulo 6 (Metodologia). Em resumo, os registros são normalizados em função dos proventos em ações (splint e reverse split) e da ausência de registros de negociação. Um dado que é armazenado no banco de dados para cada ativo é o percentual de correções decorrentes da ausência de registros. A Carga e Correções é realizada apenas uma vez no início dos experimentos, sendo executada novamente apenas se for necessário incluir novos dados.
Em seguida temos o Treinamento e Simulação. Neste momento é realizado o treinamento, as simulações de negociação e avaliação de resultados.
Na 4. Análise do Portfólio é montada uma carteira de ativos e o portfólio de plane-