Skip to content

Latest commit

 

History

History
59 lines (35 loc) · 3.3 KB

File metadata and controls

59 lines (35 loc) · 3.3 KB

26、backtrader 的一些基本概念-市价止损单(stop_order)与限价止损单(stop limit order)的创建和撮合逻辑

原文:https://yunjinqi.blog.csdn.net/article/details/111754369

最近一直在分析各种不同的 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 之后成交。

市价止损单的撮合逻辑

  1. 当我们下过市价止损单之后,从下个 bar 开始,使用如下的撮合的逻辑。

  2. 对于买入止损的市价止损单

  • 如果下个 bar 的开盘价大于等于止损价,那么,就以开盘价成交;
  • 如果下个 bar 的最高价大于等于止损价格,那么,就以止损价成交;
  1. 对于卖出止损的市价止损单
  • 如果下个 bar 的开盘价小于等于止损价,那么,就会以开盘价成交
  • 如果下个 bar 的最低价小于等于止损价,那么,就以止损价成交

限价止损单的撮合逻辑

  1. 当我们下过限价止损单之后,从下个 bar 开始,使用如下的撮合的逻辑。

  2. 对于买入止损的市价止损单

  • 如果下个 bar 的开盘价大于等于止损价,那么,就下一个限价单,限价单的撮合逻辑和原先的限价单一样;
  • 如果下个 bar 的最高价大于等于止损价,那么,就下一个限价单,限价单的撮合逻辑和原先的限价单一样;
  1. 对于卖出止损的市价止损单
  • 如果下个 bar 的开盘价小于等于止损价,那么,就下一个限价单,限价单的撮合逻辑和原先的限价单一样
  • 如果下个 bar 的最低价小于等于止损价,那么,就下一个限价单,限价单的撮合逻辑和原先的限价单一样

智慧、心灵、财富,总要有一个在路上,愿我们能在人生的道路上,不断成长、不断成熟~~~

感兴趣可以关注我的专栏:

my_quant_study_note:分享一些关于量化投资、量化交易相关的思考

backtrader 量化投资回测与交易:本专栏免费,分享 backtrader 相关的内容。

量化投资神器-backtrader 源码解析-从入门到精通:本专栏目前收费 99 元,预计更新 100 篇策略+20 篇 backtrader 讲解+80 篇源代码分析。