Backtrader(十二)- 订单 Order -buy、sell、close
簡(jiǎn)介
訂單代表著發(fā)送給經(jīng)紀(jì)行的指令,觸發(fā)經(jīng)紀(jì)行(用broker對(duì)象模擬經(jīng)紀(jì)行)執(zhí)行相關(guān)的動(dòng)作。通常在策略類(lèi)中的next方法中創(chuàng)建訂單。
下訂單(買(mǎi)賣(mài))的方法
self.buy()、self.sell()、self.close()、self.order_target_size()、self.order_target_value()、self.order_target_percent() 等
buy()
def buy(self, data=None,size=None, price=None, plimit=None,exectype=None, valid=None, tradeid=0, oco=None,trailamount=None, trailpercent=None,parent=None, transmit=True,**kwargs):參數(shù)解釋:
data: 所要操作的行情數(shù)據(jù),即標(biāo)的資產(chǎn)數(shù)據(jù)。如果為None,則使用策略的self.datas[0]行情數(shù)據(jù)
size:下單量,size是一個(gè)正數(shù)。如果size=None,就會(huì)通過(guò)下單量管理者sizer確定下單量。
price:交易價(jià)格。默認(rèn)值None適用于Market、Close訂單。由市場(chǎng)決定具體的交易價(jià)格,對(duì)于Limit、Stop、StopLimit訂單,必須顯式給price賦值,price值決定了交易的觸發(fā)點(diǎn)。對(duì)于 StopTrail、StopTrailLimit 訂單,是否顯式設(shè)置price,將決定不同的交易觸發(fā)點(diǎn)
plimit:只適用于StopLimit , StopTrailLimit 訂單。plimit 為限制價(jià),而price為訂單執(zhí)行觸發(fā)價(jià)格
exectype:此字段指明所創(chuàng)建訂單的類(lèi)型,可取值如下:
bt.Order.Market 市價(jià)單(默認(rèn))
bt.Order.Close 收盤(pán)價(jià)單
bt.Order.Limit 限價(jià)單
bt.Order.Stop 止損單
bt.Order.StopLimit 止損限價(jià)單
bt.Order.StopTrail 止損跟蹤單
bt.Order.StopTrailLimit 止損跟蹤限價(jià)單
bt.Order.Historical:未知
valid:
可能的取值
None 生成的訂單不會(huì)過(guò)期,將一直在市場(chǎng)中等待滿(mǎn)足條件后執(zhí)行或被手動(dòng)取消
datetime.datetime / datetime.date 創(chuàng)建的訂單直到該日期時(shí)間有效。若超過(guò)該日期時(shí)間,且訂單仍未滿(mǎn)足執(zhí)行條件,則訂單過(guò)期取消
Order.DAY / 0 / timedelta() 生成一個(gè)單日訂單,有效期為1天,單日未滿(mǎn)足執(zhí)行條件,訂單就會(huì)過(guò)期取消,這個(gè)通常用于bar是分鐘級(jí)別的日內(nèi)交易。對(duì)于日線級(jí)別的bar不適用
numeric value 對(duì)應(yīng)于matplotlib中的日期時(shí)間格式的數(shù)值,作為訂單有效期截止時(shí)間
tradeid:這是backtrader應(yīng)用的一個(gè)內(nèi)部值,用于跟蹤相同資產(chǎn)上的重疊交易。當(dāng)通知訂單狀態(tài)的變化時(shí),此tradeid被發(fā)送回策略
** kwargs:用于其他broker可能支持的額外參數(shù)。backtrader將kwargs傳遞給創(chuàng)建的order對(duì)象,供這些broker使用,如Interactive Brokers支持:orderType、lmtPrice、auxPrice
返回值:
被創(chuàng)建的訂單對(duì)象
sell()
def sell(self, data=None,size=None, price=None, plimit=None,exectype=None, valid=None, tradeid=0, oco=None,trailamount=None, trailpercent=None,parent=None, transmit=True,**kwargs):參數(shù):與buy完全相同
close()
介紹:
close方法首先檢查當(dāng)前的持倉(cāng)情況,然后根據(jù)持倉(cāng)情況對(duì)應(yīng)地使用buy或者sell方法來(lái)清空倉(cāng)位,即平倉(cāng)。也就是對(duì)長(zhǎng)倉(cāng),用sell方法,對(duì)短倉(cāng)用buy方法來(lái)平倉(cāng),如果用戶(hù)不指定具體的size值,size會(huì)被自動(dòng)計(jì)算,完全平倉(cāng)。如果指定來(lái)size值,且size比持倉(cāng)量少,那么將實(shí)現(xiàn)部分平倉(cāng)。
參數(shù):與 buy 完全相同。
總結(jié)
以上是生活随笔為你收集整理的Backtrader(十二)- 订单 Order -buy、sell、close的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: zeek系列之:流量数据采集流量探针ze
- 下一篇: JAVA基于微信小程序的校园信息共享平台