O presente trabalho tem como objetivo expor, de forma resumida, parte da teoria e algumas aplicações práticas de métodos quantitativos em finanças. O material foi desenvolvido com o arcabouço teórico exposto na disciplina Métodos Computacionais no Mercado de Capitais, ministrado pelo professor Robert Iquiapaza, na Universidade Federal de Minas Gerais.
Um ponto importante a se destacar é que há a presença do chamado Survivorship Bias nos backtests realizados, assim, é mais importante a comparação dos retornos das estratégias ilustradas contra o investimento do portfólio ingênuo do que contra o índice Ibovespa em si.
A intenção é que o texto e os testes sejam atualizados com o tempo para a correção de vieses, correção de erros e, também, a adição de novas estratégias!

1.0 Teoria das Carteiras de Markowitz

1.1 Introdução

Uma das principais bases para as finanças modernas e para as finanças quantitativas de uma forma geral. De forma resumida, deve-se analisar não só os retornos esperados dos ativos que compõe a carteira, mas também o seu risco, estimado via desvio padrão dos retornos, e como se dará a interação dos componentes do portfólio, ou seja sua correlação.

1.2 Diversificação

“Diversification is the only free lunch in investing” - Harry Markowitz

Podemos estimar o risco dos ativos a partir da volatilidade dos seus retornos. Isto é:

\(\sigma_{i}=(\frac{1}{T} \sum_{t=1}^{T}\left(R_{i, t}-\bar{R}_{i}\right)^{2})^{1/2}\)

Já para estimar o risco de um portfólio utiliza-se:

\(\sigma_{p}^{2}=\sum_{i}^{n} w_{i}^{2} \sigma_{i}^{2}+\sum_{i=1}^{n} \sum_{i=1}^{n} w_{i} w_{j} \sigma_{i} \sigma_{j} \rho_{i j}\);

\(i \neq j\)

Considerando que a correlação é menos que perfeita, há um benefício, em termos de risco, em se adicionar mais ativos à carteira e, nas proporções apropriadas, pode-se escolher portfólios com um nível de retorno superior para uma mesma volatilidade dos retornos.

Cita-se também o fato de que, a medida que adicionamos ativos aleatoriamente ao portfólio, tendemos a nos aproximar do risco de mercado, sendo a linha azul o desvio padrão do portfólio e a linha vermelha o desvio padrão do Ibovespa:

Desvio Padrão do Ibovespa:

## [1] 0.2494114

Desvio Padrão do Portfólio a Medida que são adicionados ativos:

##    N Ativos     Risco
## 1         1 0.4625340
## 2         2 0.3132808
## 3         3 0.3384780
## 4         4 0.2874595
## 5         5 0.2791074
## 6         6 0.2927744
## 7         7 0.2950584
## 8         8 0.2724066
## 9         9 0.2396424
## 10       10 0.2457332
## 11       11 0.2529709
## 12       12 0.2637676
## 13       13 0.2543377
## 14       14 0.2751971
## 15       15 0.2622122
## 16       16 0.2418884
## 17       17 0.2408061
## 18       18 0.2369640
## 19       19 0.2474754
## 20       20 0.2478271
## 21       21 0.2413018
## 22       22 0.2549309
## 23       23 0.2294262
## 24       24 0.2295386
## 25       25 0.2462747
## 26       26 0.2464694
## 27       27 0.2386760
## 28       28 0.2293119
## 29       29 0.2444276
## 30       30 0.2478640
## 31       31 0.2395130
## 32       32 0.2450517
## 33       33 0.2405479
## 34       34 0.2440757
## 35       35 0.2427335
## 36       36 0.2377422
## 37       37 0.2366844
## 38       38 0.2384143
## 39       39 0.2383060
## 40       40 0.2383364

1.3 The Mean-Variance Approach

Pontos Relevantes:

  • Podemos considerar um portfólio como superior aos demais se, para um mesmo nível de risco assumido, ele entrega maiores retornos;

  • Quanto menor a covariância de seus retornos, maior será a redução dos riscos do portfólio;

  • Em uma carteira ótima não há como reduzir a volatilidade de uma carteira sem reduzir também seu retorno esperado;

Um ponto crucial na construção de portfólios é sobre como podemos distribuir nosso capital de forma com que obtemos uma alocação ótima entre risco e retorno. Assim, para um dado retorno, deve-se determinar os pesos que minimizam seus riscos.

Minimum Variance Portfolio PMV

É a resultante da combinação dos pesos de ativos que permitem alcançar o menor risco possível dentro de um conjunto de oportunidades de investimento. Sendo o ponto inicial no qual se inicia a Fronteira Eficiente.

Desenvolvimento Teórico

A covariância de um ativo com um portfólio pode ser dada por:

\(\sigma_{k, p} = \sum_{i=1}^{N} x_{i} * \sigma_{i,k}\)

Caso de três ativos:

\(\sigma_{i_{1}, PVM} = x_{i_{1}}*\sigma_{i_{1},i_{1}} + x_{i_{2}}*\sigma_{i_{2},i_{1}} + x_{i_{3}}*\sigma_{i_{3},i_{1}}\)
\(\sigma_{i_{2}, PVM} = x_{i_{1}}*\sigma_{i_{1},i_{2}} + x_{i_{2}}*\sigma_{i_{2},i_{2}} + x_{i_{3}}*\sigma_{i_{3},i_{2}}\)
\(\sigma_{i_{3}, PVM} = x_{i_{1}}*\sigma_{i_{1},i_{3}} + x_{i_{2}}*\sigma_{i_{2},i_{3}} + x_{i_{3}}*\sigma_{i_{3},i_{3}}\)


Uma premissa importante para se encontrar o Portfólio de Variância Mínima(PMV) é de que a covariância de cada ativo da carteira com o PMV serão iguais entre si.

\(\sigma_{i_{1}, PVM}=\sigma_{i_{2}, PVM}=...=\sigma_{i_{n}, PVM}\)


Este processo é equivalente a igualarmos as covariâncias a uma constante qualquer:

\(\sigma_{i_{1}, PVM}=1\)
\(\sigma_{i_{2}, PVM}= 1\)
\(\sigma_{i_{3}, PVM} = 1\)

Substituindo na primeira equação temos que:

\(x_{i_{1}}*\sigma_{i_{1},i_{1}} + x_{i_{2}}*\sigma_{i_{2},i_{1}} + x_{i_{3}}*\sigma_{i_{3},i_{1}} = 1\)
\(x_{i_{1}}*\sigma_{i_{1},i_{2}} + x_{i_{2}}*\sigma_{i_{2},i_{2}} + x_{i_{3}}*\sigma_{i_{3},i_{2}} = 1\)
\(x_{i_{1}}*\sigma_{i_{1},i_{3}} + x_{i_{2}}*\sigma_{i_{2},i_{3}} + x_{i_{3}}*\sigma_{i_{3},i_{3}} = 1\)


Abordagem Matricial:

\(\left[\begin{array}{lll} \sigma_{i_{1},i_{1}} & \sigma_{i_{2},i_{1}} & \sigma_{i_{1},i_{1}} \\ \sigma_{i_{1},i_{2}} & \sigma_{i_{2},i_{2}} & \sigma_{i_{3},i_{2}} \\ \sigma_{i_{1},i_{3}} & \sigma_{i_{2},i_{3}} & \sigma_{i_{3},i_{3}} \end{array}\right] \times\left[\begin{array}{l} x_{i_{1}} \\ x_{i_{2}} \\ x_{i_{3}} \end{array}\right]=\left[\begin{array}{l} 1 \\ 1 \\ 1 \end{array}\right]\)


Então, os pesos do Portfólio de Mínima Variância podem ser definidos como:

\(\left[\begin{array}{l} x_{i_{1}} \\ x_{i_{2}} \\ x_{i_{3}} \end{array}\right] = \left[\begin{array}{lll} \sigma_{i_{1},i_{1}} & \sigma_{i_{2},i_{1}} & \sigma_{i_{1},i_{1}} \\ \sigma_{i_{1},i_{2}} & \sigma_{i_{2},i_{2}} & \sigma_{i_{3},i_{2}} \\ \sigma_{i_{1},i_{3}} & \sigma_{i_{2},i_{3}} & \sigma_{i_{3},i_{3}} \end{array}\right]^{-1} \times \ \left[\begin{array}{l} 1 \\ 1 \\ 1 \end{array}\right]\)

No caso de N Ativos:

\(X = \sum_{}^{-1} \times\ .1\)


Em que os pesos serão iguais ao inverso da matriz de covariâncias multiplicada por um vetor de 1’s.

Exemplo Prático

Selecionando ativos:

##      FLRY3                PETR3                CMIG4           
##  Min.   :-0.1525424   Min.   :-0.2967581   Min.   :-0.2105263  
##  1st Qu.:-0.0104083   1st Qu.:-0.0147966   1st Qu.:-0.0124297  
##  Median : 0.0000000   Median : 0.0000000   Median : 0.0003333  
##  Mean   : 0.0006533   Mean   : 0.0003745   Mean   : 0.0006835  
##  3rd Qu.: 0.0111235   3rd Qu.: 0.0147454   3rd Qu.: 0.0143538  
##  Max.   : 0.1110641   Max.   : 0.2275542   Max.   : 0.1780347  
##      VALE3                LIGT3                MULT3           
##  Min.   :-0.2452360   Min.   :-0.2439294   Min.   :-0.2238994  
##  1st Qu.:-0.0135629   1st Qu.:-0.0130725   1st Qu.:-0.0111658  
##  Median : 0.0001894   Median : 0.0000000   Median : 0.0000000  
##  Mean   : 0.0007935   Mean   : 0.0003736   Mean   : 0.0005569  
##  3rd Qu.: 0.0138403   3rd Qu.: 0.0122670   3rd Qu.: 0.0113540  
##  Max.   : 0.2135785   Max.   : 0.2925740   Max.   : 0.1730440  
##      POSI3                RENT3                IGTA3           
##  Min.   :-0.3457143   Min.   :-0.2342178   Min.   :-0.2172739  
##  1st Qu.:-0.0165289   1st Qu.:-0.0123702   1st Qu.:-0.0111652  
##  Median : 0.0000000   Median : 0.0006414   Median : 0.0000000  
##  Mean   : 0.0004755   Mean   : 0.0012113   Mean   : 0.0006139  
##  3rd Qu.: 0.0136986   3rd Qu.: 0.0142618   3rd Qu.: 0.0121096  
##  Max.   : 0.3681818   Max.   : 0.2682119   Max.   : 0.1683900  
##      PETR4                VIIA3               TIMS3           
##  Min.   :-0.2969777   Min.   :-0.315341   Min.   :-0.1477707  
##  1st Qu.:-0.0146182   1st Qu.:-0.002970   1st Qu.:-0.0118393  
##  Median : 0.0006622   Median : 0.000000   Median : 0.0000000  
##  Mean   : 0.0004365   Mean   : 0.001325   Mean   : 0.0004875  
##  3rd Qu.: 0.0145363   3rd Qu.: 0.003199   3rd Qu.: 0.0124430  
##  Max.   : 0.2222222   Max.   : 0.569038   Max.   : 0.1532534

Cálculo e peso dos ativos:

PMV <- inv(cov(retornos_exemplo)) %*% rep(1, 12)
PMV <- PMV / sum(PMV)
PMV
##              [,1]
## FLRY3  0.31609557
## PETR3 -0.03140524
## CMIG4  0.03699207
## VALE3  0.15262961
## LIGT3  0.05555349
## MULT3  0.09330689
## POSI3  0.03803834
## RENT3  0.03340352
## IGTA3  0.12356426
## PETR4 -0.05170300
## VIIA3  0.03061387
## TIMS3  0.20291061

Representação Gráfica:

Tangency Portfolio PT

O Portfólio Tangente, localizado na Fronteira Eficiente, em que haverá a maior inclinação quando construímos uma reta entre ele e o retorno do ativo livre de risco. Ou seja, será o portfólio com o maior Índice de Sharpe possível.

Índice de Sharpe (IS):

\(\frac{R_{p} - R_{f}}{\sigma_{p}}\)

Desenvolvimento Teórico:

“As relações entre o prêmio de risco (\(R_{i} - R_{f}\)) e a covariância com PT são iguais para cada um dos ativos”:


\(\frac{R_{i_{1}} - R_{f}}{\sigma_{i_{1},PT}} = \frac{R_{i_{2}} - R_{f}}{\sigma_{i_{2},PT}} = \frac{R_{i_{3}} - R_{f}}{\sigma_{i_{3},PT}}\)


Assim, é equivalente a igualarmos as expressões a uma constante qualquer:


\(\frac{R_{i_{1}} - R_{f}}{\sigma_{i_{1},PT}} =1 \Rightarrow \sigma_{i_{1}, PT} = R_{i_{1}} - R_{f}\)

\(\frac{R_{i_{2}} - R_{f}}{\sigma_{i_{2},PT}} =1 \Rightarrow \sigma_{i_{2}, PT} = R_{i_{2}} - R_{f}\)

\(\frac{R_{i_{3}} - R_{f}}{\sigma_{i_{3},PT}} =1 \Rightarrow \sigma_{i_{3}, PT} = R_{i_{3}} - R_{f}\)

Logo, utilizando o desenvolvimento do PMV:


\(x_{i_{1}}*\sigma_{i_{1},i_{1}} + x_{i_{2}}*\sigma_{i_{2},i_{1}} + x_{i_{3}}*\sigma_{i_{3},i_{1}} = R_{i_{1}} - R_{f}\)
\(x_{i_{1}}*\sigma_{i_{1},i_{2}} + x_{i_{2}}*\sigma_{i_{2},i_{2}} + x_{i_{3}}*\sigma_{i_{3},i_{2}} = R_{i_{2}} - R_{f}\)
\(x_{i_{1}}*\sigma_{i_{1},i_{3}} + x_{i_{2}}*\sigma_{i_{2},i_{3}} + x_{i_{3}}*\sigma_{i_{3},i_{3}} = R_{i_{3}} - R_{f}\)


Matricialmente:


\(\left[\begin{array}{lll} \sigma_{i_{1},i_{1}} & \sigma_{i_{2},i_{1}} & \sigma_{i_{1},i_{1}} \\ \sigma_{i_{1},i_{2}} & \sigma_{i_{2},i_{2}} & \sigma_{i_{3},i_{2}} \\ \sigma_{i_{1},i_{3}} & \sigma_{i_{2},i_{3}} & \sigma_{i_{3},i_{3}} \end{array}\right] \times\left[\begin{array}{l} x_{i_{1}} \\ x_{i_{2}} \\ x_{i_{3}} \end{array}\right]=\left[\begin{array}{l} R_{i_{1}} - R_{f} \\ R_{i_{2}} - R_{f} \\ R_{i_{3}} - R_{f} \end{array}\right]\)


E, finalmente, os pesos podem ser definidos como:


\(\left[\begin{array}{l} x_{i_{1}} \\ x_{i_{2}} \\ x_{i_{3}} \end{array}\right] = \left[\begin{array}{lll} \sigma_{i_{1},i_{1}} & \sigma_{i_{2},i_{1}} & \sigma_{i_{1},i_{1}} \\ \sigma_{i_{1},i_{2}} & \sigma_{i_{2},i_{2}} & \sigma_{i_{3},i_{2}} \\ \sigma_{i_{1},i_{3}} & \sigma_{i_{2},i_{3}} & \sigma_{i_{3},i_{3}} \times \end{array}\right]^{-1} \times \ \left[\begin{array}{l} R_{i_{1}} - R_{f} \\ R_{i_{2}} - R_{f} \\ R_{i_{3}} - R_{f} \end{array}\right]\)


Para N ativos:

\(X = \sum_{}^{-1} \times\ .Risk\ Premium \ Vector\)

Exemplo Prático

Selecionando ativos:

##      FLRY3                PETR3                CMIG4           
##  Min.   :-0.1525424   Min.   :-0.2967581   Min.   :-0.2105263  
##  1st Qu.:-0.0104083   1st Qu.:-0.0147966   1st Qu.:-0.0124297  
##  Median : 0.0000000   Median : 0.0000000   Median : 0.0003333  
##  Mean   : 0.0006533   Mean   : 0.0003745   Mean   : 0.0006835  
##  3rd Qu.: 0.0111235   3rd Qu.: 0.0147454   3rd Qu.: 0.0143538  
##  Max.   : 0.1110641   Max.   : 0.2275542   Max.   : 0.1780347  
##      VALE3                LIGT3                MULT3           
##  Min.   :-0.2452360   Min.   :-0.2439294   Min.   :-0.2238994  
##  1st Qu.:-0.0135629   1st Qu.:-0.0130725   1st Qu.:-0.0111658  
##  Median : 0.0001894   Median : 0.0000000   Median : 0.0000000  
##  Mean   : 0.0007935   Mean   : 0.0003736   Mean   : 0.0005569  
##  3rd Qu.: 0.0138403   3rd Qu.: 0.0122670   3rd Qu.: 0.0113540  
##  Max.   : 0.2135785   Max.   : 0.2925740   Max.   : 0.1730440  
##      POSI3                RENT3                IGTA3           
##  Min.   :-0.3457143   Min.   :-0.2342178   Min.   :-0.2172739  
##  1st Qu.:-0.0165289   1st Qu.:-0.0123702   1st Qu.:-0.0111652  
##  Median : 0.0000000   Median : 0.0006414   Median : 0.0000000  
##  Mean   : 0.0004755   Mean   : 0.0012113   Mean   : 0.0006139  
##  3rd Qu.: 0.0136986   3rd Qu.: 0.0142618   3rd Qu.: 0.0121096  
##  Max.   : 0.3681818   Max.   : 0.2682119   Max.   : 0.1683900  
##      PETR4                VIIA3               TIMS3           
##  Min.   :-0.2969777   Min.   :-0.315341   Min.   :-0.1477707  
##  1st Qu.:-0.0146182   1st Qu.:-0.002970   1st Qu.:-0.0118393  
##  Median : 0.0006622   Median : 0.000000   Median : 0.0000000  
##  Mean   : 0.0004365   Mean   : 0.001325   Mean   : 0.0004875  
##  3rd Qu.: 0.0145363   3rd Qu.: 0.003199   3rd Qu.: 0.0124430  
##  Max.   : 0.2222222   Max.   : 0.569038   Max.   : 0.1532534

Cálculo e peso dos ativos:

PT <- inv(cov(retornos_exemplo)) %*% (colMeans(retornos_exemplo - retornos$Risk_free))
PT <- PT / sum(PT)
PT
##              [,1]
## FLRY3  0.22328890
## PETR3 -0.87657431
## CMIG4  0.27404569
## VALE3  0.42852340
## LIGT3 -0.41557739
## MULT3 -0.29910090
## POSI3 -0.07839269
## RENT3  1.01040018
## IGTA3  0.10372389
## PETR4  0.38598887
## VIIA3  0.36524936
## TIMS3 -0.12157498

Representação Gráfica:

Strategy BackTest

Minimum Variance Portfolio

Para o backtest da estratégia de Mínima Variância, a amostra será dividida em 11 partes semelhantes, cada uma com aproximadamente um ano. A primeira parte da amostra será utilizada para a estimação dos parâmetros e obtenção dos pesos dos ativos, sendo estes pesos testados na amostra seguinte e assim por diante.

Retornos Obtidos:

Tangency Portfolio

O processo de amostras e estimação dos parâmetros será feito de forma semelhante ao PMV.

Resultados obtidos:

2.0 Capital Asset Pricing Model - CAPM

2.1 Resumo Teórico

O Modelo de Precificação de Ativos de Capital foi desenvolvido, de forma independente, por Treynor(1962)1, Sharpe(1964)2, Lintner(1965)3 e Mossin(1966)4. Sua ideia central é de que o desvio padrão dos retornos não é uma medida apropriada de risco para alocadores que possuem carteiras diversificadas, assim, o que interessaria no processo de gestão de carteiras seria a contrinuição individual de cada ativo para o risco do portfólio.

Assim, toda alocação possui dos riscos distintos, sendo o primeiro deles risco de mercado, ou sistêmico, que é relacionado ao beta (\(\beta\)), que por sua vez representa a mudança percental esperada no retorno em excesso de um título para uma alteração marginal no retorno em excesso da carteira de mercado. O segundo seria o risco idiossincrático, que está relacionado às características específicas de cada ativo, como as operações de uma empresa por exemplo.

Como suposições relevantes temos que investidores podem comprar e vender todos os títulos por preços de mercado, sem custos e impostos, podem emprestar e tomar emprestado recursos pela taxa livre de risco, investidores mantem carteiras eficientes e possuem expectativas racionais e homogêneas.


\(R_{i} - R_{free} = \alpha_{i} + \beta \times (R_{M} - R_{free} )\)


\(\beta_{i} = \frac{COV(i, M)}{\sigma^2_{M}}\)


\(\beta_{p} = \frac{COV(p, M)}{\sigma^2_{M}} = \sum_{i}^Nx_{i}*\beta_{i}\)


2.2 Aplicações Práticas

Estimando o Beta

Podemos estimar o beta dos ativos via regressão linear:

*Destaca-se que em retornos5Y$Market já está descontada a taxa livre de risco.

lmITSA <- lm(retornos5Y$ITSA4 ~ retornos5Y$Market)
summary(lmITSA)
## 
## Call:
## lm(formula = retornos5Y$ITSA4 ~ retornos5Y$Market)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.058363 -0.006754 -0.000494  0.006116  0.056061 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.0003427  0.0003073   1.115    0.265    
## retornos5Y$Market 1.0410285  0.0191300  54.419   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01141 on 1378 degrees of freedom
## Multiple R-squared:  0.6824, Adjusted R-squared:  0.6822 
## F-statistic:  2961 on 1 and 1378 DF,  p-value: < 2.2e-16

Construindo uma carteira de ativos

Temos que o retorno esperado de um ativo está diretamente relacionado ao seu \(\beta\), assim, é de se esperar que ativos com maiores exposições ao risco de mercado tendem a ter, em termos absolutos, retornos mais elevados. Testemos essa hipótese:

Primeiramente, estima-se o \(\beta\) dos ativos em um período de aproximadamente 5 anos, alguns exemplos:

##     ALPA4     ABEV3     AMER3     B3SA3     BPAN4     BRML3     BBDC3     BBDC4 
## 0.6667435 0.6337616 1.0674042 1.3047510 0.6328531 1.0114412 1.2202014 1.2919509 
##     BRAP4     BBAS3     BRKM5     BRFS3     CCRO3     CMIG4     CESP6 
## 1.2115369 1.3478420 1.0418910 0.7143788 0.7776633 0.7708803 0.7986857

Ativos selecionados e respectivos betas:

##           [,1]
## ELET3 1.145733
## VALE3 1.145817
## BRAP4 1.211537
## BBDC3 1.220201
## GGBR4 1.222677
## MRFG3 1.228670
## GOAU4 1.228942
## JBSS3 1.268152
## CYRE3 1.291095
## BBDC4 1.291951
## B3SA3 1.304751
## ITUB4 1.306363
## USIM5 1.316104
## ITSA4 1.316852
## BBAS3 1.347842
## CSNA3 1.392312
## MRVE3 1.394542
## GOLL4 1.449645
## PETR4 1.583071
## PETR3 1.600423
##              [,1]
## VIIA3  0.01465542
## TAEE11 0.17115588
## EQTL3  0.39174424
## FLRY3  0.39628650
## VIVT3  0.41499500
## EGIE3  0.43537733
## TOTS3  0.47195407
## WEGE3  0.48780251
## RADL3  0.54195096
## TASA4  0.57180558
## CIEL3  0.58912105
## YDUQ3  0.59460612
## ENBR3  0.59561580
## SULA11 0.59624998
## BEEF3  0.60142013
## PSSA3  0.61548367
## EMBR3  0.63128013
## BPAN4  0.63285312
## ABEV3  0.63376156
## ALPA4  0.66674353

Strategy Backtest

Os ativos selecionados serão testados pelo próximo período disponível na amostra. Todos os ativos terão o mesmo peso inicial em nossa carteira e não serão rebalanceados.

3.0 Fama-French-Cahart Four-Factor Model

3.1 Resumo Teórico

O modelo tradicional de precificação, abordado no tópico superior a este, utiliza somente os retornos do mercado para explicar os retornos dos ativos individuais ou de um portfólio como um todo. Assim, Fama e French adicionam novos fatores de risco que poderiam ajudar a explicar o desempenho de ativos de risco, sendo o primeiro deles o fator Small-minus-Big (que refletiria a capitalização de mercado de um ativo) e o fator High-minus-Low (que faz referência ao fator das ações de Valor). Depois Cahart adiciona o fator de risco Winning-minus-Losing (ações que estão performando bem tendem a performar bem e vice-versa).


\(R_{i} - R_{f} = \beta_{1}(R_{m} - R_{f}) + \beta_{2}SMB + \beta_{3}HML + \beta_{4}WML\)

3.2 Aplicabilidade

Voltando em nosso primeiro exemplo, no qual foi realizada a regressão linear dos retornos da ação ITSA4 contra os retornos do mercado. Obtivemos um \(R^2\) de aproximadamente 68%, isto é, 68% dos retornos do ativo foram explicados pelos retornos do Ibovespa em excesso. Utilizando os retornos dos fatores de risco, calculados e publicados pela NEFIN, iremos observar se o novo modelo terá maior poder explicativo.

lmITSA <- lm(retornos5Y$ITSA4 ~ retornos5Y$Market + retornos5Y$HML + retornos5Y$SMB + retornos5Y$WML)
summary(lmITSA)
## 
## Call:
## lm(formula = retornos5Y$ITSA4 ~ retornos5Y$Market + retornos5Y$HML + 
##     retornos5Y$SMB + retornos5Y$WML)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.043875 -0.006539 -0.000250  0.006313  0.047354 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        0.0004218  0.0002939   1.435    0.152    
## retornos5Y$Market  1.0337342  0.0188188  54.931  < 2e-16 ***
## retornos5Y$HML     0.2240792  0.0404465   5.540 3.62e-08 ***
## retornos5Y$SMB    -0.2897727  0.0362283  -7.999 2.65e-15 ***
## retornos5Y$WML    -0.2263837  0.0295646  -7.657 3.56e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01089 on 1375 degrees of freedom
## Multiple R-squared:  0.7114, Adjusted R-squared:  0.7105 
## F-statistic: 847.2 on 4 and 1375 DF,  p-value: < 2.2e-16

Percebemos que, de fato, há um aumento no poder explicativo do nosso novo modelo, que agora é de 71,05%.

3.3 Histórico dos Retornos no Brasil

Segue exposto o histórico de retorno dos fatores de risco no Brasil.

4.0 Realização de Backtests de outras estratégias quantitativas

Nesse momento final, serão testadas e expostas estratégias quantitativas diversas, sendo que todas elas serão também brevemente explicadas nos tópicos abaixo.

4.1 Naive Investment

O portfólio ingênuo corresponde ao investimento com pesos iguais e será utilizado para avaliar o desempenho de outras técnicas de alocação.

Retorno caso fossem aplicados 1/70 do nosso patrimônio nas 70 ações utilizadas nesse trabalho (lista de ativos disponível no final):

4.2 Portfólio de Variância Mínima Global

É encontrado a partir das estimativas de riscos e correlações dos ativos. Deve-se minimizar a volatilidade do portfólio:


\(\sigma_{p} = (W'.C.W)^\frac{1}{2}\)

\(W_{VM} = C^{-1}.1s\)

  • W = Vetor de Pesos
  • C = Matriz de Covariâncias
  • 1s = Vetor de 1’s

Neste caso, utilizaremos o período de 2010 a 2015 para a estimação da matriz de covariâncias. Serão utilizados todos os ativos disponíveis na base de retornos exposta ao final.

4.3 Volatility Timing

A estratégia de Volatility Timing pode ser obtida por cálculos simples, não utilizando a matriz de covariâncias, otimizações e não gerando pesos negativos. Para se chegar nos pesos desejados dos ativos serão utilizados somente a variância e um parâmetro que irá expressar a agressividade do investidor.

\(w V T_{i}=\frac{\left(\frac{1}{\sigma_{i}^{2}}\right)^{\eta}}{\sum_{i=1}^{N}\left(\frac{1}{\sigma_{i}^{2}}\right)^{\eta}}\)

  • \(\eta\) é a medida de agressividade do investidor

  • Quando \(\eta \rightarrow \infty\) o ativo com menor variância tenderá a ter peso 1


Semelhante ao portfólio de Variância Mínima Global, o período de 2010 a 2015 será utilizado para a estimação dos parâmetros e o restante da amostra para avaliar a performance. Também vamos considerar \(\eta\) = 4

4.4 Otimização por CVaR

Também chamado de Expected Short Fall, o Valor em Risco Condicional é uma medida univariada de risco da carteira. Seria superior ao Valor em Risco tradicional por suas propriedades matemáticas, é mais conservador do que o VaR e, também, o CVaR é um concorrente ao desvio padrão como medidas de risco dos ativos.


\(\mathrm{CVaR}_{\alpha}(X)=\operatorname{VaR}_{\alpha}(X)+\frac{1}{\alpha} E\left[\left(X-\operatorname{VaR}_{\alpha}(X)\right)^{+}\right]\)

  • X é uma v.a. que apresenta retornos negativos
  • VaR de X com uma medida de confiança de \(1 - \alpha\)


Assim, o CVaR é a média de todos os valores que excederem o VaR em termos contínuos:


\(\operatorname{CVaR}_{\alpha}(X)=\frac{1}{\alpha} \int_{0}^{\alpha} \operatorname{VaR}_{s}(X) d s]\)

*Para a exposição dos retornos da estratégia serão selecionados 10 ativos de forma aleatória, uma vez que há grande consumo de capacidade computacional para a otimização.

set.seed(15)
.storage <- new.env()
out <- optimize.portfolio(R=retornos_ts, portfolio=ObjSpec,
  optimize_method="DEoptim", search_size=2000,
  traceDE=5, itermax=50, trace=TRUE)
print(out)
## ***********************************
## PortfolioAnalytics Optimization
## ***********************************
## 
## Call:
## optimize.portfolio(R = retornos_ts, portfolio = ObjSpec, optimize_method = "DEoptim", 
##     search_size = 2000, trace = TRUE, traceDE = 5, itermax = 50)
## 
## Optimal Weights:
## TAEE11  TASA4  VIVT3  TIMS3  TOTS3  USIM5  VALE3  VIIA3  WEGE3  YDUQ3 
##  0.328  0.008  0.032  0.024  0.006  0.008  0.004  0.458  0.072  0.060 
## 
## Objective Measures:
##    CVaR 
## 0.01264
out$weights
## TAEE11  TASA4  VIVT3  TIMS3  TOTS3  USIM5  VALE3  VIIA3  WEGE3  YDUQ3 
##  0.328  0.008  0.032  0.024  0.006  0.008  0.004  0.458  0.072  0.060

5.0 Final

Agradeço a todos que leram o trabalho! Estou sempre aberto à sugestões e modificações, uma vez que este documento pode ser alterado de tempos em tempos, estou disponível no Linkedin. Gostaria também de deixar um agradecimento especial ao meu amigo Pedro Teles que ajudou no desenvolvimento de alguns algoritmos aqui presentes enquanto estudávamos juntos.





Lista de Ativos:
names(retornos[,-c(1:9)])
##  [1] "ALPA4"  "ABEV3"  "AMER3"  "B3SA3"  "BPAN4"  "BRML3"  "BBDC3"  "BBDC4" 
##  [9] "BRAP4"  "BBAS3"  "BRKM5"  "BRFS3"  "CCRO3"  "CMIG4"  "CESP6"  "HGTX3" 
## [17] "CIEL3"  "CPLE6"  "CSAN3"  "CPFE3"  "CYRE3"  "DXCO3"  "ELET3"  "ELET6" 
## [25] "EMBR3"  "ENBR3"  "ENEV3"  "EGIE3"  "EQTL3"  "EZTC3"  "FLRY3"  "GGBR4" 
## [33] "GOAU4"  "GOLL4"  "NTCO3"  "HYPE3"  "IGTA3"  "ITSA4"  "ITUB4"  "JBSS3" 
## [41] "JHSF3"  "LIGT3"  "RENT3"  "LAME3"  "LAME4"  "LREN3"  "MRFG3"  "BEEF3" 
## [49] "MRVE3"  "MULT3"  "PETR3"  "PETR4"  "PSSA3"  "POSI3"  "RADL3"  "RAPT4" 
## [57] "SBSP3"  "SANB11" "CSNA3"  "SULA11" "TAEE11" "TASA4"  "VIVT3"  "TIMS3" 
## [65] "TOTS3"  "USIM5"  "VALE3"  "VIIA3"  "WEGE3"  "YDUQ3"

  1. TREYNOR, Toward a Theory of Market Value of Risky Assets↩︎

  2. SHARPE, Capital Asset Prices: A theory of market equilibrium under conditions of risk↩︎

  3. LINTNER, Security Prices, Risk, and Maximal Gains from Diversification↩︎

  4. MOSSIN, Equilibrium in a Capital Asset Market↩︎