3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在PTrade量化交易平台中,滑点(Slippage)是回测系统中一个非常重要的概念。理解并正确设置滑点,对于评估量化策略的真实表现至关重要。
滑点是指在交易过程中,委托下单的价格与实际成交的价格之间的差异。例如,你看到某只股票当前价格为10.00元并下达买入市价单,但由于市场价格波动,最终成交价可能是10.01元。这0.01元的差价就是滑点。
在量化回测中设置滑点的主要原因是为了让回测结果尽可能逼近真实的交易场景。真实市场中不可避免地会产生滑点,原因包括:
如果在回测中不设置滑点(即假设每次都能以理想价格成交),会导致回测收益被严重高估,产生“回测猛如虎,实盘亏成狗”的现象。因此,设置合理的滑点是检验策略抗风险能力和真实盈利能力的关键步骤。
PTrade提供了两种设置滑点的方式,均仅在回测模块中可用,且通常在 initialize 函数中调用:
set_fixed_slippage该函数用于设置一个固定的价差值。撮合成交时,买入价会加上这个固定值,卖出价会减去这个固定值。
最终成交价格 = 委托价格 ± fixedslippage / 2代码示例:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 将滑点设置为固定的0.2元。如果原本买入委托价为10元,则实际成交价将变成10.1元(10 + 0.2/2)
set_fixed_slippage(fixedslippage=0.2)
set_slippage该函数用于设置一个基于当时价格的百分比滑点。这在处理价格差异较大的不同股票时更为合理。
最终成交价格 = 委托价格 ± 委托价格 * slippage / 2代码示例:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 将滑点比例设置为0.002(千分之二)。如果委托价为10元,实际成交价为 10 + 10 * 0.002 / 2 = 10.01元
set_slippage(slippage=0.002)
在PTrade中,通过 set_fixed_slippage 或 set_slippage 设置滑点,是模拟真实交易摩擦成本的重要手段。结合佣金设置(set_commission),可以构建一个严苛且贴近实盘的回测环境,从而筛选出真正具有鲁棒性的量化交易策略。