Hawkes Processes for Order Arrival and Market Event Modeling
Digital fingerprint maqolasi ishtirokchining xulq-atvor imzosidagi timing komponenti sifatida uch sonli — hawkes_mu, hawkes_alpha, hawkes_beta — vektordan foydalanadi va market maker'lar kuchli self-excitation ko'rsatishini aytadi. Ammo bu uch son qayerdan kelishi, nimadan estimate qilinishi yoki ularga qanchalik ishonish kerakligi aytilmagan. Ushbu maqola yetishmayotgan yarim qismdir: estimator, fit diagnostikasi va uch parametrning o'zidan muhimroq bo'lib chiqadigan hosila kattalik — branching ratio .
Bu yerda tekshirilayotgan da'vo tor va tekshirilishi mumkin. Order flow self-exciting: agressiv sell keyingi agressiv sell ehtimolini oshiradi, buni hech qanday time-varying rate'li Poisson model takrorlay olmaydi. Agar bu to'g'ri bo'lsa, raw trade timestamp'lariga fit qilingan Hawkes jarayoni (a) held-out likelihood'da Poisson baseline'dan ustun bo'lishi, (b) 0 va 1 orasida branching ratio berishi va (c) time-rescaling goodness-of-fit testidan o'tishi kerak. (a) va (b) equity futures uchun keng qayd etilgan. (c) esa published Hawkes maqolalari odatda jim qoladigan, bu blogda crypto tape hali tekshirilmagan nuqtadir.
Bu blogda allaqachon mavjud bo'lgan ikki background bu yerda qayta hosil qilinmaydi. Self-exciting feedback structure — bir xil turdagi hodisalar ko'proq hodisalarni qo'zg'atishi, threshold ostida subcritical va undan yuqorida runaway bo'lishi — liquidation cascades as a trading signal maqolasida reproduction number sifatida konkret hosil qilingan; unda geometric-series total move, supercritical flash-crash regime va uni chegaralovchi uch narsadan biri sifatidagi circuit breaker'lar bor. Quyidagi branching ratio shu ning point-process analogidir. Bu yerda haqiqatan qo'shiladigan narsa: ni real vaqtda faqat trade timestamp'laridan, liquidation map, order-book depth yoki leverage farazlarisiz estimate qilish mumkin. Point-process machinery bilan shug'ullanishning butun sababi shu.
Clock time noto'g'ri sampling axis degan premise beyond time bars maqolasining asosiy argumenti bo'lib, u muammoni yaxshiroq barlar qurish bilan hal qiladi. Bu maqola esa boshqacha hal qiladi: umuman sampling qilmaydi va event time'larni bevosita modellashtiradi.
Point process asoslari: qisqacha

Point process — conditional intensity bilan belgilanadigan tasodifiy event time'lar to'plami; bu to'liq history berilgandagi instant arrival rate:
Homogeneous Poisson process holatidir. Inhomogeneous Poisson process ga deterministic shape (masalan, U-shaped intraday curve) ergashishga imkon beradi, ammo conditional independence'ni saqlaydi: hozirgina trade bo'lganini bilish keyingisi yaqinligini aytmaydi. Haqiqiy order flow aynan shu farazni buzadi va maqolaning butun mavzusi shu buzilishdir. dagi asterisk butun farqni bildiradi — history'ga bog'liqlikni ko'rsatadi.
Hawkes jarayoni

Bir o'lchamli Hawkes jarayonining intensity'i quyidagicha:
background intensity (exogenous arrival'lar), esa excitation kernel. Har bir event intensity'ni ga oshiradi va u shaklida so'nadi. Yaqindagi event'lar klasteri yuqori intensity hosil qilib, keyingi event'larni ehtimoliroq qiladi — jarayon o'z history'sini eslab qoladi.
Tarmoqlanish koeffitsiyenti
bitta parent qo'zg'atadigan child event'larning o'rtacha soni. Stationarity ni talab qiladi; stationary mean intensity bo'lib, da diverge qiladi. Demak, total activity'ni exogenous fraction va endogenous fraction ga ajratadi: da event'larning yetmish foizi bozordan tashqaridagi narsaga javob emas, boshqa event'larning reaksiyasidir.
Bu liquidation cascades dagi cascade multiplier'ning subcritical/supercritical bo'linishiga aynan mos keladi, faqat boshqa yo'nalishdan olinadi. Hisoblash narxidagi farq shuki: forced-sell density va live book depth'ning forward map'ini talab qiladi, ikkalasi ham leverage distribution haqidagi farazlar ustiga qurilgan estimate'lardir. esa timestamp'lar ro'yxatini talab qiladi.
Filimonov va Sornette (2012) E-mini S&P 500 futures'da 1998-2007 yillari oralig'ida taxminan 0.3 dan 0.7 dan yuqoriga ko'tarilganini qayd etdi. Hardiman, Bercot va Bouchaud (2013) o'sha contract uchun short lag'larda exponent'i taxminan bo'lgan power-law kernel bilan ni berdi. Ikkalasi ham o'n yildan oldingi equity-futures natijalari va o'lchovsiz crypto'ga ko'chirilmaydi. Bu maqolaning maqsadi ularni takrorlash emas; turli participant'lar va market-open discontinuity'siz 24/7 perpetual-futures tape'da xuddi shu regime mavjudligini tekshirishdir.
Kernel tanlovlari
Exponential, , bilan. Markovian, shuning uchun likelihood har event uchun recursion'ga ega (quyida). Har bir amaliy fit shu yerdan boshlanadi.
Power law, . Long-memory clustering'ni takrorlaydi, ammo recursion yo'qoladi — likelihood evaluation bo'ladi yoki truncation talab qiladi.
Exponentials yig'indisi, . Recursion'ni saqlagan holda power-law decay'ni time scale bilan yaqinlashtiradi. Odatda dan gacha yetarli, esa millisecond'dan minute'largacha yoyiladi.
Crypto trade arrival'lari exponential yoki power law tarzida so'nadimi — likelihood-ratio javobiga ega empirik savol; quyida u citation bilan emas, o'lchov bilan tekshiriladi.
Ko'p o'lchamli Hawkes jarayonlari

ta event turi uchun:
turi turini qanday qo'zg'atishini ifodalaydi. Exponential kernel'larda branching matrix , stationarity esa spectral radius ni talab qiladi. Eng katta eigenvalue'ga mos eigenvector'i dominant excitation mode'ni — event type'larning qaysi guruhi birga ishga tushishini — aniqlaydi.
Order book uchun qiziq instantiation : market buy, market sell, limit buy, limit sell, cancel buy, cancel sell. Bu matrix 36 ta entry'ga ega va Hawkes toolkit'ning blogda boshqa joyda yo'q qismidir. Uning predicted entry'laridan biri vocabulary'siz empirik tarzda allaqachon hujjatlashtirilgan: ketma-ket level'lar bo'ylab correlated mass cancellation — wall pull'lar — queue position va order book wall analysis da bevosita o'lchanadi. Fit qilingan shu hodisaning kernel ko'rinishidir va ikki o'lchov mos kelishi kerak. Mos kelmasa, ulardan biri noto'g'ri.
Cross-asset va multi-venue versiyalar turli label'lar bilan ayni machinery'dir: off-diagonal kernel'lar lead-lag va contagion'ni capture qiladi. Shi, Broussard va Booth (2019) 2010 flash crash davridagi 30 ta Dow stock'ida aynan shuni ishlatib, aniqlanadigan contagion source'lari bilan asymmetric cross-excitation topgan.
Kalibratsiya

Maksimal ehtimollik
oralig'idagi event times uchun:
Birinchi term event'lar bo'lgan joydagi intensity'ni mukofotlaydi; ikkinchisi hech narsa hosil qilmagan intensity'ni penalti qiladi.
Exponential kernel uchun recursion:
per event hisobida ni beradi va compensator yopiladi:
Umumiy cost , million-event fit'larni odatiy qiladigan narsa shu. Positivity constraints ostida L-BFGS-B bilan optimize qiling.
Output'ga ishonishdan oldin bilish kerak bo'lgan ikkita failure mode bor. da likelihood surface juda flatten bo'ladi, shuning uchun near-critical fit bo'yicha oralig'ida deyarli tekis valley'da turgan, ishonchli ko'rinadigan point estimate berishi mumkin — har doim optimizer Hessian'ini o'qish o'rniga likelihood'ni bo'yicha profile qiling. Multivariate holatda parameter count sifatida o'sadi, shuning uchun dan keyin kernel norm'larida group-Lasso kerak, aks holda matrix noise'ga fit bo'ladi.
EM va parametrik bo'lmagan baholash
EM branching structure'ni latent deb qaraydi: har bir event dan immigrant yoki oldingi event'ning offspring'idir. Generic E-step/M-step mechanics, local-optimum caveat va multiple-initialization discipline HMM bilan regime detection dagi Baum-Welch bo'limida qamrab olingan va bu yerda ham aynan shunday. Hawkes'ga xos qism E-step quantity'sining o'zidir:
qaysi event qaysi event'ni sabab qilgan degan posterior — oddiy optimization intermediate emas, talqin qilinadigan output. Event type bo'yicha yig'ilganda tape attribution'ini beradi: oxirgi soat sell'larining shu fraction'i oldingi sell'lar tomonidan trigger qilingan, bu fraction tashqaridan kelgan. Shuningdek, ni grid'da piecewise-constant sifatida non-parametrik estimate qilishga imkon beradi; shu tariqa alternative'ga majbur bo'lmasdan exponential farazni tekshirasiz. Cost: to'liq matrix uchun , shuning uchun approximation'siz taxminan event'dan oshmaydi.
Bacry va Muzy spectral method'i boshqa model-free yo'ldir — stationary Hawkes process'ning power spectral density'si sifatida factorize bo'ladi. Shuning uchun covariance density'ni estimate qilish va factorization'ni yechish hech qanday parametric form faraz qilmasdan kernel'larni tiklaydi.
Haqiqiy crypto tape'iga moslashtirish

Bu bo'limdagi har bir son real data'dagi actual fit'dan kelishi kerak. Simulator'ga inject qilgan parametrlarni tiklash optimizer ishlashidan boshqa hech narsaga evidence emas.
Data: belgilangan window'dagi Binance BTC/USDT aggTrade timestamp'lari; har bir report qilingan raqam yonida window, symbol va event count aniq ko'rsatiladi. aggTrade bitta taker order'dan bir xil price'dagi fill'larni bitta record'ga aggregate qiladi, bu yerda to'g'ri unit shu — bitta aggressive order bitta event, counterparty fill uchun alohida event emas.
Bir o'lchamli moslashtirish
import numpy as np
import pandas as pd
from tick.hawkes import HawkesExpKern
trades = pd.read_parquet("binance_btcusdt_aggtrades.parquet")
t0 = trades["transact_time"].iloc[0]
ts = ((trades["transact_time"] - t0) / 1000.0).to_numpy(dtype=np.float64)
T = ts[-1]
learner = HawkesExpKern(decays=BETA_GRID, penalty="none", verbose=False)
learner.fit([ts])
mu_hat = learner.baseline[0]
alpha_hat = learner.adjacency[0, 0]
n_hat = alpha_hat / BETA_CHOSEN
print(f"events = {len(ts)}")
print(f"window = {T/3600:.2f} h")
print(f"mu = {mu_hat:.4f} events/s")
print(f"n = {n_hat:.4f}")
print(f"lambda_bar (model) = {mu_hat/(1-n_hat):.4f} events/s")
print(f"lambda_bar (data) = {len(ts)/T:.4f} events/s")
Oxirgi ikki print hech qanday cost talab qilmaydigan birinchi sanity check: model stationary mean intensity empirical event rate'ga yaqin bo'lmasa, optimizer nima report qilganidan qat'i nazar fit noto'g'ri.
qo'lda fixed qilinmasligi kerak. Decay'lar grid'i bo'ylab likelihood'ni profile qiling va profilni report qiling, chunki va kuchli trade-off qiladi; barqaror bo'lishi mumkin, parametrlarning o'zi esa bo'lmasligi mumkin.
Kernel haqiqatan ham exponential tarzda so'nadimi?
Literaturadagi power-law da'vosi 2013 yilgi equity-futures maqolalaridan keladi. Uni bevosita test qiling: bir xil tape'ga exponential va power-law kernel'larni fit qiling, held-out data'da log-likelihood bo'yicha solishtiring (in-sample emas, chunki power law'da qo'shimcha parametr bor) va katta trade'lardan keyingi empirical intensity decay'ni alohida ko'ring.
large = ts[trades["quantity"].to_numpy() > LARGE_TRADE_THRESHOLD]
lags = np.logspace(-3, 2, 60) # 1 ms .. 100 s
rate = np.empty(len(lags) - 1)
for k in range(len(lags) - 1):
lo, hi = lags[k], lags[k + 1]
counts = [
np.searchsorted(ts, t0_ + hi) - np.searchsorted(ts, t0_ + lo)
for t0_ in large
]
rate[k] = np.mean(counts) / (hi - lo)
Log-log'da chizilganda exponential kernel egiladi, power law to'g'ri chiziq bo'ladi. Bu plot ikki likelihood number'ning istalganidan kuchliroq evidence, chunki misfit qayerda ekanini ko'rsatadi — odatda exponential'lar tail'ni underfit, dastlabki bir necha millisecond'ni overfit qiladi.
Tarmoqlanish matritsasi
Minimum viable multivariate model: is_buyer_maker bilan ajratilgan ikki dimension — aggressive buy va aggressive sell. Agar L3 data mavjud bo'lsa, cancel'largacha kengaytiring.
buys = ts[~trades["is_buyer_maker"].to_numpy()] # taker bought
sells = ts[ trades["is_buyer_maker"].to_numpy()] # taker sold
mv = HawkesExpKern(decays=BETA_CHOSEN, penalty="l2", C=C_CV, verbose=False)
mv.fit([buys, sells])
G = mv.adjacency / BETA_CHOSEN # branching matrix
rho = np.max(np.abs(np.linalg.eigvals(G)))
print("G =\n", G)
print(f"spectral radius = {rho:.4f}") # must be < 1
Publish qilinishi kerak bo'lgan ikki quantity — matrixning o'zi va uning spectral radius'i. Qiziq qism asymmetry: sell-excites-sell buy-excites-buy'dan ustunmi va cross term'lar symmetricmi — bular crypto tape haqida test qilinadigan, bu yerda hali hech kim o'lchamagan da'volardir.
Moslikni baholash: vaqtni qayta masshtablash
Time-rescaling teoremasi: agar model to'g'ri bo'lsa, transformed time'lar unit-rate Poisson process hosil qiladi, shuning uchun farqlar bo'ladi.
from scipy.stats import kstest, expon
compensator = np.empty(len(ts))
for i, ti in enumerate(ts):
compensator[i] = mu_hat * ti + (alpha_hat / BETA_CHOSEN) * np.sum(
1 - np.exp(-BETA_CHOSEN * (ti - ts[:i]))
)
tau = np.diff(compensator)
stat, pval = kstest(tau, expon(scale=1.0).cdf)
print(f"KS = {stat:.4f}, p = {pval:.4g}, N = {len(tau)}")
Bu testni o'qishda bir ehtiyotkorlik: yuz minglab bo'lsa, KS test trivial misspecification sabab reject qiladi. dagi juda kichik p-value o'zicha deyarli hech narsani anglatmaydi; informativ output ning ga QQ plot'i va scale-free effect size bo'lgan KS statistic'ning o'zidir. Ikkalasini ham halol report qiling — agar exponential kernel crypto tape'da reject qilinsa, uni ko'mish emas, publish qilish kerak, robust edge'lardagi halol salbiy natija ruhida.
n haqiqatan ham zaiflik bilan o'zgaradimi?
real-time fragility indicator degan da'vo doim citation qilinadi, kamdan-kam test qilinadi. Test oddiy: tinch davr va ma'lum crypto cascade date bo'ylab rolling window'larda ni estimate qiling va u event'dan oldin yoki faqat event vaqtida oshishini ko'ring. Faqat crash bilan bir vaqtda spike qiladigan quantity warning emas, description'dir.
Barqarorlik va mustahkamlik

Fit qilingan ahamiyatsiz bo'lishi kerak bo'lgan narsalarni o'zgartirganda qanchalik siljishini bilmaguningizcha o'lchov emas. Zarar miqdori bo'yicha taxminiy tartibda to'rtta aniq trap mavjud.
Timestamp resolution self-excitation hosil qiladi. Binance aggTrade timestamp'lari millisecond-resolution'da. Aslida microsecond farq qilgan trade'lar bir xil millisecond stamp'ga collapse bo'ladi va Hawkes likelihood coincident event'larni maksimal excitation sifatida o'qiydi — aynan zero lag'da baholanadi. Bu ni yuqoriga bias qiladi va bias activity bilan o'sadi; demak, raqamga eng ko'p ishonmoqchi bo'lgan burst'larda eng yomon bo'ladi. Buni quantity qiling: qo'shnisi bilan bir xil timestamp'ga ega event fraction'ini hisoblang, keyin bu event'larni millisecond bin ichida uniform jitter qilib qayta fit qiling va qanchaga o'zgarganini report qiling. Jittering ni confidence interval'dan ko'proq o'zgartirsa, asosiy raqam market'ni emas, clock'ni o'lchayapti.
Exchange batching. Exchange'lar event'larni sodir bo'lishi bilan emas, matching va dissemination pipeline flush qilganda chiqaradi. Binance liquidation stream'dagi one-per-second throttle bunga documented precedent — clustered arrival'ga o'xshagan stream qisman publisher artifact'idir. Trade feed'dagi har qanday batching inter-arrival distribution'ga periodicity bosadi, Hawkes kernel esa uni ichiga mamnuniyat bilan singdiradi. To'g'ridan-to'g'ri tekshiring: inter-arrival time'larni histogram qiling va biror fitdan oldin batching period'ida spike'larni izlang.
Faraz qilingan decay'ga sensitivity. ga bog'liq, esa odatda joint estimate qilinmaydi, fixed yoki grid-searched bo'ladi. ni point sifatida emas, plausible range bo'ylab funksiyasi sifatida report qiling. Curve flat bo'lsa raqam haqiqiy; ni yaqindan kuzatsa, javobni o'zingiz tanlagansiz.
Estimation window. Bir soat, kun va hafta bo'yicha estimate qilingan farq qiladi: qisman process haqiqatan non-stationary, qisman uzun window regime'larni aralashtiradi va between-regime variation'ni within-regime clustering bilan chalkashtirib, apparent excitation'ni oshiradi. Window-length sweep'ni report qiling. O'sayotgan ni to'g'ri o'qish — boshqa vaqtlar uchun o'lchangan ayni window length bilan solishtirish; boshqa window'dagi raqam bilan emas.
Bu yerda namuna GPU precision trap da o'rnatilgan: toza ishlaydigan va plausible raqam qaytaradigan pipeline to'g'ri raqam evidence'i emas; yagona himoya ahamiyatsiz bo'lishi kerak bo'lgan input'larni perturb qilib, output siljimasligini tasdiqlashdir.
Bu sizga nima beradi va nimani bermaydi

Microstructure theory bilan uchta bog'lanish; blog ularning har birini boshqa joyda batafsil qamrab olgani uchun qisqa.
Price formation. Kyle (1985) da market maker informed va noise trading aralashgan net order flow asosida price qiladi; impact coefficient va depth , jumladan Kyle linearity'siga qarshi evidence bilan, slippage cost models da berilgan. Hawkes talqini ni haqiqiy yangi information'ga, self-excited event'larni mechanical reaction'ga map qiladi va ni flow'ning noise-driven ulushi uchun o'lchanadigan proxy'ga aylantiradi.
Volatility clustering. Clustering, persistence, stationarity condition va long-run variance — strukturaviy jihatdan va ning exact analogi — crypto uchun GARCH volatility forecasting da qamrab olingan. Haqiqiy yangi da'vo Bacry, Delattre, Hoffmann va Muzy (2013) dan: near-critical Hawkes process hech qanday explicit volatility model'siz volatility autocorrelation'i power law sifatida decay qiladigan return series'ni hosil qiladi. Volatility clustering faraz qilinmaydi, self-exciting order flow'ning emergent xususiyati sifatida yuzaga chiqadi.
Epps effect. Bacry va Muzy bivariate Hawkes model yuqori sampling frequency'da o'lchangan correlation decay'ini faqat ikki process orasidagi excitation'ning finite propagation time'i orqali takrorlashini ko'rsatdi — qo'shimcha mexanism kerak emas.
Execution'da self-excitation'dan keladigan prescription — slice'dan keyin sekinlashish, tinch davrda tezlashish — TWAP, VWAP va POV execution algorithms dagi POV feedback-loop bo'limining yadrosidir; naive equal slicing critique'i esa Almgren-Chriss da. Hawkes fit advice emas, son qo'shadi: fit qilingan kernel half-life o'z slice'ingizdan kelgan excitation qancha vaqtda decay qilishini aytadi va "biroz kutish"ni aniq pause length'ga aylantiradi.
Cheklovlar

Inhibition yo'q. Classical model event'lar intensity'ni faqat oshirishiga imkon beradi. Bozorlarda teskarisi ham bor: pressure'ni yutayotgan katta limit order aggressive trading'ni to'xtatishi mumkin. Inhibition'li Hawkes process'lar negative kernel value'lariga ruxsat beradi, ammo ni enforce qilish kerak. Bu ma'lum fit uchun muhimmi-yo'qmi non-parametric kernel estimate'da ko'rinadi — piecewise-constant biror lag'da noldan pastga tushsa, constrained model data bilan kurashmoqda.
Non-stationarity. Standard model stationarity'ni faraz qiladi, crypto esa 24/7 bo'lsa ham uniform emas: liquidity, participant mix va event rate kun davomida hamda funding timestamp'lari atrofida o'zgaradi. Time-varying baseline buni ko'proq parametrlar evaziga hal qiladi; yuqoridagi estimation-window sensitivity sizga bunga ehtiyoj bor-yo'qligini ko'rsatadi.
Xulosa

Hawkes process bir sababga ko'ra machinery'ga arziydi: order flow clustering'ini bitta talqin qilinadigan branching ratio soniga collapse qiladi; uni faqat timestamp'lardan, order-book reconstruction'siz va leverage yoki positioning farazlarisiz hisoblash mumkin. Bu uni bozor hozir qanchalik endogenous ekanining eng arzon mavjud estimate'iga aylantiradi — liquidation cascades ayni savolga orqali qimmat javob beradi.
Machinery oddiy: exponential kernel'lar recursion orqali likelihood beradi, EM qaysi event qaysi event'ga sabab bo'lganini ko'rsatuvchi talqin qilinadigan posterior beradi, time rescaling esa plausibility argument emas, haqiqiy goodness-of-fit testini beradi. Output'ga ishonish esa oddiy emas. Millisecond timestamp rounding aynan burst paytida ni yuqoriga bias qiladi, exchange batching kernel singdiradigan structure'ni bosadi va ham assumed decay, ham estimation window bilan o'zgaradi. Shu to'rtta sensitivity'siz report qilingan branching ratio son, o'lchov emas.
Manbalar va qo'shimcha o'qish
- Hawkes, A. G. (1971). "Spectra of some self-exciting and mutually exciting point processes." Biometrika, 58(1), 83-90.
- Bacry, E., Mastromatteo, I., and Muzy, J.-F. (2015). "Hawkes processes in finance." Market Microstructure and Liquidity.
- Shi, F., Broussard, J. P., and Booth, G. G. (2019). "Modeling Flash Crash Behavior in a Stock Market Using Multivariate Hawkes Processes."
- Hardiman, S., Bercot, N., and Bouchaud, J.-P. (2013). "Critical reflexivity in financial markets: a Hawkes process analysis."
- Bacry, E., and Muzy, J.-F. (2014). "Hawkes model for price and trades high-frequency dynamics." Quantitative Finance.
- Bompaire, M., Bacry, E., and Gaiffas, S. (2017). "tick: a Python Library for Statistical Learning, with an emphasis on Hawkes Processes." JMLR.
- Filimonov, V., and Sornette, D. (2012). "Quantifying reflexivity in financial markets."
- Kumar, P. (2021). "Deep Hawkes Process for High-Frequency Market Making."
- tick library documentation: Hawkes module.
- Morse, S. "Python class for Hawkes processes." (Tutorial and code)
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.