Las mismas matemáticas que describen una partícula en dos lugares a la vez pueden describir una cartera en dos posiciones simultáneamente. Aquí te explicamos cómo convertir la estructura de la mecánica cuántica en un agente de trading autónomo y, lo que es igual de importante, dónde la analogía deja de ser real y empieza a ser marketing.

1. Por qué lo cuántico, y por qué ahora
Todos los fondos de cobertura del planeta están desgastando las mismas tres ideas: momentum, reversión a la media y alguna variante de machine learning sobre el flujo de órdenes. La ventaja se reduce porque el modelo del mercado que todos comparten es idéntico: uno clásico, donde un precio es un solo número y el futuro es un solo camino ruidoso.
La mecánica cuántica ofrece un modelo de datos diferente. Un sistema cuántico nunca está en un solo estado. Vive en una superposición de todos los estados posibles a la vez, cada uno con una amplitud de probabilidad compleja. Resulta que eso es una descripción sorprendentemente buena de un mercado antes de que coloques una orden: el activo está simultáneamente subiendo, bajando y lateralizando, cada resultado ponderado por una probabilidad, hasta que tu orden obliga a la realidad a elegir uno.
Aquí está la parte que la mayoría de los hilos omiten, así que la pongo al frente. No necesitas una computadora cuántica física para nada de esto, y la mayor parte de lo que sigue no es literalmente cuántico. Es de inspiración cuántica: algoritmos clásicos que toman prestada la estructura matemática de la mecánica cuántica (vectores de estado, amplitudes complejas, hamiltonianos, recocido, interferencia) y se ejecutan en la misma GPU que ya tienes. El valor está en la estructura, no en los qubits. Ser honesto sobre esa distinción es lo que separa un marco utilizable de una palabra de moda.
Bancos y firmas de trading cuantitativo (entre ellos Goldman Sachs, JPMorgan, HSBC y especialistas como Multiverse Computing) han investigado y publicado activamente sobre métodos cuánticos y de inspiración cuántica para la fijación de precios de derivados, el riesgo Monte Carlo y la optimización de carteras. La teoría es pública. Lo que casi nadie ha escrito es cómo integrarlo en un agente autónomo: un sistema que percibe, decide, ejecuta y aprende por sí mismo. Eso es lo que construimos aquí.
2. El diccionario cuántico-mercado
Antes de cualquier código, necesitas el mapeo. Cada concepto cuántico a continuación tiene un análogo preciso en trading. Trata esta sección como el contrato conceptual para todo lo que sigue.
La amplitud de probabilidad se asigna a la convicción, pero con una fase. Las probabilidades clásicas son solo números no negativos. Las amplitudes cuánticas son complejas: cada una tiene una magnitud y un ángulo de fase. La fase es la mejora completa. Es lo que permite que dos señales alcistas interfieran destructivamente y se cancelen, o que dos señales débiles interfieran constructivamente y se conviertan en una fuerte. Un conjunto clásico que promedia probabilidades positivas no puede hacer esto físicamente; lo mejor que puede hacer es diluirse. La fase permite que las señales se vetén activamente entre sí.
El entrelazamiento se asigna a una correlación que no puedes separar. Cuando dos activos se mueven como un régimen vinculado (piensa en una criptomoneda principal y las memecoins que cabalgan su liquidez), no puedes describir honestamente uno sin el otro. El agente codifica esto como un estado no separable, que captura el co-movimiento vinculado al régimen que una matriz de correlación estática tiende a aplanar y subestimar, especialmente en las colas.
El hamiltoniano se asigna a tu función de coste rentabilidad/riesgo. En física, el hamiltoniano H codifica la energía de un sistema. En trading, codificas tu objetivo (maximizar el rendimiento esperado, minimizar la varianza, respetar límites de posición y presupuesto) como un paisaje energético. La cartera óptima es entonces el estado fundamental: la configuración de menor energía de H. La construcción de la cartera se convierte en un problema de minimización de energía, algo muy bien estudiado de resolver.
La medición y el colapso se asignan a la ejecución. En el momento en que envías una orden, la superposición colapsa a un resultado realizado. El verdadero trabajo del agente es elegir cuándo y qué medir para que el colapso tienda a caer en una configuración rentable. Incluso hay un principio de riesgo incorporado por analogía con Heisenberg: no puedes fijar simultáneamente el precio exacto de una posición y su momento exacto con precisión ilimitada. Exigir más certeza sobre una te cuesta certeza sobre la otra. Esto es una analogía, no una ley de las finanzas, pero es útil, y más adelante se convierte en una regla concreta de dimensionamiento de posiciones.

3. La arquitectura de un agente de trading cuántico
El agente es un bucle cerrado de seis módulos. El diagrama de arquitectura adjunto a esta publicación muestra el ciclo completo; aquí está lo que hace cada etapa.

1. Percepción. Ingerir datos brutos del mercado (libro de órdenes, OHLCV, tasas de financiación, flujo en cadena). Normalizarlos en un vector de características x. Esto es la fontanería cuántica habitual; nada cuántico todavía.
3. Constructor de hamiltonianos. Traducir tu objetivo de rentabilidad/riesgo más las restricciones en un hamiltoniano QUBO / Ising H. Aquí es donde los límites de presupuesto, la aversión al riesgo y los rendimientos esperados se incorporan a un paisaje energético.
4. Solucionador de inspiración cuántica. Encontrar el estado fundamental de H (la selección óptima de activos) mediante recocido simulado, un circuito QAOA en un simulador, o un solucionador de redes de tensores. Este módulo es tu optimizador de cartera, y es deliberadamente intercambiable.
5. Decisión mediante medición. Colapsar el estado en posiciones y tamaños concretos, con la regla de estilo Heisenberg que reduce la exposición cuando la incertidumbre es alta.
6. Ejecución y retroalimentación. Enrutar las órdenes, observar el P&L realizado y actualizar las amplitudes. El resultado medido se convierte en el prior de mañana: un bucle de refuerzo que permite al agente adaptarse en lugar de ejecutar una estrategia congelada.
4. Código: codificando el mercado como un estado cuántico
Usaremos numpy para las matemáticas del estado y nos apoyaremos en las convenciones de qiskit/pennylane para las partes de inspiración cuántica. Nada de esto necesita hardware cuántico real; se ejecuta en un portátil.
La interferencia es el punto central, por lo que la codificación debe permitir que las señales se sumen como números complejos antes de que tomes probabilidades. Cada modelo alfa contribuye con una amplitud compleja (magnitud = convicción, fase = sincronización o alineación de régimen) a cada escenario de mercado. Sumas las contribuciones de todos los modelos, y solo entonces aplicas la regla de Born.
1import numpy as np23def combine_signals(contributions: np.ndarray) -> np.ndarray:4 """5 contributions: matriz compleja de forma [n_senales, n_escenarios].6 |valor| = convicción de un modelo para un escenario,7 ángulo = su fase (sincronización / alineación de régimen).8 devuelve: estado normalizado |psi> sobre los escenarios.9 """10 amplitudes = contributions.sum(axis=0) # las señales INTERFIEREN aquí11 return amplitudes / np.linalg.norm(amplitudes)1213# Escenarios: [subida, bajada, lateral, ruptura]14# Dos modelos de momentum apuntan ambos a 'subida' -- pero están desfasados, por lo que se cancelan parcialmente.15signal_A = np.array([0.7+0j, 0.1+0j, 0.2+0j, 0.3+0j]) # alcista, fase 016signal_B = np.array([0.6*np.exp(1j*2.7), 0.15, 0.2, 0.25]) # alcista pero ~antifase1718psi = combine_signals(np.vstack([signal_A, signal_B]))1920# Probabilidad de cada escenario = |amplitud|^2 (la regla de Born)21probs = np.abs(psi) ** 222print(probs.round(3)) # -> [0.147 0.102 0.26 0.491]
La línea clave es la regla de Born: la probabilidad es igual al cuadrado de la magnitud de la amplitud. Debido a que las dos señales alcistas se suman como números complejos antes de elevar al cuadrado, sus componentes desfasados se cancelan y el escenario "subida" abarrotado se reduce de un ingenuo 0.76 a 0.147. El agente desvanece automáticamente una apuesta de consenso con exceso de correlación. Esa es la diferencia concreta y medible entre esto y un conjunto de promediación de probabilidad simple, y el diagrama de interferencia adjunto a esta publicación muestra los mismos números lado a lado.

5. La parte difícil que nadie te muestra: ¿de dónde viene la fase?
Cada hilo que te vende "trading cuántico" codifica silenciosamente las fases y espera que no te des cuenta. En el fragmento anterior escribí np.exp(1j\2.7) manualmente. En un sistema real, inventar la fase es todo el problema de investigación*, y pretender lo contrario es la forma más rápida de engañarte a ti mismo.
Así que trata la fase como un objetivo de modelado de primera clase, no como un adorno. Algunas formas fundamentadas de derivarla en lugar de adivinarla:
Sincronización / fase de ciclo. Pasa cada señal por una transformada de Hilbert o una descomposición wavelet y lee la fase instantánea del ciclo dominante. Dos modelos de momentum que se activan en la misma dirección pero en diferentes fases del ciclo deberían cancelarse parcialmente; eso es exactamente el hacinamiento que quieres detectar.
Fase de adelanto-retraso. Estima el desfase de correlación cruzada entre una señal y los rendimientos futuros. Convierte ese desfase en un ángulo. Las señales que se adelantan al precio reciben una fase; las rezagadas que en realidad solo persiguen reciben otra, por lo que interfieren destructivamente con las líderes en lugar de contabilizarse dos veces.
Fase de régimen. Asigna un clasificador de régimen (tendencia vs. rango, volatilidad alta vs. baja) a un ángulo, de modo que la contribución de una señal rota a medida que rota el régimen. Un modelo de ruptura y un modelo de reversión a la media se sitúan naturalmente cerca de fases opuestas.
La disciplina es simple: si no puedes explicar por qué una señal tiene la fase que tiene, no puedes usar la fase. Vuelve a la fase 0 para todo, y estarás de nuevo en un conjunto clásico, lo cual está bien y es honesto. La fase es poderosa precisamente porque es difícil de conseguir.
6. Código: la cartera como una búsqueda del estado fundamental
La selección de carteras bajo restricciones es optimización combinatoria: elegir el mejor subconjunto de activos sujeto a un presupuesto y límites de riesgo. Esa es exactamente la forma del problema para el que se construyó el recocido. Codificamos "qué activos mantener" como un QUBO (Quadratic Unconstrained Binary Optimization), el gemelo clásico de un hamiltoniano de Ising.
1import numpy as np23def build_portfolio_hamiltonian(expected_returns, cov, risk_aversion=1.0,4 budget=3, penalty=5.0):5 """6 Construye una matriz QUBO Q de modo que minimizar x^T Q x (x en {0,1}^n)7 elija los mejores 'budget' activos: maximizar rendimiento, minimizar riesgo,8 y penalizar suavemente el incumplimiento de la restricción de presupuesto.9 """10 n = len(expected_returns)11 Q = np.zeros((n, n))1213 # rendimiento (negado, ya que minimizamos) más un término de riesgo de la covarianza14 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]1819 # restricción de presupuesto (sum x_i - budget)^2 como penalización suave20 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 * penalty24 return Q2526def simulated_anneal(Q, steps=20000, T0=5.0):27 """Recocido de inspiración cuántica: enfría lentamente el sistema hasta su estado fundamental."""28 n = Q.shape[0]29 x = np.random.randint(0, 2, n)30 def energy(x): return x @ Q @ x31 e = energy(x)32 for t in range(steps):33 T = T0 * (1 - t / steps) # programa de temperatura lineal34 i = np.random.randint(n)35 x_new = x.copy(); x_new[i] ^= 1 # invertir un activo (dentro/fuera)36 e_new = energy(x_new)37 # aceptar mejoras siempre, y a veces movimientos peores (así escapa de mínimos locales)38 if e_new < e or np.random.rand() < np.exp(-(e_new - e) / max(T, 1e-9)):39 x, e = x_new, e_new40 return x, e4142returns = 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("Mantener activos:", np.where(selection == 1)[0], "| energía:", round(ground_energy, 3))
Una nota honesta sobre la escala. Con cinco activos no necesitas recocido: podrías probar por fuerza bruta las 32 combinaciones. El recocido demuestra su valor con cientos de activos y restricciones fuertes, donde el espacio de búsqueda explota y los solucionadores exactos se atascan. La razón para escribirlo así a pequeña escala es que la interfaz nunca cambia: intercambia simulated_anneal por un backend real (el recocedor de D-Wave, un circuito QAOA en un simulador de Qiskit, o un solucionador de redes de tensores como los que distribuye Multiverse) y nada más en el agente se mueve. El solucionador es un enchufe.
7. Código: el bucle del agente (percepción → colapso → ejecución)
Ahora conéctalo todo. Este es el esqueleto de un agente autónomo: el mismo bucle de control percibir/decidir/actuar que usa un agente LLM, pero con un estado de estilo cuántico como modelo de mundo en lugar de texto.
1class QuantumTradingAgent:2 def __init__(self, universe, risk_aversion=2.0, budget=2, gross_leverage=1.0):3 self.universe = universe4 self.risk_aversion = risk_aversion5 self.budget = budget6 self.gross_leverage = gross_leverage7 self.memory = [] # búfer de retroalimentación / RL89 def perceive(self, market):10 contributions = self.model_conviction(market) # tus modelos alfa -> matriz compleja11 return combine_signals(contributions) # -> estado |psi> sobre escenarios1213 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 selection1920 def measure(self, psi, selection, market):21 """22 Colapsar en órdenes. Aquí ocurren dos cosas:23 1) una puerta de CONVICCIÓN global desde el estado de escenario (dirección + contracción de volatilidad tipo Heisenberg)24 2) un peso POR ACTIVO para que los activos elegidos se dimensionen según su propio rendimiento esperado25 """26 scenario_probs = np.abs(psi) ** 227 directional = scenario_probs[0] + scenario_probs[3] # P(subida) + P(ruptura)28 vol = market["volatility"]29 gate = directional / (1.0 + self.risk_aversion * vol) # contraer en alta volatilidad / baja convicción3031 idx = np.where(selection == 1)[0]32 if len(idx) == 0:33 return {}34 edge = np.clip(market["expected_returns"][idx], 0, None) # solo tomar posiciones largas con ventaja positiva35 weights = edge / edge.sum() if edge.sum() > 0 else np.ones(len(idx)) / len(idx)3637 sizes = self.gross_leverage * gate * weights38 return {int(a): round(float(s), 4) for a, s in zip(idx, sizes)}3940 def act(self, market):41 psi = self.perceive(market)42 selection = self.deliberate(market)43 orders = self.measure(psi, selection, market)44 # execute(orders) <- enrutar al exchange / broker aquí45 self.memory.append((market, orders))46 return orders
Observa de cerca measure(), porque la versión anterior ingenua tenía un defecto real: aplicaba un tamaño idéntico a cada activo seleccionado, ignorando lo bueno que era realmente cada uno. Esta versión lo corrige con dos etapas. Una puerta global lee el estado del escenario (convicción direccional, que es P(subida) + P(ruptura), dividida por un término de volatilidad). Esa división es la regla de estilo Heisenberg que hace la gestión de riesgos: cuanto más se resiste el mercado a un precio preciso (es decir, mayor volatilidad), menor es el compromiso total del agente. Luego, un peso por activo distribuye ese presupuesto entre los nombres seleccionados en proporción a su propia ventaja esperada, y se niega a tomar posiciones largas en cualquier cosa con rendimiento esperado negativo. La convicción establece cuánto apuestas; la ventaja por activo establece dónde va.
8. El control de realidad de Wall Street
¿Dónde gana dinero realmente esto y dónde es una demostración bonita? Ser específico aquí es lo que hace creíble el resto.
Ventaja genuina hoy, en hardware clásico:
Optimización de carteras a escala. Con cientos de activos y restricciones fuertes, los recocedores y los métodos de redes de tensores manejan la combinatoria y las restricciones con más elegancia que los solucionadores ingenuos de media-varianza, y a menudo más rápido. Esta es la aplicación más madura y con menos bombo.
Estimación de riesgo mediante estimación de amplitud cuántica. En teoría, esto ofrece una aceleración cuadrática sobre el Monte Carlo clásico para VaR y CVaR. Sigue siendo una de las direcciones más investigadas en los grandes bancos, porque las ejecuciones de riesgo son costosas y se realizan constantemente. Nota la advertencia: la aceleración titular es un resultado asintótico teórico, y el hardware actual aún no lo alcanza a escala de producción.
Combinación de señales mediante interferencia. Modelar la convicción con una fase para que las operaciones abarrotadas y con exceso de correlación se cancelen es un replanteamiento genuinamente útil, y funciona en tu GPU actual hoy. Es la idea más inmediatamente práctica de este artículo, siempre que resuelvas honestamente el problema de la fase de la Sección 5.
Sigue siendo principalmente investigación:
Fijación de precios de derivados de extremo a extremo en hardware cuántico real. Prometedor en principio, pero el ruido y el recuento de qubits lo limitan hoy.
Predicción de precios con "ML cuántico". Muy sobreexplotado. El coste de cargar datos de mercado clásicos en un estado cuántico suele consumir cualquier aceleración que esperabas obtener. Sé muy escéptico con cualquiera que venda esto.
El resultado final honesto: el agente de inspiración cuántica se puede construir y backtestear ahora mismo, porque cada módulo se ejecuta en hardware clásico. Capturas las ideas estructurales (una superposición de hipótesis, interferencia destructiva contra el hacinamiento, optimización basada en hamiltonianos) sin esperar a computadoras cuánticas tolerantes a fallos. Cuando el hardware madure, intercambias el módulo 4 y mantienes el resto.

9. Lo que realmente matará esto en producción
Toda estrategia parece brillante hasta que se encuentra con el mercado. Antes de arriesgar un dólar, interioriza las cuatro cosas que destruyen silenciosamente a los agentes de inspiración cuántica en particular.
Costes de transacción y deslizamiento. La capa de interferencia reordena la convicción cada vez que llegan nuevos datos, lo que tienta al agente a agitar su cartera. Las comisiones y el deslizamiento no se preocupan de lo elegante que sea tu vector de estado. Añade una penalización por rotación directamente en el hamiltoniano y vuelve a ejecutar: muchas "ventajas" se evaporan en el momento en que se cobran costes realistas.
Sobreajuste de las fases. La fase te da un conjunto extra de parámetros libres, y los parámetros libres son cómo mienten los backtests. Es trivialmente fácil ajustar las fases hasta que el año pasado imprima dinero y el próximo año sangre. Fija las reglas de fase a partir de la teoría (Sección 5) antes de mirar los rendimientos, y nunca dejes que el backtest las elija por ti.
Data snooping a través del bucle. Debido a que esto es un bucle de retroalimentación cerrado, la fuga se acumula. Si tu modelo de convicción, tu estimación de covarianza o tus etiquetas de régimen se asoman siquiera ligeramente al futuro, todo el agente hereda la mentira. Prueba walk-forward todo el bucle, no solo la señal de forma aislada.
Fragilidad de régimen de la covarianza. El QUBO se apoya en una matriz de covarianza, y las covarianzas explotan exactamente cuando más las necesitas (en un desplome, las correlaciones tienden a uno). Prueba bajo estrés la selección del estado fundamental con una covarianza impactada, no solo con la del mercado tranquilo, o el optimizador te entregará felizmente una cartera que está diversificada solo sobre el papel.
10. Tu lista de verificación de construcción
Si quieres realmente lanzar esto, aquí está el orden de operaciones.
Comienza con el solucionador de inspiración cuántica (numpy simple más recocido simulado). Sin hardware, sin cuentas, sin dependencias.
Reemplaza las amplitudes ajustadas a mano con un modelo de convicción aprendido que alimente combine_signals, y deriva las fases de la teoría en lugar de ajustarlas.
Backtestea todo el bucle, con costes, no solo la señal. Cobra comisiones y deslizamiento realistas, añade una penalización por rotación y pruébalo walk-forward. La lógica de interferencia y dimensionamiento es donde se esconden tanto la ventaja como el autoengaño.
Solo después de que la abstracción se haya pagado por sí sola en simulación, deberías recurrir a un backend real (primero un simulador de Qiskit o PennyLane, luego D-Wave, luego hardware). Intercambiar el módulo 4 es un cambio de una línea por diseño.
El mercado siempre fue una onda de probabilidad. Casi todo el mundo sigue operándolo como un solo número, y la brecha entre esas dos visiones es toda la oportunidad.
Si esto reconfiguró tu forma de pensar sobre los mercados, republica la parte superior y sigue. El repositorio completo del agente de código abierto se publica la próxima. ⚛️
Descargo de responsabilidad. Esto no es asesoramiento financiero ni una promesa de rendimientos. Inspirado en la mecánica cuántica no significa garantizado cuánticamente: la mayor parte de lo que hace que esto funcione es un modelado clásico disciplinado con una capa cuántica. Backtestea todo con costes reales; el mercado colapsa tu función de onda, estés listo o no.





