
金融市场微观结构
量化交易建立在市场规则之上。股票市场采用T+1交易,存在涨跌停限制,交易成本包括佣金、印花税和过户费。期货市场采用T+0交易,有保证金制度和每日无负债结算,合约有到期日,存在基差与展期问题。理解订单类型,市价单、限价单、止损单的执行逻辑,买卖价差与市场冲击对策略收益的影响。股票与期货的流动性差异显著,大盘股与主力合约滑点较小,小盘股与远月合约滑点可能吞噬利润。
数据获取与清洗
量化策略依赖高质量数据。股票数据包括日线、分钟线、tick数据,财务数据,除权除息调整。期货数据包括连续合约拼接,主力合约切换,换月规则处理。数据清洗要解决缺失值,异常值,重复记录,时间戳对齐。幸存者偏差与未来函数是常见陷阱。股票回测中若使用当前成分股列表,忽略退市股票,结果会严重高估。期货回测中若使用未来主力合约信息,同样引入前视偏差。数据存储推荐使用本地数据库或列式存储,避免每次从网络接口拉取。
编程与工具链
Python是量化交易主流语言。核心库包括NumPy用于数值计算,Pandas用于时间序列处理,Matplotlib用于可视化。回测框架可选Backtrader、Zipline、vn.py。期货CTP接口提供交易与行情API。股票可使用券商提供的量化接口或第三方平台。代码需要模块化,数据模块、策略模块、执行模块、风控模块分离。版本控制使用Git,避免策略代码丢失。以下是一个简单的双均线策略回测代码示例,用于股票日线数据。
import pandas as pd
import numpy as np
def dual_moving_average(data, short_window=5, long_window=20):
data['short_ma'] = data['close'].rolling(short_window).mean()
data['long_ma'] = data['close'].rolling(long_window).mean()
data['signal'] = 0
data.loc[data['short_ma'] > data['long_ma'], 'signal'] = 1
data.loc[data['short_ma'] <= data['long_ma'], 'signal'] = 0
data['position'] = data['signal'].diff()
return data
def backtest(data, initial_capital=100000):
data['returns'] = data['close'].pct_change()
data['strategy_returns'] = data['signal'].shift(1) * data['returns']
data['equity'] = initial_capital * (1 + data['strategy_returns']).cumprod()
return data['equity']
策略回测核心指标
回测不是简单看总收益。年化收益率、最大回撤、夏普比率、胜率、盈亏比、换手率、交易次数都需要评估。最大回撤决定资金曲线是否可承受。夏普比率衡量单位风险收益。股票策略需注意T+1导致无法当日卖出,回测中应模拟次日开盘或收盘成交。期货策略需计算保证金占用,防止爆仓。滑点与手续费必须计入,股票双边成本约千分之一到千分之三,期货按手数或成交额比例。回测时间窗口要包含牛市、熊市、震荡市。样本外测试与滚动前向验证避免过拟合。

风险管理与资金管理
量化交易的核心是生存。单笔交易风险控制在总资金的1%到2%。股票组合分散行业与市值。期货使用止损单与移动止损,避免隔夜跳空导致强平。仓位管理采用固定比例或凯利公式的保守版本。最大回撤达到阈值时降低仓位或暂停策略。相关性管理避免多个策略同时亏损。股票与期货混合策略需考虑保证金与可用资金。黑天鹅事件下,流动性枯竭,止损可能无法成交,需要预留现金。
股票与期货实战差异
股票量化常用多因子选股,均值回归,动量策略。期货量化常用趋势跟踪,套利,高频做市。股票交易成本高,换手率不宜过高。期货杠杆高,盈亏放大,需要更严格的止损。股票分红送股影响价格序列,前复权处理。期货主力合约切换产生价格跳空,回测中需拼接连续合约并调整。股票不能做空,期货可双向交易。股票交易时间与期货不同,夜盘品种需单独处理。
从回测到实盘
模拟交易验证策略在实时行情下的表现。实盘初期使用小资金,对比回测与实盘差异。滑点、延迟、部分成交、接口断线都需要处理。日志系统记录每笔订单与成交。监控系统报警异常回撤与持仓。定期重新训练参数或更新因子。避免频繁调整策略导致过度拟合。
常见误区
使用未来数据,忽略交易成本,过度优化参数,忽视流动性,不做样本外测试。股票回测中若使用收盘价成交,实际无法实现。期货回测中若忽略保证金变化,可能低估风险。量化交易不是印钞机,入门阶段先求不亏,再求稳定盈利。掌握上述知识点后,可以构建一个简单的股票或期货策略,完成从数据到回测再到模拟盘的闭环。