Volatilidade

A volatilidade é um índice numérico que visa indicar o quão variável é a variável de uma série temporal. Na área financeira, é uma medida de dispersão dos retornos de um ativo financeiro ou índice de mercado. Quanto mais o preço de uma ação varia em um dado período de tempo, maior o risco de se ganhar ou perder dinheiro negociando esta ação, e, por isso, a volatilidade é uma medida de risco.

Curva da série temporal do exemplo com alguns retângulos de intervalo fixo "dtau" entre si
Curva da série temporal do exemplo com alguns retângulos de intervalo fixo “dtau” entre si

O retorno é a relação entre a quantidade de dinheiro ganho (ou perdido) como resultado de um investimento e a quantidade de dinheiro investido. Existem diferentes metodologias desse tipo de cálculo, cada uma com sua finalidade. No caso de avaliar um retorno entre valores consecutivos de um ativo ou índice dentro de um determinado período de tempo, ele é definido em função dos preço entre esses dois instantes conforme a seguinte fórmula:

\(r_t=log\left ( \frac{p_t}{p_{t-1}} \right )\)

O estimador mais simples da volatilidade é o desvio padrão histórico. Para esse histórico, deve-se escolher um período menor de dados, geralmente formado por valores intra-diários, e um período maior, costumeiramente de um ano. Por exemplo, é comum usar dados a cada minuto (período menor) para obter a volatilidade anual (252 dias comerciais).

Uma das formas mais simples de cálculo da volatilidade é definida como o desvio padrão dos retornos (\(\sigma_{r_t}\)) do período menor multiplicado pela raiz do número de unidades do período maior (\(n_{r_t}\)):

\(V = \sigma_{r_t} \cdot \sqrt{n_{r_t}}\)

Neste exemplo, serão usados dados com frequência de 5 minutos para determinar a volatilidade de uma série temporal de 1 dia. Os dados são valores de irradiância coletados pela rede SONDA/INPE e disponíveis no Github (viniroger/fractal). O número de unidades do período maior será definido como o número de amostras.

Importar dados do Github

import pandas as pd
import numpy as np

df = pd.read_csv('https://raw.githubusercontent.com/viniroger/fractal/master/input.csv')
print(df)

Método para cálculo da volatilidade

def volatility(df, var_name):
    '''
    Volatility calculus
    '''
    n = df.shape[0]
    df['rt'] = df[var_name].shift(-1)/df[var_name]
    df['rt'] = df['rt'].fillna(0)
    sd = np.std(df['rt'].values)
    vol = round(sd * np.sqrt(n),1)
    return vol

Cálculo da volatilidade

vol = volatility(df, 'glo_avg')
print('Volatilidade = {}%'.format(vol))

Volatilidade = 6.0%

Fontes

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.