系统架构

系统架构

基于 vnpy 4.1.0 构建的生产级量化交易平台,采用分层架构设计:

数据层

  • Wind API: 历史行情获取与实时数据推送
  • SQLite: 本地数据存储与索引优化
  • 数据验证: 缺失值检测、异常值过滤、时间序列对齐

交易层

  • CTP网关: 东方证券期货接口,支持实盘交易
  • 订单管理: 订单验证、重复检测、撤单管理
  • 风控系统:
    • 保证金实时监控
    • 最大持仓限制
    • 单笔订单金额限制

策略层

  • CTA引擎: 基于vnpy_ctastrategy的策略框架
  • 回测引擎: 支持参数优化和多策略组合
  • 性能分析: 夏普比率、最大回撤、盈亏比、胜率等

监控层

  • Rich终端: 实时持仓、PnL、订单状态
  • 日志系统: 分级日志记录和错误追踪
  • 可视化: Plotly交互式图表 + Matplotlib静态图表

策略分类体系

量化策略按交易逻辑可分为四大类:

1. 趋势跟踪策略

核心思想: 识别趋势方向,顺势交易。

策略信号来源适用市场
ATR波动率突破价格突破 + ATR过滤趋势初期、波动率扩大
动量反转组合短期动量 + 长期反转趋势延续但有回调
均线交叉快慢均线金叉/死叉明确趋势行情
通道突破唐奇安通道/布林带上下轨区间震荡后的突破

国债期货特点:

  • 趋势持续性强(政策驱动)
  • 单日波动小,需持仓数日至数周
  • 适合中长期趋势策略

2. 均值回归策略

核心思想: 价格偏离均值后会回归。

策略信号来源适用市场
布林带均值回归价格触及上下轨震荡行情
网格交易固定价格网格窄幅震荡
RSI超买超卖RSI指标极值无明确趋势
配对交易价差偏离历史均值相关品种套利

国债期货特点:

  • 大部分时间处于震荡(政策观望期)
  • 价格有明确的支撑/阻力位
  • 适合高频网格和日内回归策略

3. 套利策略

核心思想: 利用相关品种间的定价偏差。

策略套利对象风险特征
跨期套利主力vs次主力合约低风险、收益稳定
跨品种套利TL vs T vs TS久期风险、流动性风险
期现套利期货vs国债ETF资金成本风险
基差套利股指期货vs现货升贴水波动风险

国债期货特点:

  • 跨期价差稳定(无分红、无仓储成本)
  • TL/T/TS久期不同,价差有规律
  • 流动性好,适合套利交易

4. 多因子策略

核心思想: 综合多个信号源,降低误判概率。

因子类别具体因子权重分配
动量因子ROC、MACD、RSI30%
波动率因子ATR、布林带宽度25%
成交量因子成交量变化率、OBV20%
宏观因子利率曲线斜率、CPI25%

国债期货特点:

  • 宏观因子权重高(政策敏感)
  • 适合机构级策略
  • 需要大量历史数据训练

国债期货专用策略

除通用策略外,国债期货有其特殊的交易逻辑:

久期策略

原理: 利用债券久期与利率变化的关系。

$$ \Delta P \approx -D \times \Delta y \times P $$

其中:

  • $D$: 修正久期
  • $\Delta y$: 利率变化
  • $P$: 债券价格

应用:

  • 预期降息 → 做多长久期品种(TL)
  • 预期加息 → 做空或转向短久期(TS)

收益率曲线策略

蝶式套利:

  • 买入TL(10年)+ 卖出T(10年)和TS(2年)
  • 利用收益率曲线斜率变化盈利

陡峭化/平坦化交易:

  • 曲线陡峭化 → 买短端卖长端
  • 曲线平坦化 → 买长端卖短端

转换因子套利

原理: 国债期货可交割券有多个,转换因子决定哪个券最便宜。

$$ \text{转换因子} = \frac{\text{可交割券价格}}{\text{标准券面值}} $$

CTD(Cheapest-to-Deliver)券:

  • 识别最便宜可交割券
  • 期货价格会向CTD券靠拢
  • 可通过期货多头+现券空头套利

利率期限结构策略

骑乘策略(Riding the Yield Curve):

  • 买入久期长于持有期的债券
  • 随时间推移,债券收益率下降(曲线滚动)
  • 获取资本利得

子弹式vs梯式:

  • 子弹式: 集中于某一期限
  • 梯式: 分散于多个期限
  • 根据收益率曲线形态选择

股指期货专用策略

基差套利

正向套利(期货升水):

1
2
买入现货ETF + 卖出期货
持有到交割,赚取升水收益

反向套利(期货贴水):

1
2
卖空现货ETF + 买入期货  
持有到交割,赚取贴水收益

风险:

  • 融资融券成本
  • 保证金占用
  • 基差收敛不确定性

Alpha策略

原理: 股票组合超额收益 + 股指期货对冲系统性风险

$$ \text{收益} = \alpha + \beta \times r_m - \text{对冲成本} $$

实现:

  1. 构建高Alpha股票组合(多因子选股)
  2. 用股指期货对冲Beta敞口
  3. 保留纯Alpha收益

CTA趋势策略

股指特点:

  • 波动率高于国债期货
  • 趋势更明显(牛熊切换)
  • 适合Dual Thrust、R-Breaker等日内策略

机器学习策略框架

特征工程

技术特征:

  • 滞后价格、收益率
  • 滚动统计量(均值、标准差、偏度、峰度)
  • 技术指标(ATR、RSI、MACD)

宏观特征(国债):

  • 10年期国债收益率
  • 利率曲线斜率(10Y - 2Y)
  • CPI、PPI同比
  • M2增速

微观结构特征:

  • 买卖价差
  • 订单流不平衡
  • 大单成交占比

模型选择

模型优势劣势
XGBoost非线性拟合强、可解释性好需要大量特征工程
LightGBM训练速度快、内存占用小容易过拟合
LSTM捕捉时序依赖训练难度大、可解释性差
Transformer长序列建模计算资源消耗大

回测陷阱

未来函数:

  • 使用当日收盘价计算信号 → 用当日开盘价模拟
  • Lookahead bias → 严格时间序列切分

过拟合:

  • 参数过多 → 正则化、early stopping
  • 训练集表现完美 → 样本外测试

交易成本:

  • 回测滑点低估 → 按实盘数据设置(0.01-0.02元/手)
  • 手续费忽略 → 双边手续费 + 印花税(股指)

强化学习策略探索

环境设计

State空间:

1
2
3
4
5
6
state = [
    price_features,      # 最近N根K线的OHLCV
    technical_indicators, # ATR, RSI, MACD等
    position_info,       # 当前持仓、浮动盈亏
    market_context       # 波动率regime、时间特征
]

Action空间:

  • 离散: {做多, 做空, 平仓}
  • 连续: 仓位比例 [-1, 1]

Reward设计: $$ r_t = \text{PnL}_t - \lambda_1 \times \text{Drawdown}_t - \lambda_2 \times \text{Turnover}_t $$

算法选择

算法适用场景参数复杂度
PPO连续动作空间、稳定性好中等
A2C样本效率高较低
SAC最大熵RL、探索性强较高
TD3连续控制、减少过估计较高

挑战

  1. 样本效率低: 金融数据有限,RL需要大量交互
  2. 非平稳性: 市场regime变化,策略需要持续适应
  3. 风险控制: RL容易学到高风险策略,需要硬约束

实盘部署关键要素

1. 滑点控制

回测假设 vs 实盘现实:

  • 回测: 滑点 0.005元/手
  • 实盘: 开盘/收盘 0.02元/手,日内 0.01元/手

优化策略:

  • 限价单 + 市价单组合
  • 避开流动性差的时段(开盘前5分钟、收盘后5分钟)
  • 大单拆分执行

2. 保证金管理

计算公式: $$ \text{保证金} = \text{合约乘数} \times \text{价格} \times \text{保证金比例} \times \text{手数} $$

风险:

  • 极端行情保证金比例上调(2% → 5%)
  • 多策略并行,保证金占用叠加
  • 隔夜持仓,跳空风险

对策:

  • 保证金占用率不超过50%
  • 预留应急资金
  • 及时平仓亏损头寸

3. 系统监控

实时监控指标:

  • 持仓PnL、浮动盈亏
  • 保证金占用率
  • 订单成交状态
  • 策略信号触发

异常告警:

  • 单日亏损超过阈值(如3%)
  • 保证金不足
  • 订单连续失败
  • 网络连接中断

策略评估标准

回测必达指标

指标最低要求优秀水平
夏普比率> 1.0> 2.0
最大回撤< 20%< 10%
胜率> 40%> 55%
盈亏比> 1.5> 2.5
年化收益率> 15%> 30%

样本外测试

  • 训练集: 60%
  • 验证集: 20%(参数调优)
  • 测试集: 20%(最终评估,不参与任何优化)

稳健性测试

  • 不同市场状态(牛市、熊市、震荡)
  • 不同品种(TL、T、TS、股指)
  • 不同时间段(2020-2022, 2023-2024)

参考文献

量化交易

  • 《量化交易:如何建立自己的算法交易业务》Ernest P. Chan
  • 《主动投资组合管理》Grinold & Kahn
  • 《打开量化投资的黑箱》里什·纳兰

固定收益

  • 《固定收益证券》法博齐
  • 《利率期限结构模型》Brigo & Mercurio
  • 《债券市场分析与策略》法博齐

机器学习

  • 《金融中的机器学习》Marcos López de Prado
  • 《Advances in Financial Machine Learning》同上
  • 《强化学习在金融中的应用》FinRL论文集

下一篇: 《ATR波动率突破策略:自适应止损的数学原理与实现》