中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VNPY中開盤前掛單失效的解決方法

發布時間:2021-12-04 15:23:21 來源:億速云 閱讀:178 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關VNPY中開盤前掛單失效的解決方法,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

在VNPY量化交易平臺中,掛停止單(STOP Order)是交易發起的常見方式,停止單是至一旦價位到了預定點位,才啟動交易的訂單。

期貨早盤9點和夜盤9點剛剛開票十分鐘,往往是波動最大的時段,交易機會很多。但是VNPY存在明明應該掛著停止單,在開盤時候就沒有了,應該是在開盤時刻,所有掛單都是失效了,雖然這些掛單是在VNPY內部失效,但是也會失效。具體代碼看了半天,還是沒有找到具體原因。

這里提供一個臨時修補方法。

  1. 定義一個全局策略變量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到來時候,會自動掛單。

關于VNPY中開盤前掛單失效的解決方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潮州市| 吉木萨尔县| 巫溪县| 武清区| 武山县| 旬阳县| 嵊泗县| 黎城县| 冷水江市| 龙岩市| 吉隆县| 新河县| 嘉禾县| 云林县| 农安县| 莆田市| 蓝山县| 荆门市| 仙居县| 金山区| 土默特左旗| 苍山县| 榆树市| 澎湖县| 巴南区| 潍坊市| 广西| 恩施市| 襄垣县| 清镇市| 安达市| 罗甸县| 镇赉县| 纳雍县| 怀宁县| 六枝特区| 松阳县| 渑池县| 米易县| 华阴市| 湾仔区|