Python

merge_asof: اتصال زمانی بدون نشت آینده

هر رویداد رو می‌چسبونی به آخرین مقدار شناخته‌شده از یه سری دیگه (جهت backward)، با حداکثر تلورانس مجاز.

کاربرد

غنی کردن تریدها با آخرین قیمت معتبر، یا رخدادها با آخرین متریک سیستم.

پیش‌نیازها

Python 3.9+, pandas

Python
import pandas as pd

trades = trades.sort_values("timestamp")
quotes = quotes.sort_values("timestamp")

# Chaque trade reçoit la dernière cotation CONNUE (pas de fuite future)
enriched = pd.merge_asof(
    trades,
    quotes[["timestamp", "bid", "ask"]],
    on="timestamp",
    direction="backward",
    tolerance=pd.Timedelta("2s"),   # au-delà : NaN plutôt qu'une valeur périmée
)
enriched["spread"] = enriched["ask"] - enriched["bid"]

نتیجه

>>> enriched.head(3)
                timestamp  symbol  qty      bid      ask   spread
0 2026-06-01 09:00:00.120  EURUSD  1.0  1.08431  1.08444  0.00013
1 2026-06-01 09:00:02.480  EURUSD  0.5  1.08433  1.08447  0.00014
2 2026-06-01 09:00:05.910  EURUSD  2.0      NaN      NaN      NaN

>>> enriched["bid"].isna().sum()   # trades sans cotation < 2 s
1
Pandasmerge_asofTime SeriesFinance

اسنیپت‌های مرتبط

بازگشت به آزمایشگاه داده