Criando o Índice de Sharpe no Python

O índice de Sharpe é uma medida de desempenho de investimentos que leva em consideração o retorno do investimento e o risco assumido para obtê-lo. Ele foi criado pelo economista William F. Sharpe e é uma das principais métricas utilizadas na análise de investimentos. No post de hoje, vamos aprender a como calcular a medida no Python.

O índice de Sharpe, de forma genérica, é calculado dividindo a diferença entre o retorno do investimento e a taxa livre de risco (ou um benchmark qualquer) pelo desvio padrão do investimento. A taxa livre de risco é geralmente considerada a taxa de retorno oferecida por um investimento sem risco, como títulos do governo. O desvio padrão é uma medida de risco que indica a variação dos retornos de um investimento em relação à média.

Um índice de Sharpe maior indica que o investimento ofereceu um retorno mais alto em relação ao risco assumido, enquanto um índice de Sharpe menor indica que o investimento não ofereceu um retorno tão atraente em relação ao risco. O índice de Sharpe é uma ferramenta útil para ajudar os investidores a avaliar o desempenho de seus investimentos e compará-los com outras opções de investimento.

Cálculo do Índice de Sharpe

O Índice de Sharpe pode ser desmembrado em dois tipos: ex post e ex ante, isto é, a medida que tem como base comparar investimentos no passado, e aquela que tem como objetivo comparar investimentos de forma prospectiva, respectivamente.

As implementações práticas usam resultados ex post, enquanto as discussões teóricas focam em valores ex ante. Implícita ou explicitamente, assume-se que os resultados históricos têm pelo menos alguma capacidade preditiva, apostando que o que é visto no passado, ocorrerá no futuro.

Abaixo citamos como é possível calcular ambos os tipos, entretanto, como exemplo, criaremos somente o ex post no Python.

Ex ante

Para o cálculo ex ante, temos que  R_i seja o retorno projetado do investimento i e  R_f seja o retorno projetado do benchmark ou taxa de juros livre de risco. Os tildes na equação abaixo significam que não é conhecido com certeza os valores, portanto, chamados de retornos esperados. Definimos  \tilde{d} como o retorno diferencial.

\tilde{d} = \tilde{R_i} - \tilde{R_f}

\tilde{d} será o valor esperado de d e \sigma_d   será o valor previsto do desvio padrão, portanto, o índice de Sharpe será

 S = \frac{\tilde{d}}{\sigma_d}

Nessa versão, o Sharpe indica o diferencial do retorno esperado por unidades de risco associado ao retorno diferencial.

Ex post

Para o ex post, considere  R_{it}  o retorno do investimento i no tempo t, e  R_{ft}   o retorno do benchmark ou taxa de juros livre de risco no período t e  D_t o diferencial de retorno no período t.

 $D_t = R_it - R_ft

Calculamos a média de  D_t obtendo  \bar{D} , que será o valor médio de D no período t=1 até T, e também o desvio padrão de  D_t .

Com isso, o índice de Sharpe ex post será

 S_h = \frac{D}{\sigma_D}

Para tornar fácil a comparação de diferentes investimentos em diferentes janelas de tempo, é aconselhável utilizar o índice de Sharpe anualizado, obtido por meio do seguinte cálculo:

 S_T = \sqrt{T} S_t

Em que T é o período para anualizar, e que pode tomar o valor de 252 dias para dados diários e 12 meses para dados mensais.

A construção de todos os procedimentos para a coleta e criação dos gráficos abaixo você pode obter fazendo parte do Clube AM, o repositório especial de códigos da Análise Macro.

Aplicação

Podemos criar o índice de Sharpe móvel no Python, utilizando como referência os retornos discretos diários da Ibovespa no período de janeiro de 2018 até fevereiro de 2023. Com medida de taxa de juros livre de risco, utilizamos a série diária do retorno do CDI no período. Os dados foram importados por meio das bibliotecas yfinance e python-bcb.

Usando o Python, obtemos os índice de Sharpe anualizado com dados diários móvel em uma janela de 252 dias. O resultado é visto abaixo:

_____________________

Quer saber mais?

Veja nossa trilha de cursos de Finanças Quantitativas

Referências

Sharpe, William F. "The Sharpe ratio." Journal of portfolio Management 21.1 (1994): 49-58

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Resultado IPCA-15 - Novembro/2024

A Análise Macro apresenta os resultados do IPCA-15 de Novembro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Resultado PNADc Trimestral - 3° Trimestre/2024

A Análise Macro apresenta os resultados da PNADc Trimestral do 3º trimestre de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Análise exploratória para modelagem preditiva no Python

Antes de desenvolver bons modelos preditivos é necessário organizar e conhecer muito bem os dados. Neste artigo, damos algumas dicas de recursos, como gráficos, análises e estatísticas, que podem ser usados para melhorar o entendimento sobre os dados usando Python.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.