halo 的技术博客

返回

策略回测很美好,实盘很骨感#

很多量化策略在回测中表现优异,但实盘运行时却大幅跑输。除了过拟合问题,一个常被忽视的因素是:交易成本

真实的交易成本包括:

  1. 佣金和印花税 - 显性成本
  2. 买卖价差(Bid-Ask Spread) - 隐性成本
  3. 市场冲击(Market Impact) - 大单交易的价格滑点
  4. 延迟成本 - 从信号生成到订单执行的时间差

交易成本控制框架#

1. 交易成本模型#

基础成本模型#

总成本 = 佣金 + 印花税 + 价差成本 + 市场冲击成本
plaintext

市场冲击模型(简化版)#

市场冲击 = γ × (订单金额 / 日均成交额)^δ
plaintext

其中γ和δ为股票特定参数,小盘股γ更大。

2. 换手率约束#

高换手率策略即使有正阿尔法,也可能被交易成本吞噬。解决方法:

  • 设置最小持有期:交易信号必须持续N天以上才执行
  • 分批建仓:将大单拆分成小单,减少市场冲击
  • 流动性过滤:只交易日均成交额超过阈值的股票

执行算法:从TWAP到VWAP#

TWAP(时间加权平均价格)#

将大单在规定时间内均匀拆分:

import pandas as pd
import numpy as np

def twap_schedule(total_shares, start_time, end_time, frequency='5min'):
    """生成TWAP订单时间表"""
    time_range = pd.date_range(start_time, end_time, freq=frequency)
    shares_per_slice = total_shares // len(time_range)
    
    schedule = pd.DataFrame({
        'time': time_range,
        'shares': [shares_per_slice] * len(time_range)
    })
    # 最后一片补齐剩余股数
    schedule.iloc[-1, 1] += total_shares % len(time_range)
    return schedule
python

VWAP(成交量加权平均价格)#

根据历史成交量模式分配订单:

def vwap_schedule(total_shares, stock_code, date):
    """生成VWAP订单时间表"""
    # 获取该股票历史分时段成交量比例
    volume_profile = get_historical_volume_profile(stock_code, date)
    
    schedule = []
    for time_slot, vol_ratio in volume_profile.items():
        shares = int(total_shares * vol_ratio)
        schedule.append({'time': time_slot, 'shares': shares})
    return pd.DataFrame(schedule)
python

更先进的执行算法#

算法适用场景核心思想
POV (Percentage of Volume)大单执行订单量不超过市场成交量的特定比例
IS (Implementation Shortfall)最小化冲击动态平衡时机风险与冲击成本
HFT-driven超短期交易利用微观结构捕捉最优价格

实盘交易系统架构#

一个完整的量化交易系统包含:

1. 信号生成层#

  • 因子计算
  • 组合优化
  • 风险模型

2. 订单管理層(OMS)#

  • 订单拆分
  • 算法路由
  • 交易成本控制

3. 执行管理层(EMS)#

  • 连接券商API
  • 实时风控
  • 成交回报处理

4. 风控监控层#

  • 实时持仓监控
  • 止损止盈执行
  • 异常交易报警

Python实盘交易系统示例#

降低交易成本的实战技巧#

1. 批量处理信号#

不要在每次信号出现时立即交易,而是:

  • 每日收盘前集中调仓
  • 将多个小单合并成大单执行

2. 利用盘前盘后交易#

对于流动性好的股票,在盘前(Pre-market)或盘后(After-hours)交易可减少市场冲击。

3. 智能订单类型#

  • 冰山订单(Iceberg Order):只显示部分数量,隐藏真实意图
  • 条件订单:达到特定价格才触发,避免追涨杀跌

4. 交易成本分析(TCA)#

定期分析交易成本构成,找出可以优化的环节:

结论:细节决定成败#

量化交易的成功不仅取决于策略阿尔法,还取决于执行质量。一个优秀的量化团队会花大量精力优化交易系统:

  1. 最小化市场冲击 - 使用智能执行算法
  2. 控制隐性成本 - 关注价差和滑点
  3. 系统化执行 - 避免情绪化交易
  4. 持续监控改进 - 定期做TCA分析

记住:省下的交易成本,就是增加的净收益


交易执行流程图 量化交易系统从信号到执行的全流程

交易成本构成 不同类型策略的交易成本构成比例

实盘交易系统:量化策略的成本控制与执行优化
https://blog.halo26812.eu.org/blog/2026-06-04-execution-cost-control
Author halo
Published at 2026年6月4日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨