- 买入/开多/平空成交价 = 最新价 滑点
- 卖出/开空/平多成交价 = 最新价 -滑点
- 其中 滑点 = 双边滑点/2 (我们设置的都是双边滑点,比如固定滑点FixedSlippage(0.02) ,则成交时,成交价=现价 /- 0.01 )
滑点类型
滑点设置有三种类型,分别是:
- FixedSlippage 固定值滑点
价差可以是一个固定的值(比如0.02元, 交易时加减0.01元), 设定方式为:FixedSlippage(0.02)
- PriceRelatedSlippage 百分比滑点
这个价差可以是是当时价格的一个百分比(比如0.2%, 交易时加减当时价格的0.1%), 设定方式为:PriceRelatedSlippage(0.002)
- StepRelatedSlippage 跳数滑点(期货专用)
这个价差可以是合约的价格变动单位(跳数),比如2跳,滑点不足一跳时向下取整,交易时加减最小变动单位×2÷2。设定方式为: StepRelatedSlippage(2)
关于跳数滑点
跳数滑点是根据品种的最小变动单位来决定的,当单边滑点不足一跳时,向下取整。设置为2相当于交易时成交价 - 最小变动单位×1,设置为4相当于 最小变动单位×2 ,设置为5相当于 最小变动单位×int(2.5) ; 以此类推
E.g1:CU期货,最小变动单位为10点
* 设置StepRelatedSlippage(1),则滑点值为 1/2×10 =5,不足10点一跳,滑点为0,成交价为最新价。
* 设置StepRelatedSlippage(2),则 滑点值为 2/2*10 =10,满足10点一跳,滑点为10,开多/平空时成交价为最新价 10,开空/平多是成交价为最新价-10
* 设置StepRelatedSlippage(3),则 滑点值为 3/2*10 =15,不满足10点一跳,滑点为10,开多/平空时成交价为最新价 10,开空/平多是成交价为最新价-10
E.g2:AG期货,最小变动单位为1点
* 设置StepRelatedSlippage(2),则 滑点值为 2/2*1 =1,满足1点一跳,滑点为1,开多/平空时成交价为最新价 1,开空/平多是成交价为最新价-1
* 设置StepRelatedSlippage(3),则 滑点值为 3/2*1 =1.5,不足2点一跳,滑点为1,开多/平空时成交价为最新价 1,开空/平多是成交价为最新价-1
设置方法
注:
- 默认set_slippage(PriceRelatedSlippage(0.00246),type=None,ref=None) 也就是说如果未设置过滑点,所有品种的滑点都是百分比单边滑点0.00123
- 所有类型为 "mmf"与"money_market_fund"的标的滑点默认为0,且调用set_slippage重新设置也不会生效。
可以分别为所有品种,单个品种,单个合约设置不同的滑点,注意从前往后为包含关系,小范围的设置需要放在大范围的的后边,否则重复设置,生效的是大范围的
参数
- type 可以选择 'stock'/ 'fund' / 'index_futures' (金融期货)/ 'futures'(包含股指期货和商品期货)/ 'bond_fund' / 'stock_fund' / 'QDII_fund' / 'money_market_fund' / ‘mixture_fund' 。为None时则应用于全局。当type被设定而ref为None时,表示将滑点应用于交易品种为type的所有交易标的。
- ref: 标的代码。如要为特定交易标的单独设置滑点,必须同时设置type为交易标的的交易品种。
示例
set_slippage(FixedSlippage(0.02))
set_slippage(PriceRelatedSlippage(0.00246),type='stock')
set_slippage(StepRelatedSlippage(2),type='futures',ref = 'CU')
set_slippage(StepRelatedSlippage(2),type='futures', ref="RB1809.XSGE")
下边放对比截图:
(右键,在新标签中打开可查看大图)