Skip to content

Realized Kurtosis

Intuição

A Realized Kurtosis mede o peso de caudas (fat tails) dos retornos realizados dentro de uma janela, usando uma forma normalizada baseada no 4º momento.

Definição

Para retornos r_t em uma janela n:

  • M2 = sum(r^2)
  • M4 = sum(r^4)
  • RKurt = n * M4 / (M2^2)

Uso

from quantmaster.features.statistical import realized_kurtosis

df["rkurt_20"] = realized_kurtosis(df, window=20)

API

Source code in src/quantmaster/features/statistical.py
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
def realized_kurtosis(
    data: pd.DataFrame | pd.Series,
    *,
    window: int = 20,
    price_col: str = "close",
    log_returns: bool = True,
) -> pd.Series:
    window = validate_positive_int(window, name="window")

    price = get_price_series(data, price_col=price_col).astype(float)
    price = price.where(price > 0)

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

    m2 = r.pow(2).rolling(window).sum()
    m4 = r.pow(4).rolling(window).sum()

    denom = m2.pow(2)
    out = float(window) * m4 / denom.where(denom > 0)
    out.name = f"realized_kurtosis_{window}"
    return out