VNPY中開盤前掛單失效的解決方法
在VNPY量化交易平臺中,掛停止單(STOP Order)是交易發起的常見方式,停止單是至一旦價位到了預定點位,才啟動交易的訂單。
期貨早盤9點和夜盤9點剛剛開票十分鐘,往往是波動最大的時段,交易機會很多。但是VNPY存在明明應該掛著停止單,在開盤時候就沒有了,應該是在開盤時刻,所有掛單都是失效了,雖然這些掛單是在VNPY內部失效,但是也會失效。具體程式碼看了半天,還是沒有找到具體原因。
這裡提供一個臨時修補方法。
-
定義一個全域性策略變數stopOpenOrder, 預設值為False;
定義個全域性變數 status,預設值為NA,放在策略判斷交易程式碼中,一旦觸發掛單,更新這個為掛單方向。
最後把停止單掛單價格也設為全域性變數
2.覆蓋停止單推送function,一旦有開單,這個 stopOpenOrder變為True
def onStopOrder(self, so):
"""停止單推送"""
self.writeCtaLog(u'%s阻止單, 品種:%s, 狀態: %s, 方向:%s,價格:%s' % (self.name, so.vtSymbol, so.status, so.orderType, so.price))
if so.offset == OFFSET_OPEN:
self.stopOpenOrder = True
self.putEvent()
3.覆蓋OnTick function, 如果pos為空, stopOpenOrder == False時候, 如果 status是buy 或者short,進行相應掛單。
def onTick(self, tick):
"""收到行情TICK推送(必須由使用者繼承實現)"""
if self.pos == 0 and self.stopOpenOrder == False:
if self.status == "buy":
self.buy(self.buyPrice, self.fixedSize, True)
elif self.status == "short":
self.short(self.shortPrice, self.fixedSize, True)
self.bg.updateTick(tick)
在實際測試中,如果符合掛單條件,但是並沒有開出掛單,當第一個tick到來時候,會自動掛單。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-2563701/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VNPY重新啟動後,沒有停止單掛單原因和簡潔解決方法
- 專案中 vscode 外掛擴充套件失效怎麼解決VSCode套件
- ASP程式設計中Session物件失效的客戶端解決方法程式設計Session物件客戶端
- MacOS Big Sur更新後git失效的解決方法MacGit
- macbook air裝win10系統後鍵盤快捷鍵失效解決方法MacAIWin10
- @Transactional詳解(作用、失效場景與解決方法)
- 解決方案 | 外接鍵盤win+d失效,綠聯鍵盤win+d,win+e失效
- VNPY實盤交易中,出現發單成功但是沒有交易情況
- 解決busuanzi_count突然失效的方法(hexo-theme-next)Hexo
- Win10系統下Adobe Flash Player失效的解決方法Win10
- VS2022 前的VS版本無法下載類似Viasfora等外掛的解決方法,去VS外掛網站單獨下載,再安裝網站
- 用最簡單的例子講解js中解決非同步的方法JS非同步
- tarui drop失效,解決配置UI
- XML檔案中url路徑中&失效解決辦法XML
- Element Plus表單呼叫resetFields方法失效
- SpringBoot框架:兩個方法同時呼叫時父方法使內部方法的DataSource註解失效的解決辦法Spring Boot框架
- 解決requests庫中session.verify引數失效的問題Session
- python 安裝外掛太慢解決方法Python
- 專案整合seata和mybatis-plus衝突問題解決方案:(分頁外掛失效, 自動填充失效, 自己注入的id生成器失效 找不到mapper檔案解決方案)MyBatisAPP
- height:100%失效解決辦法
- 【OracleEBS】 訂單暫掛問題sql解決OracleSQL
- win10系統下使用Win+G截圖失效的解決方法Win10
- 解決Vue中”This dependency was not found”的方法Vue
- reCAPTCHA打不開的解決方法APT
- 解決GitHub打不開的方法Github
- ime tools後ctrl+shift切換輸入法失效解決方法
- 一個恢復CSI掛載資訊的解決方法
- win10系統開機卡在選擇鍵盤佈局的解決方法Win10
- VNPY中 Tick級別準高頻交易簡單策略
- Win10系統下剪貼簿歷史記錄失效的解決方法Win10
- eclipse環境下lombok中的註解失效 @AllArgsConstructor @Slf4j 註解失效EclipseLombokStruct
- 成功解決PyCharm 彈出 Server‘s certificate is not trusted 的簡單解決方法PyCharmServerRust
- Windows10系統開始選單顯示全屏的解決方法Windows
- medz/cors 跨域突然失效的解決辦法!CORS跨域
- 單重繼承缺陷的臨時解決方法繼承
- 解決WPF中過載Window.OnRender函式失效問題函式
- jira-dev-tool外掛安裝失敗的解決方法dev
- 一個VNPY 的“CTP:平昨倉位不足”問題的解決記錄