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

PTrade量化平台set_slippage比例滑点计算方式详解

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

问题描述

PTrade中set_slippage函数如何计算最终成交价?

想了解比例滑点的具体计算方式

解决方案

在量化交易回测中,滑点(Slippage)是模拟真实交易环境不可或缺的一部分。真实交易中,由于市场波动和流动性原因,委托价格与实际成交价格往往存在差异。PTrade 提供了 set_slippage 函数来设置比例滑点,以使回测结果更加贴近实盘。

最终成交价计算公式

在 PTrade 中,使用 set_slippage 设置比例滑点后,最终成交价格的计算公式如下:

最终成交价格 = 委托价格 ± (委托价格 × slippage / 2)

  • 买入时:最终成交价格 = 委托价格 + (委托价格 × slippage / 2)
  • 卖出时:最终成交价格 = 委托价格 - (委托价格 × slippage / 2)

公式解析:
滑点比例 slippage 代表的是委托价格与最后成交价格之间的价差占当时价格的百分比。在撮合成交时,系统会在委托价格的基础上,加减该百分比的一半(即 slippage / 2)作为最终的成交价。

举个例子:
假设你设置了 set_slippage(slippage=0.002)(即 0.2% 的滑点比例),并且你以 10.00 元的价格下达了买入委托。

  • 滑点金额 = 10.00 × 0.002 / 2 = 0.01 元
  • 最终买入成交价 = 10.00 + 0.01 = 10.01 元

函数参数说明

set_slippage(slippage=0.1)
  • slippage (float):滑点比例。默认值为 0.1(即 10%)。在实际策略开发中,默认值通常过大,建议根据交易品种的流动性和真实市场情况进行调整,例如设置为 0.002 (0.2%)。

代码示例

set_slippage 函数必须在策略的 initialize 初始化函数中调用。

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)
    
    # 将滑点比例设置为 0.2% (0.002)
    # 撮合成交时,委托价格将加减当时价格的 0.1%
    set_slippage(slippage=0.002)

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

注意事项

  1. 使用场景set_slippage 函数仅在回测模块可用。在实盘交易中,成交价格由交易所实际撮合结果决定,无法通过代码设置。
  2. 固定滑点:如果你希望设置一个固定的金额作为滑点(例如每股固定滑点 0.02 元),应使用 set_fixed_slippage(fixedslippage=0.02) 函数,而不是 set_slippage
  3. 合理设置:设置合理的滑点对于评估策略的真实盈利能力至关重要。过小的滑点会导致回测收益虚高,而过大的滑点则可能掩盖策略的有效性。