
量化程序在股票与期货交易中的核心架构
量化程序是股票、期货交易中自动化执行策略的软件系统。它把数据获取、信号计算、风险控制、订单执行整合成闭环。股票市场T+1、期货市场T+0及杠杆特性,对程序延迟、资金管理提出不同要求。
数据层
股票行情常用Level-1和Level-2快照,期货行情包含Tick与盘口。数据清洗需处理除权除息、主力合约切换。期货主力合约换月时,量化程序应自动拼接价格序列,避免跳空干扰回测。

import pandas as pd
# 期货主力合约拼接示例
def adjust_futures_contract(df, roll_dates):
df['adj_close'] = df['close']
for date in roll_dates:
ratio = df.loc[date, 'close'] / df.loc[date, 'prev_close']
df.loc[:date, 'adj_close'] *= ratio
return df
策略信号层
股票多因子模型常使用动量、估值、波动率因子。期货CTA策略依赖趋势、套利、截面动量。量化程序计算信号后生成目标仓位。股票组合需考虑行业中性、市值中性。期货策略需处理保证金占用和逐日盯市。
# 股票双均线信号
def dual_ma_signal(close, short=5, long=20):
ma_short = close.rolling(short).mean()
ma_long = close.rolling(long).mean()
signal = (ma_short > ma_long).astype(int)
return signal.diff()
股票量化回测与期货量化回测的差异
撮合机制
股票回测按收盘价或VWAP成交,需考虑涨跌停无法买入。期货回测按Tick或分钟K线撮合,需模拟滑点和手续费。期货保证金制度使回测必须计算动态权益和强平风险。
资金曲线
股票策略资金曲线平滑,期货策略因杠杆波动剧烈。量化程序应输出夏普比率、最大回撤、卡玛比率。股票回测需加入股息再投资。期货回测需加入展期收益。
回测陷阱
未来函数是常见错误。股票财报数据必须按公告日对齐。期货主力合约切换不能使用未来信息。量化程序应使用事件驱动回测框架,逐笔推进时间。
量化程序实盘交易的关键模块
订单管理
股票实盘通过券商API报单,期货实盘通过CTP或飞马接口。订单管理需处理部分成交、撤单重发。量化程序应维护本地订单簿,与柜台同步。
风险控制
股票风控限制单票仓位、行业暴露。期货风控限制保证金占用、隔夜仓位。程序化止损包括固定比例止损、ATR止损、时间止损。
# 期货ATR止损
def atr_stop_loss(high, low, close, period=14):
tr = pd.concat([high-low, (high-close.shift()).abs(), (low-close.shift()).abs()], axis=1).max(axis=1)
atr = tr.rolling(period).mean()
return atr
执行算法
股票大单拆分为TWAP、VWAP、IS。期货算法包括冰山订单、狙击订单。量化程序应监控冲击成本,动态调整下单速度。
股票期货量化程序的常见技术栈
数据存储:ClickHouse、Parquet、HDF5
计算引擎:Pandas、Polars、NumPy、Numba
回测框架:Backtrader、Zipline、vn.py、RQAlpha
实盘接口:CTP、XTP、恒生UFT、中泰XTP
调度监控:Airflow、Prometheus、Grafana
股票低频策略可用Python快速迭代。期货高频策略需C++或Rust降低延迟。量化程序应支持热更新参数,避免盘中重启。
从回测到实盘的过渡要点
回测夏普比率超过2的策略,实盘可能衰减。股票策略需考虑交易成本冲击。期货策略需考虑夜盘流动性。量化程序应进行仿真交易,对比回测与仿真成交差异。仿真稳定运行两周后,用小资金实盘验证。实盘初期采用保守仓位,逐步放大。
量化程序的绩效归因
股票绩效归因分解为行业配置、选股、交互。期货绩效归因分解为趋势、套利、展期。量化程序应输出每日盈亏来源,帮助迭代策略。
股票期货量化程序不是预测工具,而是执行纪律的载体。严格风控、低成本执行、持续迭代,才能在市场长期存活。