2. 交易成本基础

在CTA策略的实盘评估中,很多研究者习惯把注意力集中在信号胜率、盈亏比和最大回撤上,却忽略了一个更“沉默”的变量——交易成本。它不会出现在策略逻辑里,却会在每一次调仓、每一笔成交中持续侵蚀收益。理解交易成本的第一步,是把它拆成两类:显性成本与隐性成本。前者看得见、算得清;后者看不见、却往往更贵。

一、核心原理:两类成本的分野

显性成本是指交易过程中直接以费用形式扣除、可从成交回报或对账单中明确读取的成本,典型包括手续费、交易所规费、印花税(部分市场)、过户费等。它的特点是“确定性高、可预算、与成交量线性相关”。

隐性成本是指不直接体现在费用科目中,但实际导致成交价格偏离理想价格、或使策略无法按预期执行而产生的成本,典型包括买卖价差、滑点、市场冲击、机会成本与延迟成本。它的特点是“不确定、难量化、与流动性、下单方式、市场状态强相关”。

核心关系可以概括为:总交易成本 = 显性成本 + 隐性成本。显性成本决定策略的“最低摩擦门槛”,隐性成本决定策略在真实市场中的“可执行上限”。很多CTA策略回测漂亮、实盘失效,问题往往不在信号,而在隐性成本被严重低估。
CTA交易成本结构图 显性成本 可读取 · 可预算 · 线性 手续费 / 佣金 交易所规费 / 结算费 印花税 / 过户费(视市场) 数据 / 通道 / 软件费用 隐性成本 不确定 · 难量化 · 非线性 买卖价差(Spread) 滑点(Slippage) 市场冲击(Impact) 延迟 / 机会成本 叠加 总交易成本 = 显性成本 + 隐性成本 → 直接决定策略容量与净收益

二、构成要素与CTA中的表现形式

CTA策略通常交易期货、期权或部分外汇品种,其成本结构与股票策略存在明显差异。下面用一张清单把两类成本的构成要素、在CTA中的典型表现和影响维度对应起来。

成本类别 构成要素 CTA中的典型表现 主要影响
显性成本 手续费/佣金 按手数或成交额收取,日内与隔夜费率可能不同 高频调仓策略敏感度极高
交易所规费 固定或按比例收取,品种间差异大 跨品种套利需逐品种核算
税费 部分市场对特定品种征收 影响净收益与换手边界
通道/数据费 固定月度或年度支出 小资金策略的固定成本占比高
隐性成本 买卖价差 主力合约盘口1跳即价差,流动性差的远月更大 每次市价成交立即承担
滑点 信号价与成交价之差,夜盘/开盘更明显 趋势策略追价时显著放大
市场冲击 大单推动价格反向运动 资金规模越大越突出,决定容量
延迟/机会成本 信号到下单的延迟、未成交错失的行情 突破类策略尤为敏感

三、方法流程:如何把成本“算进去”

在CTA研究与实盘中,建议按以下流程把交易成本纳入评估闭环:

  1. 识别成本项:列出策略涉及的所有显性与隐性成本,避免只算手续费。
  2. 参数化建模:显性成本用费率表;隐性成本用价差、滑点模型或冲击模型估计。
  3. 回测中扣除:在成交价或收益序列中逐笔扣减,而不是事后统一打折。
  4. 敏感性分析:对滑点、手续费做多档压力测试,观察策略盈亏平衡点。
  5. 实盘复盘:用成交回报反推真实滑点与冲击,持续校准模型。

一个常见的回测成本参数配置示例如下:

# 回测成本参数示例(伪代码)
commission_rate = 0.0001      # 手续费率:万分之一
slippage_ticks = 1            # 滑点:1个最小变动价位
spread_ticks = 1              # 买卖价差:1跳
impact_coef = 0.02            # 冲击系数:与下单量/成交量相关
delay_bars = 1                # 信号延迟:1根K线后成交

# 单笔成本估算
cost_per_trade = price * commission_rate \
               + slippage_ticks * tick_size \
               + spread_ticks * tick_size \
               + impact_coef * (order_qty / market_volume) * price
建议在策略开发早期就设定“成本预算”,例如:日内策略单边成本不低于2跳,趋势策略不低于1跳。若策略在扣除该预算后仍能稳定盈利,才具备进入实盘验证的价值。

四、案例与误区复盘

案例场景:某CTA策略回测年化收益18%,最大回撤10%,夏普1.6。实盘运行三个月后,年化收益降至6%,回撤扩大到15%。复盘发现:策略平均每日调仓2次,主力合约盘口价差1跳,滑点约1.5跳,而回测仅扣除了手续费,未计入价差与滑点。按每笔双边3跳估算,年化成本吞噬约10个百分点,几乎解释了全部收益落差。

常见误区:

  • 只算手续费,不算价差与滑点:这是最普遍的错误,尤其在高频或短周期CTA中。
  • 用固定滑点覆盖所有行情:开盘、夜盘、极端行情下滑点会成倍放大。
  • 忽略市场冲击:小资金回测有效,不代表大资金实盘有效,容量评估必须纳入冲击成本。
  • 把成本当作事后调整:成本应进入成交价,而不是在收益曲线上统一扣减。
  • 忽视机会成本:限价单未成交导致的错失行情,也是一种真实成本。
隐性成本具有“非线性”和“状态依赖”特征:流动性好时可能只有1跳,流动性差时可能达到5跳以上。任何用单一常数估计隐性成本的做法,都可能在极端行情中严重低估风险。

理解显性成本与隐性成本的定义、构成与表现形式,是后续进行策略容量评估和成本优化的基础。只有先把成本“看见”,才能在回测与实盘中做出更接近真实的判断。