Skip to content

Commit

Permalink
adiciona função para cálculo do retorno (#32)
Browse files Browse the repository at this point in the history
* adiciona função para cálculo do retorno

* atualização da função retorno

* funções atualizadas para cálculo de retorno

* funções atualizadas para cálculo de retornos
  • Loading branch information
thalissa-reis committed Nov 14, 2020
1 parent e8458d7 commit 7645c21
Showing 1 changed file with 41 additions and 1 deletion.
42 changes: 41 additions & 1 deletion turingquant/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ def rolling_std(close_prices, return_type, window, plot=True):
Parâmetros:
close_prices (pd.DataFrame): série de preços de fechamento que será utilizado de base para o cálculo do desvio padrão móvel;
return_type (string): tipo de retorno (simple - 'simp' ou logarítmico - 'log') que será utilizado de base para cálculo;
return_type (string): tipo de retorno (simples - 'simp' ou logarítmico - 'log') que será utilizado de base para cálculo;
window (int): janela móvel para cálculo do desvio padrão móvel;
plot (bool): se True, plota o gráfico de linha do desvio padrão móvel ao longo do tempo
Expand All @@ -372,3 +372,43 @@ def rolling_std(close_prices, return_type, window, plot=True):
return rolling_std
if plot == False:
return rolling_std

def returns(close_prices,return_type='log',cumulative=False):
"""
Essa função permite o cálculo rápido do retorno de uma ação ao longo do tempo.
Args:
close_prices (pd.DataFrame): série de preços de fechamento que será utilizada de base para o cálculo do retorno;
return_type (string): tipo de retorno (simples - 'simp' ou logarítmico - 'log') a ser calculado;
cumulative (bool): se True, calculará o retorno cumulativo
Returns:
returns (pd.Series): série com os valores do retorno ao longo do tempo
"""
if return_type == "log":
returns = np.log(close_prices/close_prices.shift(1))
elif return_type == "simp":
returns = close_prices.pct_change()
else:
raise ValueError("Tipo de retorno inválido")
return returns

def cumulative_returns(returns,return_type):
"""
Essa função permite o cálculo do retorno cumulativo ao longo do tempo.
Args:
returns (pd.Series): série de retornos da ação ao longo do tempo;
return_type (string): tipo de retorno (simples - 'simp' ou logarítmico - 'log') presente na série.
Returns:
cumulative_returns (pd.Series): série com os valores de retorno cumulativo ao longo do tempo
"""
if return_type == "log":
cumulative_returns = returns.cumsum()
elif return_type == "simp":
cumulative_returns = (returns + 1).cumprod()-1
else:
raise ValueError("Tipo de retorno inválido")
return cumulative_returns

0 comments on commit 7645c21

Please sign in to comment.