Skip to content

relative_jump_contribution

from quantmaster.features.volatility import relative_jump_contribution

df["relative_jump_contribution_20"] = relative_jump_contribution(df, window=20)
Source code in src/quantmaster/features/volatility.py
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
def relative_jump_contribution(
    data: pd.DataFrame | pd.Series,
    *,
    window: int = 20,
    price_col: str = "close",
    log_returns: bool = True,
    eps: float = 1e-12,
) -> pd.Series:
    window = validate_positive_int(window, name="window")

    rv = realized_variance(data, price_col=price_col, log_returns=log_returns).astype(float)
    bv = bipower_variation(data, price_col=price_col, log_returns=log_returns).astype(float)

    jv = (rv - bv).clip(lower=0.0)
    rjc = jv / rv.where(rv.abs() > eps)
    rjc = rjc.clip(lower=0.0, upper=1.0)

    out = rjc.rolling(window).mean()
    out.name = f"relative_jump_contribution_{window}"
    return out