Trading basato sulla meccanica quantistica: come costruire un agente AI autonomo

@Di_Krass_
INGLESE2 giorni fa · 19 lug 2026
158K
39
2
1
126

TL;DR

Un approfondimento tecnico sulla creazione di un agente di trading di ispirazione quantistica, che copre la codifica dello stato del mercato, la combinazione di segnali basata sull'interferenza e l'ottimizzazione del portafoglio tramite Hamiltoniana.

La stessa matematica che descrive una particella in due posti contemporaneamente può descrivere un portafoglio in due posizioni contemporaneamente. Ecco come trasformare la struttura della meccanica quantistica in un agente di trading autonomo – e, altrettanto importante, dove l'analogia smette di essere reale e diventa marketing.

DiKrass -X- - inline image

1. Perché il quantum, e perché ora

Ogni hedge fund sul pianeta sta macinando le stesse tre idee fino a ridurle in polvere: momentum, mean-reversion e qualche variante di machine learning sui flussi d'ordine. Il vantaggio si assottiglia perché il modello di mercato che tutti condividono è identico – uno classico, dove un prezzo è un singolo numero e il futuro è un singolo percorso rumoroso.

La meccanica quantistica offre un modello di dati diverso. Un sistema quantistico non è mai in un unico stato. Vive in una sovrapposizione di tutti gli stati possibili contemporaneamente, ciascuno con una ampiezza di probabilità complessa. Questo è una descrizione sorprendentemente buona di un mercato prima che tu piazzi un'operazione: l'asset è contemporaneamente in rialzo, in ribasso e laterale, ogni risultato pesato da una probabilità, finché il tuo ordine non costringe la realtà a sceglierne uno.

Ecco la parte che la maggior parte degli articoli salta, quindi la metto in chiaro. Non hai bisogno di un computer quantistico fisico per nulla di tutto questo, e la maggior parte di ciò che segue non è letteralmente quantistico. È quantum-inspired: algoritmi classici che prendono in prestito la struttura matematica della meccanica quantistica – vettori di stato, ampiezze complesse, hamiltoniani, annealing, interferenza – e girano sulla stessa GPU che già possiedi. Il valore sta nella struttura, non nei qubit. Essere onesti su questa distinzione è ciò che separa un framework utilizzabile da una buzzword.

Banche e quant shop – tra cui Goldman Sachs, JPMorgan, HSBC e specialisti come Multiverse Computing – hanno attivamente ricercato e pubblicato su metodi quantistici e quantum-inspired per pricing di derivati, Monte Carlo per il rischio e ottimizzazione di portafoglio. La teoria è pubblica. Quello che quasi nessuno ha scritto è come collegarla a un agente autonomo – un sistema che percepisce, decide, esegue e impara da solo. Questo è ciò che costruiamo qui.

2. Il dizionario quantum-mercato

Prima di qualsiasi codice, serve la mappatura. Ogni concetto quantistico qui sotto ha un preciso analogo nel trading. Tratta questa sezione come il contratto concettuale per tutto ciò che segue.

L'ampiezza di probabilità si mappa alla convinzione – ma con una fase. Le probabilità classiche sono solo numeri non negativi. Le ampiezze quantistiche sono complesse: ciascuna ha una magnitudine e un angolo di fase. La fase è l'intero upgrade. È ciò che permette a due segnali rialzisti di interferire in modo distruttivo e cancellarsi, o a due segnali deboli di interferire in modo costruttivo e diventare forti. Un insieme classico che fa la media di probabilità positive non può fisicamente farlo – il massimo che può fare è diluire. La fase permette ai segnali di annullarsi a vicenda attivamente.

L'entanglement si mappa a una correlazione che non puoi separare. Quando due asset si muovono come un regime collegato – pensa a una majorcoin e alle memecoin che cavalcano la sua liquidità – non puoi onestamente descrivere l'uno senza l'altra. L'agente codifica questo come uno stato non separabile, che cattura il co-movimento legato al regime che una matrice di correlazione statica tende ad appiattire e sottostimare, specialmente nelle code.

L'hamiltoniano si mappa alla tua funzione di costo rischio/rendimento. In fisica, l'hamiltoniano H codifica l'energia di un sistema. Nel trading, codifichi il tuo obiettivo – massimizzare il rendimento atteso, minimizzare la varianza, rispettare limiti di posizione e budget – come un paesaggio energetico. Il portafoglio ottimale è quindi lo stato fondamentale: la configurazione a energia minima di H. La costruzione del portafoglio diventa un problema di minimizzazione dell'energia, che è un problema molto ben studiato da risolvere.

Misurazione e collasso si mappano all'esecuzione. Nell'istante in cui invii un ordine, la sovrapposizione collassa in un unico risultato realizzato. Il vero lavoro dell'agente è scegliere quando e cosa misurare in modo che il collasso tenda a cadere su una configurazione redditizia. C'è persino un principio di rischio integrato per analogia con Heisenberg: non puoi fissare simultaneamente il prezzo esatto di una posizione e il suo esatto momentum con precisione illimitata. Richiedere più certezza su uno ti costa certezza sull'altro. Questa è un'analogia, non una legge della finanza – ma è utile, e più avanti si trasforma in una regola concreta per il dimensionamento delle posizioni.

DiKrass -X- - inline image

3. L'architettura di un agente di trading quantistico

L'agente è un ciclo chiuso di sei moduli. Il diagramma dell'architettura allegato a questo post mostra il ciclo completo; ecco cosa fa ogni fase.

DiKrass -X- - inline image

1. Percezione. Ingerisci i dati di mercato grezzi – order book, OHLCV, tassi di funding, flusso on-chain. Normalizzali in un vettore di feature x. Questa è una normale plumberia quant; niente di quantistico ancora.

3. Costruttore dell'hamiltoniano. Traduci il tuo obiettivo rischio/rendimento più i vincoli in un QUBO / hamiltoniano di Ising H. Qui è dove limiti di budget, avversione al rischio e rendimenti attesi vengono cotti in un paesaggio energetico.

4. Risolutore quantum-inspired. Trova lo stato fondamentale di H – la selezione ottimale di asset – tramite simulated annealing, un circuito QAOA su un simulatore, o un risolutore a reti tensoriali. Questo modulo è il tuo ottimizzatore di portafoglio, ed è deliberatamente sostituibile.

5. Decisione tramite misurazione. Collassa lo stato in posizioni e dimensioni concrete, con la regola stile Heisenberg che riduce l'esposizione quando l'incertezza è alta.

6. Esecuzione e feedback. Instrada gli ordini, osserva il P&L realizzato e aggiorna le ampiezze. Il risultato misurato diventa il prior del giorno successivo – un ciclo di rinforzo che permette all'agente di adattarsi invece di eseguire una strategia congelata.

4. Codice: codificare il mercato come stato quantistico

Useremo numpy per la matematica dello stato e ci appoggeremo alle convenzioni qiskit/pennylane per le parti quantum-inspired. Niente di tutto questo necessita di hardware quantistico reale – gira su un laptop.

L'interferenza è il punto centrale, quindi la codifica deve permettere ai segnali di sommersi come numeri complessi prima di calcolare le probabilità. Ogni modello alpha contribuisce con un'ampiezza complessa – la magnitudine è la convinzione, la fase è il timing o l'allineamento al regime – a ciascuno scenario di mercato. Sommi i contributi tra i modelli, e solo allora applichi la regola di Born.

python
1import numpy as np
2
3def combine_signals(contributions: np.ndarray) -> np.ndarray:
4 """
5 contributions: matrice complessa di forma [n_segnali, n_scenari].
6 |valore| = convinzione di un modello per uno scenario,
7 angolo = la sua fase (timing / allineamento al regime).
8 restituisce: stato |psi> normalizzato sugli scenari.
9 """
10 amplitudes = contributions.sum(axis=0) # i segnali INTERFERISCONO qui
11 return amplitudes / np.linalg.norm(amplitudes)
12
13# Scenari: [up, down, chop, breakout]
14# Due modelli di momentum puntano entrambi 'up' -- ma sono fuori fase, quindi si cancellano parzialmente.
15signal_A = np.array([0.7+0j, 0.1+0j, 0.2+0j, 0.3+0j]) # rialzista, fase 0
16signal_B = np.array([0.6*np.exp(1j*2.7), 0.15, 0.2, 0.25]) # rialzista ma ~in antifase
17
18psi = combine_signals(np.vstack([signal_A, signal_B]))
19
20# Probabilità di ogni scenario = |ampiezza|^2 (regola di Born)
21probs = np.abs(psi) ** 2
22print(probs.round(3)) # -> [0.147 0.102 0.26 0.491]

La riga chiave è la regola di Born: la probabilità è uguale al quadrato della magnitudine dell'ampiezza. Poiché i due segnali rialzisti vengono sommati come numeri complessi prima di elevare al quadrato, le loro componenti fuori fase si cancellano, e lo scenario "up" affollato viene soppresso da un ingenuo 0.76 a 0.147. L'agente sbiadisce automaticamente una scommessa di consenso eccessivamente correlata. Questa è la differenza concreta e misurabile tra questo e un semplice insieme di probabilità mediate, e il diagramma di interferenza allegato a questo post mostra gli stessi numeri affiancati.

DiKrass -X- - inline image

5. La parte difficile che nessuno ti mostra: da dove viene la fase?

Ogni articolo che ti vende "trading quantistico" codifica le fasi in modo arbitrario e spera che tu non te ne accorga. Nel frammento sopra ho scritto np.exp(1j\2.7) a mano. In un sistema reale, inventare la fase è l'intero problema di ricerca*, e fingere il contrario è il modo più veloce per ingannare te stesso.

Quindi tratta la fase come un obiettivo di modellazione di prima classe, non come un ornamento. Ecco alcuni modi fondati per derivarla invece di indovinare:

Timing / fase ciclica. Fai passare ogni segnale attraverso una trasformata di Hilbert o una decomposizione wavelet e leggi la fase istantanea del ciclo dominante. Due modelli di momentum che sparano nella stessa direzione ma su fasi cicliche diverse dovrebbero genuinamente cancellarsi parzialmente – è esattamente l'affollamento che vuoi rilevare.

Fase lead-lag. Stima il lag di cross-correlazione tra un segnale e i rendimenti futuri. Converti quel lag in un angolo. I segnali che anticipano il prezzo ottengono una fase; i ritardatari che stanno solo inseguendo ne ottengono un'altra, così interferiscono in modo distruttivo con i leader invece di raddoppiare il conteggio.

Fase di regime. Mappa un classificatore di regime (trend vs range, vol alta vs bassa) su un angolo in modo che il contributo di un segnale ruoti con il regime. Un modello di breakout e un modello di mean-reversion si trovano quindi naturalmente vicino a fasi opposte.

La disciplina è semplice: se non puoi spiegare perché un segnale ha la fase che ha, non hai il diritto di usare la fase. Ricadi a fase 0 per tutto, e torni a un insieme classico – il che è onesto e va bene. La fase è potente proprio perché è difficile da ottenere.

6. Codice: il portafoglio come ricerca dello stato fondamentale

La selezione di portafoglio sotto vincoli è ottimizzazione combinatoria – scegli il miglior sottoinsieme di asset soggetto a un budget e a limiti di rischio. Questo è esattamente il tipo di problema per cui è stato costruito l'annealing. Codifichiamo "quali asset detenere" come un QUBO (Quadratic Unconstrained Binary Optimization), il gemello classico di un hamiltoniano di Ising.

python
1import numpy as np
2
3def build_portfolio_hamiltonian(expected_returns, cov, risk_aversion=1.0,
4 budget=3, penalty=5.0):
5 """
6 Costruisce una matrice QUBO Q tale che minimizzare x^T Q x (x in {0,1}^n)
7 selezioni i migliori 'budget' asset: massimizza il rendimento, minimizza il rischio,
8 e penalizza debolmente la violazione del vincolo di budget.
9 """
10 n = len(expected_returns)
11 Q = np.zeros((n, n))
12
13 # rendimento (negato, poiché minimizziamo) più un termine di rischio dalla covarianza
14 for i in range(n):
15 Q[i, i] += -expected_returns[i] + risk_aversion * cov[i, i]
16 for j in range(i + 1, n):
17 Q[i, j] += 2 * risk_aversion * cov[i, j]
18
19 # vincolo di budget (sum x_i - budget)^2 come penalità soft
20 for i in range(n):
21 Q[i, i] += penalty * (1 - 2 * budget)
22 for j in range(i + 1, n):
23 Q[i, j] += 2 * penalty
24 return Q
25
26def simulated_anneal(Q, steps=20000, T0=5.0):
27 """Annealing quantum-inspired: raffredda lentamente il sistema nel suo stato fondamentale."""
28 n = Q.shape[0]
29 x = np.random.randint(0, 2, n)
30 def energy(x): return x @ Q @ x
31 e = energy(x)
32 for t in range(steps):
33 T = T0 * (1 - t / steps) # programma di temperatura lineare
34 i = np.random.randint(n)
35 x_new = x.copy(); x_new[i] ^= 1 # inverte un asset (dentro/fuori)
36 e_new = energy(x_new)
37 # accetta sempre i miglioramenti, e a volte le mosse peggiori (è così che esce dai minimi locali)
38 if e_new < e or np.random.rand() < np.exp(-(e_new - e) / max(T, 1e-9)):
39 x, e = x_new, e_new
40 return x, e
41
42returns = np.array([0.12, 0.09, 0.15, 0.04, 0.11])
43cov = np.array([
44 [0.10, 0.02, 0.01, 0.00, 0.03],
45 [0.02, 0.08, 0.02, 0.01, 0.01],
46 [0.01, 0.02, 0.18, 0.00, 0.02],
47 [0.00, 0.01, 0.00, 0.03, 0.00],
48 [0.03, 0.01, 0.02, 0.00, 0.09],
49])
50Q = build_portfolio_hamiltonian(returns, cov, risk_aversion=2.0, budget=2)
51selection, ground_energy = simulated_anneal(Q)
52print("Hold assets:", np.where(selection == 1)[0], "| energy:", round(ground_energy, 3))

Una nota onesta sulla scala. Con cinque asset non hai bisogno di annealing – potresti forzare tutte le 32 combinazioni. L'annealing ripaga quando hai centinaia di asset con vincoli stringenti, dove lo spazio di ricerca esplode e i risolutori esatti si bloccano. Il motivo per cui lo scriviamo così su piccola scala è che l'interfaccia non cambia mai: sostituisci simulated_anneal con un backend reale – l'annealer di D-Wave, un circuito QAOA su un simulatore Qiskit, o un risolutore a reti tensoriali del tipo di quelli che Multiverse offre – e nient'altro nell'agente si muove. Il risolutore è un plug-in.

7. Codice: il ciclo dell'agente (percezione → collasso → esecuzione)

Ora colleghiamo il tutto. Questo è lo scheletro di un agente autonomo – lo stesso ciclo di controllo percepisci/decidi/agisci che un agente LLM usa, ma con uno stato di tipo quantistico come modello del mondo invece del testo.

python
1class QuantumTradingAgent:
2 def __init__(self, universe, risk_aversion=2.0, budget=2, gross_leverage=1.0):
3 self.universe = universe
4 self.risk_aversion = risk_aversion
5 self.budget = budget
6 self.gross_leverage = gross_leverage
7 self.memory = [] # buffer di feedback / RL
8
9 def perceive(self, market):
10 contributions = self.model_conviction(market) # i tuoi modelli alpha -> matrice complessa
11 return combine_signals(contributions) # -> stato |psi> sugli scenari
12
13 def deliberate(self, market):
14 Q = build_portfolio_hamiltonian(
15 market["expected_returns"], market["cov"],
16 self.risk_aversion, self.budget)
17 selection, _ = simulated_anneal(Q)
18 return selection
19
20 def measure(self, psi, selection, market):
21 """
22 Collassa in ordini. Qui accadono due cose:
23 1) un gate di CONVINZIONE GLOBALE dallo stato degli scenari (direzionale + contrazione vol stile Heisenberg)
24 2) un peso PER-ASSET in modo che gli asset scelti siano dimensionati in base al loro rendimento atteso
25 """
26 scenario_probs = np.abs(psi) ** 2
27 directional = scenario_probs[0] + scenario_probs[3] # P(up) + P(breakout)
28 vol = market["volatility"]
29 gate = directional / (1.0 + self.risk_aversion * vol) # si contrae in vol alta / bassa convinzione
30
31 idx = np.where(selection == 1)[0]
32 if len(idx) == 0:
33 return {}
34 edge = np.clip(market["expected_returns"][idx], 0, None) # solo long su nomi con edge positivo
35 weights = edge / edge.sum() if edge.sum() > 0 else np.ones(len(idx)) / len(idx)
36
37 sizes = self.gross_leverage * gate * weights
38 return {int(a): round(float(s), 4) for a, s in zip(idx, sizes)}
39
40 def act(self, market):
41 psi = self.perceive(market)
42 selection = self.deliberate(market)
43 orders = self.measure(psi, selection, market)
44 # execute(orders) <- instrada allo scambio / broker qui
45 self.memory.append((market, orders))
46 return orders

Osserva attentamente measure(), perché la versione precedente ingenua aveva un vero difetto: applicava una dimensione identica a ogni asset selezionato, ignorando quanto fosse buono ciascuno. Questa versione lo risolve con due fasi. Un gate globale legge lo stato degli scenari – la convinzione direzionale, cioè P(up) + P(breakout), divisa per un termine di volatilità. Quella divisione è la regola stile Heisenberg che fa gestione del rischio: più il mercato resiste a una valutazione precisa, cioè volatilità più alta, minore è l'impegno totale dell'agente. Poi un peso per-asset distribuisce quel budget tra i nomi selezionati in proporzione al loro edge atteso, e si rifiuta di fare long su qualsiasi cosa con rendimento atteso negativo. La convinzione stabilisce quanto scommetti; l'edge per-asset stabilisce dove va.

8. Il reality check di Wall Street

Dove fa effettivamente guadagnare soldi, e dove è una bella demo? Essere specifici qui è ciò che rende credibile il resto.

Vantaggio genuino oggi, su hardware classico:

Ottimizzazione di portafoglio su larga scala. Con centinaia di asset e vincoli stringenti, gli annealer e i metodi a reti tensoriali gestiscono la combinatoria e i vincoli in modo più elegante dei risolutori naive media-varianza, e spesso più velocemente. Questa è l'applicazione più matura e meno incline all'hype.

Stima del rischio tramite quantum amplitude estimation. In teoria questo offre un'accelerazione quadratica rispetto al Monte Carlo classico per VaR e CVaR. Rimane una delle direzioni più attivamente ricercate nelle grandi banche, perché le simulazioni di rischio sono costose e vengono eseguite costantemente. Nota l'avvertenza: l'accelerazione dichiarata è un risultato asintotico teorico, e l'hardware odierno non la realizza ancora a scala produttiva.

Combinazione di segnali tramite interferenza. Modellare la convinzione con una fase in modo che le operazioni affollate e sovra-correlate si cancellino è un re-inquadramento genuinamente utile, e funziona sulla tua GPU attuale oggi. È l'idea più immediatamente pratica di questo articolo – a patto che tu risolva onestamente il problema della fase della Sezione 5.

Ancora principalmente ricerca:

Pricing di derivati end-to-end su hardware quantistico reale. Promettente in linea di principio, ma rumore e numero di qubit lo limitano oggi.

Previsione dei prezzi "Quantum ML". Fortemente sovra-pubblicizzato. Il costo di caricare dati di mercato classici in uno stato quantistico di solito divora qualsiasi accelerazione speravi di ottenere. Sii molto scettico verso chiunque venda questo.

La conclusione onesta: l'agente quantum-inspired è costruibile e backtestabile adesso, perché ogni modulo gira su hardware classico. Catturi le idee strutturali – una sovrapposizione di ipotesi, interferenza distruttiva contro l'affollamento, ottimizzazione basata su hamiltoniano – senza aspettare computer quantistici tolleranti ai guasti. Quando l'hardware maturerà, sostituisci il modulo 4 e tieni il resto.

DiKrass -X- - inline image

9. Cosa ucciderà davvero questo in produzione

Ogni strategia sembra brillante finché non incontra il mercato. Prima di rischiare un dollaro, interiorizza le quattro cose che distruggono silenziosamente gli agenti quantum-inspired in particolare.

Costi di transazione e slippage. Il livello di interferenza rimescola la convinzione ogni volta che arrivano nuovi dati, il che tenta l'agente a rimescolare il suo libro. Commissioni e slippage non si preoccupano di quanto sia elegante il tuo vettore di stato. Aggiungi una penalità di turnover direttamente nell'hamiltoniano e riesegui – molti "vantaggi" evaporano non appena vengono applicati costi realistici.

Overfitting delle fasi. La fase ti dà un intero set extra di parametri liberi, e i parametri liberi sono il modo in cui i backtest mentono. È banalmente facile tarare le fasi finché l'anno scorso stampa denaro e l'anno prossimo sanguina. Fissa le regole della fase dalla teoria (Sezione 5) prima di guardare i rendimenti, e non permettere mai al backtest di sceglierle per te.

Data-snooping attraverso il ciclo. Poiché questo è un ciclo di feedback chiuso, le perdite si accumulano. Se il tuo modello di convinzione, la tua stima di covarianza o le tue etichette di regime guardano anche solo leggermente nel futuro, l'intero agente eredita la menzogna. Testa in walk-forward l'intero ciclo, non solo il segnale in isolamento.

Fragilità di regime della covarianza. Il QUBO si basa su una matrice di covarianza, e le covarianze esplodono proprio quando ne hai bisogno – in un crollo, le correlazioni vanno a uno. Stress-test la selezione dello stato fondamentale sotto una covarianza shockata, non solo quella di mercato calmo, o l'ottimizzatore ti darà felicemente un portafoglio diversificato solo sulla carta.

10. La tua checklist di costruzione

Se vuoi davvero implementare questo, ecco l'ordine delle operazioni.

Inizia con il risolutore quantum-inspired – semplice numpy più simulated annealing. Nessun hardware, nessun account, nessuna dipendenza.

Sostituisci le ampiezze tarate a mano con un modello di convinzione appreso che alimenta combine_signals, e ricava le fasi dalla teoria invece di adattarle.

Backtesta l'intero ciclo, con i costi, non solo il segnale. Applica commissioni e slippage realistici, aggiungi una penalità di turnover, e fallo procedere in walk-forward. La logica di interferenza e dimensionamento è dove si nascondono sia il vantaggio che l'auto-inganno.

Solo dopo che l'astrazione ha ripagato in simulazione, dovresti passare a un backend reale – prima simulatore Qiskit o PennyLane, poi D-Wave, poi hardware. Sostituire il modulo 4 è una modifica di una riga per progettazione.

Il mercato è sempre stato un'onda di probabilità. Quasi tutti lo scambiano ancora come un singolo numero – e il divario tra queste due visioni è l'intera opportunità.

Se questo ha ridefinito il tuo modo di pensare ai mercati, ripubblica l'articolo e seguimi. Il repository completo dell'agente open-source arriva la prossima settimana. ⚛️

Disclaimer. Non è una consulenza finanziaria, né una promessa di rendimenti. Quantum-inspired non significa quantum-garantito – la maggior parte di ciò che fa funzionare questo è una modellazione classica disciplinata che indossa un cappotto quantistico. Backtesta tutto con costi reali; il mercato collassa la tua funzione d'onda, che tu sia pronto o no.

Salva con un clic

Leggi in profondità gli articoli virali con l’AI di YouMind

Salva la fonte, fai domande mirate, riassumi l’argomentazione e trasforma un articolo virale in note riutilizzabili in un unico spazio di lavoro AI.

Scopri YouMind
Per i creator

Trasforma il tuo Markdown in un articolo 𝕏 pulito

Quando pubblichi i tuoi testi lunghi, formattare immagini, tabelle e blocchi di codice per 𝕏 è una seccatura. YouMind trasforma un'intera bozza Markdown in un articolo 𝕏 pulito e pronto da pubblicare.

Prova Markdown verso 𝕏

Altri pattern da decodificare

Articoli virali recenti

Esplora altri articoli virali