🚀 AI 一键生成 ptrade 策略代码
立即体验
👉 AI 生成代码 👈

PTrade量化回测中固定滑点与比例滑点的区别及选择策略

ptrade | 发布时间: 2026/6/2
以下内容由 EasyQuant 生成。

问题描述

PTrade中回测时如何选择固定滑点和比例滑点?

不知道两种滑点方式哪种更适合

解决方案

在真实交易中,由于市场波动和网络延迟,我们下达的委托价格与最终的实际成交价格往往存在差异,这种价差被称为“滑点”。在PTrade量化平台进行回测时,合理设置滑点是让回测结果逼近真实交易场景的关键步骤。

PTrade提供了两种滑点设置方式:固定滑点(set_fixed_slippage)比例滑点(set_slippage)。以下是它们的详细区别及选择建议:

1. 固定滑点 (set_fixed_slippage)

机制说明
固定滑点是指委托价格与最终成交价格之间存在一个固定的绝对数值价差。在PTrade中,最终的成交价格 = 委托价格 ± fixedslippage / 2。

API用法

# 将滑点设置为固定的0.02元
set_fixed_slippage(fixedslippage=0.02)

举例:如果买入委托价为10元,设置fixedslippage=0.02,则实际买入成交价为 10 + 0.01 = 10.01元。

适用场景

  • 低价股策略:对于价格极低的股票,按比例计算的滑点可能小于最小报价单位(0.01元),此时使用固定滑点(如0.02元,即买卖各滑1分钱)更符合实际盘口。
  • 固定价差品种:如某些ETF或可转债,其买卖盘口价差常年维持在固定的几个Tick,使用固定滑点更贴近真实流动性。

2. 比例滑点 (set_slippage)

机制说明
比例滑点是指委托价格与最终成交价格之间的价差是当时价格的一个百分比。在PTrade中,最终成交价格 = 委托价格 ± 委托价格 * slippage / 2。默认滑点比例为0.1(即0.1%)。

API用法

# 将滑点比例设置为0.2% (即千分之二)
set_slippage(slippage=0.002)

举例:如果买入委托价为100元,设置slippage=0.002,则实际买入成交价为 100 + 100 * 0.001 = 100.1元。

适用场景

  • 通用股票策略:大多数股票策略(尤其是包含不同价格区间股票的选股策略)更适合比例滑点。因为高价股(如茅台)的1个Tick绝对值很大,低价股的1个Tick绝对值很小,按比例计算能更公允地反映冲击成本。
  • 高波动策略:在市场剧烈波动时,滑点通常与股价成正比放大,比例滑点能更好地模拟这种市场冲击。

总结与建议

  1. 默认选择:如果您运行的是普通的A股多因子选股、轮动策略,建议使用比例滑点。PTrade默认的0.1(即千分之一,买卖各滑万分之五)是一个相对合理的基准值。如果您的策略资金量较大,建议将比例调高至0.002或0.003以模拟流动性冲击。
  2. 特定品种:如果您专门针对可转债、低价ST股、或者盘口极度密集的宽基ETF做高频/日内交易,建议使用固定滑点,并根据该品种的平均买卖价差(如1-2个Tick)来设定 fixedslippage

完整代码示例

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)
    
    # 方案A:使用比例滑点(推荐大多数股票策略使用)
    # 假设滑点为千分之二
    set_slippage(slippage=0.002)
    
    # 方案B:使用固定滑点(适合低价股或特定品种)
    # 假设滑点为固定的0.02元
    # set_fixed_slippage(fixedslippage=0.02)

def handle_data(context, data):
    # 策略逻辑
    pass