Skip to content

Market Efficiency Index

Intuição

O Market Efficiency Index (MEI) é um índice composto simples para sintetizar sinais de ineficiência. Ele combina:

  • Autocorrelação de 1 lag dos retornos
  • Desvio do variance ratio em relação a 1

Definição

Em janela n:

  • MEI = 1 - |AC(1)| - 0.5 * |VR(q) - 1|

Uso

from quantmaster.features.regime import market_efficiency_index

df["mei_60_5"] = market_efficiency_index(df, window=60, holding_period=5)

API

Source code in src/quantmaster/features/regime.py
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
def market_efficiency_index(
    data: pd.DataFrame | pd.Series,
    *,
    window: int = 60,
    holding_period: int = 5,
    price_col: str = "close",
) -> pd.Series:
    window = validate_positive_int(window, name="window")
    holding_period = validate_positive_int(holding_period, name="holding_period")

    price = get_price_series(data, price_col=price_col).astype(float)
    price = price.where(price > 0)
    rets = np.log(price).diff()

    ac1 = rets.rolling(window).corr(rets.shift(1))
    vr = variance_ratio(data, window=window, holding_period=holding_period, price_col=price_col)

    out = 1.0 - ac1.abs() - 0.5 * (vr - 1.0).abs()
    out.name = f"market_efficiency_index_{window}_{holding_period}"
    return out