3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在量化交易回测中,滑点(Slippage)是模拟真实交易环境不可或缺的一部分。真实交易中,由于市场波动和流动性原因,委托价格与实际成交价格往往存在差异。PTrade 提供了 set_slippage 函数来设置比例滑点,以使回测结果更加贴近实盘。
在 PTrade 中,使用 set_slippage 设置比例滑点后,最终成交价格的计算公式如下:
最终成交价格 = 委托价格 ± (委托价格 × slippage / 2)
公式解析:
滑点比例 slippage 代表的是委托价格与最后成交价格之间的价差占当时价格的百分比。在撮合成交时,系统会在委托价格的基础上,加减该百分比的一半(即 slippage / 2)作为最终的成交价。
举个例子:
假设你设置了 set_slippage(slippage=0.002)(即 0.2% 的滑点比例),并且你以 10.00 元的价格下达了买入委托。
set_slippage(slippage=0.1)
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
set_slippage 函数仅在回测模块可用。在实盘交易中,成交价格由交易所实际撮合结果决定,无法通过代码设置。set_fixed_slippage(fixedslippage=0.02) 函数,而不是 set_slippage。