Skip to content

MINRV (Minimum Realized Variance)

Intuição

O MinRV é um estimador de variância robusto a jumps, usando o mínimo de retornos adjacentes em magnitude (reduzindo a influência de outliers).

Definição

Para retornos r_t:

MinRV_t = (π / (π - 2)) * min(|r_t|, |r_{t-1}|)^2

Uso

from quantmaster.features.volatility import minrv

df["minrv"] = minrv(df)

API

Source code in src/quantmaster/features/volatility.py
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
def minrv(
    data: pd.DataFrame | pd.Series,
    *,
    price_col: str = "close",
    log_returns: bool = True,
) -> pd.Series:
    price = get_price_series(data, price_col=price_col).astype(float)
    price = price.where(price > 0)

    if log_returns:
        rets = np.log(price).diff()
    else:
        rets = price.pct_change()

    abs_r = rets.abs()
    m = np.minimum(abs_r, abs_r.shift(1))
    out = (np.pi / (np.pi - 2.0)) * m.pow(2)
    out.name = "minrv"
    return out