← Voltar aos artigos
August 9, 2026
5 min read

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

O artigo sobre impressão digital usa um vetor de três números — hawkes_mu, hawkes_alpha, hawkes_beta — como o componente temporal da assinatura comportamental de um participante e afirma que os formadores de mercado apresentam forte autoexcitação. Nunca diz de onde vêm esses três números, de onde são estimados ou até que ponto você deve confiar neles. Este artigo é a metade que falta: o estimador, o diagnóstico de ajuste e a quantidade derivada que acaba sendo mais importante do que os três parâmetros em si - a razão de ramificação nn.

A afirmação testada aqui é restrita e verificável. O fluxo de pedidos é autoexcitante: uma venda agressiva torna a próxima venda agressiva mais provável, de uma forma que um modelo de Poisson com qualquer taxa variável no tempo não consegue reproduzir. Se isso for verdade, um processo de Hawkes ajustado a carimbos de data e hora de negociação bruta deve (a) superar uma linha de base de Poisson na probabilidade mantida, (b) produzir uma razão de ramificação estritamente entre 0 e 1 e (c) passar em um teste de adequação de ajuste de redimensionamento de tempo. Os pontos (a) e (b) são amplamente divulgados para futuros de ações. O ponto (c) é onde os artigos publicados de Hawkes geralmente ficam em silêncio, e é onde a fita criptográfica nunca foi verificada neste blog.

Duas peças de background que este blog já possui, portanto não são derivadas aqui. A estrutura de feedback autoexcitante – eventos que desencadeiam mais eventos do mesmo tipo, subcríticos abaixo de um limite e descontrolados acima dele – é derivada concretamente como um número de reprodução g=ρ/Δg = \rho/\Delta em cascatas de liquidação como sinal de negociação, incluindo o movimento total da série geométrica, o regime supercrítico de flash-crash e disjuntores como uma das três coisas que o limitam. A proporção de ramificação nn abaixo está o análogo do processo pontual daquele gg. O que é genuinamente aditivo aqui: nn é estimável em tempo real apenas a partir de carimbos de data/hora de negociação, sem mapa de liquidação, sem profundidade de livro de pedidos e sem suposições de alavancagem. Essa é a razão para se preocupar com a maquinaria de processo pontual.

A premissa de que o tempo do relógio é o eixo de amostragem errado é o argumento fundador de beyond time bars, que resolve o problema construindo barras melhores. Este artigo resolve isso de forma diferente: sem amostragem e modelando os tempos dos eventos diretamente.

Fundamentos do processo pontual, resumidamente

Pulsos de evento de chegada de pedido discreto

Um processo pontual é um conjunto aleatório de tempos de eventos, definido por sua intensidade condicional λ(t)\lambda^*(t) — a taxa de chegada instantânea dada a história 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}

O processo homogêneo de Poisson é o caso λ(t)=μ\lambda^*(t) = \mu. O processo de Poisson não homogêneo permite λ(t)\lambda(t) seguem uma forma determinística (uma curva intradiária em forma de U, digamos), mas ainda assumem independência condicional: saber que uma negociação acabou de acontecer não diz nada sobre se outra é iminente. Essa suposição é o que o fluxo de pedidos real viola, e a violação é o assunto inteiro deste artigo. O asterisco em λ(t)\lambda^*(t) é toda a distinção – marca a dependência da história.

O Processo Hawkes

Ressaltos auto-emocionantes de eventos de mercado

Um processo de Hawkes univariado tem intensidade

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

com μ>0\mu > 0 a intensidade de fundo (chegadas exógenas) e ϕ()0\phi(\cdot) \geq 0 o kernel de excitação. Cada evento aumenta a intensidade em ϕ(0)\phi(0), que então decai com a forma de ϕ\phi. Um conjunto de eventos recentes produz uma alta intensidade, tornando mais prováveis ​​eventos futuros – o processo lembra a sua própria história.

A taxa de ramificação

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

nn é o número médio de eventos filhos acionados por um pai. A estacionariedade requer n<1n < 1; a intensidade média estacionária é λˉ=μ/(1n)\bar{\lambda} = \mu / (1-n), que diverge como n1n \to 1. Então nn divide a atividade total em uma fração exógena (1n)(1-n) e uma fração endógena nn: no n=0.7n = 0.7, setenta por cento dos eventos são reações a outros eventos, e não respostas a qualquer coisa fora do mercado.

Esta é exatamente a divisão subcrítica/supercrítica do multiplicador em cascata em cascatas de liquidação, alcançada de uma direção diferente. A diferença em quanto custa calcular: g=ρ/Δg = \rho/\Delta requer um mapa futuro da densidade de vendas forçadas e da profundidade do livro vivo, sendo que ambas são estimativas baseadas em suposições sobre a distribuição de alavancagem. nn requer uma lista de carimbos de data/hora.

Filimonov e Sornette (2012) relataram nn subindo de aproximadamente 0,3 para acima de 0,7 nos futuros E-mini S&P 500 entre 1998 e 2007. Hardiman, Bercot e Bouchaud (2013) colocaram o mesmo contrato próximo n0.8n \approx 0.8 com um núcleo de potência de expoente sobre 1.15-1.15 em pequenos atrasos. Ambos são resultados de futuros de ações de mais de uma década atrás, e nenhum deles é transferido para criptografia sem medição. Reproduzi-los não é o objetivo deste artigo; verificar se o mesmo regime se mantém em uma fita de futuros perpétuos 24 horas por dia, 7 dias por semana, com diferentes participantes e se não há descontinuidade na abertura do mercado.

Escolhas de Kernel

Exonencial, ϕ(t)=αeβt\phi(t) = \alpha e^{-\beta t}, com n=α/βn = \alpha/\beta. Markoviano, então a probabilidade tem um O(1)O(1)-recursão por evento (abaixo). É aqui que começa todo ajuste prático.

Lei de potência, ϕ(t)=αcp/(c+t)1+p\phi(t) = \alpha c^p / (c+t)^{1+p}. Reproduz agrupamento de memória longa, mas perde a recursão - a avaliação de probabilidade torna-se O(N2)O(N^2) ou requer truncamento.

Soma de exponenciais, ϕ(t)=k=1Kαkeβkt\phi(t) = \sum_{k=1}^{K} \alpha_k e^{-\beta_k t}. Aproxima o decaimento da lei de potência com KK escalas de tempo, mantendo a recursão. K=3K = 3 para 55 geralmente é suficiente, com βk\beta_k abrangendo milissegundos a minutos.

Se as chegadas do comércio criptográfico decaem exponencialmente ou como uma lei de potência é uma questão empírica com uma resposta de razão de verossimilhança, e é medida abaixo em vez de citada.

Processos Hawkes Multivariados

Fluxos emocionantes de eventos de mercado

Para DD tipos de eventos,

λ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'})

onde ϕdd\phi_{dd'} descreve como tipo dd' excita tipo dd. Com kernels exponenciais, a matriz ramificada é G=[αdd/βdd]G = [\alpha_{dd'}/\beta_{dd'}], e a estacionariedade requer raio espectral ρ(G)<1\rho(G) < 1. O autovetor de GG associado ao maior autovalor identifica o modo de excitação dominante – qual grupo de tipos de eventos tende a disparar juntos.

A instanciação interessante para uma carteira de pedidos é D=6D = 6: compra no mercado, venda no mercado, limite de compra, limite de venda, cancelar compra, cancelar venda. Essa matriz tem 36 entradas e faz parte do kit de ferramentas Hawkes que este blog não possui em nenhum outro lugar. Observe que uma de suas entradas previstas já está documentada empiricamente sem o vocabulário: o cancelamento em massa correlacionado em níveis consecutivos — puxadas de parede — é medido diretamente em posição da fila e análise da parede do livro de pedidos. Um equipado ϕcancel,cancel\phi_{\text{cancel},\text{cancel}} é o mesmo fenômeno expresso como um kernel, e as duas medições devem concordar. Se não o fizerem, um deles está errado.

As versões entre ativos e vários locais são o mesmo mecanismo com rótulos diferentes: kernels fora da diagonal capturam lead-lag e contágio, e Shi, Broussard e Booth (2019) usaram exatamente isso nas 30 ações da Dow durante o flash crash de 2010, encontrando excitação cruzada assimétrica com fontes de contágio identificáveis.

Calibração

Calibrando um campo de intensidade de evento

Probabilidade Máxima

Para horários de eventos {t1,,tN}\{t_1, \ldots, t_N\} sobre [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

O primeiro termo recompensa a intensidade onde os eventos aconteceram; a segunda penaliza a intensidade que nada produziu.

Para o kernel exponencial a recursão

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 no O(1)O(1) por evento, e o compensador fecha:

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)

Custo total O(N)O(N), que é o que faz com que os ajustes de milhões de eventos sejam rotineiros. Otimize com L-BFGS-B sob restrições de positividade.

Dois modos de falha que vale a pena conhecer antes de confiar em uma saída. A probabilidade de a superfície se achatar mal n1n \to 1, portanto, um ajuste quase crítico pode relatar uma estimativa pontual de aparência confiável situada em um vale quase nivelado para ±0.1\pm 0.1 em nn - sempre perfile a probabilidade em nn em vez de ler o Hessian do otimizador. E no caso multivariado a contagem de parâmetros cresce à medida que O(D2)O(D^2), tão passado D10D \approx 10 você precisa do group-Lasso nas normas do kernel ou a matriz está ajustando o ruído.

EM e estimativa não paramétrica

EM trata a estrutura ramificada como latente: cada evento é um imigrante de μ\mu ou um resultado de algum evento anterior. A mecânica genérica E-step/M-step, a advertência do ótimo local e a disciplina de inicialização múltipla são abordadas na seção Baum-Welch de detecção de regime com HMMs e são idênticas aqui. A parte específica de Hawkes é a própria quantidade do E-step:

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} é um posterior sobre qual evento causou qual — uma saída interpretável, não apenas um intermediário de otimização. Somado por tipo de evento dá uma atribuição da fita: esta fração das vendas da última hora foi desencadeada por vendas anteriores, essa fração chegou de fora. Também permite estimar ϕ\phi não parametricamente como constante por partes em uma grade, que é como você verifica a suposição exponencial sem se comprometer com uma alternativa. Custo: O(N2)O(N^2) para o completo pijp_{ij} matriz, então ela não ultrapassa aproximadamente 10510^5 acontecimentos sem aproximação.

O método espectral de Bacry e Muzy é a outra rota livre de modelo - a densidade espectral de potência de um processo estacionário de Hawkes é fatorada como C^(ω)=IΦ^(ω)2diag(μ)\hat{C}(\omega) = |I - \hat{\Phi}(\omega)|^{-2} \cdot \text{diag}(\mu), portanto, estimar a densidade de covariância e resolver a fatoração recupera os kernels sem nenhuma forma paramétrica assumida.

Ajustando fita criptográfica real

Consolidando fita comercial de criptografia

Cada número nesta seção deve vir de um ajuste real em dados reais. A recuperação de parâmetros injetados em um simulador não é evidência de nada, exceto que o otimizador funciona.

Os dados: Binance BTC/USDT aggTrade carimbos de data e hora em uma janela definida, com a janela, o símbolo e a contagem de eventos declarados explicitamente ao lado de cada valor relatado. aggTrade os agregados são preenchidos ao mesmo preço de uma ordem taker em um único registro, que é a unidade certa aqui – uma ordem agressiva é um evento, não um evento por preenchimento de contraparte.

Ajuste univariado

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

As duas últimas impressões são a primeira verificação de sanidade que não custa nada: se a intensidade média estacionária do modelo μ/(1n)\mu/(1-n) não chegar perto da taxa de eventos empíricos, o ajuste estará errado, independentemente do que o otimizador relatou.

β\beta não deve ser consertado manualmente. Trace o perfil da probabilidade em uma grade de decaimentos e relate o perfil, porque α\alpha e β\beta negociar fortemente e n=α/βn = \alpha/\beta pode ser estável enquanto nenhum dos parâmetros o é.

O Kernel realmente decai exponencialmente?

A afirmação da lei de potência na literatura vem de documentos de futuros de ações de 2013. Teste-o diretamente: ajuste um kernel exponencial e um kernel de lei de potência na mesma fita, compare por probabilidade logarítmica em dados retidos (não na amostra, já que a lei de potência tem um parâmetro extra) e observe separadamente a queda de intensidade empírica após grandes negociações.

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 plotado, um kernel exponencial se dobra; uma lei de potência é direta. Esse gráfico é uma evidência mais forte do que qualquer um dos números de probabilidade, porque mostra onde está o desajuste – normalmente as exponenciais se ajustam mal à cauda e se ajustam demais nos primeiros milissegundos.

A Matriz de Ramificação

Modelo multivariado mínimo viável: duas dimensões, compra agressiva e venda agressiva, separadas por is_buyer_maker. Se os dados L3 estiverem disponíveis, estenda para cancelamentos.

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

As duas grandezas a serem publicadas são a própria matriz e seu raio espectral. A assimetria é a parte interessante: se vender-excita-vender excede comprar-excita-comprar, e se os termos cruzados são simétricos, são afirmações testáveis ​​sobre fita criptográfica que ninguém aqui mediu.

Qualidade de ajuste: redimensionamento de tempo

O teorema do redimensionamento do tempo: se o modelo estiver correto, os tempos transformados τi=0tiλ(s)ds\tau_i = \int_0^{t_i} \lambda^*(s)\,ds formam um processo de Poisson de taxa unitária, então as diferenças Δτi\Delta\tau_i são 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)}")

Um cuidado ao ler este teste: com NN na casa das centenas de milhares, o teste KS rejeita erros de especificação triviais. Um pequeno valor p em N=5×105N = 5 \times 10^5 não significa quase nada por si só; a saída informativa é o gráfico QQ de Δτ\Delta\tau contra Exp(1)\text{Exp}(1) e a própria estatística KS, que é um tamanho de efeito sem escala. Relate ambos, e relate-os honestamente — se o kernel exponencial for rejeitado na fita criptográfica, esse é um resultado que vale a pena publicar em vez de enterrar, no mesmo espírito que o resultado negativo honesto em bordas robustas.

Será que n realmente se move com a fragilidade?

A alegação de que nn é um indicador de fragilidade em tempo real, citado constantemente e raramente testado. O teste é simples: estimar nn em janelas rolantes durante um período de calma e em uma data conhecida da cascata de criptografia, e ver se ela aumenta antes ou apenas durante o evento. Uma quantidade que só aumenta simultaneamente com a falha é uma descrição, não um aviso.

Estabilidade e Robustez

Sistema de eventos em cluster estável

Um equipado nn não é uma medida até que você saiba o quanto ele se move quando você muda coisas que não deveriam importar. Quatro armadilhas específicas, em ordem aproximada de quanto dano elas causam.

A resolução do carimbo de data/hora produz autoexcitação. Binance aggTrade carimbos de data/hora têm resolução de milissegundos. As negociações que estavam genuinamente separadas por microssegundos colapsam em selos idênticos de milissegundos, e uma probabilidade de Hawkes lê eventos coincidentes como excitação máxima - ϕ(0)\phi(0) avaliado com defasagem exatamente zero. Esses preconceitos nn para cima, e o viés cresce com a atividade, o que significa que é pior exatamente durante os picos em que você mais deseja que o número seja confiável. Quantifique-o: conte a fração de eventos que compartilham um carimbo de data/hora com um vizinho, depois reajuste com esses eventos com instabilidade uniforme dentro de seu compartimento de milissegundos e relate quanto nn se move. Se o tremor mudar nn por mais do que o intervalo de confiança, o número principal mede o relógio, não o mercado.

Transferência em lote. As exchanges não emitem eventos à medida que ocorrem; eles os emitem à medida que seu pipeline de correspondência e disseminação é liberado. A aceleração de um por segundo da Binance no fluxo de liquidação é o precedente documentado – um fluxo que parece chegadas agrupadas é em parte um artefato do editor. Qualquer lote no feed comercial imprime uma periodicidade na distribuição entre chegadas que um kernel de Hawkes absorverá alegremente. α\alpha. Verifique diretamente: faça um histograma dos tempos entre chegadas e procure picos no período de lote antes de ajustar qualquer coisa.

Sensibilidade à decadência presumida. n=α/βn = \alpha/\beta depende de β\beta, e β\beta é geralmente fixo ou pesquisado em grade, em vez de estimado em conjunto. Relatório nn em função de β\beta acima da faixa plausível, não como um ponto. Se a curva for plana, o número é real; se nn faixas β\beta de perto, você escolheu sua resposta.

Janela de estimativa. nn estimados ao longo de uma hora, um dia e uma semana serão diferentes, em parte porque o processo é genuinamente não estacionário e em parte porque uma janela mais longa mistura regimes, o que aumenta a excitação aparente ao combinar a variação entre regimes com o agrupamento dentro do regime. Relate a varredura do comprimento da janela. A maneira certa de ler uma ascensão nn é comparado ao mesmo comprimento de janela medido em outros momentos, nunca em relação a um número de uma janela diferente.

O padrão aqui é aquele estabelecido na armadilha de precisão da GPU: um pipeline que funciona de forma limpa e retorna um número plausível não é evidência de um número correto, e a única defesa é perturbar as entradas que não deveriam importar e confirmar que a saída não se move.

O que isso faz e o que não compra para você

Estrutura de intensidade útil dentro da complexidade do mercado

Três conexões com a teoria da microestrutura, mantidas brevemente porque o blog cobre cada uma delas detalhadamente em outro lugar.

Formação de preços. Em Kyle (1985), o formador de mercado precifica fora do fluxo de pedidos líquido, misturando negociação informada e de ruído; o coeficiente de impacto λ\lambda e profundidade 1/λ1/\lambda são apresentados com a literatura de acompanhamento - incluindo as evidências contra a linearidade de Kyle - em modelos de custo de deslizamento. Os Hawkes lendo mapas μ\mu em informações genuinamente novas e os eventos autoexcitados em reações mecânicas, fazendo com que nn um proxy mensurável para a parcela do fluxo impulsionada pelo ruído.

Clustering de volatilidade. Clustering, persistência, a condição de estacionariedade α+β<1\alpha + \beta < 1 e a variância de longo prazo ω/(1αβ)\omega/(1-\alpha-\beta) - estruturalmente o análogo exato de n<1n < 1 e μ/(1n)\mu/(1-n) — são abordados em Previsão de volatilidade GARCH para criptografia. A afirmação genuinamente nova é Bacry, Delattre, Hoffmann e Muzy (2013): um processo de Hawkes quase crítico gera séries de retorno cuja autocorrelação de volatilidade decai como uma lei de potência, sem nenhum modelo de volatilidade explícito em qualquer lugar. O agrupamento de volatilidade surge como uma propriedade emergente do fluxo de ordens autoexcitante, em vez de ser assumido.

Efeito Epps. Bacry e Muzy mostraram que um modelo bivariado de Hawkes reproduz o decaimento da correlação medida em alta frequência de amostragem puramente a partir do tempo finito de propagação de excitação entre os dois processos - nenhum mecanismo extra necessário.

Na execução, a prescrição que segue a auto-excitação - desacelerar após uma fatia, acelerar em períodos de silêncio - já é o núcleo da seção do ciclo de feedback do POV em algoritmos de execução TWAP, VWAP e POV, e a crítica ao ingênuo fatiamento igual é Almgren-Chriss. O que um ajuste de Hawkes acrescenta não é um conselho, mas um número: a meia-vida do kernel ajustado ln2/β\ln 2 / \beta diz quanto tempo a excitação de sua própria fatia leva para decair, o que converte "espere um pouco" em uma duração de pausa específica.

Limitações

Mudanças de regime e limitações do modelo de evento

Sem inibição. O modelo clássico permite apenas que os eventos aumentem a intensidade. Os mercados contêm o oposto: uma grande pressão de absorção de ordens de limite pode impedir negociações agressivas. Os processos de Hawkes com inibição permitem valores de kernel negativos, ao custo de ter que impor λ(t)0\lambda^*(t) \geq 0. Se isso é importante para um determinado ajuste é visível na estimativa não paramétrica do kernel - se a constante por partes ϕ^\hat\phi cai abaixo de zero em algum atraso, o modelo restrito está lutando contra os dados.

Não estacionariedade. O modelo padrão pressupõe estacionariedade, e a criptografia funciona 24 horas por dia, 7 dias por semana, mas não é uniforme: a liquidez, o mix de participantes e a taxa de eventos mudam ao longo do dia e em torno dos carimbos de data e hora de financiamento. Uma linha de base variável no tempo μ(t)\mu(t) lida com isso ao custo de mais parâmetros, e a sensibilidade da janela de estimativa acima é como você descobre se precisa dela.

Resumo

Organização do fluxo de pedidos em intensidade agrupada

O processo de Hawkes vale a pena por um motivo: ele reduz o agrupamento do fluxo de pedidos em um único número interpretável, a razão de ramificação. nn, computável apenas a partir de carimbos de data/hora, sem reconstrução da carteira de pedidos e sem suposições sobre alavancagem ou posicionamento. Isso a torna a estimativa mais barata disponível de quão endógeno é um mercado atualmente - a mesma pergunta cascatas de liquidação responde caro por meio de g=ρ/Δg = \rho/\Delta.

O mecanismo é simples: os kernels exponenciais fornecem uma O(N)O(N) probabilidade através do RiR_i recursão, EM fornece um posterior interpretável sobre qual evento causou qual, e o reescalonamento de tempo fornece um teste real de qualidade de ajuste em vez de um argumento de plausibilidade. O que não é simples é confiar no resultado. Vieses de arredondamento de carimbo de data/hora em milissegundos nn para cima precisamente durante rajadas, troque a estrutura de impressões em lote que o kernel irá absorver e nn move-se tanto com o decaimento assumido quanto com a janela de estimativa. Uma taxa de ramificação relatada sem essas quatro sensibilidades é um número, não uma medida.


Referências e leituras adicionais

blog.disclaimer

Authors

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

Fique à frente do mercado

Assine nossa newsletter para insights exclusivos sobre trading com IA, análises de mercado e atualizações da plataforma.

Respeitamos sua privacidade. Cancele a inscrição a qualquer momento.