一句话摘要
构建自主 AI 智能体做交易
用量子力学做交易:如何构建一个自主 AI Agent 2026 年 7 月 19 日 · 17 分钟阅读 · 查看原文 ↗ AI 硬件 金融 量化
描述一个粒子同时处于两个位置的数学,也能描述一个投资组合同时处于两个仓位。下面是如何把量子力学的结构变成一个自主交易 agent——以及同样重要的是,这个类比在哪里从"真实"变成了"营销话术"。
1. 为什么是量子,为什么是现在
地球上每一家对冲基金都在把同样的三个想法碾成粉末:动量、均值回归,以及某种对订单流的机器学习。优势在持续变薄,因为大家共享的市场模型是同一个——一个经典的模型,在那里价格是一个单一数字,未来是一条单一的有噪声路径。
量子力学提供了一个不同的数据模型。一个量子系统从不会处于单一状态。它同时处于所有可能状态的叠加中,每个状态都携带一个复数概率振幅。而这恰好是对你下单前市场状态的一个惊人贴切的描述:资产同时在上涨、下跌、横盘震荡,每种结果都被一个概率加权,直到你的订单迫使现实挑中其中一个。
这是大多数帖子都跳过、所以我要把它放在最前面的部分。这一切都不需要一台物理量子计算机,而且下面大部分内容也不是字面意义上的量子。它是量子启发式的:借用量子力学数学结构的经典算法——态矢量、复数振幅、哈密顿量、退火、干涉——并运行在你已经拥有的那块 GPU 上。价值在于结构,不在于量子比特。诚实地承认这个区别,正是区分一个可用框架和一个流行词的地方。
银行和量化机构——高盛(Goldman Sachs)、摩根大通(JPMorgan)、汇丰(HSBC),以及像 Multiverse Computing 这样的专业公司——都在积极研究并发表过用于衍生品定价、蒙特卡洛风险和投资组合优化的量子和量子启发式方法。理论是公开的。几乎没人写下来的是:如何把它接进一个自主 agent——一个能自己感知、决策、执行和学习的系统。这就是我们在这里要构建的东西。
2. 量子到市场的对照词典
在任何代码之前,你需要这个映射。下面每个量子概念都有一个精确的交易对应物。把这一节当作接下来一切的"概念契约"。
叠加态映射到下单前的市场状态。agent 不预测单一价格,而是持有一个写成 |ψ⟩ 的态矢量——它正在追踪的每一个场景的加权组合。任何东西都不会过早塌缩成一个单一赌注。agent 一直处于"所有假设都存活"的模式,直到它不得不行动的那一刻。
概率振幅映射到信念——但带有一个相位。经典概率只是非负数字。量子振幅是复数:每个都携带一个幅度和一个相位角。相位是全部的升级。正是它让两个看涨信号可以相消干涉而抵消,或让两个弱信号相长干涉成一个强信号。一个对正概率取平均的经典集成在物理上做不到这一点——它最好也只能稀释。相位让信号能够主动否决彼此。
纠缠映射到你无法拆开的关联。当两个资产作为一个联动机制一起移动——想想一个大币和搭它流动性便车的 meme 币——你无法诚实地只描述其中一个而不提另一个。agent 把它编码为一个不可分离的态,这捕捉了静态相关矩阵往往会抹平并低估的机制联动共动,尤其是在尾部。
哈密顿量映射到你的风险/收益成本函数。在物理中,哈密顿量 H 编码一个系统的能量。在交易中,你把你的目标——最大化期望收益、最小化方差、尊重仓位和预算限制——编码为一个能量景观。最优投资组合就是基态:H 的最低能量构型。投资组合构建就变成了一个能量最小化问题,而这是一个被研究得非常好的问题。
测量与塌缩映射到执行。你发送订单的那一瞬间,叠加态塌缩成一个已实现的结果。agent 真正的工作是选择何时以及测量什么,好让塌缩倾向于落在一个有利可图的构型上。这里甚至有一个类比海森堡的内置风险原则:你无法同时以无限精度钉死一个仓位的精确价格和它的精确动量。对其中一个要求更多确定性,会让你在另一个上损失确定性。这是一个类比,不是金融定律——但它是一个有用的类比,而且后面它会变成一个具体的仓位规模规则。
3. 一个量子交易 agent 的架构
这个 agent 是由六个模块组成的闭环。附在本帖的架构图展示了完整循环;下面是每个阶段做什么。
1. 感知。摄入原始市场数据——订单簿、OHLCV、资金费率、链上流向。把它归一化成一个特征向量 x。这是普通的量化管道;还没有任何量子的东西。
2. 态编码器。把 x 转成一个量子风格的态 |ψ⟩,它张在一小组市场场景之上——例如上涨、下跌、横盘、突破。每个场景是一个基态。它的振幅是每一个 alpha 模型对该场景投票的复数和:幅度承载模型相信它的强度,相位承载模型的时机或机制对齐。因为投票是在取概率之前作为复数求和的,模型可以互相加强或抵消。这是整个 agent 中最重要的一个设计选择。
3. 哈密顿量构建器。把你的风险/收益目标加约束翻译成一个 QUBO / Ising 哈密顿量 H。预算限制、风险厌恶和期望收益就在这里被烘焙进一个能量景观。
4. 量子启发式求解器。通过模拟退火、模拟器上的 QAOA 电路、或张量网络求解器,找到 H 的基态——最优资产选择。这个模块就是你的投资组合优化器,而且它是被刻意设计成可替换的。
5. 通过测量来决策。把态塌缩成具体的仓位和规模,并在不确定性高时用海森堡式规则收缩敞口。
6. 执行与反馈。路由订单,观察已实现的盈亏,并更新振幅。被测量的结果成为明天的先验——一个强化循环,让 agent 能够适应,而不是运行一个冻结的策略。
4. 代码:把市场编码为一个量子态
我们会用 numpy 做态数学,并借用 qiskit / pennylane 的约定来做量子启发式的部分。这里没有任何东西需要真实的量子硬件——它在笔记本电脑上就能跑。
干涉就是全部意义,所以编码必须让信号在取概率之前作为复数相加。每个 alpha 模型为每个市场场景贡献一个复数振幅——幅度等于信念,相位等于时机或机制对齐。你跨模型把贡献求和,然后才应用玻恩规则。
import numpy as np
def combine_signals(contributions: np.ndarray) -> np.ndarray:
"""
contributions: complex matrix of shape [n_signals, n_scenarios].
|value| = a model's conviction for a scenario,
angle = its phase (timing / regime alignment).
returns: normalized state |psi> over the scenarios.
"""
amplitudes = contributions.sum(axis=0) # signals INTERFERE here
return amplitudes / np.linalg.norm(amplitudes)
# Scenarios: [up, down, chop, breakout]
# Two momentum models both lean 'up' -- but they are out of phase, so they partly cancel.
signal_A = np.array([0.7+0j, 0.1+0j, 0.2+0j, 0.3+0j]) # bullish, phase 0
signal_B = np.array([0.6*np.exp(1j*2.7), 0.15, 0.2, 0.25]) # bullish but ~anti-phase
psi = combine_signals(np.vstack([signal_A, signal_B]))
# Probability of each scenario = |amplitude|^2 (the Born rule)
probs = np.abs(psi) ** 2
print(probs.round(3)) # -> [0.147 0.102 0.26 0.491]
关键的一行是玻恩规则:概率等于振幅模的平方。因为两个看涨信号在平方之前作为复数相加,它们不同相的分量抵消了,于是拥挤的"上涨"场景从一个朴素的 0.76 被压低到 0.147。agent 自动淡出了一个过度关联的共识赌注。这就是它和一个普通概率平均集成之间具体的、可测量的区别,而附在本帖的干涉图并排展示了同样的数字。
5. 没人给你看的难点:相位从哪来?
每一个卖你"量子交易"的帖子都会悄悄硬编码相位,并希望你没注意到。在上面的片段里我手写了 np.exp(1j*2.7)。在一个真实系统里,发明相位就是整个研究问题,假装它不是,是欺骗自己最快的方式。
所以把相位当作一等公民的建模目标,而不是装饰。几种有根据的推导方式,而不是瞎猜:
时机 / 周期相位。把每个信号过一遍希尔伯特变换或小波分解,读出主周期瞬时相位。两个在同一方向但不同周期相位上触发的动量模型,确实应该部分抵消——这正是你想检测的拥挤。
领先-滞后相位。估计一个信号和未来收益之间的互相关滞后。把那个滞后转换成一个角度。领先价格的信号得到一个相位;其实只是在追价的落后者得到另一个相位,于是它们与领先者相消干涉,而不是重复计数。
机制相位。把一个机制分类器(趋势 vs 区间、高波动 vs 低波动)映射到一个角度上,让信号的贡献随机制旋转而旋转。一个突破模型和一个均值回归模型于是自然就坐在近似相反的相位上。
纪律很简单:如果你无法解释为什么一个信号有它那个相位,你就不该用相位。对一切退回到相位 0,你就回到了经典集成——这没问题,也很诚实。相位之所以强大,恰恰因为它来之不易。
6. 代码:把投资组合当作基态搜索
带约束的资产选择是组合优化——在预算和风险限制下挑出最优的资产子集。这正是退火被发明出来解决的那类问题形状。我们把"持有哪些资产"编码成一个 QUBO(二次无约束二值优化),它是 Ising 哈密顿量的经典孪生兄弟。
import numpy as np
def build_portfolio_hamiltonian(expected_returns, cov, risk_aversion=1.0,
budget=3, penalty=5.0):
"""
Build a QUBO matrix Q so that minimizing x^T Q x (x in {0,1}^n)
picks the best 'budget' assets: maximize return, minimize risk,
and softly penalize breaking the budget constraint.
"""
n = len(expected_returns)
Q = np.zeros((n, n))
# return (negated, since we minimize) plus a risk term from the covariance
for i in range(n):
Q[i, i] += -expected_returns[i] + risk_aversion * cov[i, i]
for j in range(i + 1, n):
Q[i, j] += 2 * risk_aversion * cov[i, j]
# budget constraint (sum x_i - budget)^2 as a soft penalty
for i in range(n):
Q[i, i] += penalty * (1 - 2 * budget)
for j in range(i + 1, n):
Q[i, j] += 2 * penalty
return Q
def simulated_anneal(Q, steps=20000, T0=5.0):
"""Quantum-inspired annealing: slowly cool the system into its ground state."""
n = Q.shape[0]
x = np.random.randint(0, 2, n)
def energy(x): return x @ Q @ x
e = energy(x)
for t in range(steps):
T = T0 * (1 - t / steps) # linear temperature schedule
i = np.random.randint(n)
x_new = x.copy(); x_new[i] ^= 1 # flip one asset in/out
e_new = energy(x_new)
# accept improvements always, and worse moves sometimes (that is how it escapes local minima)
if e_new < e or np.random.rand() < np.exp(-(e_new - e) / max(T, 1e-9)):
x, e = x_new, e_new
return x, e
returns = np.array([0.12, 0.09, 0.15, 0.04, 0.11])
cov = np.array([
[0.10, 0.02, 0.01, 0.00, 0.03],
[0.02, 0.08, 0.02, 0.01, 0.01],
[0.01, 0.02, 0.18, 0.00, 0.02],
[0.00, 0.01, 0.00, 0.03, 0.00],
[0.03, 0.01, 0.02, 0.00, 0.09],
])
Q = build_portfolio_hamiltonian(returns, cov, risk_aversion=2.0, budget=2)
selection, ground_energy = simulated_anneal(Q)
print("Hold assets:", np.where(selection == 1)[0], "| energy:", round(ground_energy, 3))
关于规模的一句诚实说明。五个资产时你不需要退火——你可以暴力枚举全部 32 种组合。退火要在几百个资产、带硬约束时才真正值回票价,那时搜索空间爆炸,精确求解器会噎住。在小规模下这么写的理由是接口永远不变:把 simulated_anneal 换成一个真实后端——D-Wave 的退火器、Qiskit 模拟器上的 QAOA 电路、或 Multiverse 出货的那种张量网络求解器——agent 的其他部分都不用动。求解器就是一个插头。
7. 代码:agent 循环(感知到塌缩到执行)
现在把它们接起来。这是一个自主 agent 的骨架——和 LLM agent 所用的同一个感知/决策/行动控制循环,只不过它用的是一个量子风格的态作为世界模型,而不是文本。
class QuantumTradingAgent:
def __init__(self, universe, risk_aversion=2.0, budget=2, gross_leverage=1.0):
self.universe = universe
self.risk_aversion = risk_aversion
self.budget = budget
self.gross_leverage = gross_leverage
self.memory = [] # feedback / RL buffer
def perceive(self, market):
contributions = self.model_conviction(market) # your alpha models -> complex matrix
return combine_signals(contributions) # -> state |psi> over scenarios
def deliberate(self, market):
Q = build_portfolio_hamiltonian(
market["expected_returns"], market["cov"],
self.risk_aversion, self.budget)
selection, _ = simulated_anneal(Q)
return selection
def measure(self, psi, selection, market):
"""
Collapse into orders. Two things happen here:
1) a GLOBAL conviction gate from the scenario state (directional + Heisenberg vol shrink)
2) a PER-ASSET weight so the chosen assets are sized by their own expected return
"""
scenario_probs = np.abs(psi) ** 2
directional = scenario_probs[0] + scenario_probs[3] # P(up) + P(breakout)
vol = market["volatility"]
gate = directional / (1.0 + self.risk_aversion * vol) # shrink in high vol / low conviction
idx = np.where(selection == 1)[0]
if len(idx) == 0:
return {}
edge = np.clip(market["expected_returns"][idx], 0, None) # only long positive-edge names
weights = edge / edge.sum() if edge.sum() > 0 else np.ones(len(idx)) / len(idx)
sizes = self.gross_leverage * gate * weights
return {int(a): round(float(s), 4) for a, s in zip(idx, sizes)}
def act(self, market):
psi = self.perceive(market)
selection = self.deliberate(market)
orders = self.measure(psi, selection, market)
# execute(orders) <- route to exchange / broker here
self.memory.append((market, orders))
return orders
仔细看 measure(),因为之前那个朴素的版本有一个真实的缺陷:它对每一个被选中的资产应用一个相同的规模,忽略了每个资产本身有多好。这个版本用两个阶段修好了它。一个全局门读场景态——方向性信念,也就是 P(up) + P(breakout),除以一个波动率项。这个除法就是海森堡式规则在做风险管理:市场越抗拒精确定价,也就是波动率越高,agent 的总承诺就越小。然后一个逐资产的权重,把那个预算按它们各自的期望优势成比例地分配到被选中的标的上,并拒绝做多任何期望收益为负的东西。信念决定你下多少注;逐资产优势决定注下到哪里。
要标出的一句诚实简化:这里 |ψ⟩ 是一个单一的市场级态,所以方向性门假设每个资产同时共享一个机制。对于一个相关的、beta 驱动的组合——一个大多一起涨跌的加密篮子——这没问题,但在别处它是一个真实的局限。生产版本会给每个资产(或每个簇)它自己的场景态 |ψ_i⟩,于是门是逐标的计算的,agent 可以在看多一条腿的同时淡出另一条。代码几乎不变:perceive 返回一个态的列表而不是一个态,measure 在它们之上循环。先用共享态把循环跑通,等单机制假设开始让你付出代价时再把它拆开。
8. 华尔街的现实检验
这到底在哪儿能真赚钱,在哪儿只是一个漂亮的演示?把这点说清楚,才让其余部分可信。
今天在经典硬件上真正的优势:
规模化投资组合优化。在几百个资产、带硬约束时,退火器和张量网络方法比朴素的均值-方差求解器更优雅地处理组合爆炸和约束,而且通常更快。这是最成熟、最不容易被炒作的应用。
用量子振幅估计做风险估计。理论上,这对 VaR 和 CVaR 提供了相对经典蒙特卡洛的平方级加速。它仍然是大银行里研究最活跃的方向之一,因为风险计算很贵,而且一直在跑。注意这个保留意见:这个头条加速是一个理论上的渐近结果,今天的硬件还没能在生产规模上实现它。
通过干涉做信号组合。给信念建模一个相位,让拥挤的、过度关联的交易相消,是一个真正有用的重构,而且今天就跑在你现有的 GPU 上。它是本文中最立即可用的想法——前提是你诚实地解决了第 5 节的相位问题。
仍然主要是研究:
在真实量子硬件上做端到端衍生品定价。原则上很有前景,但今天受制于噪声和量子比特数量。
"量子 ML"价格预测。被严重过度炒作。把经典市场数据加载进量子态的成本,通常会吃掉你希望获得的一切加速。对任何卖这个的人要极度怀疑。
诚实的底线:这个量子启发式 agent 现在就可以构建和回测,因为每个模块都跑在经典硬件上。你抓住了结构性想法——假设的叠加、针对拥挤的相消干涉、基于哈密顿量的优化——而不必等待容错量子计算机。当硬件成熟时,你换掉模块 4,其余保持不变。
9. 什么会在生产中真正杀死它
每个策略在遇见市场之前都看起来很出色。在你拿一块钱冒险之前,把下面四件会悄悄摧毁量子启发式 agent 的事情内化。
交易成本和滑点。干涉层在每次新数据到来时都重新洗牌信念,这诱惑 agent 频繁换仓。手续费和滑点不在乎你的态矢量多优雅。直接在哈密顿量里加一个换手惩罚,然后重跑——很多"优势"在被收取现实成本的那一刻就蒸发了。
相位过拟合。相位给了你一整套额外的自由参数,而自由参数就是回测撒谎的方式。把相位调到去年赚钱、明年流血,容易得令人发指。在你查看收益之前,先用理论(第 5 节)固定相位规则,而且绝不让回测替你选它们。
跨循环的数据窥探。因为这是一个闭环反馈,泄漏会复合。如果你的信念模型、你的协方差估计、或你的机制标签哪怕只是稍微窥探了一眼未来,整个 agent 都会继承这个谎言。对整个循环做前向测试,而不只是单独测试信号。
协方差的机制脆弱性。QUBO 依赖一个协方差矩阵,而协方差恰恰在你最需要它们的时候爆炸——崩盘时,相关性会冲向 1。对基态选择做受冲击协方差下的压力测试,而不只是平静市场下的,否则优化器会高高兴兴地递给你一个只在纸面上分散的组合。
10. 你的构建清单
如果你真的想把它交付,这里是操作顺序。
从量子启发式求解器开始——纯 numpy 加模拟退火。不需要硬件、不需要账户、不需要依赖。
用学到的信念模型替换手工调好的振幅,喂给 combine_signals,并从理论而不是拟合推导相位。
回测整个循环,带成本,而不只是信号。收取现实的手续费和滑点,加一个换手惩罚,并前向推进。干涉和规模逻辑正是优势和自我欺骗同时藏身的地方。
只有在抽象已经在模拟中证明了自己的价值之后,才去够一个真实后端——先用 Qiskit 或 PennyLane 模拟器,然后 D-Wave,然后硬件。换掉模块 4 按设计就是一行改动。
市场从来就是一列概率波。几乎所有人仍然把它当单一数字交易——而这两种看法之间的差距,就是全部的机会。
如果这重新接好了你对市场的思考,转发置顶并关注。完整的开源 agent 仓库接下来就发布。 ⚛️
免责声明。不是投资建议,也不是收益承诺。量子启发式不意味着量子保证——让它起作用的大部分是有纪律的经典建模,只是披了一层量子的外衣。用真实成本回测一切;市场会塌缩你的波函数,无论你准备好了没有。 标签:# X # AI # 硬件 # 金融 # 量化 # Thread # 指南 相关文章 量化交易员如何用 AI 构建机制自适应交易策略(完整指南) 一个检测市场机制并在机制变化毁掉你的盈亏之前动态调整策略的实用框架。 AI 金融 量化 营销
原文参考:https://maxed.wiki/posts/trading-on-quantum-mechanics-how-to-build-an-autonomous-ai-agent/ (Maxed.wiki,本页为站内中文整理)