← Torna agli articoli
August 9, 2026
5 min di lettura

Hawkes Processes for Order Arrival and Market Event Modeling

Hawkes Processes for Order Arrival and Market Event Modeling
#microstructure
#Hawkes-process
#point-process
#order-arrival
#crypto
#HFT

L'articolo sull'impronta digitale utilizza un vettore di tre numeri: hawkes_mu, hawkes_alpha, hawkes_beta - come componente temporale della firma comportamentale di un partecipante e afferma che i market maker mostrano una forte autoeccitazione. Non dice mai da dove provengono questi tre numeri, da cosa vengono stimati o quanto dovresti fidarti di loro. Questo articolo è la metà mancante: lo stimatore, la diagnostica di adattamento e l'unica quantità derivata che risulta essere più importante dei tre parametri stessi: il rapporto di ramificazione nn.

L'affermazione qui testata è ristretta e verificabile. Il flusso degli ordini è auto-eccitante: una vendita aggressiva rende più probabile la successiva vendita aggressiva, in un modo che un modello di Poisson con qualsiasi tasso variabile nel tempo non può riprodurre. Se ciò fosse vero, un processo di Hawkes adattato ai timestamp del commercio grezzo dovrebbe (a) battere una linea di base di Poisson sulla probabilità di hold-out, (b) produrre un rapporto di ramificazione strettamente compreso tra 0 e 1 e (c) superare un test di bontà di adattamento con riscalamento temporale. I punti (a) e (b) sono ampiamente riportati per i futures su azioni. Il punto (c) è il punto in cui i documenti Hawkes pubblicati di solito tacciono, ed è dove il nastro crittografico non è mai stato controllato su questo blog.

Due elementi di background già posseduti da questo blog, quindi non vengono riderivati ​​qui. La struttura di feedback autoeccitante – eventi che innescano più eventi dello stesso tipo, subcritici al di sotto di una soglia e fuori controllo al di sopra di essa – è derivata concretamente come numero di riproduzione g=ρ/Δg = \rho/\Delta in liquidation cascades as a trading signal, incluso il movimento totale in serie geometrica, il regime di flash-crash supercritico e gli interruttori automatici come una delle tre cose che lo vincolano. Il rapporto di ramificazione nn di seguito è riportato l'analogo del processo a punti di quello gg. Ciò che è veramente additivo qui: nn è stimabile in tempo reale basandosi esclusivamente sui timestamp delle transazioni, senza mappa di liquidazione, senza profondità del portafoglio ordini e senza ipotesi di leva finanziaria. Questa è l'intera ragione per preoccuparsi del meccanismo del processo a punti.

La premessa che il tempo dell'orologio sia l'asse di campionamento sbagliato è l'argomento fondante di beyond time bars, che risolve il problema costruendo barre migliori. Questo articolo risolve il problema in modo diverso: non campionando affatto e modellando direttamente i tempi dell'evento.

Fondamenti del processo puntuale, in breve

Impulsi discreti di eventi di arrivo dell'ordine

Un processo puntuale è un insieme casuale di tempi di eventi, definiti dalla sua intensità condizionale λ(t)\lambda^*(t) — il tasso di arrivo istantaneo data la cronologia completa Ft\mathcal{F}_t:

λ(t)=limΔt0E[N(t,t+Δt)Ft]Δt\lambda^*(t) = \lim_{\Delta t \to 0} \frac{\mathbb{E}[N(t, t + \Delta t) \mid \mathcal{F}_t]}{\Delta t}

Si tratta del processo di Poisson omogeneo λ(t)=μ\lambda^*(t) = \mu. Il disomogeneo processo di Poisson lo consente λ(t)\lambda(t) seguono una forma deterministica (una curva intraday a forma di U, diciamo), ma assumono comunque un'indipendenza condizionale: sapere che un'operazione è appena avvenuta non ti dice nulla sul fatto che un'altra sia imminente. Questo presupposto è ciò che il flusso degli ordini reali viola e la violazione è l’intero argomento di questo articolo. L'asterisco dentro λ(t)\lambda^*(t) è l’intera distinzione: segna la dipendenza dalla storia.

Il processo Hawkes

Scosse di assestamento di eventi di mercato autoeccitanti

Un processo di Hawkes univariato ha intensità

λ(t)=μ+ti<tϕ(tti)\lambda^*(t) = \mu + \sum_{t_i < t} \phi(t - t_i)

con μ>0\mu > 0 l'intensità di fondo (arrivi esogeni) e ϕ()0\phi(\cdot) \geq 0 il nucleo di eccitazione. Ogni evento aumenta l'intensità ϕ(0)\phi(0), che poi decade con la forma di ϕ\phi. Un insieme di eventi recenti produce un’elevata intensità, rendendo più probabili ulteriori eventi: il processo ricorda la propria storia.

Il rapporto di ramificazione

n=0ϕ(t)dtn = \int_0^\infty \phi(t) \, dt

nn è il numero medio di eventi figlio attivati ​​da un genitore. La stazionarietà richiede n<1n < 1; l'intensità media stazionaria è λˉ=μ/(1n)\bar{\lambda} = \mu / (1-n), che diverge come n1n \to 1. COSÌ nn divide l'attività totale in una frazione esogena (1n)(1-n) e una frazione endogena nn: A n=0.7n = 0.7, il settanta per cento degli eventi sono reazioni ad altri eventi piuttosto che risposte a qualcosa al di fuori del mercato.

Questa è esattamente la divisione subcritica/supercritica del moltiplicatore a cascata in liquidation cascades, raggiunta da una direzione diversa. La differenza in quanto ti costa calcolare: g=ρ/Δg = \rho/\Delta richiede una mappa anticipata della densità delle vendite forzate e della profondità dei libri in tempo reale, entrambe stime stratificate su ipotesi sulla distribuzione della leva finanziaria. nn richiede un elenco di timestamp.

Filimonov e Sornette (2012) hanno riferito nn aumentando da circa 0,3 a oltre 0,7 nei futures E-mini S&P 500 tra il 1998 e il 2007. Hardiman, Bercot e Bouchaud (2013) collocano lo stesso contratto vicino n0.8n \approx 0.8 con un nucleo di esponente della legge di potenza circa 1.15-1.15 a brevi ritardi. Entrambi sono risultati di futures azionari di oltre un decennio fa e nessuno dei due si trasferisce alle criptovalute senza misurazione. Riprodurli non è lo scopo di questo articolo; verificare se lo stesso regime vale su un nastro di futures perpetui 24 ore su 24, 7 giorni su 7 con diversi partecipanti e se non esiste alcuna discontinuità di apertura del mercato.

Scelte del kernel

Esponenziale, ϕ(t)=αeβt\phi(t) = \alpha e^{-\beta t}, con n=α/βn = \alpha/\beta. Markoviano, quindi la probabilità ha un O(1)O(1)-ricorsione per evento (sotto). È qui che inizia ogni adattamento pratico.

Legge di potenza, ϕ(t)=αcp/(c+t)1+p\phi(t) = \alpha c^p / (c+t)^{1+p}. Riproduce il clustering a memoria lunga, ma perde la ricorsione: diventa la valutazione della verosimiglianza O(N2)O(N^2) o richiede il troncamento.

Somma degli esponenziali, ϕ(t)=k=1Kαkeβkt\phi(t) = \sum_{k=1}^{K} \alpha_k e^{-\beta_k t}. Si avvicina al decadimento della legge di potenza con KK tempistiche mantenendo la ricorsione. K=3K = 3 A 55 di solito è sufficiente, con βk\beta_k dai millisecondi ai minuti.

Se gli arrivi del commercio di criptovalute decadono in modo esponenziale o come legge di potere è una questione empirica con una risposta in termini di rapporto di verosimiglianza, ed è misurata di seguito anziché citata.

Processi Hawkes multivariati

Flussi trasversali di eventi di mercato

Per DD tipi di eventi,

λd(t)=μd+d=1Dtid<tϕdd(ttid)\lambda_d^*(t) = \mu_d + \sum_{d'=1}^{D} \sum_{t_i^{d'} < t} \phi_{dd'}(t - t_i^{d'})

Dove ϕdd\phi_{dd'} descrive come digitare dd' eccita il tipo dd. Con i kernel esponenziali la matrice di ramificazione è G=[αdd/βdd]G = [\alpha_{dd'}/\beta_{dd'}]e la stazionarietà richiede un raggio spettrale ρ(G)<1\rho(G) < 1. L'autovettore di GG associato all'autovalore più grande identifica la modalità di eccitazione dominante, ovvero quale gruppo di tipi di eventi tende ad attivarsi insieme.

L'istanza interessante per un portafoglio ordini è D=6D = 6: acquisto a mercato, vendita a mercato, acquisto con limite, vendita con limite, annulla acquisto, annulla vendita. Quella matrice ha 36 voci ed è la parte del toolkit Hawkes che questo blog non ha da nessun'altra parte. Si noti che una delle voci previste è già documentata empiricamente senza il vocabolario: la cancellazione di massa correlata su livelli consecutivi - wall pulls - è misurata direttamente in [analisi della posizione della coda e del wall book degli ordini] (/en/blog/post/queue-position-order-book-wall-analysis). Un montato ϕcancel,cancel\phi_{\text{cancel},\text{cancel}} è lo stesso fenomeno espresso come nocciolo e le due misurazioni dovrebbero concordare. Se non lo fanno, uno di loro è sbagliato.

Le versioni cross-asset e multi-venue sono lo stesso meccanismo con etichette diverse: i kernel fuori diagonale catturano il lead-lag e il contagio, e Shi, Broussard e Booth (2019) hanno utilizzato esattamente questo sui 30 titoli Dow durante il flash crash del 2010, trovando un’eccitazione incrociata asimmetrica con fonti di contagio identificabili.

Calibrazione

Calibrazione di un campo di intensità di evento

Massima probabilità

Per gli orari degli eventi {t1,,tN}\{t_1, \ldots, t_N\} SU [0,T][0, T]:

(θ)=i=1Nlogλ(ti)0Tλ(t)dt\ell(\theta) = \sum_{i=1}^{N} \log \lambda^*(t_i) - \int_0^T \lambda^*(t) \, dt

Il primo termine premia l'intensità laddove si sono verificati gli eventi; la seconda penalizza l'intensità che non ha prodotto nulla.

Per il kernel esponenziale la ricorsione

Ri=j<ieβ(titj)=eβ(titi1)Ri1+1R_i = \sum_{j < i} e^{-\beta(t_i - t_j)} = e^{-\beta(t_i - t_{i-1})} \cdot R_{i-1} + 1

λ(ti)=μ+αRi\lambda^*(t_i) = \mu + \alpha R_i A O(1)O(1) per evento e il compensatore si chiude:

0Tλ(t)dt=μT+αβi=1N(1eβ(Tti))\int_0^T \lambda^*(t) \, dt = \mu T + \frac{\alpha}{\beta} \sum_{i=1}^{N} \left(1 - e^{-\beta(T - t_i)}\right)

Costo totale O(N)O(N), che è ciò che rende routine gli adattamenti di milioni di eventi. Ottimizzare con L-BFGS-B sotto vincoli di positività.

Due modalità di errore che vale la pena conoscere prima di fidarsi di un output. La superficie della probabilità si appiattisce notevolmente n1n \to 1, quindi un adattamento quasi critico può riportare una stima puntuale dall'aspetto fiducioso situata in una valle che è quasi in piano ±0.1\pm 0.1 In nn - Profila sempre la probabilità nn piuttosto che leggere l'Hessian dell'ottimizzatore. E nel caso multivariato il conteggio dei parametri cresce come O(D2)O(D^2), così passato D10D \approx 10 è necessario il lasso di gruppo sulle norme del kernel o la matrice si adatta al rumore.

EM e stima non parametrica

EM tratta la struttura ramificata come latente: ogni evento è un immigrato da μ\mu o un frutto di qualche evento precedente. La meccanica generica E-step/M-step, l'avvertenza dell'ottimale locale e la disciplina dell'inizializzazione multipla sono trattati nella sezione Baum-Welch di rilevamento del regime con HMM e sono identici qui. La parte specifica di Hawkes è la quantità E-step stessa:

pij=ϕ(titj)λ(ti),pi0=μλ(ti)p_{ij} = \frac{\phi(t_i - t_j)}{\lambda^*(t_i)}, \quad p_{i0} = \frac{\mu}{\lambda^*(t_i)}

pijp_{ij} è un posteriore rispetto a quale evento ha causato quale: un output interpretabile, non solo un intermedio di ottimizzazione. Sommando per tipo di evento si ottiene un'attribuzione del nastro: questa frazione delle vendite dell'ultima ora è stata innescata da vendite precedenti, quella frazione è arrivata dall'esterno. Ti consente anche di stimare ϕ\phi in modo non parametrico come costante a tratti su una griglia, che è il modo in cui controlli l'ipotesi esponenziale senza impegnarti in un'alternativa. Costo: O(N2)O(N^2) per intero pijp_{ij} matrice, quindi non si ridimensiona approssimativamente 10510^5 eventi senza approssimazione.

Il metodo spettrale di Bacry e Muzy è l'altro percorso senza modello: la densità spettrale di potenza di un processo di Hawkes stazionario dipende da C^(ω)=IΦ^(ω)2diag(μ)\hat{C}(\omega) = |I - \hat{\Phi}(\omega)|^{-2} \cdot \text{diag}(\mu), quindi stimando la densità di covarianza e risolvendo la fattorizzazione si recuperano i nuclei senza alcuna forma parametrica assunta.

Montaggio del vero nastro crittografico

Consolidamento del nastro per il commercio di criptovalute

Ogni numero in questa sezione deve provenire da un adattamento effettivo ai dati reali. Il recupero dei parametri inseriti in un simulatore non è la prova di altro che il funzionamento dell'ottimizzatore.

I dati: Binance BTC/USDT aggTrade timestamp su una finestra definita, con la finestra, il simbolo e il conteggio degli eventi dichiarati esplicitamente accanto a ogni figura riportata. aggTrade gli aggregati vengono eseguiti allo stesso prezzo da un ordine acquirente in un singolo record, che in questo caso è l'unità giusta: un ordine aggressivo è un evento, non un evento per esecuzione della controparte.

Adattamento univariato

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")

Le ultime due stampe sono il primo controllo di integrità che non costa nulla: se il modello stazionario significa intensità μ/(1n)\mu/(1-n) non si avvicina al tasso di eventi empirici, l'adattamento è errato indipendentemente da ciò che è stato riportato dall'ottimizzatore.

β\beta non deve essere riparato a mano. Profila la probabilità su una griglia di decadimenti e riporta il profilo, perché α\alpha E β\beta scendere fortemente e n=α/βn = \alpha/\beta può essere stabile mentre nessuno dei due parametri lo è.

Il kernel decade effettivamente in modo esponenziale?

L’affermazione della legge di potenza in letteratura proviene dai documenti sui futures azionari del 2013. Testatelo direttamente: adattate un kernel esponenziale e un kernel basato sulla legge di potenza sullo stesso nastro, confrontateli in base alla probabilità logaritmica sui dati conservati (non nel campione, poiché la legge di potenza ha un parametro aggiuntivo) e osservate separatamente il decadimento empirico dell'intensità a seguito di grandi operazioni.

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 tracciato, un kernel esponenziale si piega; una legge di potenza è diritta. Questo grafico è una prova più forte di entrambi i numeri di verosimiglianza, perché mostra dove si trova il disadattamento: in genere gli esponenziali si adattano in modo insufficiente alla coda e si adattano eccessivamente ai primi millisecondi.

La matrice di ramificazione

Modello multivariato minimo praticabile: due dimensioni, acquisto aggressivo e vendita aggressiva, separate da is_buyer_maker. Se i dati L3 sono disponibili, estendi agli annullamenti.

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

Le due quantità da pubblicare sono la matrice stessa e il suo raggio spettrale. L'asimmetria è la parte interessante: se vendere-eccita-vendere supera l'acquisto-eccita-acquista, e se i termini incrociati sono simmetrici, sono affermazioni verificabili sul nastro crittografico che nessuno qui ha misurato.

Bontà di adattamento: ridimensionamento temporale

Il teorema del time-rescaling: se il modello è corretto, i tempi trasformati τi=0tiλ(s)ds\tau_i = \int_0^{t_i} \lambda^*(s)\,ds formano un processo di Poisson a tasso unitario, quindi le differenze Δτi\Delta\tau_i Sono Exp(1)\text{Exp}(1).

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)}")

Un avvertimento nel leggere questo test: con NN su centinaia di migliaia, il test KS viene rifiutato per banali errori di specifica. Un piccolo valore p a N=5×105N = 5 \times 10^5 non significa quasi nulla da solo; l'output informativo è il grafico QQ di Δτ\Delta\tau contro Exp(1)\text{Exp}(1) e la stessa statistica KS, che è una dimensione dell'effetto senza scala. Segnalateli entrambi, e segnalateli onestamente: se il kernel esponenziale viene rifiutato sul nastro crittografico, questo è un risultato che vale la pena pubblicare piuttosto che seppellire, nello stesso spirito dell'onesto risultato negativo su bordi robusti.

In realtà non ci si muove con fragilità?

L'affermazione che nn è un indicatore di fragilità in tempo reale che viene citato costantemente e testato raramente. Il test è semplice: stima nn sulle finestre scorrevoli in un periodo calmo e in una data nota della cascata crittografica, e vedere se aumenta prima o solo durante l'evento. Una quantità che aumenta solo in concomitanza con il crollo è una descrizione, non un avvertimento.

Stabilità e robustezza

Sistema di eventi in cluster stabile

Un montato nn non è una misura finché non sai quanto si muove quando cambi cose che non dovrebbero avere importanza. Quattro trappole specifiche, in ordine approssimativo in base al danno che provocano.

La risoluzione del timestamp produce autoeccitazione. Binance aggTrade i timestamp hanno una risoluzione di millisecondi. Le operazioni che erano realmente distanti microsecondi collassano su identici francobolli di millisecondi, e una probabilità di Hawkes legge gli eventi coincidenti come la massima eccitazione: ϕ(0)\phi(0) valutato esattamente con un ritardo pari a zero. Questo pregiudica nn verso l'alto, e la distorsione cresce con l'attività, il che significa che è peggiore esattamente durante i picchi in cui si desidera che il numero sia affidabile. Quantificarlo: contare la frazione di eventi che condividono un timestamp con un vicino, quindi riadattarli con quegli eventi jitterati uniformemente all'interno del loro contenitore di millisecondi e riportare quanto nn si muove. Se il jitter cambia nn per un valore superiore all'intervallo di confidenza, il numero principale misura l'orologio, non il mercato.

Batch degli scambi. Gli scambi non emettono eventi nel momento in cui si verificano; li emettono mentre la loro pipeline di corrispondenza e diffusione si scarica. La limitazione di un secondo al secondo da parte di Binance sul flusso di liquidazione è un precedente documentato: un flusso che assomiglia ad arrivi in ​​cluster è in parte un artefatto dell'editore. Qualsiasi batch nel feed commerciale imprime una periodicità sulla distribuzione inter-arrivo in cui un kernel Hawkes assorbirà felicemente α\alpha. Controllalo direttamente: istogramma i tempi di inter-arrivo e cerca i picchi nel periodo di batching prima di montare qualsiasi cosa.

Sensibilità al decadimento presunto. n=α/βn = \alpha/\beta dipende da β\beta, E β\beta è solitamente fisso o ricercato su una griglia piuttosto che stimato congiuntamente. Rapporto nn in funzione di β\beta nell'intervallo plausibile, non come punto. Se la curva è piatta, il numero è reale; Se nn tracce β\beta da vicino, hai scelto la tua risposta.

Finestra di stima. nn stimati su un’ora, un giorno e una settimana differiranno, in parte perché il processo è genuinamente non stazionario e in parte perché una finestra più lunga mescola i regimi, il che gonfia l’eccitazione apparente fondendo la variazione tra regimi con il raggruppamento all’interno del regime. Riporta lo sweep della lunghezza della finestra. Il modo giusto per leggere una lievitazione nn è rispetto alla stessa lunghezza della finestra misurata altre volte, mai rispetto a un numero di una finestra diversa.

Il modello qui è quello stabilito nella trappola di precisione della GPU: una pipeline che funziona in modo pulito e restituisce un numero plausibile non è la prova di un numero corretto e l'unica difesa è perturbare gli input che non dovrebbero avere importanza e confermare che l'output non si muove.

Cosa ti compra e cosa non ti compra

Struttura di intensità utile nella complessità del mercato

Tre collegamenti alla teoria della microstruttura, tenuti brevi perché il blog li tratta approfonditamente altrove.

Formazione del prezzo. In Kyle (1985), il market maker prezza il flusso netto degli ordini mescolando trading informato e rumore; il coefficiente di impatto λ\lambda e profondità 1/λ1/\lambda sono presentati con la letteratura successiva - comprese le prove contro la linearità di Kyle - in modelli di costo di slittamento. Gli Hawkes leggono le mappe μ\mu sulle informazioni veramente nuove e sugli eventi autoeccitati sulla reazione meccanica, sul fare nn un proxy misurabile per la quota di flusso determinata dal rumore.

Clustering di volatilità. Clustering, persistenza, condizione di stazionarietà α+β<1\alpha + \beta < 1 e la varianza di lungo periodo ω/(1αβ)\omega/(1-\alpha-\beta) — strutturalmente l'esatto analogo di n<1n < 1 E μ/(1n)\mu/(1-n) - sono trattati in Previsione della volatilità GARCH per le criptovalute. L’affermazione veramente nuova è Bacry, Delattre, Hoffmann e Muzy (2013): un processo di Hawkes quasi critico genera serie di rendimenti la cui autocorrelazione della volatilità decade come una legge di potenza, senza alcun modello di volatilità esplicito da nessuna parte. Il raggruppamento di volatilità cade come una proprietà emergente del flusso di ordini auto-eccitante piuttosto che come presupposto.

Effetto Epps. Bacry e Muzy hanno mostrato che un modello Hawkes bivariato riproduce il decadimento della correlazione misurata ad alta frequenza di campionamento esclusivamente dal tempo di propagazione finito dell'eccitazione tra i due processi: non è richiesto alcun meccanismo aggiuntivo.

In termini di esecuzione, la prescrizione che segue dall'autoeccitazione - rallentare dopo uno slice, accelerare nei periodi di quiete - è già il nucleo della sezione del ciclo di feedback POV in Algoritmi di esecuzione TWAP, VWAP e POV, e la critica dell'ingenuo equal slicing è Almgren-Chriss. Ciò che aggiunge un adattamento di Hawkes non è il consiglio ma un numero: l'emivita del kernel adattato ln2/β\ln 2 / \beta dice quanto tempo impiega l'eccitazione della tua porzione a decadere, il che converte "aspetta un po'" in una durata di pausa specifica.

Limitazioni

Cambiamenti di regime e limitazioni del modello di eventi

Nessuna inibizione. Il modello classico consente solo agli eventi di aumentare l'intensità. I mercati sostengono il contrario: un ordine limite di grandi dimensioni che assorbe la pressione può scoraggiare il trading aggressivo. I processi di Hawkes con inibizione consentono valori del kernel negativi, a costo di doverli imporre λ(t)0\lambda^*(t) \geq 0. Se questo è importante per un dato adattamento è visibile nella stima del kernel non parametrica, se la costante a tratti ϕ^\hat\phi scende sotto lo zero con un certo ritardo, il modello vincolato sta contrastando i dati.

Non stazionarietà. Il modello standard presuppone la stazionarietà e le criptovalute sono 24 ore su 24, 7 giorni su 7 ma non uniformi: liquidità, mix di partecipanti e tasso di eventi cambiano nel corso della giornata e in base ai timestamp dei finanziamenti. Una linea di base variabile nel tempo μ(t)\mu(t) gestisce questo al costo di più parametri e la sensibilità della finestra di stima sopra è il modo in cui scopri se ne hai bisogno.

Riepilogo

Flusso dell'ordine organizzato in intensità cluster

Il processo di Hawkes vale il macchinario per una ragione: riduce il raggruppamento del flusso di ordini in un unico numero interpretabile, il rapporto di ramificazione. nn, calcolabile solo dai timestamp senza ricostruzione del portafoglio ordini e senza ipotesi sulla leva finanziaria o sul posizionamento. Ciò la rende la stima più economica disponibile di quanto sia endogeno un mercato attualmente: la stessa domanda liquidation cascades risponde in modo costoso attraverso g=ρ/Δg = \rho/\Delta.

Il meccanismo è semplice: i kernel esponenziali danno un O(N)O(N) probabilità tramite il RiR_i ricorsione, EM fornisce un a posteriori interpretabile su quale evento ha causato quale, e il riscalamento temporale fornisce un vero test di bontà di adattamento piuttosto che un argomento di plausibilità. Ciò che non è semplice è fidarsi dell’output. Distorsioni di arrotondamento del timestamp al millisecondo nn verso l'alto proprio durante le raffiche, scambiare la struttura delle impronte in batch che il kernel assorbirà, e nn si muove sia con il decadimento assunto che con la finestra di stima. Un rapporto di ramificazione riportato senza queste quattro sensibilità è un numero, non una misura.


Riferimenti e ulteriori letture

Disclaimer: le informazioni fornite in questo articolo hanno solo scopo didattico e informativo e non costituiscono consulenza finanziaria, di investimento o di trading. Il trading di criptovalute comporta un rischio significativo di perdita.

Autori

Eugen Soloviov
Eugen Soloviov

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.

Newsletter

Resta un Passo Avanti al Mercato

Iscriviti alla nostra newsletter per approfondimenti esclusivi sul trading con IA, analisi di mercato e aggiornamenti sulla piattaforma.

Rispettiamo la tua privacy. Annulla l'iscrizione in qualsiasi momento.