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)