Skip to content

LOG VOLATILITY INCREMENT

Intuição

O Log Volatility Increment é uma série de incrementos do log da volatilidade (aqui, do log da RV suavizada), usada como building block para análises de rough volatility e estimação de roughness.

Definição

  1. Calcula RV_t.
  2. Suaviza com média rolling em janela window:

\overline{RV}_t = mean(RV)_window

  1. Define:

ΔlogV_t = log(\overline{RV}_t) - log(\overline{RV}_{t-lag})

Uso

from quantmaster.features.volatility import log_volatility_increment

df["log_volatility_increment_20_1"] = log_volatility_increment(df, window=20, lag=1)

API

Source code in src/quantmaster/features/volatility.py
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
def log_volatility_increment(
    data: pd.DataFrame | pd.Series,
    *,
    window: int = 20,
    lag: int = 1,
    price_col: str = "close",
) -> pd.Series:
    window = validate_positive_int(window, name="window")
    lag = validate_positive_int(lag, name="lag")

    rv = realized_variance(data, price_col=price_col).astype(float)
    smoothed = rv.rolling(window).mean()

    log_v = np.log(smoothed.where(smoothed > 0))
    out = log_v - log_v.shift(lag)
    out.name = f"log_volatility_increment_{window}_{lag}"
    return out