🚀 AI 一键生成 ptrade 策略代码

ptrade量化回测中同时设置固定滑点与百分比滑点,系统如何判断?

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

问题描述

当用户策略代码中同时设置set_fixed_slippage-设置固定滑点和set_slippage设置滑点时,回测程序如何判断?

/

解决方案

在 ptrade 量化平台的回测环境中,滑点(Slippage)是模拟真实交易中委托价格与实际成交价格之间价差的重要机制。关于同时设置 set_fixed_slippage(固定滑点)和 set_slippage(百分比滑点)时的处理逻辑,以下是详细的解析与建议:

1. 核心解答:系统如何判断?

根据 ptrade 官方 API 文档,并未明确说明两者同时设置时的叠加或优先级规则。在绝大多数标准量化框架的底层实现中,滑点模型通常是单一的。因此,如果在 initialize 函数中同时调用了这两个接口,通常是后调用的函数会覆盖先调用的函数,即最后一次设置的滑点模型生效。

为了保证回测结果的准确性和逻辑的严谨性,强烈建议在策略中只选择其中一种滑点模式进行设置,避免同时使用

2. 两种滑点模式的区别与计算公式

模式一:固定滑点 (set_fixed_slippage)

  • 接口说明:设置一个固定的绝对数值作为价差。
  • 计算公式最终成交价格 = 委托价格 ± fixedslippage / 2
  • 默认值:0.0
  • 适用场景:适用于价格波动较小、或者你希望每笔交易承担固定金额滑点成本的策略。
  • 示例:设置固定滑点为 0.02 元。如果买入委托价为 10.00 元,实际成交价将变为 10.01 元(10.00 + 0.02/2)。

模式二:百分比滑点 (set_slippage)

  • 接口说明:设置当时价格的一个百分比作为价差。
  • 计算公式最终成交价格 = 委托价格 ± 委托价格 * slippage / 2
  • 默认值:0.1(即 10% 的比例,注意:实际使用中通常设置较小的值,如 0.002 表示 0.2%)
  • 适用场景:适用于价格差异较大的股票池,滑点成本随股价高低动态调整,更贴近真实市场的冲击成本。
  • 示例:设置滑点比例为 0.002(0.2%)。如果买入委托价为 10.00 元,实际成交价将变为 10.01 元(10.00 + 10.00 * 0.002 / 2)。

3. 最佳实践代码示例

在编写策略时,请在 initialize 函数中明确选择一种滑点模型:

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)
    
    # 【推荐做法】根据策略需求,二选一即可
    
    # 选项 A:使用固定滑点(例如:买卖各承担 0.01 元的滑点)
    # set_fixed_slippage(fixedslippage=0.02)
    
    # 选项 B:使用百分比滑点(例如:买卖各承担千分之一的滑点)
    set_slippage(slippage=0.002)

def handle_data(context, data):
    pass

4. 总结

  • 不要同时混用:避免底层覆盖逻辑带来的回测误差。
  • 明确业务需求:高价股多用百分比滑点,低价股或特定品种可考虑固定滑点。
  • 注意除以 2 的逻辑:ptrade 的滑点参数是双边总滑点,单边成交时系统会自动除以 2。