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
|