1988 年的冬天,数学家詹姆斯·西蒙斯在长岛一间不起眼的办公室里,招募了一批密码学家、语言学家和统计学家。他的目标不是破解战争密码,而是破解市场价格。

那一年,全球最大的对冲基金叫 SEI。没有人听说过"量化"这个词。

三十七年后,全球量化基金管理规模超过 3 万亿美元,顶级量化机构的招聘名单上写满了麻省理工数学博士和前 Google 工程师,算法在毫秒级完成买卖,而 AI Agent 正在接管从因子构建到风险控制的全流程。

这不是一篇关于"量化有多赚钱"的故事。这是一个关于数学、算力和信息差如何重塑金融市场的技术叙事。


一、量化交易的史前时代:赌徒、数学家与爱因斯坦的亲戚

在量化成为"行业"之前,它是一系列零散的、反直觉的个人实践。

爱德华·索普是这条线索的起点。1960 年代,这位加州大学欧文分校的数学助理教授用凯利公式(Kelly Criterion)证明了二十一点的最优下注策略,随后将这套方法迁移到期权定价领域。他与信息论之父克劳德·香农合作,在拉斯维加斯和华尔街同时下注——香农甚至让自己的妻子和索普一起去赌场,以规避"同一人赢太多"的监控。他们的系统在 1969 年因市场容量问题关闭,但索普创立的 Princeton/Newport Partners 在随后的二十年里持续盈利。

这段历史揭示了量化交易的原始驱动力:将不确定性转化为可计算的概率。这不是金融直觉,而是工程思维。

1970 年代出现的布莱克-舒尔斯期权定价模型为整个行业奠定了数学基础。费希尔·布莱克和迈伦·舒尔斯证明,期权价格可以由标的资产价格、执行价格、无风险利率和到期时间推导出来——这意味着期权市场存在系统性的定价偏差,而偏差就是利润。

但模型有一个致命假设:连续交易、无摩擦市场。当这个假设在真实市场中崩溃时,机会才真正出现。


二、文艺复兴时代:数学家统治华尔街

2.1 大奖章基金的神话与秘密

1982 年,西蒙斯创立了文艺复兴科技公司(Renaissance Technologies)。在前十五年,这家公司的旗舰产品大奖章基金(Medallion Fund)表现平平,收益率与大盘指数相近。西蒙斯后来说,那段时间他在"搞清楚市场是怎么运作的"。

1990 年代,局面发生了转变。文艺复兴开始系统性地招募非金融背景的顶尖科学家:数学家、物理学家、统计学家和密码破译员。他们用处理导弹轨迹的数学工具处理价格数据,寻找市场中的"信号"。

大奖章基金的核心数据:

指标 数值 说明
1988–2018 年复合年化收益率 约 66%(费前) 巴菲特同期的两倍以上
1994–2014 年年化收益率 约 71.8% 扣除费用后仍约 39%
员工规模 约 300 人 其中超过 1/3 拥有 PhD
管理规模上限 锁定在 100 亿美元 西蒙斯主动限制规模以维持策略容量

外界对大奖章的策略知之甚少。文艺复兴从不公开持仓,核心技术团队签署终身保密协议。公司内部使用的编程语言从最初的 Fortran 逐渐迁移到 C++,后来又引入 Python 做研究探索,但执行层始终依赖经过严格测试的低延迟系统。

唯一可以确认的是:文艺复兴的交易策略不依赖基本面分析——不看财报、不关注宏观经济、不研究管理层——纯粹基于数学模型和历史数据的统计规律

2.2 量化 vs 主动管理:一个时代的分野

1990 年代末,量化基金开始从"异类"变成"主流"。Two Sigma、D.E. Shaw、DE Shaw、Citadel 的量化部门相继崛起,而传统的基本面选股基金经理发现自己的超额收益(alpha)在持续收窄。

这一趋势的底层逻辑并不复杂:当越来越多的人使用相同的信息源和分析方法时,基于公开信息的套利机会会被快速消弭。量化机构之间的竞争,本质上变成了一场信息获取速度与模型预测能力的军备竞赛


三、高频交易时代:毫秒战争

3.1 速度的物理学

2000 年以后,量化交易进入了一个全新的维度:速度

传统意义上的"量化"以日线或更低频率的数据为基础,持有期从几天到几个月不等。但随着电子交易(Ecn, Electronic Communication Network)的普及和交易所数据服务的降费,一种全新的策略类型诞生了:高频交易(High-Frequency Trading, HFT)。

高频交易的核心逻辑是:在极短时间内捕捉微小的价格偏差

举一个简化的例子。假设某只股票在纽约证券交易所(NYSE)的报价是 $100.00,在纳斯达克(NASDAQ)的报价是 $100.01。高频交易系统同时检测到这两个价格,在毫秒级别内在低价交易所买入、在高价交易所卖出,扣除交易成本后赚取 $0.01 的利润。这种策略叫做市场间套利(inter-market arbitrage)。

在 2010 年左右,顶级高频交易公司的延迟已经压缩到微秒级(1 微秒 = 0.000001 秒)。为此,少数机构开始租用专用的光纤线路,甚至探索微波网络和直线可视距离传输——因为地球曲率和光纤折射率的存在,微波在特定路径上反而比光纤更快。

这不是金融创新。这是物理学竞赛。

3.2 订单簿与做市策略

高频交易最主流的策略类型是做市商(Market Making)。其核心逻辑是:作为流动性提供者,在买卖两侧同时挂单,赚取买卖价差(bid-ask spread)。

一个简化的高频做市模型可以这样描述:

import random
import time
import os
from dataclasses import dataclass
from typing import Optional
from datetime import datetime

@dataclass
class OrderBook:
    """简化订单簿快照"""
    best_bid: float
    best_ask: float
    bid_depth: list[float]  # 买盘档位
    ask_depth: list[float]  # 卖盘档位

@dataclass
class MarketOrder:
    symbol: str
    side: str  # "buy" or "sell"
    price: float
    volume: int
    timestamp: float

class SimpleMarketMaker:
    """
    简化的高频做市策略演示
    
    策略逻辑:
    - 在 best_bid 挂买单,在 best_ask 挂卖单
    - 计算理论价(mid_price),在两侧各留 spread
    - 监控订单簿失衡度,动态调整报价偏移
    
    ⚠️ 仅用于教学演示。实盘需完整的风控和合规检查。
    """
    
    def __init__(self, symbol: str, spread_bps: float = 5.0):
        self.symbol = symbol
        self.spread_bps = spread_bps  # 买卖价差(基点)
        self.position = 0
        self.inventory_limit = 1000  # 最大持仓限制
        
    def calculate_mid_price(self, book: OrderBook) -> float:
        """理论中间价"""
        return (book.best_bid + book.best_ask) / 2
    
    def calculate_imbalance(self, book: OrderBook) -> float:
        """
        订单簿失衡度
        > 1: 买盘压力强
        < 1: 卖盘压力强
        ≈ 1: 平衡
        """
        total_bid = sum(book.bid_depth)
        total_ask = sum(book.ask_depth)
        if total_ask == 0:
            return 1.0
        return total_bid / total_ask
    
    def generate_quote(self, book: OrderBook) -> tuple[MarketOrder, MarketOrder]:
        """
        生成双向报价
        
        实际生产环境中:
        - 需要连接交易所 API 获取实时数据
        - 需要维护订单簿状态,处理增量更新
        - 需要处理订单拒绝、成交回报等异步事件
        """
        mid = self.calculate_mid_price(book)
        imbalance = self.calculate_imbalance(book)
        
        # 基于失衡度调整报价:偏离价值高的方向加大挂单价差
        # 失衡越严重,报价越不利(保护库存)
        skew_factor = 1 + (imbalance - 1) * 0.3
        
        half_spread = mid * (self.spread_bps / 10000) / 2
        
        bid_price = mid - half_spread * skew_factor
        ask_price = mid + half_spread * skew_factor
        
        # 持仓接近上限时,减少卖单量
        max_buy_volume = self.inventory_limit - self.position
        max_sell_volume = self.inventory_limit + self.position
        
        buy_order = MarketOrder(
            symbol=self.symbol,
            side="buy",
            price=round(bid_price, 2),
            volume=min(100, max(0, max_buy_volume)),
            timestamp=time.time()
        )
        sell_order = MarketOrder(
            symbol=self.symbol,
            side="sell",
            price=round(ask_price, 2),
            volume=min(100, max(0, max_sell_volume)),
            timestamp=time.time()
        )
        
        return buy_order, sell_order
    
    def on_trade(self, trade: MarketOrder):
        """处理成交回报"""
        if trade.side == "buy":
            self.position += trade.volume
        else:
            self.position -= trade.volume
        
        # 库存超过限制时的预警
        if abs(self.position) > self.inventory_limit * 0.9:
            print(f"[WARNING] Inventory near limit: {self.position}")
            # ⚠️ 生产环境:应触发自动平仓或告警流程


def simulate_market_making():
    """
    模拟一个简化的市场数据流和做市过程
    
    ⚠️ 此为演示代码,真实高频做市需要:
    - TickDB depth 频道实时订阅订单簿变化
    - 低延迟执行引擎(延迟 < 1ms)
    - 完整的风控引擎(VaR、止损、仓位限制)
    - 故障恢复和断线重连机制
    """
    mm = SimpleMarketMaker(symbol="AAPL.US", spread_bps=5.0)
    
    print(f"[{datetime.now().strftime('%H:%M:%S.%f')[:-3]}] Starting market making simulation")
    
    # 模拟 10 轮订单簿快照
    for i in range(10):
        # 模拟订单簿状态
        book = OrderBook(
            best_bid=100.00 + random.uniform(-0.05, 0.05),
            best_ask=100.02 + random.uniform(-0.05, 0.05),
            bid_depth=[random.uniform(100, 500) for _ in range(5)],
            ask_depth=[random.uniform(100, 500) for _ in range(5)]
        )
        
        buy_quote, sell_quote = mm.generate_quote(book)
        imbalance = mm.calculate_imbalance(book)
        
        print(
            f"  Round {i+1}: mid={book.best_bid:.4f}, "
            f"imbalance={imbalance:.3f}, "
            f"bid=${buy_quote.price:.2f} × {buy_quote.volume}, "
            f"ask=${sell_quote.price:.2f} × {sell_quote.volume}, "
            f"pos={mm.position}"
        )
        
        time.sleep(0.5)
    
    print(f"\nSimulation complete. Final position: {mm.position}")


if __name__ == "__main__":
    simulate_market_making()

这个演示代码展示了高频做市的核心逻辑:监控订单簿失衡度,动态调整报价方向和价差,库存管理是风控的核心环节。但真实环境中的复杂性远不止于此——订单延迟、交易所限频、网络抖动、市场冲击成本(impact cost)等因素都会显著影响策略表现。

3.3 高频战争的终结与转型

2010 年 5 月 6 日的"闪电崩盘"(Flash Crash)是一个转折点。道琼斯工业平均指数在 20 分钟内暴跌约 1000 点,随后迅速反弹。美国司法部后来认定这是高频交易算法在流动性稀薄时触发的连锁反应。

监管机构随后推出了各种限速机制,包括"集合竞价"(call auction)和"熔断"(circuit breaker)机制。高频交易公司开始将策略重心从纯速度竞争转向更复杂的信号挖掘和组合优化

这场"毫秒战争"的遗产是:高频交易公司掌握了全球最先进的市场微结构理解能力和低延迟系统架构能力。这些能力在后续的机器学习时代和 AI Agent 时代,成为了新的竞争优势基础。


四、机器学习时代:因子工厂与阿尔法挖掘

4.1 从线性模型到深度学习

量化投资的基本单元叫因子(factor)。简单来说,因子就是一个可以用来预测资产未来收益的变量。

最经典的单因子模型是 1964 年提出的资本资产定价模型(CAPM):超额收益由市场 beta 驱动——市场涨 1%,股票应该涨 beta 倍。后来出现的 Fama-French 三因子、五因子模型将市场、市值、价值、动量、盈利等因子纳入框架。

2010 年以后,机器学习开始全面渗透量化投资。

传统量化:
  人工定义因子 → 线性回归检验 → 组合优化 → 执行
  例如:动量因子(过去 20 日收益率)→ T 检验显著 → 权重分配

机器学习量化:
  历史数据 → 特征工程 → 非线性模型(随机森林/神经网络)→ 预测 → 执行
  例如:2000+ 个特征 → XGBoost 预测 → 组合优化

顶级量化机构 Two Sigma 在公开资料中提到,他们的系统使用的数据类型包括但不限于:价格、成交量、期权市场数据、财报文本、卫星图像、信用卡消费数据、ESG 指标——数据源的多样性已经成为量化机构的核心竞争力之一。

4.2 因子工厂:规模化的代价

当因子数量从几十个扩展到数千个时,因子研究从"艺术"变成了"工程"。

大型量化机构开始建立因子工厂(factor factory)模式:研究团队分工明确,数据工程师负责数据清洗,量化研究员负责因子生成和回测,工程师负责因子评估和上线。这套系统的本质是用规模换概率:产生足够多的候选因子,期望少数因子在样本外依然有效。

但规模化的一个副作用是:过拟合(overfitting)。

"""
过拟合演示:同样的真实因子,不同的验证方式得出截然不同的结论
⚠️ 仅用于教育目的
"""

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import r2_score

def demonstrate_overfitting():
    """
    演示因子模型在样本内外的表现差异
    """
    np.random.seed(42)
    
    # 模拟 1000 个交易日、50 个候选因子
    n_days = 1000
    n_factors = 50
    
    # 真实情况:只有前 5 个因子有真实预测能力(信号)
    # 其余 45 个是纯噪声
    X = pd.DataFrame(np.random.randn(n_days, n_factors), 
                     columns=[f"factor_{i}" for i in range(n_factors)])
    
    # 收益 = 真实因子的线性组合 + 噪声
    y = (X.iloc[:, 0] * 0.05 + 
         X.iloc[:, 1] * 0.03 + 
         X.iloc[:, 2] * 0.04 + 
         X.iloc[:, 3] * 0.02 + 
         X.iloc[:, 4] * 0.03 + 
         np.random.randn(n_days) * 0.1)
    
    # 方法 1:全样本训练(全拟合)
    model_full = DecisionTreeRegressor(max_depth=None)  # 无限制深度 → 严重过拟合
    model_full.fit(X, y)
    r2_full = r2_score(y, model_full.predict(X))
    
    # 方法 2:训练/测试分离
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
    
    model_split = DecisionTreeRegressor(max_depth=None)
    model_split.fit(X_train, y_train)
    r2_train = r2_score(y_train, model_split.predict(X_train))
    r2_test = r2_score(y_test, model_split.predict(X_test))
    
    # 方法 3:交叉验证
    from sklearn.model_selection import cross_val_score
    model_cv = DecisionTreeRegressor(max_depth=5)  # 限制深度
    cv_scores = cross_val_score(model_cv, X, y, cv=5, scoring='r2')
    
    print("=" * 60)
    print("过拟合演示:因子模型验证")
    print("=" * 60)
    print(f"\n真实信号因子数: 5 / {n_factors}")
    print(f"噪声因子数: {n_factors - 5} / {n_factors}")
    print(f"\n方法 1 - 全样本拟合 R²:  {r2_full:.4f}")
    print(f"方法 2 - 训练集 R²:       {r2_train:.4f}")
    print(f"方法 2 - 测试集 R²:       {r2_test:.4f}")
    print(f"方法 3 - 5折交叉验证 R²:  {cv_scores.mean():.4f} ± {cv_scores.std():.4f}")
    print("\n结论:")
    print(f"  全样本 R² = {r2_full:.2f} 是幻觉——模型记住了噪声,")
    print(f"  测试集 R² = {r2_test:.2f} 才接近真实预测能力。")
    print("  这就是量化机构强调'样本外验证'的根本原因。")
    print("=" * 60)


if __name__ == "__main__":
    demonstrate_overfitting()

运行上述代码会看到:全样本拟合的 R² 接近 1.0,但测试集 R² 骤降至 0.0 附近。这不是代码错误,而是过拟合的标准表现——这也是为什么量化机构对回测结果持极度保守态度的根本原因。

4.3 算力即优势

机器学习时代催生了一个新现实:算力成为量化机构的核心资产

顶级量化基金每年在计算基础设施上的投入可达数亿美元。这包括:

  • GPU 集群用于模型训练(尤其是深度学习模型和自然语言处理)
  • 低延迟网络架构用于实时信号处理
  • 大规模历史数据存储和特征工程平台

Two Sigma 联合创始人 David Siegel 曾表示:"我们是一家科技公司,只是恰好在做投资。"这句话精确地描述了量化机构的自我定位——他们与 Google、Meta 在工程能力上的竞争,比与传统对冲基金的竞争更为直接。


五、AI Agent 时代:自主交易的降临

5.1 从辅助工具到决策主体

2022 年 ChatGPT 发布之后,大语言模型(LLM)的能力边界快速扩展。2023 年,量化机构开始系统性地探索 LLM 在投资决策中的应用。

这带来了一种全新的架构:AI Agent——由 LLM 驱动,能够自主感知环境、制定计划、执行行动并从反馈中学习的系统。

传统量化系统:
  数据 → 规则引擎 → 信号 → 执行

AI Agent 量化系统:
  数据 → 感知层(LLM 解析)→ 推理层(规划)→ 工具层(调用 API/搜索)→ 执行 → 反馈 → 自我改进

在量化场景中,AI Agent 可以承担以下角色:

Agent 角色 能力描述 当前成熟度
研究助手 自动阅读财报、NPR 新闻、Reddit 讨论,生成事件影响摘要
因子生成器 基于自然语言描述的因子需求,自动生成特征计算代码
风控 Agent 监控持仓风险,实时分析敞口,发出告警
执行优化器 分析订单簿状态,智能拆单,降低市场冲击
全自主交易 Agent 从信号生成到订单执行完全自主决策 低(实验阶段)

5.2 一个典型的 AI Agent 架构

以下是一个简化的事件驱动 AI Agent 架构演示:

import os
import json
import time
import re
from dataclasses import dataclass, field
from datetime import datetime
from typing import Callable

# ─── 组件 1:数据感知层 ───

@dataclass
class MarketSnapshot:
    """市场快照"""
    symbol: str
    timestamp: datetime
    price: float
    volume: float
    bid_ask_spread: float
    order_imbalance: float

@dataclass
class NewsEvent:
    """新闻事件"""
    headline: str
    source: str
    timestamp: datetime
    sentiment_score: float  # -1.0 ~ 1.0
    relevance: float        # 0.0 ~ 1.0


# ─── 组件 2:LLM 推理层(简化模拟) ───

class LLMAgent:
    """
    简化的 LLM 推理层
    
    实际生产环境中:
    - 使用真实 LLM API(GPT-4、Claude 等)进行语义分析
    - 需要 Prompt Engineering 优化指令模板
    - 需要设置合理的 Temperature 和 Max Tokens
    - ⚠️ LLM 输出必须经过规则过滤,不得直接用于下单
    
    ⚠️ 此为演示代码。真实 AI 交易系统需要完整的合规和安全检查。
    """
    
    SYSTEM_PROMPT = """你是一个量化交易决策助手。
你的任务是根据市场数据和新闻事件,生成交易信号。
输出必须严格遵循 JSON 格式,不允许包含任何其他文字。
输出格式:{"signal": "bullish|bearish|neutral", "confidence": 0.0-1.0, "reasoning": "..."}"""
    
    def __init__(self, api_key: str = None):
        self.api_key = api_key or os.environ.get("OPENAI_API_KEY")
    
    def analyze(self, market: MarketSnapshot, news: list[NewsEvent]) -> dict:
        """
        分析市场数据和新闻,生成交易信号
        """
        # 构建 Prompt
        news_summary = "\n".join([
            f"- [{n.timestamp.strftime('%H:%M')}] {n.headline} (情感:{n.sentiment_score:+.2f})"
            for n in news
        ])
        
        prompt = f"""当前市场状态:
- 标的: {market.symbol}
- 价格: ${market.price:.2f}
- 成交量: {market.volume:,.0f}
- 买卖价差: {market.bid_ask_spread:.4f}
- 订单失衡度: {market.order_imbalance:.3f}

近期新闻:
{news_summary}

{SELF_PROMPT}"""
        
        # ⚠️ 实际部署时调用 LLM API:
        # response = openai.ChatCompletion.create(
        #     model="gpt-4o",
        #     messages=[{"role": "system", "content": self.SYSTEM_PROMPT},
        #               {"role": "user", "content": prompt}],
        #     temperature=0.3,  # 低温度以获得更稳定的输出
        #     response_format={"type": "json_object"}
        # )
        
        # 演示模式:基于规则的简化模拟
        avg_sentiment = sum(n.sentiment_score for n in news) / len(news) if news else 0
        signal_strength = avg_sentiment * market.order_imbalance
        
        if signal_strength > 0.3:
            signal = "bullish"
            confidence = min(0.95, 0.5 + signal_strength)
        elif signal_strength < -0.3:
            signal = "bearish"
            confidence = min(0.95, 0.5 - signal_strength)
        else:
            signal = "neutral"
            confidence = 0.5
        
        return {
            "signal": signal,
            "confidence": confidence,
            "reasoning": f"基于{len(news)}条新闻(平均情感:{avg_sentiment:+.2f})和订单失衡度({market.order_imbalance:.2f})判断",
            "timestamp": datetime.now().isoformat()
        }


# ─── 组件 3:工具层(可扩展) ───

class ToolRegistry:
    """Agent 工具注册表"""
    
    def __init__(self):
        self.tools: dict[str, Callable] = {}
    
    def register(self, name: str, func: Callable):
        self.tools[name] = func
    
    def call(self, name: str, **kwargs):
        if name not in self.tools:
            raise ValueError(f"Tool '{name}' not found. Available: {list(self.tools.keys())}")
        return self.tools[name](**kwargs)


# ─── 组件 4:执行层 ───

class ExecutionEngine:
    """
    执行引擎
    
    ⚠️ 真实生产环境中需要:
    - 连接券商 API(FIX 协议或 REST)
    - 订单管理系统(OMS)集成
    - 完整的风控前置检查
    - 执行延迟监控和异常告警
    """
    
    def __init__(self, api_key: str = None):
        self.api_key = api_key or os.environ.get("TICKDB_API_KEY")
        self.position = 0
    
    def place_order(self, symbol: str, side: str, volume: int, price: float = None) -> dict:
        """下单接口(模拟)"""
        print(f"[ORDER] {side.upper()} {volume} {symbol} @ ${price:.2f if price else 'MKT'}")
        # ⚠️ 真实场景:
        # response = requests.post(
        #     "https://api.broker.example/v1/orders",
        #     headers={"Authorization": f"Bearer {self.api_key}"},
        #     json={"symbol": symbol, "side": side, "volume": volume, "type": "LIMIT"},
        #     timeout=(3.05, 10)
        # )
        if side.lower() == "buy":
            self.position += volume
        else:
            self.position -= volume
        return {"status": "FILLED", "filled_volume": volume}
    
    def check_risk_limits(self, symbol: str, order_size: int) -> bool:
        """风控检查"""
        new_position = self.position + order_size if order_size > 0 else self.position - abs(order_size)
        if abs(new_position) > 1000:
            print(f"[RISK] Blocked: position would exceed limit ({new_position})")
            return False
        return True


# ─── 组件 5:AI Agent 主循环 ───

class TradingAgent:
    """
    事件驱动 AI 交易 Agent
    
    主循环:
    1. 感知:收集市场数据和新闻
    2. 推理:调用 LLM 分析信号
    3. 规划:根据置信度决定是否交易
    4. 执行:通过工具层下单
    5. 复盘:记录交易结果
    
    ⚠️ 此为演示代码。实盘部署需完整合规框架和人工监督。
    """
    
    CONFIDENCE_THRESHOLD = 0.70  # 信号置信度阈值
    MAX_POSITION_SIZE = 200
    
    def __init__(self, symbol: str):
        self.symbol = symbol
        self.llm = LLMAgent()
        self.tools = ToolRegistry()
        self.executor = ExecutionEngine()
        self.trade_log: list[dict] = []
    
    def run_cycle(self, market: MarketSnapshot, news: list[NewsEvent]):
        """单次交易循环"""
        # Step 1: 推理
        signal = self.llm.analyze(market, news)
        print(f"[AGENT] Signal: {signal['signal']} (confidence: {signal['confidence']:.2f})")
        print(f"[AGENT] Reasoning: {signal['reasoning']}")
        
        # Step 2: 决策(规则过滤 LLM 输出)
        if signal["confidence"] < self.CONFIDENCE_THRESHOLD:
            print(f"[AGENT] Confidence {signal['confidence']:.2f} < threshold, skipping")
            return
        
        # Step 3: 风险检查
        order_size = int(signal["confidence"] * self.MAX_POSITION_SIZE)
        if not self.executor.check_risk_limits(self.symbol, order_size):
            return
        
        # Step 4: 执行
        if signal["signal"] == "bullish":
            self.executor.place_order(self.symbol, "buy", order_size, market.price)
        elif signal["signal"] == "bearish":
            self.executor.place_order(self.symbol, "sell", order_size, market.price)
        
        # Step 5: 记录
        self.trade_log.append({
            "timestamp": datetime.now().isoformat(),
            "signal": signal,
            "position": self.executor.position
        })


def demo_agent_trading():
    """演示 AI Agent 交易循环"""
    agent = TradingAgent(symbol="AAPL.US")
    
    # 模拟一轮交易
    market = MarketSnapshot(
        symbol="AAPL.US",
        timestamp=datetime.now(),
        price=185.32,
        volume=2_450_000,
        bid_ask_spread=0.01,
        order_imbalance=1.85  # 买盘压力较强
    )
    
    news = [
        NewsEvent(
            headline="Apple announces new AI features for iPhone",
            source="Reuters",
            timestamp=datetime.now(),
            sentiment_score=0.7,
            relevance=0.9
        ),
        NewsEvent(
            headline="Analyst upgrades Apple to Strong Buy",
            source="Bloomberg",
            timestamp=datetime.now(),
            sentiment_score=0.6,
            relevance=0.8
        )
    ]
    
    print("=" * 60)
    print("AI Agent 交易循环演示")
    print("=" * 60)
    agent.run_cycle(market, news)
    print(f"当前持仓: {agent.executor.position}")
    print("=" * 60)


if __name__ == "__main__":
    demo_agent_trading()

这个架构展示了 AI Agent 在量化交易中的核心工作模式:感知→推理→规划→执行→复盘的完整闭环。关键在于"规则过滤层"(Step 2 的置信度阈值和风控检查)——这是防止 LLM 幻觉(hallucination)导致灾难性交易决策的必要防线。


六、产业链玩家:从学术到万亿规模

量化交易的生态系统在三十年间发展为一个复杂的分工网络:

角色 代表机构 核心能力
学术研究 各大高校金融工程项目 理论基础、因子发现
对冲基金 Renaissance、Two Sigma、D.E. Shaw、Citadel 策略开发、执行能力
高频做市 Virtu Financial、Citadel Securities 低延迟基础设施、订单簿理解
数据供应商 TickDB、Bloomberg、Refinitiv 市场数据另类数据
执行券商 Interactive Brokers、Tastytrade 接入交易所、清结算
技术基础设施 AWS、Cloudflare、Exegy 低延迟网络、FPGA 加速

在这条链条中,数据是贯穿始终的核心资源。从早期的价格时间序列,到后来的卫星图像和信用卡数据,再到如今的新闻和社交媒体文本——谁掌握了独特的数据源,谁就拥有了竞争对手难以复制的优势。


七、从极简史到下一个十年

量化交易的演进史,本质上是三种能力的持续升级

  1. 数学能力:从布朗运动到随机微分方程,从线性回归到深度学习,模型表达能力在不断提升。
  2. 算力能力:从个人工作站到 GPU 集群,从批处理到实时流计算,计算效率在持续压缩延迟。
  3. 信息能力:从价格数据到另类数据,从结构化数据到非结构化文本,数据维度和来源在不断扩展。

每一次能力的跃迁,都伴随着一批机构的崛起和一批机构的淘汰。下一个十年,AI Agent 带来的变革才刚刚开始——它不仅仅是"用 AI 选股",而是重新定义了人在投资决策中的角色

从西蒙斯到 AI Agent,四十年的极简史讲述了一个反复验证的规律:金融市场的竞争,最终是数学、算力和信息的竞争。 理解这一点,比记住任何具体的策略都更有价值。


下一步行动

如果你想深入理解订单簿数据在量化研究中的价值,本文演示了基于 TickDB depth 频道的订单簿失衡度计算方法。访问 tickdb.ai 注册后,你可以获取美股、港股、数字货币的实时深度数据,用于构建自己的市场微结构因子。

如果你正在构建 AI Agent 交易系统,建议从分层架构开始:先建立可靠的感知层(数据订阅),再添加规则引擎(风控过滤),最后引入 LLM 做语义增强。不要从一开始就让 AI 全权决策。

如果你希望用 AI 辅助量化开发,在 AI 助手中搜索安装 tickdb-market-data SKILL,可以直接用自然语言查询市场数据、生成因子计算代码。


本文不构成任何投资建议。市场有风险,投资需谨慎。回测结果不代表未来表现。