INNER CODE UNIT · Python

sign_autocorrelation

jialuechen/flowforge · flowforge/diagnostics/flow.py:15

def sign_autocorrelation(
    orders: pd.DataFrame, max_lag: int = 20, min_orders: int = 10
) -> pd.DataFrame:
    """Per-lag autocorrelation of order signs, averaged across assets.

    Expects the long-format order table of
    :class:`flowforge.generate.OrderFlowSimulator` (columns ``asset``,
    ``period``, ``sign``).  Returns columns ``lag, autocorr, n_assets``.
    """
    acfs: dict[int, list[float]] = {lag: [] for lag in range(1, max_lag + 1)}
    for _, g in orders.sort_values("period").groupby("asset"):
        s = g["sign"].to_numpy(dtype=float)
        if len(s) < min_orders:
            continue
        s = s - s.mean()
        denom = float(np.dot(s, s))
        if denom <= 0:
            continue

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…