金融市场基础:股票、期货、外汇等资产类型,交易机制、订单类型、市场数据特征

量化回测框架的构建,其底层逻辑必须建立在对金融市场运行机制的深刻理解之上。无论是股票、期货还是外汇,其交易机制、订单撮合规则、数据生成方式都存在本质差异。一个在股票市场表现优异的策略,直接移植到期货市场可能因保证金制度和T+0规则而失效;一个基于日线收盘价设计的信号,在Tick级数据回测时可能因微观结构噪声而面目全非。因此,本章将系统梳理三大主流资产类别的核心属性、交易机制与数据特征,为后续回测引擎的撮合逻辑、滑点模型和资金管理模块奠定认知基础。

金融市场资产类型与交易机制全景图 股票市场 • T+1交割,涨跌停限制 • 订单类型:市价/限价/止损 • 数据频率:Tick/分钟/日线 • 交易成本:佣金+印花税 期货市场 • T+0,双向交易,保证金 • 订单类型:市价/限价/FAK/FOK • 数据特征:合约连续/主力 • 强平机制:逐日盯市 外汇市场 • 24h交易,无涨跌停 • 订单类型:市价/限价/止损 • 数据特征:报价驱动 • 杠杆高,点差成本 交易机制核心要素 订单撮合 价格优先 时间优先 保证金/杠杆 期货/外汇 逐日盯市 交易时段 股票T+1 期货夜盘 数据特征 Tick/分钟 复权/连续 回测引擎需适配不同市场的撮合规则与数据粒度 滑点模型 · 手续费结构 · 资金费率 · 强平逻辑

上图展示了三大资产类别在交易机制上的核心差异。从回测框架设计的角度看,这些差异直接决定了撮合引擎的复杂度、数据存储的粒度以及绩效归因的准确性。下面我们将逐一深入剖析。

2.1 股票市场:T+1与涨跌停约束下的回测设计

核心原理

股票市场是典型的订单驱动市场,交易规则的核心约束包括:T+1交割制度(当日买入不可当日卖出)、涨跌停限制(主板±10%,创业板/科创板±20%)、竞价撮合机制(集合竞价+连续竞价)。这些规则对回测系统的影响是结构性的:策略必须在T+1约束下管理持仓周期,信号触发时若价格触及涨跌停板,订单可能无法成交,回测引擎必须模拟这种流动性缺失。

订单类型与撮合逻辑

订单类型撮合规则回测处理要点
市价单以对手方最优价格成交需模拟滑点,通常按盘口价差的一定比例
限价单价格优先、时间优先需判断是否穿越盘口,未成交部分如何处理
止损单触发后转为市价单需模拟触发价格与成交价格的偏差
冰山单分笔暴露回测中通常简化为普通限价单

案例拆解:涨跌停场景下的回测失真

某量化策略在2024年2月对某AI概念股发出买入信号,信号价格为涨停价。回测引擎若直接按涨停价成交,将严重高估策略收益。实际场景中,涨停板封单量可能只有几千手,而策略信号量可能达到数万手,导致大部分订单无法成交。更合理的处理方式是:检查涨停时的封单量/成交量的比例,若封单量小于信号量的10%,则判定为无法成交,或按次日开盘价成交并增加冲击成本。这种细节处理,正是回测框架与实盘差异的关键来源。

常见误区:许多初学者在回测股票策略时,忽略T+1约束,导致策略在信号当日买入后当日卖出,产生虚假收益。回测引擎必须在订单执行模块中强制校验持仓时间。

2.2 期货市场:保证金、双向交易与合约连续性问题

核心原理

期货市场采用保证金交易(通常5%-15%),具有双向交易和T+0特征。其数据特征与股票有本质区别:期货合约有到期日,价格序列存在主力合约切换问题。回测框架必须处理合约的展期(Roll)逻辑,否则价格跳空会被误判为策略信号。

订单类型与强平机制

  • FAK(Fill and Kill):立即成交剩余撤销,适合部分成交场景
  • FOK(Fill or Kill):全部成交否则撤销,适合大单执行
  • 逐日盯市:每日结算盈亏,回测需模拟保证金追加与强平

案例拆解:主力合约切换的陷阱

某CTA策略在螺纹钢期货上回测,使用连续主力合约数据。2024年5月,主力合约从RB2410切换至RB2501,切换日价格从3600跳空至3650。策略误判为突破信号而开多,实际是合约价差而非市场趋势。正确的处理方式是:使用复权连续合约(如后复权法),或在切换日暂停信号。回测框架应内置合约切换检测模块,记录每次切换的基差影响。

实战建议:期货回测必须包含保证金占用计算和强平模拟。当策略亏损导致保证金不足时,回测引擎应强制平仓,并记录强平损失。这能有效避免策略在回测中“死扛”而实盘爆仓的风险。

2.3 外汇市场:24小时交易与报价驱动机制

核心原理

外汇市场是典型的报价驱动市场(做市商制度),无中央交易所,交易通过银行间网络进行。其数据特征为Tick级报价流,买卖价差(Spread)是主要交易成本。外汇市场无涨跌停限制,波动剧烈时流动性可能瞬间枯竭。

数据特征与回测挑战

特征影响回测处理
24小时交易隔夜利息(Swap)需计算持仓过夜的利息收支
报价驱动点差可变需使用买卖价差模型,而非单一价格
高杠杆爆仓风险需严格模拟净值回撤与强平线
非中心化数据源不一致需多源数据交叉验证

案例拆解:点差扩大导致的滑点

在非农数据公布时,EUR/USD点差从常规的0.8点扩大至15点。策略在数据公布前设置了限价单,回测中若按固定点差计算,订单会以较好价格成交;但实际中,限价单可能因点差扩大而无法成交,或成交在远差于预期的价格。回测框架应支持动态点差模型,根据历史波动率或事件日历调整点差。

经验总结:外汇回测中,建议使用“中间价+点差”的双边报价模型,而非单一收盘价。同时,需考虑交易时段的流动性差异,如亚洲时段与伦敦时段的点差差异可达3倍。

2.4 市场数据特征与回测引擎的适配

数据粒度与存储

回测框架需要处理不同粒度的数据:Tick级(逐笔成交)、分钟级(1m/5m/15m)、日线级。不同策略对数据粒度要求不同:高频策略需要Tick级,而中低频策略使用日线即可。数据存储需考虑压缩算法和索引优化,以加速回测时的数据读取。

数据清洗与对齐

  • 除权除息处理:股票需前复权/后复权,避免价格跳空
  • 停牌处理:停牌期间无交易数据,需标记并跳过
  • 时间戳对齐:不同市场时区不同,需统一为UTC或交易所本地时间
  • 异常值过滤:错误Tick数据(如价格突变)需用Winsorize或中位数滤波

案例拆解:数据对齐错误导致的策略失效

某跨市场套利策略同时使用A股和港股数据,A股收盘时间为15:00(北京时间),港股收盘为16:00(北京时间)。若回测引擎未做时间对齐,将导致信号计算时使用不同截止时间的数据,产生虚假套利机会。正确的做法是:以较晚收盘的市场为基准,截取同时段数据,或使用同步时间戳的Bar数据。

风险提示:回测框架中,数据质量直接影响策略评估的可靠性。建议在回测前进行数据完整性检查,包括缺失值比例、价格跳变检测、成交量异常等。一个简单的规则是:若某日成交量低于过去20日均值的1%,则标记为流动性不足日,策略信号应被忽略。

2.5 总结复盘:回测框架设计的市场适配要点

维度股票期货外汇
撮合模型订单簿+涨跌停订单簿+强平报价驱动+点差
交易成本佣金+印花税+滑点手续费+滑点+保证金利息点差+隔夜利息
数据频率Tick/分钟/日线Tick/分钟/日线Tick/分钟
关键风险T+1约束、停牌合约切换、强平点差扩大、流动性枯竭
回测引擎要求持仓时间校验保证金模拟双边报价模型

构建量化回测框架时,必须将上述市场特征内化为引擎的底层设计参数。一个健壮的回测系统,应当支持通过配置文件切换不同市场的规则模块,而非为每个市场单独开发一套引擎。这种抽象设计,能够显著提升策略研发效率,并降低因市场规则理解偏差导致的回测失真风险。