Skip to content

Max Drawdown Duration

Intuição

A Max Drawdown Duration mede por quanto tempo o preço permaneceu abaixo de seu pico anterior (dentro de uma janela), capturando a “duração” do período de underwater.

Definição

Em uma janela n, compute o máximo acumulado (pico) e o drawdown.

A duração é o maior número de períodos consecutivos com drawdown < 0.

Uso

from quantmaster.features.risk import max_drawdown_duration

df["mdd_dur"] = max_drawdown_duration(df, window=252)

API

Source code in src/quantmaster/features/risk.py
148
149
150
151
152
153
154
155
156
157
158
159
160
161
def max_drawdown_duration(
    data: pd.DataFrame | pd.Series,
    *,
    window: int = 252,
    price_col: str = "close",
) -> 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)

    out = price.rolling(window).apply(_max_drawdown_duration_window, raw=True)
    out.name = f"max_drawdown_duration_{window}"
    return out