Os arquivos usados no vídeo poderão ser encontrados nos links abaixo:
- Comandos usados no vídeo: http://www.mediafire.com/file/b5mwr4b0oqwulfk/Markowitz_comandos.txt
- Dados usados: http://www.mediafire.com/file/ma9ta93224hd78w/Markowitz_dados.xlsx
Na nossa playlist de Finanças I vocês podem ver mais sobre a Teoria e na playlist de tutoriais vocês podem ter acesso a outros tutoriais, em nosso canal do Youtube. Os slides da aula completa podem ser acessados no blog: http://contabilidademq.blogspot.com.br/2018/04/slides-teoria-das-carteiras-markowitz.html
Para fazer este trabalho no Excel e com muitos ativos, recomendo que assistam a este vídeo: https://youtu.be/11x_JgYMskk Como plotar a fronteira eficiente no Excel: https://youtu.be/9WXW1I62VHQ
SCRIPT PARA OTIMIZAÇÃO DE UMA CARTEIRA DE INVESTIMENTOS USANDO O SOFTWARE R:
read.table("Markowitz.txt", header = TRUE)
dados = read.table("Markowitz.txt", header = TRUE)
##INSTALAR E CARREGAR OS PACOTES
require(fPortfolio)
library(fPortfolio)
require(timeSeries)
library(timeSeries)
##conversão no tipo de dados "timeSeries"
dados<-as.timeSeries(dados)
##############################################
##ESTATÍSTICAS DOS DADOS
##RETORNOS ESPERADOS
ret.esperados = colMeans(dados)
ret.esperados
#MATRIZ DE COVARIÂNCIAS
mat.cov = cov(dados)
mat.cov
################################################
##OTIMIZAÇÃO
##pesos dos ativos
##retorna o portfólio com a maior relação retorno/risco na fronteira eficiente
p1 = tangencyPortfolio(dados, spec = portfolioSpec(), constraints = "LongOnly")
p1
##retorna o portfólio com o risco mínimo na fronteira eficiente
p2 = minvariancePortfolio(dados, spec = portfolioSpec(), constraints = "LongOnly")
p2
## calculos para obtenção da fronteira eficiente
Frontier = portfolioFrontier(dados)
## Plotagem da fronteira eficiente no gráfico
frontierPlot(Frontier, col = c("blue", "orange"), pch = 19)
## adicinando informações ao gráfico
## pontos associados a possíveis carteiras
p3 = monteCarloPoints(Frontier, mcSteps = 5000, cex = 0.25, pch = 19)
p3
## mostrando o local da carteira que com proporções iguais em cada ativo
equalWeightsPoints(Frontier, pch = 15, col = "red")
## mostrando os pontos relativos a cada ativo individualmente
singleAssetPoints(Frontier, pch = 19, cex = 1.5, col = topo.colors(6))
Great article with excellent idea!Thank you for such a valuable article. I really appreciate for this great information.. hospedagem de sites barata
ResponderExcluirMuito obrigado pelo artigo, pela oportunidade de aprendizado e pelos upskill que nos estão a conceder. (de Angola com muito amor)
ResponderExcluir