Example #1
0
    def __SendOrder_Click(self, bAsyncOrder):
        try:
            if self.__dOrder['boxBuySell'].get() == "買進":
                sBuySell = 0
            elif self.__dOrder['boxBuySell'].get() == "賣出":
                sBuySell = 1

            if self.__dOrder['boxBuySell2'].get() == "買進":
                sBuySell2 = 0
            elif self.__dOrder['boxBuySell2'].get() == "賣出":
                sBuySell2 = 1

            if self.__dOrder['boxPeriod'].get() == "ROD":
                sTradeType = 0
            elif self.__dOrder['boxPeriod'].get() == "IOC":
                sTradeType = 1
            elif self.__dOrder['boxPeriod'].get() == "FOK":
                sTradeType = 2

            if self.__dOrder['boxNewClose'].get() == "新倉":
                sNewClose = 0
            elif self.__dOrder['boxNewClose'].get() == "平倉":
                sNewClose = 1
            elif self.__dOrder['boxNewClose'].get() == "自動":
                sNewClose = 2

            if self.__dOrder['boxFlag'].get() == "非當沖":
                sDayTrade = 0
            elif self.__dOrder['boxFlag'].get() == "當沖":
                sDayTrade = 1

            if self.__dOrder['boxReserved'].get() == "盤中":
                sReserved = 0
            elif self.__dOrder['boxReserved'].get() == "T盤預約":
                sReserved = 1

            # 建立下單用的參數(FUTUREOCOORDER)物件(下單時要填商品代號,買賣別,委託價,數量等等的一個物件)
            oOrder = sk.FUTUREOCOORDER()
            # 填入完整帳號
            oOrder.bstrFullAccount = self.__dOrder['boxAccount']
            # 填入期權代號
            oOrder.bstrStockNo = self.__dOrder['txtStockNo'].get()
            # 買賣別
            oOrder.sBuySell = sBuySell
            oOrder.sBuySell2 = sBuySell2
            # ROD、IOC、FOK
            oOrder.sTradeType = sTradeType
            # 新倉、平倉、自動
            oOrder.sNewClose = sNewClose
            # 非當沖、當沖
            oOrder.sDayTrade = sDayTrade
            # 委託價
            oOrder.bstrPrice = self.__dOrder['txtPrice'].get()
            oOrder.bstrPrice2 = self.__dOrder['txtPrice2'].get()
            # 委託數量
            oOrder.nQty = int(self.__dOrder['txtQty'].get())
            # 觸發價
            oOrder.bstrTrigger = self.__dOrder['txtTrigger'].get()
            oOrder.bstrTrigger2 = self.__dOrder['txtTrigger2'].get()
            # 盤中、T盤預約
            oOrder.sReserved = sReserved

            message, m_nCode = skO.SendFutureOCOOrder(Global.Global_IID,
                                                      bAsyncOrder, oOrder)
            self.__oMsg.SendReturnMessage("Order", m_nCode,
                                          "SendFutureOCOOrder",
                                          self.__dOrder['listInformation'])
            if bAsyncOrder == False and m_nCode == 0:
                strMsg = "期貨OCO委託: " + str(message)
                self.__oMsg.WriteMessage(strMsg,
                                         self.__dOrder['listInformation'])
        except Exception as e:
            messagebox.showerror("error!", e)
Example #2
0
        strMsg = skC.SKCenterLib_GetReturnCodeMessage(res)

        Logs('Order {} @ {}, Vol : {}, msg :{}'.format(sMer, sPrice, sVol,
                                                       strMsg))

        if res == 0:
            return True, resMsg
        else:
            return False, resMsg

    def FutureOCOOrder(self, async, sMer, sBuySell, sBuySell2, sTradeType,
                       sDayTrade, sPrice, sPrice2, sTrigger, sTrigger2, sVol,
                       sNewClose, sReserved):

        # 建立下單用的參數(FUTUREORDER)物件(下單時要填商品代號,買賣別,委託價,數量等等的一個物件)
        oOrder = sk.FUTUREOCOORDER()
        # 填入完整帳號
        oOrder.bstrFullAccount = self.account_list['future']
        # 填入期權代號
        oOrder.bstrStockNo = sMer
        # 買賣別
        oOrder.sBuySell = sBuySell
        oOrder.sBuySell2 = sBuySell2
        # ROD、IOC、FOK
        oOrder.sTradeType = sTradeType
        # 非當沖、當沖
        oOrder.sDayTrade = sDayTrade
        # 委託價
        oOrder.bstrPrice = sPrice
        oOrder.bstrPrice2 = sPrice2
        # 觸發價