新聞中心
本篇文章為大家展示了VNPY重新啟動后沒有停止掛單原因和解決方法是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)建站長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鄂托克企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司,鄂托克網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
之前在這個鏈接里面,提了vnpy重啟后,比如開盤前開始,即使符合掛單條件,也沒有掛單出現(xiàn)的問題,給了一個比較麻煩的方法。
后來研究代碼,發(fā)現(xiàn)原因應(yīng)該是:
程序用onInit(self) 初始化回放數(shù)據(jù),但是此時self.trading 為false,不會發(fā)出停止單;而啟動onStart時候,不會重新回放啟動,也就不會有掛單,這樣重啟第一個時間K線是沒有停止單在的。
由于歷史回測是連續(xù)的K線,這樣也就是造成回測和實(shí)盤差異較大。
之前鏈接解決方法比較復(fù)雜,簡單解決方法就是把回放最后一個bar放在onStart里面跑,這時候self.trading 為True,允許掛單。
1. 修改策略的onInit(self) ,回放不包括最后一個bar
def onInit(self): """初始化策略(必須由用戶繼承實(shí)現(xiàn))""" self.writeCtaLog(u'%s策略初始化' % self.name) # 載入歷史數(shù)據(jù),并采用回放計(jì)算的方式初始化策略數(shù)值 initData = self.loadBar(self.initDays) for bar in initData[:-1]: self.onBar(bar) self.putEvent()
2.給onStart加入最后一個bar回放,
def onStart(self): """啟動策略(必須由用戶繼承實(shí)現(xiàn))""" initData = self.loadBar(1) bar = initData[-1] self.onBar(bar) self.writeCtaLog(u'%s策略啟動' % self.name) self.putEvent()
上述內(nèi)容就是VNPY重新啟動后沒有停止掛單原因和解決方法是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站名稱:VNPY重新啟動后沒有停止掛單原因和解決方法是什么
瀏覽路徑:http://ef60e0e.cn/article/jjoeeo.html