Hamiltonian Neural Networks: Does a Financial System Conserve Anything?
Existem duas perguntas que você pode fazer sobre Redes Neurais Hamiltonianas, e apenas uma delas é interessante.
A pergunta chata é "os HNNs são estáveis?" A resposta é sim, e é um teorema, não um experimento. Codifique as equações de Hamilton na arquitetura, integre-as a um esquema simplético e a análise de erros retroativa entrega erros de energia limitados em horizontes exponencialmente longos. Nada sobre finanças está envolvido. Você não precisa de um backtest para acreditar.
A questão interessante é aquela que o resultado da estabilidade pressupõe discretamente: um vetor de estado financeiro admite alguma quantidade conservada? Um HNN não descobre se existe. Ele assume existe e encontra o melhor sob essa suposição. Se os mercados não tiverem conservado para as coordenadas escolhidas, a rede ainda convergirá, ainda produzirá um escalar suave, ainda se integrará sem explodir – e a coisa toda será um modelo muito estável do nada.
Este posto constrói o maquinário e depois passa a metade de trás tentando quebrá-lo. A afirmação sob teste é estreita e falsificável: que um escolhido par - digamos, log-preço e EMA de retornos - é canonicamente conjugado, o que significa na verdade vale para alguns . Esta é uma afirmação empírica, e a própria secção teórica do projecto não dá razão para acreditar nela.
Mecânica hamiltoniana: o que realmente há de novo aqui

Espaço de fase, sistemas dinâmicos, trajetórias e órbitas já são vocabulário neste blog — veja atratores em algotrading para as definições e variedades complexas para reconstrução do espaço de fase via incorporação de Takens. O que se segue os pressupõe.
A parte nova é a estrutura simplética. A mecânica clássica tem duas formulações equivalentes. Newton dá . Hamilton fornece uma função escalar do qual decorrem todas as dinâmicas:
Três consequências são importantes e nenhuma delas está disponível para um modelo dinâmico genérico:
- é conservado ao longo das trajetórias. O sistema está confinado a uma superfície de energia constante - uma variedade de dimensão inferior dentro do espaço de fase. Esta é uma forte restrição sobre onde o Estado pode ir, não uma tendência.
- A forma 2 simplética é preservado. O volume do espaço de fase é conservado exatamente (teorema de Liouville). As trajetórias não podem convergir para um atrator; o fluxo é incompressível.
- A dinâmica é reversível no tempo. Execute o fluxo para trás e você recuperará exatamente o estado inicial.
Vale a pena fazer uma pausa no ponto 2, porque é a tensão mais acentuada com todo o resto deste blog. O teorema de Liouville diz que um sistema hamiltoniano não tem atratores. Os fluxos que preservam o volume não podem se contrair em nada. Se você acredita que os mercados têm uma estrutura de atração – e o artigo sobre os atratores argumenta que sim – então você já está comprometido com o fato de os mercados não serem hamiltonianos no sentido estrito. Este é um conflito real, não um detalhe técnico, e é a razão pela qual as extensões dissipativas abaixo não são uma reflexão tardia.
Por que o integrador é importante
Simule um sistema hamiltoniano com um integrador ingênuo (Euler, RK4) e a trajetória calculada se afasta lentamente da superfície de energia constante. O erro de truncamento local é pequeno; o erro geométrico é sistemático. Em horizontes longos, a simulação torna-se qualitativamente errada: órbitas que deveriam fechar-se começam a espiralar.
As redes neurais padrão têm o mesmo defeito por um motivo mais profundo. Um estado de mapeamento MLP para derivativos não possui mecanismo para preservar nada. Aprende adequadamente a dinâmica local e acumula erros que se agravam.
A reivindicação de conservação, resumidamente

Este blog já argumentou que os mercados obedecem a princípios de conservação - Navier-Stokes para algotrading, parte 2 apresenta o caso detalhadamente, desde a liquidez como massa até a gestão de risco hidrodinâmico, e fornece o enquadramento econofísico adequadamente. A otimização de média-variância também já é um sistema Lagrangiano neste blog: consulte Teoria do portfólio de Markowitz para a forma quadrática restrita e Execução ideal de Almgren-Chriss para o orçamento de risco/ identificação, onde desempenha exatamente o papel de um momento conjugado.
Nada disso é derivado aqui, porque o movimento interessante é diferente. Esses artigos usam a conservação como uma metáfora que motiva um modelo. Uma HNN transforma a conservação em uma restrição arquitetônica que o modelo não pode violar, mesmo que os dados implorem. Essa diferença – analogia suave versus estrutura rígida – é todo o conteúdo do que se segue e vale para os dois lados: uma restrição que os dados não satisfazem não é uma restrição anterior, é um bug.
Arquitetura HNN: Conservação Estrutural vs. Conservação Penalizada

O mecanismo geral informado pela física - obter derivadas automáticas da saída da rede em relação às suas entradas, formar um resíduo físico, minimizá-lo - já está demonstrado no PNN de Navier-Stokes, cujo physics_loss constrói u_t, u_x, u_xx através de autograd.grad e eleva ao quadrado o resíduo. O HNN usa o mesmo mecanismo com uma mudança, e a mudança é o ponto principal.
Um PINN penaliza violações de uma lei física. O residual é um termo de perda com peso; o otimizador compensa o ajuste dos dados. Reduza o peso ou entregue dados conflitantes e a rede violará a lei com prazer. A conservação é uma preferência.
Um HNN torna a conservação estrutural. Não aprende o campo vetorial , que é irrestrito e não conserva nada. Ele aprende um escalar e deriva ambos os componentes do campo vetorial de um único gradiente:
Como ambas as derivadas vêm de um potencial escalar, o campo resultante é gradiente simplético por construção. , de forma idêntica, para cada configuração de parâmetro - incluindo uma rede inicializada aleatoriamente e completamente não treinada. Não há peso para afinar. A conservação é uma identidade algébrica da parametrização, não um termo no objetivo.
Esta é uma garantia muito mais forte do que a oferecida por um PINN e vem com um modo de falha muito mais acentuado. A perda compara os derivados derivados com os dados observados:
Se o observado campo não é um gradiente simplético de nada — se tiver curl a parametrização não pode representar — a perda simplesmente não pode chegar a zero. O piso residual não é uma falha de otimização. É uma medida de quão longe os dados estão de admitir um hamiltoniano. Esse número é o resultado mais útil de toda essa arquitetura e é o número em torno do qual o resto desta postagem está organizado.
A rede em si não tem nada de notável: um MLP de através de duas camadas tanh de largura 200 para uma saída escalar.
Coordenadas
Para aplicações financeiras, é uma posição generalizada (log-preços, pesos da carteira, exposições a factores) e um momentum generalizado (taxas de variação, indicadores de momentum, variáveis de fluxo). é então qualquer invariante que a rede possa encontrar — possivelmente a capitalização total do mercado, possivelmente uma medida de risco, possivelmente uma quantidade abstrata sem leitura económica, possivelmente nada.
A escolha do emparelhamento não é inocente, e esta é a lacuna na apresentação padrão. Nada sobre " = preço logarítmico, = EMA de retornos" estabelece que estes são conjugados. A conjugação é uma relação estrutural específica - deve ser o momento canonicamente emparelhado com , tal que vale para alguns . Afirmá-lo e testá-lo são atividades diferentes, e a literatura que adapta as HNNs ao financiamento faz principalmente a primeira.
| (posições) | (momento) |
|---|---|
| Preços logísticos | EMA de retornos |
| Pesos do portfólio | Taxas de variação de peso |
Integradores Simpléticos

Aprendizagem é metade do problema. A geração de trajetórias requer a integração das equações de Hamilton, e o integrador pode destruir o que a arquitetura garante.
Integradores simpléticos preservar exatamente. O volume do espaço de fase é conservado, oscila em torno de seu valor verdadeiro com erro limitado, em vez de flutuar secularmente, e as órbitas permanecem qualitativamente corretas. RK4 oferece erros menores por etapa e nenhuma dessas propriedades.
O esquema simplético mais simples é Stormer-Verlet (salto):
Para separável estas são atualizações explícitas. Os hamiltonianos financeiros são geralmente inseparáveis — a dinâmica do momentum depende dos preços e vice-versa — portanto, o caso geral precisa de etapas implícitas, métodos de ordem superior (Yoshida, Forest-Ruth) ou a rota SympNets abaixo.
Tong et al. (2020) mostraram que a composição de etapas de salto como camadas de rede produz arquiteturas que são simpléticas por construção: cada camada é uma etapa de integração, a profundidade é igual à contagem de etapas e o mapa aprendido preserva exatamente a estrutura simplética.
Garantias de estabilidade: reais e irrelevantes

As propriedades de estabilidade decorrem de teoremas, e é precisamente por isso que não provam nada sobre os mercados.
Análise de erro retroativa. Um integrador simplético aplicado a resolve exatamente um hamiltoniano próximo . A trajetória calculada é a trajetória exata de um sistema ligeiramente perturbado, e a teoria KAM limita o erro de energia em tempos exponencialmente longos.
Estabilidade de Lyapunov. Se tem um mínimo em equilíbrio, é em si uma função de Lyapunov que prova que o equilíbrio é estável. Nenhuma análise separada é necessária.
Ambos os resultados estão condicionados sendo o objeto certo. Eles dizem que a simulação do sistema aprendido é fiel; eles não dizem nada sobre se o sistema aprendido é o mercado. Um perfeitamente conservado ajustado a um piso residual de 0,9 é uma simulação estável de um artefato.
| Propriedade | Padrão NN + RK4 | HNN + simplético |
|---|---|---|
| Deriva de energia em mais de 1000 passos | secular, acumula | limitado, oscilatório |
| Reversibilidade temporal | não | sim |
| Volume do espaço de fase | não preservado | exatamente preservado |
| Atratores representáveis | sim | não (Liouville) |
| Invariante interpretável | nenhum |
Implementação

Módulo Núcleo HNN
import torch
import torch.nn as nn
class HamiltonianNN(nn.Module):
"""Learns a scalar H(q, p); derives dynamics via Hamilton's equations."""
def __init__(self, input_dim: int, hidden_dim: int = 200):
super().__init__()
self.net = nn.Sequential(
nn.Linear(input_dim, hidden_dim), nn.Tanh(),
nn.Linear(hidden_dim, hidden_dim), nn.Tanh(),
nn.Linear(hidden_dim, 1),
)
def hamiltonian(self, q: torch.Tensor, p: torch.Tensor) -> torch.Tensor:
return self.net(torch.cat([q, p], dim=-1))
def time_derivative(self, q: torch.Tensor, p: torch.Tensor):
q = q.requires_grad_(True)
p = p.requires_grad_(True)
H = self.hamiltonian(q, p)
dH_dq, dH_dp = torch.autograd.grad(H.sum(), [q, p], create_graph=True)
return dH_dp, -dH_dq # dq/dt, dp/dt
Integrador Simplético Leapfrog
class LeapfrogIntegrator:
"""Stormer-Verlet integrator. Preserves the symplectic structure."""
def __init__(self, hnn: HamiltonianNN, dt: float = 0.01):
self.hnn, self.dt = hnn, dt
def step(self, q: torch.Tensor, p: torch.Tensor):
_, dp_dt = self.hnn.time_derivative(q, p)
p_half = p + 0.5 * self.dt * dp_dt
dq_dt, _ = self.hnn.time_derivative(q, p_half)
q_new = q + self.dt * dq_dt
_, dp_dt = self.hnn.time_derivative(q_new, p_half)
return q_new, p_half + 0.5 * self.dt * dp_dt
def integrate(self, q0, p0, n_steps: int):
traj_q, traj_p, q, p = [q0], [p0], q0, p0
for _ in range(n_steps):
q, p = self.step(q, p)
traj_q.append(q); traj_p.append(p)
return torch.stack(traj_q), torch.stack(traj_p)
Coordenadas Fase-Espaço
Preços logarítmicos, retornos diferenciados, impulso da EMA e volatilidade contínua são construção padrão neste blog - o pipeline do modelo de difusão e variedades complexas ambos o enviam. As únicas duas linhas que importam aqui são aquelas que definem o par conjugado:
q = np.log(prices)[w:-1] # generalised position
p = ewma(np.diff(np.log(prices), axis=0), w)[w-1:-1] # generalised momentum
Tudo a jusante - diferença finita , , alinhamento de comprimento, o loop de treinamento que combina as derivadas derivadas com as observadas com Adam - é mecânico.
Verificação de Conservação
def measure_conservation(hnn, integrator, q0, p0, n_steps=1000):
"""Energy drift along an integrated trajectory."""
with torch.no_grad():
traj_q, traj_p = integrator.integrate(q0, p0, n_steps)
energies = torch.stack([
hnn.hamiltonian(traj_q[i], traj_p[i]) for i in range(n_steps + 1)
]).squeeze().numpy()
return {
"H_initial": energies[0],
"H_final": energies[-1],
"drift": energies[-1] - energies[0],
"oscillation": energies.std(),
"relative_error": abs(energies[-1] - energies[0]) / abs(energies[0]),
}
Observe o que esta função não testa. Mede se o integrador preserva - o que acontecerá, por teorema, quer ou não significa qualquer coisa. A conservação na amostra de um hamiltoniano aprendido não é evidência. O teste que importa é diferente.
O teste de falsificação

O experimento honesto tem três partes e é planejado de forma que um resultado negativo seja informativo e não constrangedor.
1. Piso residual. Ajuste em dados reais e relatar a perda convergente, não a conservação. Uma parametrização de gradiente simplético não pode representar um campo vetorial com curvatura; o piso mede o componente não hamiltoniano da dinâmica observada. Ajuste um MLP irrestrito nos dados idênticos aos de referência - ele não tem restrição estrutural, então a lacuna entre os dois andares é o custo da suposição hamiltoniana, declarado nas unidades de perda do problema.
**2. Conservação fora da amostra. ** Ajuste em uma janela e avalie ao longo da trajetória fora da amostra observada — a trajetória real do preço, não uma trajetória integrada. Se é genuinamente canônico, permanece aproximadamente constante ao longo dos dados que nunca viu. Se sai da amostra, a quantidade conservada era um artefato da amostra e a garantia da arquitetura não funciona.
3. Ablação coordenada. Esta é a parte que a seção teórica exige e nenhuma apresentação de HNNs financeiras parece funcionar. Nada estabelece que o preço logarítmico e a EMA de retornos sejam conjugados; é afirmado. Portanto, teste os pares entre si - (preço logarítmico, retornos EMA), (preço logarítmico, retornos brutos), (pesos do portfólio, taxas de mudança de peso) - e classifique-os por fora da amostra estabilidade. Contra um substituto de retornos embaralhados como controle: destruir a estrutura temporal, manter a distribuição marginal, reajustar. Se o substituto produzir resultados comparáveis estabilidade, a “quantidade conservada” é uma propriedade da parametrização e não do mercado.
Meu anterior, declarado antes do fato para que possa ser verificado em relação ao resultado: isso falha. O raciocínio está na cartilha acima - o teorema de Liouville proíbe atratores, os mercados parecem ter uma estrutura de atração e ambas as saídas de escape abaixo são admissões de que a suposição hamiltoniana estrita não é válida. Se o piso residual for alto e fora da amostra é instável em todos os pares, ou seja, um negativo medido limpo em um anterior informado pela física, e este blog já os publicou antes (o negativo honesto, Sharpe deflacionado). Um negativo medido em uma teoria elegante vale mais do que um tutorial não testado.
Se a conservação falhar: extensões dissipativas

Vazamento dos mercados reais. Os custos de transação, o deslizamento e a decadência da informação removem a energia do sistema, e uma energia estritamente conservada não pode representar isso. Existem duas flexibilizações de princípios, e ambas devem ser lidas como concessões de que a suposição era muito forte, e não como refinamentos:
- Hamiltoniano Conforme: modelo com uma taxa de dissipação aprendida . A magnitude do montado é em si uma medida – quão longe o sistema está do conservador.
- Porto-Hamiltoniano: , com a matriz simplética, a matriz de dissipação, e forçamento externo (notícias, fluxos). Aqui em relação a quantifica a partida diretamente.
Ambos restauram a capacidade de representar atratores, ao custo da garantia de erro limitado que motivou a arquitetura. Esse é o negócio, dito claramente: pode-se ter Liouville ou pode-se ter dissipação, e os mercados parecem querer a segunda opção.
Problemas abertos relacionados: Hamiltonianos financeiros são inseparáveis (exigindo etapas simpléticas implícitas ou de ordem superior, ou SympNets aprendendo mapas simpléticos diretamente), e os mercados operam em múltiplas escalas de tempo que um único é improvável que capte - hamiltonianos hierárquicos para dinâmicas rápidas e lentas, ou um tratamento adiabático de variáveis lentas como parâmetros de uma escala rápida .
Conclusão

A maquinaria funciona. Aprenda um escalar , derive o campo vetorial de seu gradiente, integre simpleticamente e você obterá conservação como uma identidade algébrica, erro limitado ao longo de milhares de etapas, reversibilidade exata no tempo e uma função de Lyapunov gratuitamente. Cada uma dessas afirmações é um teorema e nenhuma delas requer validação.
O que requer validação é a premissa. HNNs não testam se existe uma quantidade conservada - eles a assumem e otimizam sob a suposição, convergindo para um modelo suave, estável e bem comportado de qualquer maneira. O piso residual e fora da amostra estabilidade são os únicos dois números que distinguem “o mercado conserva alguma coisa” de “a parametrização sempre produz alguma coisa”.
Portanto, a questão com a qual este post termina não é se as HNNs são estáveis. A questão é se a elegância sobreviverá ao contato com o BTCUSDT – e até que esses números estejam na página, a postura correta em relação a todas as afirmações de conservação no aprendizado de máquina financeira, incluindo esta, é que ela não foi testada.
Referências
- Greydanus, S., Dzamba, M., & Sprague, J. (2019). Redes Neurais Hamiltonianas. NeuroIPS 2019.
- Tong, Y., Xiong, S., He, X., Pan, G., & Zhu, B. (2020). Redes hamiltonianas profundas baseadas em integradores simpléticos. Pré-impressão arXiv.
- Baaquie, BE (2000). Hamiltoniano nos Mercados Financeiros. Pré-impressão arXiv.
- Cotler, J. & Rezchikov, S. (2023). Simulação Hamiltoniana Eficiente para Resolver Dinâmica de Preços de Opções. Pesquisa de revisão física.
- Gonon, P. & Ortega, J.-P. (2009). Mercado de ações e dinâmica quântica. Pré-impressão arXiv.
- Greydanus, S. (2019). Redes Neurais Hamiltonianas – Postagem no Blog.
- Santos, C. e outros. (2022). Redes Neurais de Momento Simplético. PMLR.
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.