#### 具体可查看 API [订单处理](https://www.joinquant.com/help/api/help?name=api#订单处理)
* 买入/开多/平空成交价 = 最新价+滑点
* 卖出/开空/平多成交价 = 最新价 -滑点
* 其中 滑点 = 双边滑点/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))
# 为全部交易品种设定滑点为0
set_slippage(FixedSlippage(0))
# 为股票设定滑点为百分比滑点
set_slippage(PriceRelatedSlippage(0.00246),type='stock')
# 设置CU品种的滑点为跳数滑点2
set_slippage(StepRelatedSlippage(2),type='futures',ref = 'CU')
# 为螺纹钢RB1809设定滑点为跳数滑点(注意只是这一个合约,不是所有的RB合约)
set_slippage(StepRelatedSlippage(2),type='futures', ref="RB1809.XSGE")
# StepRelatedSlippage(2)表示开平的单边滑点为1个价格最小单位,螺纹钢价格最小变动单位为1元/吨
# 如果以市价单进行开多仓(或者平空仓),现价3000元,成交价3000+1*2/2=3001元
# 如果以市价单进行平空仓(或者平多仓),现价3000元,成交价3000-1*2/2=2999元
```
****
### 下边放对比截图:
(右键,在新标签中打开可查看大图)
![1.png][1]
![2.png][2]
## 分钟频率,21:00



## 一个简单的对比栗子
```
def initialize(context):
# 获取初始资金
init_cash = context.portfolio.starting_cash
set_subportfolios([SubPortfolioConfig(cash=init_cash, type='futures')])
set_slippage(FixedSlippage(0))
run_daily(get_future, time='before_open', reference_security='IF9999.CCFX')
def get_future(context):
g.future = 'IF1901.CCFX'
print(g.future)
order(g.future, 1, side='long', pindex=0)
print('-'*50)
```

[1]: https://image.joinquant.com/46a14ad64819737ba61b0a4cd1219aee
[2]: https://image.joinquant.com/31300f820e5fe9f340b09f11e593d4f3