• Nenhum resultado encontrado

3.1 Sistema Proposto

3.1.6 Módulo 6 Previsão

Este módulo é responsável pela previsão da direção no instante um passo à frente, se- manal e mensal, do ativo em análise. A atividade de previsão é abordada neste trabalho como um problema de classificação entre dois grupos distintos. É considerado que a direção livre de ruídos sempre varia, para cima ou para baixo, no instante um passo à frente. Os grupos de variação considerados são:

• positiva: taxa de variação no instante um passo à frente, em relação ao ponto atual, maior que zero;

• negativa: taxa de variação no instante um passo à frente, em relação ao ponto atual, menor ou igual à zero.

Caso não ocorra variação entre duas amostras, optou-se pela classificação negativa do evento. Esta abordagem evita a complexidade adicional de lidar com uma classe de variação extra. Levando-se em conta a volatilidade do mercado, uma variação nula entre dois eventos consecutivos mostra-se pouco provável.

3.1.6.2 Solução Desenvolvida para Avaliação

A SLR desempenhada como parte deste trabalho mostra que Máquinas de Vetores Su- porte (SVM - Support Vector Machine), e Redes Neurais Artificiais (ANN - Artificial Neural Network), são os tipos de algoritmos mais utilizados para previsão comportamental de ativos em mercado acionário. Nas publicações analisadas, ambos algoritmos conseguem desempenhos promissores.

Diante das pesquisas realizadas, não foi possível constatar qual seria o melhor algoritmo para previsões em mercado acionário. Por exemplo, no trabalho de Xu, Li e Luo (2013), o SVM alcança desempenho superior ao algoritmo Random-Forest (RF) utilizado na comparação. Enquanto no trabalho desenvolvido porPatel et al. (2015), RF consegue melhores resultados que SVM e ANN. Na publicação dePaliyawan(2015) é feita uma comparação entre ANN e um algoritmo do tipo Decision-Tree (DT), ambos apresentam desempenhos similares. O mesmo ocorre em uma comparação entre DT e SVM, feita porPanigrahi e Mantri(2015a), onde ambos apresentam resultados similares.

Em função dos resultados observados, os algoritmos SVM e ANN foram considerados para composição deste módulo. Ambos algoritmos foram empregados na previsão de direção do movimento no instante um passo à frente, semanal e mensal, de todos os ativos considerados. O desempenho dos algoritmos foi comparado por meio da taxa de acerto de direção (HR - Hit Ratio). Devido sua natureza estocástica, o experimento com ANN foi repetido por 10 vezes, e a média aritmética sobre a medida HR foi utilizada na comparação com os resultados do SVM. Para ambos os classificadores, os dados de entrada, bem como os valores alvo, foram norma- lizados para o intervalo [-1,1]. O algoritmo com maior valor de HR médio sobre as previsões

semanais e mensais foi selecionado para composição deste módulo nos testes de desempenho financeiro do sistema. A seguir são descritas as configurações utilizadas para os algoritmos ANN e SVM, bem como a metodologia de treinamento empregada.

3.1.6.3 Configuração do Algoritmo ANN

Foi utilizada uma rede neural Multilayer Perceptron (MLP) com 3 camadas, com uma camada oculta. De acordo com o teorema da aproximação universal (CYBENKO,1989;HOR- NIK, 1991), uma rede MLP com apenas uma camada oculta é capaz de aproximar qualquer função contínua definida em um hipercubo unitário. Foi utilizada a implementação de rede neural patternnet6do MATLAB .R

A quantidade de neurônios na camada de entrada varia de acordo com a dimensão dos dados resultantes da etapa de seleção de características. A camada de saída é composta por dois neurônios, um para cada classe de variação (alta ou baixa). E a quantidade de neurônios da camada oculta foi dada pela seguinte equação:

n= 2 ∗p(m + 2) ∗ ni (3.3)

Onde ni representa a quantidade de neurônios da camada de entrada, e m a quantidade de neurônios da camada de saída. A equação3.3foi proposta porHuang(2003), com evidências de ganho de desempenho preditivo, sendo mais tarde utilizada também porDe Oliveira, Nobre e Zárate(2013). Sendo a quantidade de neurônios definida por um número inteiro, o resultado da equação3.3é arredondado à parte inteira.

Foi utilizada a função de ativação Tangente Hiperbólica para a camada o oculta e ca- mada de saída. O treinamento da rede neural foi efetuado com o algoritmo Scaled Conjugate Gradient Backpropagation (MILLER, 1993), sendo a quantidade limite de épocas de treina- mento definida para 1000. O valor objetivo para minimização do Mean Squared Error (MSE) foi definida em 0, ou seja, o treinamento também será interrompido caso seja atingido um MSE igual a 0 para a base de treinamento.

A parcela de 10% dos dados disponíveis para treinamento foi utilizada como base de validação. Os dados utilizados para validação foram extraídos aleatoriamente da base disponível para treinamento, e utilizados para avaliação de desempenho durante o processo de treinamento

6 MATHWORKS. Pattern Recognition Network. 2017. Disponível em:

da rede neural. O desempenho da rede sobre a base de validação foi também utilizado como um critério de parada do treinamento. Caso o MSE aumentasse por x vezes, definido em 10, sobre os dados de validação, o treinamento era encerrado, e a rede final era aquela com melhor desempenho sobre a base de validação.

Um último critério de parada foi quanto à magnitude do gradiente. Caso o desempenho do gradiente caísse abaixo do valor mínimo, definido em 1e-6, o treinamento da rede neural era encerrado.

3.1.6.4 Configuração do Algoritmo SVM

No kernel do SVM foi utilizada uma função de base radial (RBF - Radial Basis Func- tion) gaussiana. Este tipo de função foi selecionado após análise de algumas publicações. Nos trabalhos deLin e Lin(2003) eWu e Chang(2012), são apontadas vantagens na utilização de função kernel do tipo RBF para o SVM. Este tipo de função kernel também é utilizada nas publicações deChen e Chen(2013), Gonzalez, Padilha e Barone(2015),Huang et al.(2015) e

Iacomin(2016), com o alcance de resultados promissores.

Foi utilizada a implementação do SVM fitcsvm7 do MATLAB . A opção KernelScaleR

do algoritmo foi configurada para auto, desta forma, a cada treinamento foi aplicada uma heu- rística interna para configuração do valor do sigma da função RBF utilizada. O treinamento do SVM foi desempenhado com o algoritmo Sequential Minimal Optimization (SMO) (PLATT,

1998).

3.1.6.5 Metodologia Utilizada para Treinamento e Teste dos Classificadores

A movimentação do mercado acionário pode ser vista como resultante do comporta- mento humano na busca contínua pelo lucro. Esta busca leva a constantes mudanças de estraté- gias e consequente alteração na dinâmica de comportamento do mercado, invalidando estraté- gias até então funcionais. Este aspecto não estacionário está relacionado ao problema conhecido como Concept-Drift. Portanto, pode-se inferir que o êxito de um modelo de negociação autô- nomo para o mercado acionário depende da sua capacidade de adaptação contínua ao ambiente, uma importante característica também observada porHassan et al.(2013) eHu et al.(2015).

7 MATHWORKS. Support Vector Machine Classifier. 2017. Disponível em:

Como já observado por Chevapatrakul (2013) e Sirohi, Mahato e Attar (2014), o em- prego de dados mais recentes pode contribuir para o aumento da capacidade adaptativa do modelo de previsão. Deste modo, um processo de treinamento e teste efetuado de forma pro- gressiva (janela deslizante) sobre o conjunto de dados, aparenta ser mais adequado ao tipo de problema abordado nesta pesquisa. Assim como desempenhado por Chevapatrakul (2013) e

Sirohi, Mahato e Attar(2014), a progressão da janela a cada nova previsão mostra-se coerente, pois o classificador sempre será treinado com dados recentes. Este tipo de abordagem busca adaptação aos padrões de comportamento recentes do ambiente. Pois, como já observado por

Malkiel(2003), muitos padrões de comportamento que possibilitavam ganhos financeiros pa- recem ter desaparecido depois que se tornaram públicos. Desta maneira, é perceptível que qualquer padrão repetitivo capaz de gerar algum lucro tende a ser rapidamente extinto.

Os treinamentos e testes dos classificadores foram desempenhados com a utilização de janela deslizante. Foi empregada uma janela com 2 anos de dados históricos, ou seja, 24 e 104 registros para os tempos gráficos mensal e semanal, respectivamente. A janela foi deslocada a cada novo teste. Desta maneira, o teste fora da amostra utilizado no experimento k, passou a fazer parte da base de treinamento no experimento k + 1. Esta metodologia incremental garante a atualização do sistema quanto às movimentações mais recentes do mercado.

3.1.7 Módulo 7 - Emissão de Sinais e Atuação