3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在实际交易中,最终成交价往往与期望下单价格存在偏差,这种偏差被称为滑点(Slippage)。为了更真实地模拟市场撮合,聚宽平台提供了 set_slippage API,允许开发者针对股票、基金、期货等不同标的设置自定义滑点模型。
set_slippage(object, type=None, ref=None)
FixedSlippage、PriceRelatedSlippage 或 StepRelatedSlippage)。'stock'(股票)、'fund'(基金)、'futures'(期货)、'index_futures'(金融期货)等。默认为 None(应用于全局)。'000001.XSHE')或品种(如 'CU')。仅在指定 type 时生效。注意:如果不显式调用
set_slippage,系统默认使用PriceRelatedSlippage(0.00246)(即单边 0.123% 的百分比滑点)。所有货币基金(mmf/money_market_fund)滑点默认为 0 且不可修改。
FixedSlippage)无论成交价格和下单量多少,买卖双方各自承担固定金额的价差偏移。
# 设置全场固定价差为 0.02 元(即单边滑点 0.01 元)
set_slippage(FixedSlippage(0.02))
PriceRelatedSlippage)按当前价格的一定比例计算滑点,适合股票和基金回测。
# 为股票设置 0.246% 的比例滑点
set_slippage(PriceRelatedSlippage(0.00246), type='stock')
StepRelatedSlippage) — 期货专用按合约的最小变动价位(跳数)计算双边滑点。滑点计算时单边向下取整。
# 设置所有期货品种滑点为 2 跳
set_slippage(StepRelatedSlippage(2), type='futures')
# 为螺纹钢 RB1809 单独设置 2 跳滑点
set_slippage(StepRelatedSlippage(2), type='futures', ref='RB1809.XSGE')
以下代码展示了如何在 initialize 初始化函数中,为不同交易品种精确配置滑点:
import jqdata
def initialize(context):
# 开启动态复权(真实价格)模式
set_option('use_real_price', True)
# 1. 为股票设置 0.2% 的百分比滑点
set_slippage(PriceRelatedSlippage(0.002), type='stock')
# 2. 为特定股票设置固定 0.02 元价差滑点
set_slippage(FixedSlippage(0.02), type='stock', ref='000001.XSHE')
# 3. 为商品期货设置 2 跳滑点
set_slippage(StepRelatedSlippage(2), type='futures')
def handle_data(context, data):
# 策略交易逻辑示例
if context.portfolio.available_cash > 0:
order('000001.XSHE', 100)