M A R K O W I T Z : T E O R I A D O
PORTFÓLIO COM ESTIMATIVAS
EMPÍRICAS NO PROGRAMA R
CÉSAR BERGO
1GETÚLIO PERNAMBUCO
21. Objetivos
A teoria da média-variância de Markowitz será deduzida teoricamente para ativos e a sua aplicação empírica se fará com as informações de preços das ações da Bolsa de Valores, B3. Os modelos teóricos desenvolvidos serão estimados empiricamente para o cálculo dos portfólios ótimos da fronteira eficiente de Markowitz. O pacote estatístico R, software livre, de ampla utilização no meio acadêmico e profissional, será utilizado para as estimativas empíricas dos modelos. A página oficial desse software pode ser acessada no seguinte endereço da internet: https://www.r-project.org.
Com a codificação do programa do “R for Statistical Computing”, pretende-se testar se as carteiras sugeridas, semanalmente, por algumas corretoras, estão maximizando os retornos esperados ou minimizando os riscos. Além disso, serão testadas se as participações percentuais das ações nos portfólios estão de acordo com o que a teoria de Markowitz sugere.
São utilizados valores diários dos preços de algumas ações selecionadas mas, os portfólios analisados não são recomendações de investimentos. A teoria e as codificações de programação do R Statistics, aqui apresentadas, podem ser utilizadas pelos investidores para analisarem as suas próprias carteiras de investimentos. Podemos dizer que o maior objetivo deste artigo é didático e informativo.
O leitor, ao concluir o estudo deste trabalho, estará apto a: 1. Entender a teoria de Markowitz;
2. Calcular portfólios ótimos de acordo com a teoria de Markowitz;
3. Utilizar o programa estatístico R para fazer estimativas empíricas de portfólios; 4. Analisar as carteiras sugeridas pelas corretoras.
n
Economista, Presidente do Conselho Regional de Economia do Distrito Federal, Sociólogo, Mestre em Finanças e Especialista em
1
Administração Estratégica e Governança Corporativa pela FIA/USP, Professor do Mackenzie BSB. Colaborador.
Economista, Mestrado em Economia pelo CAEN (créditos), Especialista em Matemática para Economia e Administração (UnB).
2. A Fronteira Eficiente de Markowitz
O trabalho seminal de Markowitz alicerçou a teoria econômica no campo dos ativos de risco e o alçou a receber o merecido prêmio Nobel de Economia em 1990, marcando para sempre a forma de analisar os investimentos de riscos.
Até então, a teoria subjacente aos investimentos em ativos de risco estabelecia que o valor de uma ação deveria ser igual ao valor presente do fluxo futuro dos dividendos. Como o valor dos dividendos é incerto, deveria ser substituído pelo valor esperado dos dividendos. Mesmo com essa substituição, ea teoria afirmava que o investidor deveria escolher apenas uma única ação que lhe pagasse o maior dividendo para obter o maior valor presente desse ativo. Mas a falha dessa teoria é desprezar o papel do risco e da diversificação na formação da carteira. Dessa escuridão veio Markowitz que lançou as luzes para a análise de forma objetiva para a formação de portfólios com ativos de risco.
A certeza do retorno foi substituída pela espectância do retorno. Assim a teoria da probabilidade toma corpo na nova teoria. Os fundamentos microeconômicos tradicionais já não atendem a exigência da nova teoria. A maximização da utilidade sujeita à restrição orçamentária deu lugar à otimização do valor esperado sujeito ao risco, mensurado pela variância, ou a sua raiz quadrada - desvio padrão - é usado para mensurar o grau de incerteza em relação à rentabilidade esperada.
Com essa nova teoria é possível analisar as carteiras de investimentos com riscos e decidir, de forma objetiva, quais as melhores escolhas de ativos entre as diversas alternativas.
Markowitz provou que a maximização do retorno esperado, sujeito a um nível de risco, é um problema dual equivalente a minimizar o risco de um portfólio, sujeito à um nível pré-determinado de retorno esperado.
Com essa premissa, a solução do problema da escolha do portfólio ótimo conduz à formação da fronteira eficiente de Markowitz, que mostra as melhores combinações de ativos considerando o melhor trade-off entre o retorno esperado e o risco. Essa fronteira também ficou conhecida na literatura internacional como “Markowitz Bullet”.
Graficamente e de forma didática, a fronteira eficiente é representada por uma hipérbole no plano cartesiano, tendo no eixo da abcissa o risco e no eixo da ordenada o retorno esperado.
A fronteira eficiente começa a partir do portfólio de risco mínimo, ponto quadriculado verde, e segue em toda a linha pontilhada azul. Nos pontos abaixo da curva temos portfólios ineficientes no sentido de que é possível obter níveis de retornos maiores com o mesmo risco. No ponto acima da curva tem-se um portfólio inatingível pois os ativos em análise não permitiriam obter aquele nível de retorno para um dado nível de variância.
Figura 1: Fronteira Eficiente de Markowitz.
3. Cálculos dos Retornos das Ações
A ação é um ativo de renda variável representativa de uma fração do capital social das sociedades anônimas. Quando se compra uma ação espera-se um retorno sobre o capital investido. O retorno de uma ação é composto do ganho de capital, ou seja, da valorização do preço da ação no tempo, e da parcela dos lucros distribuído pelas empresas aos seus acionistas na forma de dividendos e dos juros sobre capital próprio.
Conforme Markowitz , “The process of selecting a portfolio may be divided into two 3
stages. The first stage starts with observation and experience and ends with beliefs about the future performances of available securities. The second stage starts with the relevant beliefs about future performances and ends with the choice of portfolio.” No presente 4
artigo, desenvolvemos os modelos teóricos de otimização de portfólio e os estimamos utilizando o R Statistics, ou seja, estamos interessado no segundo estágio que é a escolha e a avaliação de portfólio de acordo com Markowitz.
Markowitz, Harry.,Portfolio Selection. The Journal of Finance, Vol.7, n◦. 1. Mar.,1952. Este artigo lançou os fundamentos da análise
3
moderna de portfólio, o que lhe conferiu o Prêmio Nobel de economia em 1990.
“O processo de seleção de um portfólio pode ser dividido em duas etapas. A primeira etapa começa com a observação e a experiência e
4
termina com as crenças sobre o desempenho futuro dos títulos disponíveis. A segunda etapa começa com as crenças relevantes sobre os desempenhos futuros e finaliza com a escolha do portfólio”(tradução livre pelos autores).
Como o retorno de uma ação não tem valor predeterminado, segue que é uma variável aleatória com expectância, ou valor esperado, definido por: 5
(1)
(2) Sendo:
•
expectância do retorno esperado, em termos unitários, para o período t;•
dividendos e juros sobre o capital próprio, por ação, distribuídos aos acionistas no período t.•
preço da ação no período t-1.A equação (1) representa o índice do retorno discreto, no período t, da compra de uma ação realizada em t-1. Esse índice é composto dos dividendos e dos juros sobre capital próprio e do ganho de capital - variação do preço da ação no período considerado - dividido pelo preço de compra da ação.
A equação (2) é o retorno esperado em termos unitário. Para transformá-lo em retorno percentual, basta multiplicar o resultado dessa equação por 100. Esse retorno também é denominado de retorno simples ou retorno bruto.
Aplicando o logaritmo de base na equação (1), obtemos o índice do retorno em termos contínuo, definido pela equação (3).
(3)
O log retorno, em termos unitário, é obtido empregando-se a equação (4). Para transformá-lo em termos percentuais, basta multiplicá-lo por 100.
(4)
Para um certo período de tempo, temos que calcular a agregação temporal dos retornos. Na média, a quantidade de dias úteis mensais na Bolsa é de 21 dias.
No caso discreto, a agregação temporal, considerando a equação (1), para o período t=0 a t=k, é calculado pelo probatório:
E(Rt) = PDt t−1 + Pt− Pt−1 Pt−1 = E(Rt+ 1) = Dt Pt−1 + Pt Pt−1
E(R
t) =
D
P
t+ P
t t−1− 1
E(R
t) =
D
t=
P
t−1=
e
E(ln(R
t+ 1)) = ln
(
D
P
t+ P
t t−1)
E(exp(ln(R
t+ 1))) = exp ln
(
D
P
t+ P
t t−1)
− 1
Uma variável aleatória X, em um espaço de probabilidade (Ω,A,P), é uma função real definida no espaço amostral Ω tal que [X ≤ x] é
5
evento aleatório para todo x ∈ R, ou seja, X : Ω → R é uma variável aleatória com domínio em Ω e contradomínio em R se [X ≤ x] ∈ A com ∀x ∈ R. Para maiores detalhes consulte James, Barry R., Probabilidade: um curso em nível intermediário. 3a.ed. Rio de Janeiro, IMPA, 2006.
(5)
Perceba que a obtenção do retorno a partir das informações dos preços, por exemplo, , perde-se uma informação pois não é possível calcular o retorno em .
No caso contínuo, a agregação temporal, considerando a equação (3), para o período t=0 a t=k, é fornecida pelo somatório, conforme equação (6).
(6)
As oscilações das cotações da ações nas bolsas ocorrem a cada fração de segundo. Para se comparar os retornos das ações, temos que calcular a equivalência dos retornos no tempo.
Para o caso discreto, considerando k a quantidade de retornos num período, por exemplo de um mês, o retorno equivalente diário é calculado por:
(7)
Para o caso contínuo, calcula-se a média aritmética dos log retornos e depois eleva-se à exponencial, conforme equação (8).
(8)
Até agora, foram apresentados os retornos em termos nominais, sem considerar o efeito inflacionário no período. Se a inflação é elevada ou se o período analisado é longo, devem-se calcular os retornos em termos reais.
Seja o índice da inflação no período, representado, por exemplo, pelo INPC. Então . Para obtermos os retornos em termos reais dividimos as equações (1) e (3) por .
Em quais situações devemos calcular os retornos discretos ou log retornos? Quando não havia computadores, os cálculos em logaritmos eram simplificados. Com os pacotes estatísticos disponíveis para uso nos computadores, tanto faz escolher um ou outro método já que , para variações pequenas de preços, os log retornos convergem para os retornos discretos.
No box 1 são descritos os códigos no R para calcular os retornos que foram deduzidos nessa parte do artigo.
E(R
1+ 1)E(R
2+ 1)…E(R
k+ 1) = E
[
t=k∏
t=1(R
t+ 1)
]
− 1
(1 + R
t=1) = P
1/P
0t = 0
E(ln(R
t=1+ 1)) + E(ln(R
t=2+ 1)) + … + E(ln(R
t=k+ 1))
= exp
[
E
t=k∑
t=1ln(R
t+ 1)
]
E(R
t) = E
[
∏
t=k t=1(R
t+ 1)
]
1/k− 1
E(R
t) = exp
E ∑
t=k t=1ln(R
t+ 1)
k
− 1
1 + π
t1 + π
t= INPC
t/INPC
t−11 + π
tBOX 1
Programação dos Retornos no R
O sinal de # indica informações sobre o comando na linha de programação do R. Informações inseridas após esse sinal não interferem nos cálculos do programa. Após o sinal > são escritas as programações no R.
#Pacotes utilizados >library(fPortfolio) >library(quantmod) >library(fBasics)
#Buscando informações das cotações das ações na Internet
>iniciodata<-as.Date("2011-05-02")#início das informações da MGLU3 >fimdata<-as.Date("2020-12-31")
>cotacoes<-c("PETR4.SA","MGLU3.SA","ITUB4.SA")
>na.omit(getSymbols(cotacoes,from=iniciodata, to=fimdata))
#Calculando os retornos discretos mensais. Se quiser retornos diários basta substituir par dailyReturn.
PETR4<-monthlyReturn(Ad(PETR4.SA),-1)#O -1 exclui a primeira informação que é zero no cálculo do retorno
MGLU3<-monthlyReturn(Ad(MGLU3.SA),-1) ITUB4<-monthlyReturn(Ad(ITUB4.SA),-1) #Calculando os log retornos.
>logPETR4<-returns(PETR4.SA$PETR4.SA.Adjusted, method="continuous")[-1]
#calcula o log retorno. Os métodos podem ser:”discrete” para calcular o retorno discreto ou “continuous" para calcular o retorno em termos logaritmos. Quando não especificado, o programa calcula o retorno discreto. Aqui no trabalho preferimos usar o método discreto pela facilidade de uso.
Podemos calcular o log retorno, também, com o seguinte comando:
>lnPETR4<-dailyReturn(Ad(PETR4.SA), type="log",leading=TRUE) [-1]#calcula o log retorno. O comando leading=TRUE considera o cálculo mensal para períodos incompletos, ou seja, mesmo que tenha, por exemplo, 5 informações no mês, ele considera essas 5 informações para fazer o cálculo mensal.
#Para exibir os 6 valores iniciais dos retornos calculados fazemos o seguinte comando:
>head(PETR4)
>PETR4#exibe toda a série calculada, no caso são 2.397 informações.
4. A Expectância e a Variância dos Retornos
A forma de como os retornos se distribuem em torno da sua média tem uma importância crucial na teoria de Markowitz. As decisões nas escolhas das ações e as formações de portfólios só são possíveis caso os retornos tenham a mesma função de distribuição para que as médias e os desvios padrões sejam comparáveis.
Dessa forma, se a ação tem retorno maior, , e risco menor, , representado pelo desvio padrão, do que a ação , , e , logo é preferível a , considerando o comportamento racional do investidor. Essa e outras preferências do investidor podem ser representadas por: 6
•
neste caso, é estritamente preferível a ;•
é preferível ou equivalente a ;•
é equivalente a ;•
é indiferente a .A teoria da escolha envolvendo risco, baseada na análise média-variância, tem sua beleza na simplicidade de aplicação, mas paga um preço alto ao se contrapor ao comportamento racional esperado de um investidor propenso ou avesso ao risco. 7
A utilização dos retornos no lugar dos preços das ações tem a sua conveniência estatística. Enquanto os preços podem apresentar tendência e, em geral, não são estacionários, os retornos apresentam qualidades estatísticas para as suas estimativas empíricas. 8
Em linhas gerais, espera-se que os retornos sejam estacionários, não correlacionados e identicamente distribuídos em torno da sua média, com variância aproximadamente constante. Com essas características, a média e a variância são suficientes para identificar a sua função de distribuição que, no caso dos retornos das ações, podem ser representados pela distribuição normal, após realizar teste de normalidade. 9
X1
E(R
X1)
σ
X1X2 E(R
X2) σ
X2X1
X2
X1 ≻ X2 :
X1
X2
X1 ⪰ X2 : X1
X2
X1 ≃ X2 : X1
X2
X1 ∼ X2 : X1
X2
Para um tratamento axiomático das preferências e regras de decisão, consultar, Mas-Colell, Andreu, Whinston, Michael D. e Green,
6
Jerry R, Microeconomic Theory. Oxford University Press, New York, 1995.
Para uma abordagem profunda sobre o caso, consultar Simonsen, Mário Henrique, A Teoria da Escolha Envolvendo Risco, capítulo IX,
7
in Dinâmica Macroeconômica. São Paulo: McGraw-Hill do Brasil, 1983.
Para uma discussão do assunto, consultar: Morettin, Pedro A. Econometria Financeira. São Paulo: Blucher, 2008.
8
Veja no Anexo 1 o teste de normalidade de Jarque-Bera.
Os preços, figura 2, têm comportamentos bem distintos em relação aos seus respectivos retornos, figura 3. As cotações da ação preferencial da Petrobras apresentam tendência de crescimento enquanto que os seus retornos oscilam em torno de uma média.
Figura 2: Cotações da ação da Petrobras PETR4, janeiro/2020 a março/2021. Figura 2. Cotações diária, R$/ação, Janeiro/2020 a março/2021.
Figura 3: Retornos da ação da Petrobras PETR4, janeiro/2020 a março/2021.
O retorno de uma ação é tratada como uma variável aleatória. Assume valores positivos e negativos e não é de conhecimento prévio. Podemos dizer, simplificadamente, que uma variável aleatória é um número ou um símbolo que representa o resultado de um experimento e que podemos lhe atribuir uma probabilidade de ocorrência.
Formalmente, seja uma variável aleatória que representa o retorno esperado de um portfólio , num espaço amostral , com contradomínio finito, ou seja, . Se, para cada retorno de , atribuirmos a sua probabilidade como , representado por , teremos um espaço de probabilidade . Essa função é chamada de função de distribuição de probabilidade de , no caso em que é uma variável aleatória contínua. Será chamada de função de probabilidade, se for uma variável discreta.
A média ou a expectância da variável aleatória , representados por ou tem a seguinte definição:
(9)
(10)
A equação (9) é a definição de expectância do retorno aleatório, utilizada para as variáveis discretas, e representa a média dos retornos ponderados pela sua probabilidade.
Já a equação (10) é a definição de expectância do retorno aleatório, utilizada para as variáveis contínuas, e representa a média dos retornos ponderados pela sua função de distribuição de probabilidade.
A função de distribuição e a função de probabilidade satisfazem as seguintes condições:
•
;•
.A primeira condição apenas estabelece que não existe probabilidade negativa e a segunda condição afirma que a soma de todas as probabilidades do espaço amostral é a unidade, ou seja, a certeza de ocorrência do evento.
As definições teóricas de expectância fornecidas pela teoria estatística e representadas pelas equações (9) e (10) podem muito bem serem transformadas em retornos ponderados pelos recursos aplicados em cada ativo. Como os retornos são variáveis aleatórias e sendo o percentual do recurso total , aplicado no ativo i, podemos representar o retorno esperado do portfólio por:
R
pp
S
R
p(S) = r
1, r
2, . . . , r
nr
iR
p(S)
P(R
p= r
i)
f (r
i)
(S, R
p, f (r
i))
P(R
p= r
i) = f (r
i)
R
pR
p(R
p)
μ
RpE(R
p)
μ
Rp= E(R
p) = r
1+ r
2+ . . . + r
n=
∑
n i=1r
if (r
i)
μ
Rp= E(R
p) = r
1+ r
2+ . . . + r
n= ∫
n i=1r
if (r
i)dr
f (r
ni) ⩾ 0
∑
i=1f (r
i) = 1
w
iW
(11)
Neste caso, é óbvio que , ou seja, a soma dos pesos é 1 e representa a totalidade dos recursos aplicados no portfólio.
Calculada a média do retorno pela equação (11), falta-nos calcular a variância do retorno do portfólio para que essas duas variáveis caracterizem a função de distribuição associada aos retornos.
Por definição, a variância de uma variável aleatória é a soma dos desvios ao quadrado em relação à média, ou seja, mensura a dispersão que a variável tem em relação a sua média e é representada, teoricamente, por:
(12)
Desenvolvendo (12) e usando a definição (9) de que , obtemos o seguinte resultado para a variância:
(13)
Calculada a variância, basta extrair a sua raiz quadrada para obtermos o desvio padrão, que indica o grau de incerteza em relação à rentabilidade, isto é:
(14)
Como um portfólio é composto por ativos, devemos estender o conceito de variância. Considerando inicialmente um portfólio , constituído de dois ativos com retornos e , e aplicando-se os recursos e , temos a seguinte definição de variância para o portfólio:
(15)
Desenvolvendo o quadrado da expressão (15), obtemos a seguinte equação para a variância do portfólio:
(16)
Deduzimos, pela equação (16), que a variância de um portfólio com ativos não é a simples soma das variâncias individuais de cada ativo. Deve ser somada à variância de cada ativo um termo denominado de covariância.
A covariância entre os retornos de qualquer dois ativo, e , representado por , é definido por:
μp= E(Rp) = w1E(r1) + w2E(r2) + . . . + wnE(rn) = n ∑ i=1 wiE(ri) n ∑ i=1wi = 1 σ2
Ri = V [E(Ri)] = E[Ri− E(Ri)]2
μ
Ri= E(R
i)
σ
2 Ri= E(R
i2) − μ
R2iσ
Ri= σ
2 Rin
p
R
1R
2w
1w
2σ
2Rp
= V[E(R
p)] = E[(w
1(R
1− E(R
1))) + (w
2(R
2− E(R
2)))]
2σ
2Rp
= w
12E[(R
1− E(R
1))
2] + w
22E[(R
2− E(R
2))
2]
+2w
1w
2E[(R
1− E(R
1))][(R
2) − E(R
2)]
n
i j
cov(R
i, R
j) = σ
ij
(17)
A covariância mensura a associação ou o movimento conjunto entre os retornos dos ativo e . Quando o retorno do ativo , independe do retorno do ativo , dizemos que os retornos são independentes e possuem . Caso contrário, um valor positivo para a covariância indica que se o retorno do ativo aumenta o retorno do ativo também aumenta. Já um valor negativo da covariância, indica que se o retorno do ativo aumenta, o retorno do ativo tende a diminuir.
Em algumas situações, é interessante associar a covariância com o conceito de coeficiente de correlação, definido por:
(18)
O coeficiente de correlação tem a propriedade de variar de -1 a +1. Se o sinal é negativo, existe uma relação oposta entre os retornos dos dois ativos, enquanto o retorno de um ativo aumenta, o outro diminui, e vice-versa. Se o sinal é positivo, o aumento do retorno de um ativo está associado ao aumento do retorno do outro ativo.
Utilizando o conceito do coeficiente de correlação, podemos reescrever a variância como:
(19)
Um portfólio é composto por muito mais que apenas 2 ativos. A equação (16) calcula a variância para o caso de um portfólio composto por apenas 2 ativos. Imagine calcular as variâncias, as médias e as covariâncias do portfólio composto por todas as ações que compõem o IBOV. São 77 ações. Nesse caso, a expressão da variância ocuparia várias páginas, ou seja, apenas a quantidade de pares de covariâncias seriam 2.926, calculado pelo uso da fórmula n(n-1)/2. Nesses casos, para simplificar a notação e os cálculos, utilizamos álgebra matricial.
5. As Matrizes dos Retornos, das Variâncias e a
Derivada de Matrizes
O retorno esperado de um portfólio, composto por três ativos (a,b,c), tendo por base a equação (11), pode ser representado pela multiplicação de dois vetores, da seguinte forma:
(20)
cov(R
i, R
j) = σ
ij= E[(R
i− E(R
i))][(R
j− E(R
j))]
i j
i
j
cov = 0
i
j
i
j
ρ
ij=
E[(R
i− E(R
i))][(R
j− E(R
j))]
V(R
i)V(R
j)
σ
2 Rp= w
12σ
12+ w
22σ
22+ 2w
1w
2ρ
12σ
1σ
2E(R
p) = w
TR = [w
aw
bw
c]
R
R
a bR
cO sobrescrito "T" representa a transposta de um vetor ou de uma matriz. A multiplicação desses dois vetores resultam na seguinte expressão:
(21)
A variância do portfólio, com base na equação (16), pode ser reescrita da seguinte forma:
(22)
Fazendo a multiplicação de (22), obtemos: (23)
A matriz de variância-covariância é simétrica, ou seja, ela é igual a sua transposta, . Além disso, a covariância do ativo em relação a é igual a covariância de em relação a , ou seja .
Um resultado que merece nossa atenção e que irá aparecer no próximo item é a derivada da variância em termos matriciais. Fazendo a derivada parcial da equação (23) em relação a , e a , obtemos:
(24)
(25)
(26)
As derivadas parciais de (24) a (26) podem ser escritas da seguinte forma matricial:
(27)
Podemos reescrever (27) da seguinte forma:
E(R
p) = w
aR
a+ w
bR
b+ w
cR
cσ
2 Rp= w
TΣw = [w
aw
bw
c]
σ
2 aσ
abσ
acσ
abσ
2 bσ
bcσ
acσ
bcσ
2 cw
aw
bw
cσ
2 Rp= w
a2σ
a2+ w
b2σ
b2+ w
c2σ
c2+ 2w
aw
bσ
ab+ 2w
aw
cσ
ac+2w
bw
cσ
bcΣ = Σ
Ta
b
b
a
σ
ab= σ
baw
aw
bw
c∂σ
2 Rp∂w
a= 2w
aσ
2 a+ 2w
bσ
ab+ 2w
cσ
ac∂σ
2 Rp∂w
b= 2w
bσ
2 b+ 2w
aσ
ab+ 2w
cσ
bc∂σ
2 Rp∂w
c= 2w
cσ
2 c+ 2w
aσ
ac+ 2w
bσ
bc∂σ
2 Rp∂w
=
2w
aσ
2 a2w
bσ
ab2w
cσ
ac2w
aσ
ab2w
bσ
2 b2w
cσ
bc2w
aσ
ac2w
bσ
bc2w
cσ
2 c(28)
Em notação compacta, reescrevemos (28) como:
(29)
Esse resultado expressa a derivada da equação matricial linear (22) e irá aparecer na derivada parcial da lagrangeana, em relação a , na maximização do retorno esperado, tema esse que será abordado no próximo item.
Finalmente, faz-se necessário a representação matricial da condição de que os recursos sejam integralmente investidos, o que corresponde a restrição de que a soma dos pesos de todos os ativos seja igual a unidade, isto é:
(30)
6. Portfólio que Maximiza o Retorno Esperado
O investidor, propenso ao risco, procura alocar seus recursos na aplicação que possa lhe trazer maior retorno para um dado nível de risco. É usual, se fazer a comparação da evolução dos índices da bolsa com os ativos de renda fixa e, a partir dessa análise, tomar a decisão em quais ativos alocar os recursos. A diversificação é primeira das lições e a mais sábia e reveste-se da base da teoria de Markowitz.
O problema de escolher o portfólio maximizando o retorno esperado sujeito a um nível de risco, pode ser representado da seguinte forma matricial:
(31) (32)
∂σ
2 Rp∂w
= 2
σ
2 aσ
abσ
acσ
abσ
2 bσ
bcσ
acσ
bcσ
2 cw
aw
bw
c∂σ
2 Rp∂w
= 2Σw
w
w
T1 = [w
aw
bw
c]
[
1
1
1]
= w
a+ w
b+ w
c= 1
max
w: E(R
p) = (w
1w
2w
3… w
n)
E(R
1)
E(R
2)
E(R
3)
⋮
R(R
n)
suj : σ
2 p= (w
1w
2w
3… w
n)
σ
2 1σ
12σ
13… σ
1nσ
21σ
2 2σ
23… σ
2nσ
31σ
32σ
2 3… σ
3n⋮
⋮
⋮ ⋱ ⋮
σ
n1σ
n2σ
n3⋯ σ
2 nnw
1w
2w
3⋮
w
n(33)
Reescrevendo esse problema em termos compacto, temos: (34)
(35) (36)
A equação (34) é a função objetivo a ser maximizada e traduz o retorno esperado do portfólio, em termos matriciais. Nesse problema, temos duas restrições. A restrição (35) retrata o nível de risco que se está disposto a incorrer e esse risco é mensurado pela variância do portfólio. A restrição (36) apenas estabelece que os recursos serão integralmente investidos, não havendo sobras nem déficit (venda a descoberto de ativos).
Markowitz provou que esse é um problema dual, equivalente a minimizar o risco de um portfólio sujeito a um nível de retorno como meta. Seja o retorno esperado fixado por
. O problema dual pode ser representado da seguinte forma matricial:
(37) (38) (39)
suj : (w
1w
2w
3… w
n)
1
1
1
⋮
1
n= 1
max
wE(R
p) = w
TE(R)
suj : σ
2 p= w
TΣw
suj : w
T1 = 1
R
min
wσ
2 p: (w
1w
2w
3… w
n)
σ
2 1σ
12σ
13… σ
1nσ
21σ
2 2σ
23… σ
2nσ
31σ
32σ
2 3… σ
3n⋮
⋮
⋮ ⋱ ⋮
σ
n1σ
n2σ
n3⋯ σ
2 nnw
1w
2w
3⋮
w
nsuj : σ
2 p= (w
1w
2w
3… w
n)
E(R
1)
E(R
2)
E(R
3)
⋮
E(R
n)
= R
suj : (w
1w
2w
3… w
n)
1
1
1
⋮
1
n= 1
De forma compacta, podemos reescrever esse problema da seguinte forma: (40)
(41) (42)
Como as soluções dos problemas (34) e (41) são equivalentes, a preferência de resolver este último decorre apenas de comprovar o problema dual já provado por Markowitz. A grande diferença entre os dois problemas reside nas condições de segunda ordem da teoria de otimização já que a condição necessária de primeira ordem são equivalentes. A condição suficiente de segunda ordem deve provar que a função de Lagrange do problema (34) é côncava enquanto que para o problema (40) é convexa. A qualificação das funções de restrições lineares exige que os vetores sejam linearmente independentes para a otimização da função de Lagrange. 10
Para solucionar o problema de minimização (40) sujeita às restrições (41) e (42), formamos a seguinte função de Lagrange:
(43)
Condição de primeira ordem
A condição necessária, também chamada de primeira ordem, para a otimização reside no cálculo das derivadas parciais de (43) em relação a , a e a , igualando-as a zero. Obtemos as seguintes equações lineares:
(44)
(45)
(46)
Para resolver (45), isolamos o vetor . Para isso, pré-multiplicamos ambos os lados pela matriz inversa , lembrando da propriedade de matriz , obtemos:
(47)
Precisamos calcular os valores de e de . Substituido a equação (47) em (45) e em (46), obtemos as seguintes equações lineares:
min
wσ
2 p= w
TΣw
suj : w
TE(R) = R
suj : w
T1 = 1
L(w, λ
1, λ
2) = w
TΣw + λ
1(R − w
TE(R)) + λ
2(1 − w
T1)
w λ
1λ
2∂L(w, λ
1, λ
2)
∂w
= 2Σw − λ
1E(R) − λ
21 = 0
∂L(w, λ
1, λ
2)
∂λ
1= R − w
TE(R) = 0
∂L(w, λ
1, λ
2)
∂λ
2= 1 − w
T1 = 0
w
Σ
−1Σ
−1Σ = I
w = 1
2
λ
1Σ
−1E(R) + 1
2
λ
2Σ
−11
λ
1λ
2Consultar: Sundaran K. Rangarajan. A First Course in Optimization Theory, New York, Cambridge University Press, 2007.
(48)
(49)
F a z e n d o a s t r a n s p o s t a s d e ( 4 8 ) e d e ( 4 9 ) , l e m b r a n d o q u e , e realizando as operações de multiplicação, obtemos o seguinte sistema de equações lineares, em termos matriciais:
(50)
De forma sintética, podemos representar o sistema linear (50) como: . Fazendo a inversa da matriz quadrada dos coeficientes , e sendo o determinante de
, obtemos o seguinte sistema:
(51)
A solução de (51), de forma explícita é: (52)
(53)
Substituindo as equações (52) e (53) em (47) obtemos finalmente o peso de cada ativo no portfólio:
(54)
A aplicação da equação (54) permite calcular a composição ótima de um portfólio cujo objetivo seja obter um dado retorno esperado , que tenha a variância mínima. Com esse procedimento, pode-se obter proporções diferentes para a participação de cada ativo no portfólio.
Como o problema proposto foi minimizar a variância, basta substituir o valor de (54) em (40) para que a função objetivo atinja o seu valor de mínimo, o que garante variância mínima para o portfólio ótimo.
[
1
2
λ
1Σ
−1E(R) + 1
2
λ
2Σ
−11]
TE(R) = R
[
1
2
λ
1Σ
−1E(R) + 1
2
λ
2Σ
−11]
T1 = 1
[λ
1Σ
−1E(R)]
T= E(R)
TΣ
−1λ
11
2 [
E(R)
TΣ
−1E(R) 1
TΣ
−1E(R)
E(R)
TΣ
−11
1
TΣ
−11 ] [
λ
1λ
2] = [
R
1 ]
1
2
Aλ = b
A
|A|
A
[
λ
λ
12] =
|A| [
2
1
TΣ
−11
−E(R)
TΣ
−11
−1
TΣ
−1E(R) E(R)
TΣ
−1E(R)] [
R
1 ]
λ
1= 2
|A| [
1
TΣ
−11(R)−E(R)
TΣ
−11(1)]
λ
2= 2
|A| [
−1
TΣ
−1E(R)R + E(R)
TΣ
−1E(R)(1)]
w* = [1
TΣ
−11(R)−E(R)
TΣ
−11(1)]Σ
−1E(R)
+[−1
TΣ
−1E(R)R + E(R)
TΣ
−1E(R)(1)]Σ
−11
Condição de segunda ordem
A condição de segunda ordem, também denominada de condição suficiente, de um problema de otimização condicionada, tem o objetivo de provar que os valores das variáveis que solucionaram o problema são pontos de máximo, ponto de mínimo ou ponto de sela.
No caso da otimização condicionada, sujeita a mais de uma restrição, conforme Simon e Blume , devemos montar um hessiano aumentado, também denominado de 11
hessiano orlado, e testar o sinal do determinante e de seus menores principais. Para isso, precisamos do seguinte teorema:
Teorema 6.1. Condição de segunda ordem para ótimo de função com restrição de igualdade. Para determinar a definição da forma quadrática, , com a restrição de equações lineares, , constroe-se a matriz simétrica , de ordem , sendo o número de variáveis e o total de funções de restrições. Essa matriz é formada por uma matriz de zeros, de ordem , pelo vetor gradiente, , das derivadas parciais de primeira ordem das funções de restrições e pela matriz hessiana, , das derivadas parciais, de segunda ordem, da função de Lagrange.
(55)
Devem-se checar os seguintes sinais dos menores principais da matriz orlada, começando por :
(i) Se o determinante da matriz hessiana orlada, , tem o mesmo sinal que e se os menores principais alternarem-se de sinal, então é definida negativa no conjunto restrição , e é máximo global estrito de , no conjunto restrição;
(ii) Se o determinante da matriz orlada, , e os menores principais têm o mesmo sinal que , então é definido positivo no conjunto de restrição , e é mínimo global estrito de , no conjunto restrição;
(iii)Se as condições descritas em (i) e (ii) são violadas pelos menores principais diferentes de zero, então é indefinido no conjunto restrição, e não é mínimo e nem máximo de , no conjunto restrição.
Devemos aplicar esse teorema na seguinte matriz hessiana orlada do problema de minimização da variância, sujeita a duas restrições:
(56)
Q(x) = x
TAx
m
Bx = 0
H
(n + m)x(n + m)
n
m
(m xm)
▽ h(x*)
H(L(x*))
H =
(
O
mxm▽ h(x*)
nxm▽ h(x*)
T mxnH(L(x*))
nxm)
(n − m)
H
H
(−1)
nQ
Bx = 0 x = 0
Q
H
(−1)
mQ
Bx = 0 x = 0
Q
Q
x = 0
Q
H =
0
0
0 E(R)
0
1
E(R) 1 2Σ
Simon, Carl P., Blume, Laurence. Mathematics for Economists. W.W. Norton Company, Inc. USA, 1994.
Todas as derivadas do hessiano aumentado devem ser calculadas em nos valores críticos das variáveis encontradas na condição de primeira ordem, ou seja em . Desenvolvendo os elementos constitutivos dessa matriz, obtemos:
(57)
Para o caso de variáveis e duas restrições, o grau de liberdade para aplicação do teorema é . Para verificação do sinal, temos de considerar que o sinal de se altera para cada número par ou ímpar, de variáveis logo, o sinal importante a testar é o que tem o número fixo de funções de restrições, ou seja, o sinal de que não se altera, e será sempre positivo.
Isto posto, e tendo em vista que a matriz de variância-covariância é definida positiva, , logo . Aplicando-se o item (ii) do teorema, conclue-se que é mínimo global para o problema de minimização.
Além disso, calculando a derivada primeira da função Lagrange, obtemos:
(58)
Calculando a derivada segunda, obtemos:
(59)
Como o sinal da derivada segunda é positiva, concluímos que a função de Lagrange é convexa, o que permite provar que os valores críticos de são pontos de mínimo global para a função objetivo.
7. Portfólio de Risco Mínimo
O investidor averso ao risco prefere o portfólio de risco mínimo. Encontrar a composição ótima desse portfólio consiste em minimizar a variância com a restrição de que os recursos disponíveis sejam integralmente investidos nos ativos. Com esse procedimento encontramos o peso de cada ativo no portfólio, ou seja, a participação de cada ativo de risco na composição da carteira. Esse problema de otimização condicionada é representado, em termos matriciais, da seguinte forma:
H
w*
H =
0
0 E(R
1) E(R
2) E(R
3) … E(R
n)
0
0
1
1
1
…
1
E(R
1) 1
2σ
2 12σ
122σ
13… 2σ
1nE(R
2) 1 2σ
212σ
2 22σ
23… 2σ
2nE(R
3) 1 2σ
312σ
322σ
2 3… 2σ
3n⋮
⋮
⋮
⋮
⋮
⋱
⋮
E(R
n) 1 2σ
n12σ
n22σ
n3⋯ 2σ
2 nnn
(n − 2)
(−1)
nn
(−1)
m=2Σ > 0
H > 0
w*
∂L(w, λ
1, λ
2)
∂w
= 2Σw − λ
1E(R) − λ
21 = 0
∂
2L(w, λ
1, λ
2)
∂w
2= 2Σ > 0
w*
(60)
(61)
Podemos reescrever o problema da seguinte forma compacta: (62)
(63)
Para resolver esse problema, inicialmente formamos a seguinte função lagrangeana: (64)
Condição de primeira ordem
Derivando parcialmente (64) em relação a e a e igualando a zero, obtemos os pontos críticos candidatos à otimização da função.
(65)
(66)
Para resolver para , temos que premultiplicar (65) por e lembrando que , obtemos:
(67)
Multiplicando ambos os lados de (67) por , usando (66) e verificando que , encontramos: (68)
min
wσ
2 p: (w
1w
2w
3… w
n)
σ
2 1σ
12σ
13… σ
1nσ
21σ
2 2σ
23… σ
2nσ
31σ
32σ
2 3… σ
3n⋮
⋮
⋮ ⋱ ⋮
σ
n1σ
n2σ
n3⋯ σ
2 nnw
1w
2w
3⋮
w
nsuj : (w
1w
2w
3… w
n)
1
1
1
⋮
1
n= 1
min
wσ
2 p= w
TΣw
suj : w
T1 = 1
L(w
i, λ) = w
TΣw + λ(w
T1 − 1)
w
λ
∂L(w, λ)
∂w
= 2Σw + λ1 = 0
∂L(w, λ)
∂λ
= w
T1 − 1 = 0
w
Σ
−1Σ
−1Σ = I
w = − 1
2
λΣ
−11
1
T1
Tw = w
T1
1 = 1
Tw = − 1
2
λ1
TΣ
−11
(69)
Substituindo o valor de em (67), encontramos o valor de :
(70)
A aplicação da equação (70) possibilita encontrar o peso ótimo, isto é, a participação de cada ativo na composição do portfólio de variância mínima.
Condição de segunda ordem
A condição de segundo ordem, para o mínimo da função, é obtida fazendo-se a derivada segunda da equação de Lagrange (64), da seguinte forma:
(71)
Como a derivada segunda é positiva, concluí-se que a função de Lagrange é convexa o que garante ponto de mínimo global da função objetivo calculada nos pontos críticos.
8. Análise das Carteiras das Corretoras
As corretoras, semanalmente, divulgam suas carteiras compostas com diversas ações com o objetivo de atingir excelentes retornos. Em sua grande maioria, as corretoras omitem a participação percentual de cada ação na sua carteira. Na ausência dessa informação, ficará subjetivamente entendido a participação igualitária de cada ativo no portfólio. Caso haja informações dos pesos, constarão à frente dos tickers das ações.
Nesta parte do trabalho serão analisadas algumas carteiras sugeridas pelas corretoras à luz da teoria de Markowitz. Na Tabela 1 estão discriminadas as corretoras e as ações que compõem seus portfólios. O objetivo principal é verificar se as carteiras sugeridas otimizam o retorno ou minimizam o risco do investimento. Além disso, será verificado se a participação percentual das ações nas carteiras estão de acordo com o que determina a teoria.
As informações das cotações das ações são captadas na internet, no site htpp:// br.financas.yahoo.com . Outra alternativa é coletar essas informações na B3. Os períodos iniciais e finais das informações das cotações devem ser os mesmos para todas as ações de um portfólio.
As cotações, nas importações da internet, vêm com as informações de abertura (open), os valores mais altos (high), os valores mais baixos (low), a cotação de fechamento (close), cotação ajustada (adjusted) e o volume negociado (volume).
As informações utilizadas para as análises dos portfólios das corretoras estão codificadas à frente dos cálculos dos retornos com as iniciais Ad, para ajustada, e Cl, para a cotação de fechamento.
λ = −
1
TΣ
2
−11
λ
w
w = Σ
1
TΣ
−1−11
1
∂
2L(w, λ)
∂w
2= 2Σ > 0
8
.1 Análise do Portfólio da Corretora 1
O Período analisado foi de julho/2011 a dezembro/2020. Os modelos de portfólios estimados empiricamente no R foram o de maximização do retorno, o de minimização de risco e o que tem pesos iguais das ações para a composição da carteira.
As principais conclusões são:
a) O portfólio sugerido pela corretora não maximiza o retorno e nem minimiza o risco
pela teoria de Markowitz. Enquanto o modelo sugerido pela corretora possibilita um retorno bruto mensal de 1,91%, ao mês, o modelo sugerido pela teoria de Markowitz, de maximização do retorno, possibilita ganho de 2,55%, ao mês;
b) O portfólio sugerido pela corretora, ponto quadrado, plotado no gráfico, situa-se
abaixo da fronteira eficiente de Markowitz, ou seja, existem outros portfólios mais eficientes que fornecem melhores retornos e até o mesmo retorno do portfólio da corretora porém, com menor risco. Isto posto, conclue-se que o portfólio sugerido pela corretora é ineficiente de acordo com a teoria de Markowitz;
c) Das 10 ações sugeridas pela corretora para compor a carteira, o modelo de Markowitz
de maximização do retorno rechaça 5 ações e sugere a composição de um portfólio com apenas as seguintes 5 ações, com os respectivos pesos: MGLU3=13,64%, QUAL3=2,32%, TAEE11=32,21%, B3SA3=25,75% e SLCE3=26,09%. Essa carteira combina o melhor trade off de retorno e risco;
d) Vale ressaltar que desempenho passado não garante performance futuro. Dessa forma,
deve-se observar se as ações sugeridas pela corretora apresentam condições reais de melhorias de desempenhos no futuro. Necessário, também, fazer uma análise fundamentalista sobre as empresas. Maiores informações podem ser obtidas no box 2.
Tabela 1: PORTFÓLIOS SUGERIDOS PELAS CORRETORAS
Corretora 1 Corretora 2 Corretora 3 Corretora 4 Corretora 5 Corretora 6
VALE3 IVVB11 VALE3=15% B3SA3 ABEV3 B3SA3
MGLU3 ABEV3 PETR4=10% BBAS3 B3SA3 BBAS3
ENEV3 ALPA4 ITUB4=10% GGBR4 BBDC4 EZTC3
ITUB4 CSNA3 GGBR4=10% OMGE3 GNDI3 ITSA4
QUAL3 DTEX3 B3SA3=10% ABEV3 KLBN11 LREN3
TAEE11 FLRY3 TOTS3=10% TEND3 LAME4 MGLU3
B3SA3 MGLU3 OIBR3=10% PETR4 MGLU3 NTCO3
GGBR4 PRIO3 SUZB3=10% VALE3 PETR4 LCAM3
LREN3 TRPL4 CYRE3=10% CEAB3 VALE3 VALE3
SLCE3 WEGE3 ALSO3=5% VVAR3 WEGE3 WEGE3
A figura 4, a seguir, ilustra a fronteira eficiente com a marcação do retorno e risco de cada portfólio estimado. A partir do portfólio de menor risco e seguindo na linha pontilhada para cima, pontos em azul, temos a fronteira eficiente de Markowitz. Todos os portfólios nessa linha são portfólios eficientes de Markowitz. O portfólio sugerido pela corretora, à luz da teoria de Markowitz, é ineficiente.
BOX 2
Programações no R - Portfólio Corretora 1
O sinal de # indica informações sobre o comando na linha de
programação do R. Informações inseridas após esse sinal não interferem nos
cálculos do programa. Foi utilizado o R Studio para rodar as programações.
#Pacotes utilizados library(fPortfolio) library(quantmod)
#Importação das cotações na internet sdate<-as.Date("2011-07-01")
edate<-as.Date("2020-12-30")
portfolio1<-c("VALE3.SA","MGLU3.SA","ENEV3.SA","ITUB4.SA","QUAL3.SA","TAEE11.SA","B3SA3.SA", "GGBR4.SA","LREN3.SA","SLCE3.SA")
getSymbols(portfolio1, from=sdate, to=edate)
portfolio11<-na.omit(portfolio1)#excluindo as informação não disponíveis (na) #Cálculo dos retornos aritméticos % mensais
RVALE3<-monthlyReturn(Ad(VALE3.SA))*100 RMGLU3<-monthlyReturn(Ad(MGLU3.SA))*100 RENEV3<-monthlyReturn(Ad(ENEV3.SA))*100 RITUB4<-monthlyReturn(Ad(ITUB4.SA))*100 RQUAL3<-monthlyReturn(Ad(QUAL3.SA))*100 RTAEE11<-monthlyReturn(Ad(TAEE11.SA))*100 RB3SA3<-monthlyReturn(Ad(B3SA3.SA))*100 RGGBR4<-monthlyReturn(Ad(GGBR4.SA))*100 RLREN3<-monthlyReturn(Ad(LREN3.SA))*100 RSLCE3<-monthlyReturn(Ad(SLCE3.SA))*100 rport1<-cbind(RVALE3,RMGLU3,RENEV3,RITUB4,RQUAL3,RTAEE11,RB3SA3,RGGBR4,RLREN3,RSLCE3) [-1]
#O comando [-1] exclui a primeira linha contendo zeros no cálculo dos retornos.
asset.names<-c("VALE3","MGLU3","ENEV3","ITUB4","QUAL3","TAEE11","B3SA3","GGBR4","LREN3","SLCE 3")
names(rport1)=asset.names rport11<-na.omit(rport1)
#Portfólio que maximiza o retorno rport1ts<-as.timeSeries(rport11)
port11<-tangencyPortfolio(rport1ts,spec=portfolioSpec(), constraints = "LongOnly")
port11#portfolio com o maior retorno/menor risco Title: MV Tangency Portfolio Estimator: covEstimator Solver: solveRquadprog Optimize: minRisk Constraints: LongOnly Portfolio Weights:
VALE3 MGLU3 ENEV3 ITUB4 QUAL3 TAEE11 B3SA3 GGBR4 LREN3 SLCE3 0.0000 0.1364 0.0000 0.0000 0.0232 0.3221 0.2575 0.0000 0.0000 0.2609
Covariance Risk Budgets:
VALE3 MGLU3 ENEV3 ITUB4 QUAL3 TAEE11 B3SA3 GGBR4 LREN3 SLCE3 0.0000 0.2911 0.0000 0.0000 0.0152 0.2566 0.2436 0.0000 0.0000 0.1935 Target Returns and Risks:
mean Cov CVaR VaR 2.5579 6.1025 10.1566 7.0103 #Portfólio que minimiza o risco
port21<-minvariancePortfolio(rport1ts,spec=portfolioSpec(), constraints = "LongOnly" )
port21#portfolio com o menor risco Title:
MV Minimum Variance Portfolio Estimator: covEstimator Solver: solveRquadprog Optimize: minRisk
Constraints: LongOnly Portfolio Weights:
VALE3 MGLU3 ENEV3 ITUB4 QUAL3 TAEE11 B3SA3 GGBR4 LREN3 SLCE3 0.0851 0.0000 0.0354 0.1098 0.0889 0.2711 0.0631 0.0000 0.0793 0.2673 Covariance Risk Budgets:
VALE3 MGLU3 ENEV3 ITUB4 QUAL3 TAEE11 B3SA3 GGBR4 LREN3 SLCE3 0.0851 0.0000 0.0354 0.1098 0.0889 0.2711 0.0631 0.0000 0.0793 0.2673 Target Returns and Risks:
mean Cov CVaR VaR
1.7700 5.2300 9.2926 7.2409 #Portfólio com pesos iguais peso<-portfolioSpec()
nativos<-ncol(rport1ts)
RETORNOS MENSAIS
PERÍODO PETR4 MGLU3 ITUB4 2011-06-30 -0.01535914 0.01562230 0.017360732 2011-07-29 -0.00927480 -0.15384615 -0.135518116 2011-08-31 -0.10701651 -0.06545424 -0.074605008 2011-09-30 -0.08173077 -0.08638061 0.007350804 2011-10-31 0.12984309 0.14139832 0.127143929 2011-11-30 0.03117076 -0.18656673 -0.025001284
setWeights(peso)<-rep(1/nativos,times=nativos)
portfolio3<-feasiblePortfolio(data=rport1ts, spec=peso, constraints = "LongOnly") portfolio3 Title: MV Feasible Portfolio Estimator: covEstimator Solver: solveRquadprog Optimize: minRisk Constraints: LongOnly Portfolio Weights:
VALE3 MGLU3 ENEV3 ITUB4 QUAL3 TAEE11 B3SA3 GGBR4 LREN3 SLCE3 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 Covariance Risk Budgets:
VALE3 MGLU3 ENEV3 ITUB4 QUAL3 TAEE11 B3SA3 GGBR4 LREN3 SLCE3 0.0999 0.1910 0.1149 0.0902 0.0897 0.0546 0.0954 0.1511 0.0825 0.0306 Target Returns and Risks:
mean Cov CVaR VaR 1.9177 6.6314 12.6921 8.4221 #Comandos para a geração do gráfico frontier=portfolioFrontier(rport1ts)
frontierPlot(frontier,col=c("blue", "red"),pch=20, title=FALSE, xim=c(0,30), ylim=c(-1,6))
tangencyLines(frontier) grid(col="black")
title(main="Fronteira Eficiente de Markowitz", xlab="Risco", ylab="Retorno %") v1<-c(6.6314)
v2<-c(1.9177)
points(v1,v2, pch=22,col="black",bg="yellow", cex=1.5) text(11,2,"Portfólio da Corretora 1")
v3<-c(5.23) v4<-c(1.77)
points(v3,v4, pch=20, col="black", bg="black", cex=2)#risco mínimo text(9.9,1.7,"Portfólio de Risco Mínimo")
v5<-c(6.1025) v6<-c(2.5579)
points(v5,v6, pch=20, col="black", bg="orange", cex=2)#máximo retorno text(11.5,2.5, "Portfólio de Retorno Máximo")
8.2 Análise do Portfólio da Corretora 2
O período analisado de maio/2014 a dezembro de 2020 foi fixado em função da disponibilidade de informações para todas as ações do portfólio. Foram analisados 4 tipos de portfólio, conforme a seguir:
a) A Corretora 2 propôs um portfólio com pesos iguais, ou seja, de 10% para cada ação. Com essa restrição, o portfólio estimado proporciona um retorno de 3,4341% ao mês com um risco de 7,3908. Esse portfólio é ineficiente pois não se encontra na fronteira eficiente de Markowitz;
b) Como o portfólio da corretora é ineficiente, é possível se obter um portfólio com o mesmo retorno, com risco menor. Foi estimado esse portfólio e se obteve para um retorno de 3,4341%, ao mês, um risco de 5,1908, risco esse menor que o da Corretora que foi de 7,3908. A composição desse portfólio é: IVVB11=19,23%, ALPA4=8,40%, MGLU3=12,31%, PRIO3=1,68%, TRPL4=38,47% E WEGE3=19,90%. Esse portfólio é identificado, no gráfico, pelo quadrado azul chamado de Alternativo;
c) Foi estimado um portfólio fixando um retorno de 4% e minimizando o risco. Com isso, foi possível se obter um portfólio com risco de 6,5. Os pesos de cada ação no portfólio (portfolio weights) pode ser observado no box 3;
d) Finalmente foi estimado o portfólio de menor risco, risco de 4,0265, com retorno de 2,0739% ao mês. Veja o box 3 para maiores detalhes.
A figura 5 ilustra com pontos os portfólios comentados anteriormente. A sua visualização é muito esclarecedora pois os melhores portfólios com as melhores relações retorno/risco encontram-se na linha pontilhada na cor azul. O portfólio sugerido pela corretora 2 é ineficiente, pela teoria de Markowitz.
BOX 3
Programações no R - Portfólio Corretora 2
O sinal de # indica informações sobre o comando na linha de
programação do R. Informações inseridas após esse sinal não interferem nos
cálculos do programa. Foi utilizado o R Studio para rodar as programações.
library(fPortfolio) library(quantmod)
#Importação das cotações na internet sdate<-as.Date("2014-05-01") edate<-as.Date("2020-12-30") toro<-c("IVVB11.SA","ABEV3.SA","ALPA4.SA","CSNA3.SA","DTEX3.SA" ,"FLRY3.SA","MGLU3.SA","PRIO3.SA", "TRPL4.SA","WEGE3.SA") portfolio2<-na.omit(getSymbols(toro,from=sdate, to=edate)) portfolio2
#Cálculo dos retornos aritméticos % mensais IVVB11<-monthlyReturn(Ad(IVVB11.SA))*100 ABEV3<-monthlyReturn(Ad(ABEV3.SA))*100 ALPA4<-monthlyReturn(Ad(ALPA4.SA))*100 CSNA3<-monthlyReturn(Ad(CSNA3.SA))*100 DTEX3<-monthlyReturn(Ad(DTEX3.SA))*100 FLRY3<-monthlyReturn(Ad(FLRY3.SA))*100 MGLU3<-monthlyReturn(Ad(MGLU3.SA))*100 PRIO3<-monthlyReturn(Ad(PRIO3.SA))*100 TRPL4<-monthlyReturn(Ad(TRPL4.SA))*100 WEGE3<-monthlyReturn(Ad(WEGE3.SA))*100 rport2<-cbind(IVVB11,ABEV3,ALPA4,CSNA3,DTEX3 ,FLRY3,MGLU3,PRIO3, TRPL4,WEGE3)[-1]
#O comando [-1] exclui a primeira linha contendo zeros no c??lculo dos retornos. asset.names<-c("IVVB11","ABEV3","ALPA4","CSNA3","DTEX3","FLRY3","MGLU3","PRIO3", "TRPL4","WEGE3")
names(rport2)=asset.names rport22<-na.omit(rport2) head(rport22)
#Portfólio que fixa o retorno em 4% e minimiza o risco minriskSpec <- portfolioSpec()
setTargetReturn(minriskSpec) <-4
Portfolioretorno <- efficientPortfolio( data = rport22ts, spec = minriskSpec,constraints = "LongOnly") print(Portfolioretorno) Title: MV Efficient Portfolio Estimator: covEstimator Solver: solveRquadprog Optimize: minRisk Constraints: LongOnly Portfolio Weights:
IVVB11 ABEV3 ALPA4 CSNA3 DTEX3 FLRY3 MGLU3 PRIO3 TRPL4 WEGE3 0.1904 0.0000 0.0542 0.0126 0.0000 0.0000 0.2117 0.0381 0.2996 0.1934 Covariance Risk Budgets:
0.0624 0.0000 0.0256 0.0135 0.0000 0.0000 0.5664 0.0774 0.1361 0.1186 Target Returns and Risks:
mean Cov CVaR VaR 4.0000 6.5032 10.2995 5.8833
#Portfólio que minimiza o risco
port21<-minvariancePortfolio(rport22ts,spec=portfolioSpec(), constraints = "LongOnly" )
port21#portfolio com o menor risco Title:
MV Minimum Variance Portfolio Estimator: covEstimator Solver: solveRquadprog Optimize: minRisk
Constraints: LongOnly Portfolio Weights:
IVVB11 ABEV3 ALPA4 CSNA3 DTEX3 FLRY3 MGLU3 PRIO3 TRPL4 WEGE3 0.2327 0.3410 0.0842 0.0000 0.0000 0.0000 0.0267 0.0000 0.2545 0.0609 Covariance Risk Budgets:
IVVB11 ABEV3 ALPA4 CSNA3 DTEX3 FLRY3 MGLU3 PRIO3 TRPL4 WEGE3 0.2327 0.3410 0.0842 0.0000 0.0000 0.0000 0.0267 0.0000 0.2545 0.0609 Target Returns and Risks:
mean Cov CVaR VaR 2.0739 4.0265 7.9453 4.6192
#Portfólio com pesos iguais - Portfólio sugerido pela Corretora peso<-portfolioSpec()
nativos<-ncol(rport22ts)
setWeights(peso)<-rep(1/nativos,times=nativos)
port23<-feasiblePortfolio(data=rport22ts, spec=peso, constraints = "longOnly") port23 Title: MV Feasible Portfolio Estimator: covEstimator Solver: solveRquadprog Optimize: minRisk Constraints: Portfolio Weights:
IVVB11 ABEV3 ALPA4 CSNA3 DTEX3 FLRY3 MGLU3 PRIO3 TRPL4 WEGE3 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 Covariance Risk Budgets: