Escolar Documentos
Profissional Documentos
Cultura Documentos
SÃO PAULO
2021
ANDRÉ FIDELIS FIGUEIREDO DE ABREU
Área de concentração:
Engenharia Financeira.
Orientador:
Prof.ª Dra. Élia Yathie Mastumoto
SÃO PAULO
2021
Abreu, André Fidelis Figueiredo de.
Aplicação de Machine Learning na pré-seleção de ativos para portfólios de
investimento / André Fidelis Figueiredo de Abreu. - 2021
44 f.
CDU 336.764.2
Área de concentração:
Engenharia Financeira.
Banca Examinadora:
Este trabalho buscou avaliar o impacto de técnicas de Machine Learning junto a estratégias
de momento na pré-seleção de ativos financeiros para portfólios de investimentos no mercado
brasileiro. Foram utilizados modelos de Random Forest para ranquear os ativos presentes
no IBOVESPA e aplicar esta pré-seleção em portfólios otimizados pelo método da média-
variância. Observou-se uma significante vantagem na utilização desta implementação nos
retornos acumulados a longo prazo, como esperado de estratégias baseadas em momento. O
portfólio construído a partir ativos pré-selecionados apresentou melhor retorno acumulado
e menor sensibilidade à drawndowns sistêmicos, o que indica uma maior eficiência uma
vez que o custo de seu gerenciamento é consequentemente reduzido.
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 REVISÃO BIBLIOGRÁFICA . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1 Momento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Teoria Moderna do Portfólio . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Random Forest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5 EXPERIMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1 Preparação dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1.1 Preço e Volume Comercializado Diários . . . . . . . . . . . . . . . . 19
5.1.2 Setor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2 Construção das Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2.1 Variável Resposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2.2 Variáveis Explicativas . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.3 Base de Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.4 Classificação das Ações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.5 Otimização dos Portfólios . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.6 Avaliação e comparação de Portfólios . . . . . . . . . . . . . . . . . . . . . 28
6 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.1 Comparação de Modelos de Pré-Seleção . . . . . . . . . . . . . . . . . . . . 30
6.2 Comparação dos Portfólios . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
ANEXOS 39
ANEXO A RESULTADOS POR PERÍODO DE VALIDAÇÃO . . . . . . . . . 40
10
1 INTRODUÇÃO
1.1 Objetivos
• Construir modelos de classificação que, a partir de sinais de momento, estimem
a probabilidade de uma ação ter um retorno acumulado positivo nos próximos 20
(buscando assemelhar-se à um mês) dias úteis.
• Comparar os resultados dos portfólios à medida que mais ativos vão sendo oferecidos
ao processo de otimização.
11
2 REVISÃO BIBLIOGRÁFICA
3 FUNDAMENTAÇÃO TEÓRICA
3.1 Momento
Momento é um conjunto de estratégias de investimentos na qual retornos passados
podem predizer retornos futuros (JEGADEESH, 1993). Foi inicialmente conceitualizado
por Robert Levy em 1967, originalmente com o nome de força relativa (relative strength)
(LEVY, 1967). Porém, devido ao surgimento e soberania da hipótese do mercado eficiente
poucos acadêmicos buscaram dar continuidade a este trabalho (GRAY, 2016).
Após décadas de inatividade, esta linha de pensamento voltou a ser estudada no
inicio da década de noventa por Narasimhan Jegadeesh e Sheridan Titman (JEGADEESH,
1993); porém o termo momento só foi cunhado por Mark Carhart em 1997 (CARHART,
1997).
Recentemente o momento tem sido utilizado em conjunto com o modelo de 5 fatores
de Fama-French (FAMA, 2015), junto ao tamanho das empresas, valor book-to-market,
excesso de retorno no mercado, lucratividade e investimento interno da empresa. O modelo
de 5 fatores é uma variante do modelo de 3 fatores (FAMA, 1993).
Existe comumente uma confusão entre investimentos de momento e crescimento
(growth), uma vez que ambas estratégias costumam buscar ativos com preços recentes
altos. A diferença principal está relacionada à análises fundamentalistas. Enquanto a
estratégia de crescimento busca ativos com preço acima do valor intrínseco da empresa,
a de momento busca ativos com performance relativamente forte independentemente da
análise fundamentalista (GRAY, 2016).
Por outro lado, existem mais semelhanças entre as estratégias de momento e as
de valor (value). As duas funcionam, em seus cernes, de maneira semelhante, pois atuam
como sinais de um erro sistemático de expectativa do mercado que, em média, promovem
resultados à favor do investidor (ASNESS TOBIAS J. MOSKOWITZ, 2013).
A principal diferença se encontra no viés comportamental que concebe este erro.
Enquanto as estratégias de valor dependem de um exagero do mercado com relação à
novas informações (variações nos preços causadas por investidores ao reagir à notícias são
mais intensas do que as variações nos fundamentos), enquanto as de momento baseiam-se
em uma reação atenuada dos investidores (ou seja, desmerecem o impacto de determinada
nova informação e reagem menos do que deveriam) (BARBERIS ANDREI SHLEIFER,
1998).
Portfólios de momento, como analisado no mercado americano, costumam superar
Capítulo 3. FUNDAMENTAÇÃO TEÓRICA 13
então realizada a partir da agregação dos votos das árvores construídas (esta ação, quando
combinada com bootstrapping, é denominada bagging (BREIMAN, 1996)).
O modelo inicial foi idealizado por Leo Breiman em 2001 (BREIMAN, 2001) e
baseado nos trabalhos de (HO, 1998) e (AMIT; GEMAN, 1997). Em seu trabalho, Breiman
sugere que o erro de generalização das florestas converge em um determinado limite quando
o número de árvores é suficientemente extenso, e que ele depende da força individual das
árvores e de suas correlações.
16
4 METODOLOGIA
7. Cada período segmentado terá um registro para cada ativo financeiro contendo todas
as variáveis necessárias para a aplicação do modelo de Machine Learning elaborado.
5 EXPERIMENTO
Esta seção irá expor os passos seguidos neste trabalho, baseando-se na metodologia
previamente explanada.
Todos os tratamentos de dados e modelagens - tanto da etapa de pré-seleção dos
ativos quanto da otimização de portfólios - foram realizados utilizando-se da linguagem
de programação python 3.0 junto ao aplicativo web open-source Jupyter Notebook. As
principais bibliotecas utilizadas podem ser vistas na Tabela 1.
Biblioteca Versão
scikit-learn 0.24.2
pandas 1.3.2
numpy 1.20.3
matplotlib 3.4.2
seaborn 0.11.2
Variável Descrição
lag0 Valor do Log-Retorno referente ao dia referência (d0) do
registro.
lag1 Valor do Log-Retorno referente ao d-1.
lag2 Valor do Log-Retorno referente ao d-2.
lag3 Valor do Log-Retorno referente ao d-3.
lag4 Valor do Log-Retorno referente ao d-4.
lag5 Valor do Log-Retorno referente ao d-5.
lag6 Valor do Log-Retorno referente ao d-6.
lag7 Valor do Log-Retorno referente ao d-7.
lag8 Valor do Log-Retorno referente ao d-8.
lag9 Valor do Log-Retorno referente ao d-9.
lag10 Valor do Log-Retorno referente ao d-10.
volume_total_comercializado Total do Volume comercializado entre o d-10 e d0.
media_logretorno Média dos Log-Retornos entre o d-10 e d0.
std_logretorno Desvio Padrão dos Log-Retornos entre o d-10 e d0.
quantitative_momentum Valor do ID (Momentum Absoluto Quantitativo) dos
Log-Retornos entre d-10 e d0.
comunicacoes 1 caso o ativo pertença ao setor de Comunicações, 0 caso
contrário.
consumo_ciclico 1 caso o ativo pertença ao setor de Consumo Cíclico, 0
caso contrário.
consumo_nao_ciclico 1 caso o ativo pertença ao setor de Consumo não Cíclico,
0 caso contrário.
energia 1 caso o ativo pertença ao setor de Energia, 0 caso
contrário.
financeiro 1 caso o ativo pertença ao setor Financeiro, 0 caso con-
trário.
materiais_basicos 1 caso o ativo pertença ao setor de Materiais Básicos, 0
caso contrário.
saude 1 caso o ativo pertença ao setor de Saude, 0 caso contrá-
rio.
ti 1 caso o ativo pertença ao setor de TI, 0 caso contrário.
utiliade_publica 1 caso o ativo pertença ao setor de Utilidade Pública, 0
caso contrário.
target Variável Resposta. 1 Caso o Log-Retorno acumulado dos
próximos 20 dias é positivo, 0 caso contrário.
Pt+1
R = ln . (5.1)
Pt
O log-retorno acumulado entre os dias t e t + N é simplesmente
Pt+N
Racum = ln , (5.2)
Pt
devido à propriedade de aditividade do log.
5.1.2 Setor
Foi obtida uma listagem da B3 contendo o setor econômico de cada uma das
empresas já listadas em seu mercado, de modo que essa informação pudesse ser adicionada
no modelo de pré-seleção de ativos como variáveis explicativas.
A próxima etapa foi o desenvolvimento de um dicionário contendo os valores
disponíveis de setor na tabela original, junto de uma versão corrigida dessa informação
sem acentos, caracteres maiúsculos e espaços, buscando tornar a informação mais fácil de
se trabalhar posteriormente na fase de construção de variáveis.
Posteriormente buscou-se a remoção das linhas contendo os segmentos e o preenchi-
mento da informação de setor econômico para todos os códigos dos ativos. Os dados foram
então finalizados aplicando-se o dicionário previamente construído. Foi então preparada
uma tabela contendo apenas o ticker dos ativos assim como seu setor corrigido.
Capítulo 5. EXPERIMENTO 21
Uma outra informação agregada como variável explicativa foi o volume total
comercializado do ativo. Foi considerado o período entre o dia atual do registro e os 10
dias considerados no lags. Essa informação foi incluída como uma proxy da liquidez dos
ativos.
Complementando a informação fornecida pelos lags de cada ativo, outras métricas
foram criadas com base nos log-retornos passados de cada série temporal financeira. As
duas primeiras, mais elementares, foram a média e o desvio padrão dos valores.
A terceira métrica foi construída com base na equação 3.1. Esta foi aplicada nos
log-retornos dos 10 dias de lags considerados e busca qualificar o momento do ativo,
verificando o quão contínuo ele foi.
O dicionário de setores dos ativos financeiros foi utilizado na construção de uma
variável categórica indicando as respectivas Áreas. Entre os possíveis níveis dessa variável
estão: "Bens Industriais"; "Comunicações"; "Consumo Cíclico"; "Consumo não Cíclico";
Capítulo 5. EXPERIMENTO 24
A três versões foram feitas da seguinte maneira, com relação aos seus hiper-
parâmetros: primeira, utilizando os valores padrão para todos eles; segundo, aplicando a
técnica de busca randomizada (Randomized Search Cross Validation); terceiro, realizando
o ajuste fino da versão anterior com base no Grid Search Cross Validation. Os hiper-
parâmetros que foram otimizados estão descritos na Tabela 7.
A utilização de tentativa e erro na otimização dos hiper-parâmetros é de alto custo
computacional. Uma maneira de contornar esta questão é a utilização de amostras e do
Randomized Search em seu processo. Uma amostra de 10% da base de treino foi utilizada
neste caso. O Randomized Search realiza a amostragem de determinados valores para os
parâmetros do modelo dentre uma lista pré-definida buscando obter o melhor modelo
possível, até atingir um determinado e pré-especificado número de iterações, com base em
Capítulo 5. EXPERIMENTO 26
Hiper-Parâmetro Definição
Se as árvores serão, ou não, construídas com
bootstrap
base em amostragem com reposição
max_depth A profundidade máxima de cada árvore.
max_features Número de variáveis consideradas na busca da melhor divisão de nó.
min_samples_leaf Número mínimo necessário de amostras em cada nó após divisões.
min_samples_split Número mínimo de amostras necessárias para dividir um nó da árvore.
n_estimators Número de árvores de decisão de cada floresta aleatória.
validação cruzada. Foram utilizadas 100 iterações e três divisões na validação cruzada. A
lista utilizada pode ser vista na Tabela 8.
Hiper-Parâmetro Valores
bootstrap True, False
max_depth 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, None
max_features sqrt
min_samples_leaf 1, 2, 4
min_samples_split 2, 5, 10
n_estimators 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000
Hiper-Parâmetro Valores
bootstrap False
max_depth 10, 15, 20, None
max_features sqrt
min_samples_leaf 1, 2
min_samples_split 4, 5, 6
n_estimators 150, 200, 250
e negativos). Porém foi identificado que essa não seria a melhor maneira, uma vez que
expõe apenas uma faixa do resultado: a que considera um limiar de 50% (onde as ações
cuja probabilidade resultante, obtidas pelo modelo, excede esse valor são classificadas
como boas, pertencentes à classe 1, e as demais como ruins, classe 0 ). Essa validação
foi expandida ao observar as curvas de Precisão e Recall dos modelos, que consideram
todos os possíveis limiares, assim com as áreas abaixo delas, que representam seu potencial
preditivo.
Uma última métrica utilizada no estudo, e considerada como mais relevante devido
ao seu propósito, foi a ordenação dos decis das probabilidades dos modelos. Essa métrica
observa a quantidade de bons ativos por faixa de probabilidade do modelo. Como o objetivo
principal do modelo é ser capaz de identificar os melhores ativos - e consideramos que os
melhores são assim definidos por terem uma maior chance de ter seu log-retorno acumulado
Racum em 20 dias superior à 0 - desejamos que o modelo seja capaz de acumular esses
ativos nos decis de maior probabilidade. A Figura 4 exemplifica a diferença entre um
resultado que apresenta ordenação de outro que não o faz.
X
E[R] = M̄ • W̄ , (5.3)
onde M̄ representa a matriz das médias dos log-retornos anualizados dos ativos nos 10 dias
anteriores e W̄ a matriz contendo os pesos de cada ativo.
q
E[V ] = ¯ • W̄ ,
W̄ T • Cov (5.4)
sendo C̄ov a matriz das covariâncias anualizadas dos ativos nos 10 dias anteriores.
Com base nestes valores o índice Sharpe do portfólio é obtido e reservado. Esse
processo é repetido 10000 vezes e os pesos referentes ao portfólio de maior índice Sharpe
são selecionados.
outros possíveis motivos, à pandemia do COVID-19. Durante esse período o mercado não
possuía liquidez, logo não seria possível realizar o rebalanceamento de um portfólio de
investimentos. Nesse caso foram utilizados para o período 15 os mesmos pesos do período
anterior, tornando os resultados obtidos no backtest mais concordantes com o a realidade
do período.
Para cada período de validação, os ativos presentes foram ordenados em ordem
decrescente com base no resultado do pré-seletor, ou seja, na probabilidade estimada do
ativo, nos próximos 20 dias, obter um log-retorno positivo.
Optou-se por determinar o impacto do pré-seletor da seguinte maneira: seguindo
a ordenação de ativos encontrada a partir do modelo, foram sendo incluídos ativos no
leque de possibilidades do otimizador de portfólio e calculadas as métricas a partir das
carteiras resultantes. Dessa maneira, o primeiro portfólio contempla apenas o melhor ativo,
de acordo com o pré-seletor; já o segundo considera o primeiro e o segundo melhores.
Eventualmente a ultima carteira poderá utilizar todos os ativos e representará, portanto,
o portfólio construído sem a influência do pré-seletor.
Seguindo esse processo, foram avaliadas as seguintes métricas para os portfólios
resultantes: índice Sharpe e log-retorno total. Também observou-se o log-retorno acu-
mulado ao decorrer dos 21 períodos de validação de portfólios construídos a partir da
disponibilização de 1, 5, 10, 20 e 76 ativos ao otimizador de portfólios.
30
6 RESULTADOS
de Grid Search possui valores superiores nas métricas básicas, quando comparado exclu-
sivamente com o de busca aleatória, mas mantém a mesma ordenação superior, sendo,
portanto, a melhor opção entre as analisadas.
Devido a estes resultados, na etapa posterior de construção e comparação dos
portfólios de investimentos serão utilizadas apenas as probabilidades do modelo de Grid
Search.
7 CONCLUSÃO
O maior intuito deste trabalho foi demonstrar uma aplicação prática alternativa
para modelos de Machine Learning no domínio das finanças, aproveitando o potencial de
retorno da utilização do fator momento em portfólios de investimento.
É possível observar que de fato existe um espaço para a utilização deste tipo de
modelo na pré-seleção de ativos. Este trabalho buscou, ao realizar uma implementação no
mercado financeiro brasileiro, reforçar esta tese.
Notou-se durante o backtest empreendido a significante vantagem de sua utilização
nos retornos acumulados a longo prazo, uma vez que um portfólio construído com base
em apenas 20 ativos financeiros foi capaz de obter um log-retorno acumulado igual ao de
um feito com 76 ativos (0.068), como indicado na figura 11
Além disso a maioria dos portfólios construídos com a influência do pré-seletor
obtiveram resultados superiores ao portfólio sem esta influência. Dentre as opções a que
mais chama atenção é o contendo apenas 1 ativo, que, mesmo a curto prazo, possui
log-retorno acumulado maior em quase todo o período de backtest (0.498).
Entretanto recomenda-se a utilização do portfólio que contempla os 5 melhores
ativos, pois apresenta maior diversificação quando comparado ao de 1 ativo, mesmo
que possua menor log-retorno acumulado a longo prazo (0.186), ainda que superior ao
benchmark sem a influência do pré-seletor.
Apesar dos resultados positivos, porém, foi possível constatar a existência de diversas
possíveis melhorias em sua utilização, uma vez que os modelos construídos apresentaram
significante instabilidade em alguns períodos analisados, como exemplificado pelo resultado
do portfólio construído com base nos 10 melhores ativos, que obteve o pior log-retorno
acumulado entre os avaliados (-0.061).
Uma dessas possíveis melhorias seria a construção e utilização de novas variáveis
explicativas no modelo de pré-seleção, principalmente a inclusão do momento de prazo
intermediário. Outras informações que podem ser investigadas em futuros trabalhos, são:
análise de texto natural de informações do mercado obtidas de fontes como google analytics
e twitter; correlação da série dos ativos no período com os resultados de grandes fundos de
investimentos; indicadores de análise técnica, como, por exemplo, o MACD.
Outro possível foco para aprofundar a análise seria a experimentação de outros
modelos de Machine Learning, como XGBoost, Support Vector Machine, entre outros;
podendo eventualmente avaliar técnicas de Deep Learning como as redes neurais.
Importante ressaltar que os resultados foram obtidos considerando apenas a otimi-
Capítulo 7. CONCLUSÃO 36
REFERÊNCIAS
AMIT, Y.; GEMAN, D. Shape quantization and recognition with randomized trees. 1997.
BOYD KEVIN H. ENG, C. D. P. K. Area under the precision-recall curve: Point estimates
and confidence intervals. 2013.
FAMA, K. R. F. E. F. Common risk factors in the returns on stocks and bonds. 1993.
HUANG, C.-F. A hybrid stock selection model using genetic algorithms and support
vector regression. Applied Soft Computing, 2012.
LEE, M.-C. Using support vector machine with a hybrid feature selection method to the
stock trend prediction. 2009.
Figura 12 – Sharpe obtido de acordo com o número de ativos disponibilizados ao otimizador de portfólios
41
ANEXO A. RESULTADOS POR PERÍODO DE VALIDAÇÃO
Figura 13 – Sharpe obtido de acordo com o número de ativos disponibilizados ao otimizador de portfólios com eixo normalizado
42
ANEXO A. RESULTADOS POR PERÍODO DE VALIDAÇÃO
Figura 14 – Log-Retorno obtido de acordo com o número de ativos disponibilizados ao otimizador de portfólios
43
ANEXO A. RESULTADOS POR PERÍODO DE VALIDAÇÃO
Figura 15 – Log-Retorno obtido de acordo com o número de ativos disponibilizados ao otimizador de portfólios com eixo normalizado
44