Skip to content

AXON 架构设计

系统总览

┌─────────────────────────────────────────────────────────────────────┐
│                          AXON 系统架构                               │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐             │
│  │   Phase 1    │    │   Phase 2    │    │   Phase 3    │             │
│  │  核心引擎    │    │  训练优化    │    │  AI 增强     │             │
│  └──────┬──────┘    └──────┬──────┘    └──────┬──────┘             │
│         │                  │                  │                     │
│  ┌──────▼──────┐    ┌──────▼──────┐    ┌──────▼──────┐             │
│  │ axon-core   │    │ axon-hpo    │    │ axon-llm    │             │
│  │ axon-backtest│    │ axon-walk-  │    │ axon-explain│             │
│  │ axon-rl     │    │   forward   │    │ axon-       │             │
│  │             │    │ axon-tracker│    │   ensemble  │             │
│  │             │    │ axon-registry│   │ axon-data   │             │
│  │             │    │ axon-       │    │ axon-       │             │
│  │             │    │   distributed│   │   compliance│             │
│  └─────────────┘    └─────────────┘    └─────────────┘             │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                      Phase 4: 生产部署                       │   │
│  │  ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐   │   │
│  │  │axon-risk  │ │axon-      │ │axon-      │ │axon-oms   │   │   │
│  │  │风控引擎   │ │inference  │ │exchange   │ │订单管理   │   │   │
│  │  │           │ │推理引擎   │ │交易所对接 │ │           │   │   │
│  │  └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘   │   │
│  │        │             │             │             │           │   │
│  │        └─────────────┼─────────────┼─────────────┘           │   │
│  │                      │             │                         │   │
│  │                ┌─────▼─────────────▼─────┐                   │   │
│  │                │     axon-monitor        │                   │   │
│  │                │     监控告警            │                   │   │
│  │                └─────────────────────────┘                   │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

数据流

回测数据流

市场数据文件
┌─────────────┐
│  数据加载    │  axon-data
│  (Arrow/     │
│   Parquet)   │
└──────┬──────┘
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  事件队列    │────▶│  策略引擎    │────▶│  订单事件    │
│  (BinaryHeap)│     │  (RL/规则)  │     │             │
└─────────────┘     └─────────────┘     └──────┬──────┘
                                        ┌─────────────┐
                                        │  撮合引擎    │  axon-backtest
                                        │  (L1/L2/L3) │
                                        └──────┬──────┘
                                        ┌─────────────┐
                                        │  成交事件    │
                                        └──────┬──────┘
                                        ┌─────────────┐
                                        │  投资组合    │  axon-core
                                        │  (持仓/PnL) │
                                        └─────────────┘

实盘交易数据流

交易所 API
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  axon-      │────▶│  axon-risk  │────▶│  axon-oms   │
│  exchange   │     │  风控检查   │     │  订单管理   │
│  (WebSocket │     │  (12ns)     │     │  (1.2µs)    │
│   + REST)   │     └─────────────┘     └──────┬──────┘
└─────────────┘                                │
                                        ┌─────────────┐
                                        │  axon-      │
                                        │  exchange   │
                                        │  (下单)     │
                                        └──────┬──────┘
                                        ┌─────────────┐
                                        │  axon-      │
                                        │  monitor    │
                                        │  (指标/告警)│
                                        └─────────────┘

训练管线数据流

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  axon-hpo   │────▶│  axon-rl    │────▶│  axon-      │
│  超参搜索   │     │  RL 环境    │     │  walk-      │
│             │     │             │     │  forward    │
└─────────────┘     └─────────────┘     └──────┬──────┘
                                        ┌─────────────┐
                                        │  axon-      │
                                        │  tracker    │
                                        │  实验追踪   │
                                        └──────┬──────┘
                                        ┌─────────────┐
                                        │  axon-      │
                                        │  registry   │
                                        │  模型注册   │
                                        └─────────────┘

模块依赖关系

axon-core ◄──────────────────────────────────────────┐
    │                                                 │
    ├──► axon-backtest ◄──────────────────────────────┤
    │        │                                        │
    │        ▼                                        │
    ├──► axon-rl ◄────────────────────────────────────┤
    │        │                                        │
    │        ▼                                        │
    ├──► axon-hpo ◄───────────────────────────────────┤
    │        │                                        │
    │        ▼                                        │
    ├──► axon-walk-forward ◄──────────────────────────┤
    │        │                                        │
    │        ▼                                        │
    ├──► axon-tracker ◄───────────────────────────────┤
    │        │                                        │
    │        ▼                                        │
    ├──► axon-registry ◄──────────────────────────────┤
    │                                                 │
    ├──► axon-risk ◄──────────────────────────────────┤
    │                                                 │
    ├──► axon-inference ◄─────────────────────────────┤
    │                                                 │
    ├──► axon-exchange ◄──────────────────────────────┤
    │        │                                        │
    │        ▼                                        │
    ├──► axon-oms ◄───────────────────────────────────┤
    │                                                 │
    └──► axon-monitor ◄───────────────────────────────┘

事件系统

事件类型

Event
├── MarketDataEvent
│   ├── Tick        (逐笔成交)
│   ├── Bar         (K 线)
│   └── OrderBook   (订单簿快照)
├── OrderEvent
│   ├── Submitted   (订单提交)
│   ├── Cancelled   (订单取消)
│   ├── Modified    (订单修改)
│   └── Rejected    (订单拒绝)
├── FillEvent
│   └── Trade       (成交记录)
└── SystemEvent
    ├── Heartbeat   (心跳)
    ├── SessionStart(会话开始)
    ├── SessionEnd  (会话结束)
    └── Error       (错误)

事件路由

EventQueue (BinaryHeap)
EventRouter
    ├─── EventType::MARKET_DATA ──▶ StrategyEngine
    ├─── EventType::ORDER ────────▶ MatchingEngine
    ├─── EventType::FILL ─────────▶ PortfolioManager
    │                              RiskEngine
    └─── EventType::SYSTEM ──────▶ SystemMonitor

并发模型

┌─────────────────────────────────────────────────────────┐
│                    主线程 (事件循环)                       │
│                                                         │
│  ┌─────────────┐     ┌─────────────┐     ┌───────────┐ │
│  │ 事件队列    │────▶│ 事件路由    │────▶│ 处理器    │ │
│  │ (crossbeam) │     │             │     │ (sync)    │ │
│  └─────────────┘     └─────────────┘     └───────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│                    I/O 线程池 (tokio)                     │
│                                                         │
│  ┌─────────────┐     ┌─────────────┐     ┌───────────┐ │
│  │ WebSocket   │     │ REST API    │     │ 文件监控  │ │
│  │ 连接管理    │     │ 请求处理    │     │ (notify)  │ │
│  └─────────────┘     └─────────────┘     └───────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│                    计算线程池 (rayon)                      │
│                                                         │
│  ┌─────────────┐     ┌─────────────┐     ┌───────────┐ │
│  │ 批推理      │     │ VaR 计算    │     │ 数据处理  │ │
│  │ (并行)      │     │ (并行)      │     │ (并行)    │ │
│  └─────────────┘     └─────────────┘     └───────────┘ │
└─────────────────────────────────────────────────────────┘

性能关键路径

风控检查 (12ns)

check_order
    ├─→ 熔断器检查 (AtomicBool, ~5ns)
    │       └─→ 不活跃时直接返回
    ├─→ 订单大小检查 (~10ns)
    │       └─→ limit_price() × quantity
    ├─→ 仓位限制检查 (~50ns)
    │       └─→ HashMap 查找
    ├─→ 杠杆检查 (~20ns)
    │       └─→ nav / base_cash
    └─→ 回撤检查 (~20ns)
            └─→ (peak - current) / peak

订单提交 (1.2µs)

submit
    ├─→ 幂等性检查 (HashMap 查找)
    ├─→ UUID v7 生成
    ├─→ 状态更新 (New → Submitted)
    ├─→ 活跃订单插入 (HashMap)
    └─→ 历史记录追加 (Vec)

数据存储

Arrow/Parquet 列式存储

┌─────────────────────────────────────────┐
│              Parquet 文件                │
├─────────────────────────────────────────┤
│  timestamp │ price │ quantity │ side    │
│  (i64)     │ (f64) │ (f64)    │ (u8)   │
├─────────────────────────────────────────┤
│  1000 行/批次                            │
│  压缩:Snappy / ZSTD                    │
│  读写延迟:< 15ms (1M ticks)             │
└─────────────────────────────────────────┘

内存布局

Tick (#[repr(C)], 32 bytes)
├── timestamp: i64    (8 bytes)
├── price: f64        (8 bytes)
├── quantity: f64     (8 bytes)
└── side: Side        (1 byte + padding)

Trade (#[repr(C)], 40 bytes)
├── timestamp: i64    (8 bytes)
├── price: f64        (8 bytes)
├── quantity: f64     (8 bytes)
├── buyer_id: u64     (8 bytes)
└── seller_id: u64    (8 bytes)