Skip to content

策略交易时机选择

在量化策略的设计与执行中,交易时机的选择往往被忽视,但它却是连接回测与实盘的关键桥梁。选择在当天收盘价交易还是次日开盘价交易,不仅影响回测结果的准确性,更直接决定策略在实盘中的可执行性。

本文将深入对比这两种交易时机的核心差异、回测表现、实盘执行难度,帮助您根据实际需求做出最优选择。

一、两种交易时机概述

次方量化平台支持两种交易时机模式:

1767775900_g8doyafzou1767775899773.png

1.1 当天收盘价交易

定义:策略在当天收盘时刻(15:00)触发信号,并假设以当天收盘价立即成交。

执行逻辑

  • 策略在收盘时(15:00)计算动量、检查调仓条件
  • 如果需要调仓,则以当天收盘价作为成交价格
  • 交易即时完成(理论上)

典型场景

时间线示例:
2024年1月5日 15:00 - 策略触发买入信号
                    - 沪深300ETF收盘价: 3.500元
                    - 交易价格: 3.500元(+滑点)
                    - 当天持仓生效

1.2 次日开盘价交易

定义:策略在当天收盘后(15:10之后)触发信号,但以下一个交易日开盘价成交。

执行逻辑

  • 策略在当天收盘后(15:10之后)计算信号
  • 生成交易订单,等待次日执行
  • 次日9:30开盘时以开盘价成交
  • 存在"隔夜风险"

典型场景

时间线示例:
2024年1月5日 15:10 - 策略触发买入信号
                    - 沪深300ETF收盘价: 3.500元
                    - 生成买入订单,等待次日执行
2024年1月8日 09:30 - 沪深300ETF开盘价: 3.520元
                    - 交易价格: 3.520元(+滑点)
                    - 次日持仓生效

二、两种交易时机的核心差异对比

2.1 价格基准差异

对比维度当天收盘价交易次日开盘价交易
成交价格基准当天15:00收盘价次日9:30开盘价
价格确定性高(收盘价已确定)低(开盘价未知)
隔夜风险有(受隔夜消息影响)
价格跳空风险有(可能高开或低开)

价格差异示例

假设某ETF在调仓日的价格走势:

2024年1月5日(周五)
- 收盘价: 3.500元
- 策略信号: 买入

情况1: 当天收盘价交易
- 成交价: 3.500元

情况2: 次日开盘价交易
- 周末发生重大利好消息
- 2024年1月8日(周一)开盘价: 3.550元
- 成交价: 3.550元
- 价差: +1.43%(多付了50点)

2.2 执行时间差异

对比维度当天收盘价交易次日开盘价交易
信号产生时间15:00收盘时15:10之后
订单提交时间理论上15:00(实际操作困难)15:10-次日9:25
实际成交时间当天尾盘(几乎不可能)次日9:30开盘后
准备时间无(需要秒级响应)充足(有18小时以上)

执行时间对比图

【当天收盘价交易】
14:55 ─→ 15:00 ──→ 15:00 ──→ 当天持仓
      计算   触发     成交     生效
      准备   信号   (理论)

【次日开盘价交易】
14:55 ─→ 15:10 ──→ 次日9:25 ──→ 次日9:30 ──→ 次日持仓
      计算   触发     提交订单      成交        生效
      准备   信号    (集合竞价)

充足的18小时准备时间,可以从容下单

2.3 实盘可操作性差异

对比维度当天收盘价交易次日开盘价交易
手动执行难度⭐⭐⭐⭐⭐(极难)⭐⭐(简单)
自动交易适配性困难(需要极快响应)容易(有充足准备时间)
成交概率低(尾盘流动性差)高(开盘流动性好)
实盘滑点理论上相对较低相对较高
执行一致性差(很难保证成交)好(几乎总能成交)

可操作性分析

  1. 当天收盘价交易的困境

    • 需要在14:57左右快速下单抢收盘价
    • 尾盘流动性往往不足
    • 大单容易冲击价格,实际滑点可能很大
    • 手动操作几乎不可能在15:00精准成交
    • 自动交易系统需要极高性能和网络速度
  2. 次日开盘价交易的优势

    • 15:10后从容分析、生成订单
    • 可以在当晚或次日早上提交集合竞价订单
    • 开盘流动性充足,成交概率高
    • 执行一致性好,减少人为失误

三、回测与实盘模拟的处理逻辑差异

理解回测和实盘模拟两种场景下的处理逻辑差异,对于正确使用策略系统至关重要。两种交易时机在这两种场景下的处理方式存在显著不同。

3.1 回测场景的处理逻辑

回测场景特点

  • 使用历史数据模拟策略表现
  • 不涉及实际执行时间
  • 基于历史K线数据计算成交价格
  • 主要用于评估策略的历史表现

3.1.1 当天收盘价交易在回测中的处理

处理流程

1. 遍历历史交易日
2. 在每个交易日的15:00时刻:
   - 计算动量指标
   - 检查调仓条件
   - 如果触发调仓信号:
     a. 获取当天的收盘价(已确定的历史数据)
     b. 应用滑点计算:成交价 = 收盘价 × (1 + 滑点率)
     c. 立即更新持仓(假设当天成交)
     d. 更新账户资产
3. 继续下一个交易日

关键特征

  • 价格确定性高:收盘价是已知的历史数据
  • 无时间延迟:信号产生即成交,无等待时间
  • 理想化假设:假设可以在收盘价完美成交
  • ⚠️ 忽略执行难度:不考虑实际下单的时间限制

示例

回测日期:2024年1月5日(周五)

【当天收盘价交易回测】
15:00 - 计算动量,触发买入信号
15:00 - 获取收盘价:3.500元(历史数据)
15:00 - 应用滑点0.1%:成交价 = 3.500 × 1.001 = 3.5035元
15:00 - 立即更新持仓:买入1万股,成本35,035元
15:00 - 账户资产更新完成

→ 持仓在当天生效,从下一个交易日开始计算收益

3.1.2 次日开盘价交易在回测中的处理

处理流程

1. 遍历历史交易日
2. 在每个交易日的收盘后:
   - 计算动量指标
   - 检查调仓条件
   - 如果触发调仓信号:
     a. 生成交易订单(标记为待执行)
     b. 等待下一个交易日
3. 在下一个交易日的9:30时刻:
   - 获取当天的开盘价(已确定的历史数据)
   - 应用滑点计算:成交价 = 开盘价 × (1 + 滑点率)
   - 执行订单,更新持仓
   - 更新账户资产

关键特征

  • 价格确定性高:开盘价是已知的历史数据
  • 更贴近实盘:考虑了实际执行的时间差
  • 存在时间延迟:信号产生后需等待至次日开盘,有足够的时间处理
  • ⚠️ 隔夜风险:价格可能跳空,成本可能变化,账户中必须留有足够额外资金应对成本的增加

示例

回测日期:2024年1月5日(周五)

【次日开盘价交易回测】
15:00 - 计算动量,触发买入信号
15:00 - 生成买入订单(待执行)
       - 参考价格:3.500元(当天收盘价,仅供参考)

下一个交易日:2024年1月8日(周一)
09:30 - 获取开盘价:3.540元(历史数据,可能高开)
09:30 - 应用滑点0.15%:成交价 = 3.540 × 1.0015 = 3.5453元
09:30 - 执行订单:买入1万股,成本35,453元
09:30 - 账户资产更新完成

→ 持仓在次日生效,承担了隔夜跳空风险(+1.14%)

3.2 实盘模拟场景的处理逻辑

实盘模拟场景特点

  • 策略在真实市场环境中运行
  • 与执行时间紧密关联
  • 使用实时或最新市场数据
  • 需要考虑实际执行的时间限制

3.2.1 当天收盘价交易在实盘模拟中的处理

WARNING

因为实盘模拟中,无法做到收盘后再成交,所以我们的处理方式是提前生成信号并成交,具体提前多久取决于我们设置的执行时间。

处理流程

1. 系统在设定的执行时间(如14:30)触发策略计算
2. 在14:30收盘时:
   - 计算动量指标
   - 检查调仓条件
   - 如果触发调仓信号:
     a. 获取当前价格(接近收盘价)
     b. 生成交易订单
     c. 更新持仓

关键特征

  • 执行时间点提前:系统会在预设的时间(如14:45、14:50等)直接计算信号并下单,而非等到真实收盘时刻
  • ⚠️ 信号偏差风险:由于执行时间早于收盘,动量排名等指标可能与最终收盘时刻存在差异,导致实际信号与理想信号有误差
  • ⚠️ 成交价差异:下单时参考的是实时最新价,最终与收盘价存在价差
  • ⚠️ 尾盘流动性风险:临近收盘可能部分无法成交,成交数量和价格与回测存在偏离

执行时间要求

推荐执行时间:14:30:00 ~ 15:00:00
- 越接近收盘越好(14:50-15:00最佳)
- 此时市场波动相对较小
- 动量排名趋于稳定
- 策略执行效果更好

示例

实盘模拟日期:2024年1月5日(周五)

【当天收盘价交易实盘模拟】
14:50 - 系统触发策略计算(执行时间:14:50:00)
14:50 - 计算动量,触发买入信号
14:50 - 获取当前价格:3.498元(接近收盘价)
14:50 - 生成买入订单:买入1万股
14:50 - 更新持仓:买入1万股,成本34,980元
15:00 - 收盘价确定:3.500元,预期成本:3.500*10000=35,000元

⚠️ 实际情况可能:
- 实际成交价和收盘价存在更大价差,但是可能买入成本更低(上涨趋势),卖出收益更好(下降趋势)
- 收盘后动量排名变化,导致买卖的标的改变,从而导致与回测存在较大偏差

3.2.2 次日开盘价交易在实盘模拟中的处理

处理流程

1. 系统在设定的执行时间(必须在15:10之后)触发策略计算
2. 在收盘后(15:10之后):
   - 计算动量指标
   - 检查调仓条件
   - 如果触发调仓信号:
     a. 获取当天收盘价(已确定)
     b. 生成交易订单(标记为待执行)
     c. 订单等待至次日执行
3. 在下一个交易日的9:30开盘时:
   - 获取开盘价(实时数据)
   - 应用滑点计算成交价
   - 执行订单,更新持仓

关键特征

  • 执行时间要求严格:必须在15:10之后执行
  • 准备时间充足:有18小时以上的准备时间
  • 成交概率高:开盘流动性好,几乎必然成交
  • 价格可预测:开盘价虽然未知,但可通过集合竞价预估

执行时间要求

必须执行时间:15:10:00 之后
推荐执行时间:15:30:00

⚠️ 系统限制:
- 如果选择次日开盘价交易,执行时间必须 ≥ 15:10:00
- 系统会自动禁用15:10之前的时间选项
- 建议选择15:30:00,给系统充足的计算时间

时间选择逻辑:
- 15:00-15:10:禁用(收盘数据未完全确定)
- 15:10之后:可用
- 建议:15:30:00(平衡数据准确性和系统稳定性)

示例

实盘模拟日期:2024年1月5日(周五)

【次日开盘价交易实盘模拟】
15:30 - 系统触发策略计算(执行时间:15:30:00)
15:30 - 计算动量,触发买入信号
15:30 - 获取收盘价:3.500元(已确定)
15:30 - 生成买入订单:买入1万股(待执行)
15:30 - 订单状态:等待次日开盘执行

下一个交易日:2024年1月8日(周一)
09:25 - 集合竞价阶段(可选:此时提交集合竞价订单)
09:30 - 获取开盘价:3.540元(实时数据,可能高开)
09:30 - 应用滑点0.15%:成交价 = 3.540 × 1.0015 = 3.5453元
09:30 - 执行订单:买入1万股,成本35,453元
09:30 - 更新持仓:买入完成

✅ 优势:
- 有充足时间准备和审核订单
- 开盘流动性好,成交概率高
- 执行结果与回测高度一致

3.3 执行时间对实盘模拟的影响

执行时间的重要性

在实盘模拟中,执行时间直接影响策略的计算时机和成交价格,特别是对于当天收盘价交易:

3.4.1 当天收盘价交易的执行时间影响

当天收盘价交易时,执行时间同时决定策略动量计算时获取的价格、成交时机、以及信号推送的时间

执行时间过早(如14:00):
- ❌ 市场波动较大,动量排名可能不稳定
- ❌ 距离收盘时间较长,价格可能发生变化
- ❌ 策略信号可能不够准确

执行时间适中(14:50-15:00):
- ✅ 市场波动较小,动量排名趋于稳定
- ✅ 接近收盘,价格接近最终收盘价
- ✅ 策略信号准确性高

执行时间过晚(15:00之后):
- ❌ 无法成交(收盘价已确定,但是已经收盘无法买入)
- ❌ 必须使用次日开盘后才手动买入,此时存在隔夜跳空风险

3.4.2 次日开盘价交易的执行时间影响

次日开盘价交易时,执行时间只决定了信号推送的时间,动量计算的价格是确定的(收盘价),成交时机也是固定的,次日开盘时(9:30)

执行时间过早(15:00之前):
- ❌ 系统禁止(收盘数据未完全确定)
- ❌ 无法准确计算动量指标

执行时间合适(15:10-23:59):
- ✅ 收盘数据已完全确定
- ✅ 有充足时间计算和生成订单
- ✅ 可以在当晚或次日早上下单

最佳实践建议

当天收盘价交易:
- 执行时间:14:50:00 ~ 15:00:00
- 越接近收盘越好

次日开盘价交易:
- 执行时间:15:30:00(推荐)
- 必须在15:10之后

蜀ICP备20013273号-1 | 返回主站