INNER CODE UNIT · Python

acfs

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

    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
        for lag in range(1, min(max_lag, len(s) - 1) + 1):
            acfs[lag].append(float(np.dot(s[:-lag], s[lag:]) / denom))
    rows = [
        {"lag": lag, "autocorr": float(np.mean(v)), "n_assets": len(v)}
        for lag, v in acfs.items()
        if v
    ]
    return pd.DataFrame(rows)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…