本篇文章為大家展示了VNPY重新啟動后沒有停止掛單原因和解決方法是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創新互聯公司專注于商洛網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供商洛營銷型網站建設,商洛網站制作、商洛網頁設計、商洛網站官網定制、微信平臺小程序開發服務,打造商洛網絡公司原創品牌,更為您提供商洛網站排名全網營銷落地服務。之前在這個鏈接里面,提了vnpy重啟后,比如開盤前開始,即使符合掛單條件,也沒有掛單出現的問題,給了一個比較麻煩的方法。
后來研究代碼,發現原因應該是:
程序用onInit(self) 初始化回放數據,但是此時self.trading 為false,不會發出停止單;而啟動onStart時候,不會重新回放啟動,也就不會有掛單,這樣重啟第一個時間K線是沒有停止單在的。
由于歷史回測是連續的K線,這樣也就是造成回測和實盤差異較大。
之前鏈接解決方法比較復雜,簡單解決方法就是把回放最后一個bar放在onStart里面跑,這時候self.trading 為True,允許掛單。
1. 修改策略的onInit(self) ,回放不包括最后一個bar
def onInit(self): """初始化策略(必須由用戶繼承實現)""" self.writeCtaLog(u'%s策略初始化' % self.name) # 載入歷史數據,并采用回放計算的方式初始化策略數值 initData = self.loadBar(self.initDays) for bar in initData[:-1]: self.onBar(bar) self.putEvent()
2.給onStart加入最后一個bar回放,
def onStart(self): """啟動策略(必須由用戶繼承實現)""" initData = self.loadBar(1) bar = initData[-1] self.onBar(bar) self.writeCtaLog(u'%s策略啟動' % self.name) self.putEvent()
上述內容就是VNPY重新啟動后沒有停止掛單原因和解決方法是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯-成都網站建設公司行業資訊頻道。
網頁名稱:VNPY重新啟動后沒有停止掛單原因和解決方法是什么-創新互聯
瀏覽路徑:http://vcdvsql.cn/article36/dscosg.html
成都網站建設公司_創新互聯,為您提供服務器托管、靜態網站、全網營銷推廣、標簽優化、移動網站建設、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯