最近一直在分析各种不同的 order,市价止损单和限价止损单是用来进行止损的,当价格触发到设定的价格之后,就会触发平仓的指令,比如现假设我们以 10 元的价格买入了 1 手股票,在 9 元的价格卖出止损,就可以用一个市价止损单进行
# 市价止损单,对于空头仓位来说,如果价格已经等于或者超过 price,就会触发一个市价单,买入 1 手,data 的资产
self.buy(data,size = 1,exectype = bt.Order.Stop, price=price)
# 限价止损单,对于空头仓位来说,如果价格已经超过或者等于 price,就会触发一个限价单,以 plimit 的价格买入 1 手 data 的资产
self.buy(data,size = 1, exectype = bt.Order.StopLimit, price=price, valid=valid,
plimit=plimit) 区别在于,市价止损单被触发之后,会发出一个市价单进行开仓;限价止损单被触发之后,会发出一个限价单,下个 bar 之后成交。
-
当我们下过市价止损单之后,从下个 bar 开始,使用如下的撮合的逻辑。
-
对于买入止损的市价止损单
- 如果下个 bar 的开盘价大于等于止损价,那么,就以开盘价成交;
- 如果下个 bar 的最高价大于等于止损价格,那么,就以止损价成交;
- 对于卖出止损的市价止损单
- 如果下个 bar 的开盘价小于等于止损价,那么,就会以开盘价成交
- 如果下个 bar 的最低价小于等于止损价,那么,就以止损价成交
-
当我们下过限价止损单之后,从下个 bar 开始,使用如下的撮合的逻辑。
-
对于买入止损的市价止损单
- 如果下个 bar 的开盘价大于等于止损价,那么,就下一个限价单,限价单的撮合逻辑和原先的限价单一样;
- 如果下个 bar 的最高价大于等于止损价,那么,就下一个限价单,限价单的撮合逻辑和原先的限价单一样;
- 对于卖出止损的市价止损单
- 如果下个 bar 的开盘价小于等于止损价,那么,就下一个限价单,限价单的撮合逻辑和原先的限价单一样
- 如果下个 bar 的最低价小于等于止损价,那么,就下一个限价单,限价单的撮合逻辑和原先的限价单一样
智慧、心灵、财富,总要有一个在路上,愿我们能在人生的道路上,不断成长、不断成熟~~~
感兴趣可以关注我的专栏:
my_quant_study_note:分享一些关于量化投资、量化交易相关的思考
backtrader 量化投资回测与交易:本专栏免费,分享 backtrader 相关的内容。
量化投资神器-backtrader 源码解析-从入门到精通:本专栏目前收费 99 元,预计更新 100 篇策略+20 篇 backtrader 讲解+80 篇源代码分析。