예제 #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['boxNewClose'].get() == "新倉":
                sNewClose = 0

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

            if self.__dOrder['boxPeriod'].get() == "ROD":
                sTradeType = 0

            if self.__dOrder['boxSpecialTradeType'].get() == "LMT(限價)":
                sSpecialTradeType = 0
            elif self.__dOrder['boxSpecialTradeType'].get() == "MKT(市價)":
                sSpecialTradeType = 1
            elif self.__dOrder['boxSpecialTradeType'].get() == "STL(停損限價)":
                sSpecialTradeType = 2
            elif self.__dOrder['boxSpecialTradeType'].get() == "STP(停損市價)":
                sSpecialTradeType = 3

            # 建立下單用的參數(OVERSEAFUTUREORDER)物件(下單時要填商品代號,買賣別,委託價,數量等等的一個物件)
            oOrder = sk.OVERSEAFUTUREORDER()
            # 填入完整帳號
            oOrder.bstrFullAccount = self.__dOrder['boxAccount']
            # 填入交易所代號
            oOrder.bstrExchangeNo = self.__dOrder['txtExchangeNo'].get()
            # 填入期權代號
            oOrder.bstrStockNo = self.__dOrder['txtStockNo'].get()
            # 近月商品年月
            oOrder.bstrYearMonth = self.__dOrder['txtYearMonth'].get()
            # 委託價
            oOrder.bstrOrder = self.__dOrder['txtOrder'].get()
            # 委託價分子
            oOrder.bstrOrderNumerator = self.__dOrder['txtOrderNumerator'].get(
            )
            # 觸發價
            oOrder.bstrTrigger = self.__dOrder['txtTrigger'].get()
            # 觸發價分子
            oOrder.bstrTriggerNumerator = self.__dOrder[
                'txtTriggerNumerator'].get()
            # 委託數量
            oOrder.nQty = int(self.__dOrder['txtQty'].get())

            # 買賣別
            oOrder.sBuySell = sBuySell
            # 新倉
            oOrder.sNewClose = sNewClose
            # 非當沖、當沖
            oOrder.sDayTrade = sDayTrade
            # ROD
            oOrder.sTradeType = sTradeType
            # LMT(限價)、MKT(市價)、STL(停損限價)、STP(停損市價)
            oOrder.sSpecialTradeType = sSpecialTradeType

            message, m_nCode = skO.SendOverSeaFutureOrder(
                self.__dOrder['txtID'], bAsyncOrder, oOrder)
            self.__oMsg.SendReturnMessage("Order", m_nCode,
                                          "SendOverSeaFutureOrder",
                                          self.__dOrder['listInformation'])
        except Exception as e:
            messagebox.showerror("error!", e)
예제 #2
0
    def __SendOrder_Click(self, bAsyncOrder):
        try:
            if self.__dOrder['boxCallPut'].get() == "CALL":
                sCallPut = 0
            elif self.__dOrder['boxCallPut'].get() == "PUT":
                sCallPut = 1

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

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

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

            if self.__dOrder['boxPeriod'].get() == "ROD":
                sTradeType = 0

            if self.__dOrder['boxSpecialTradeType'].get() == "LMT(限價)":
                sSpecialTradeType = 0

            # 建立下單用的參數(OVERSEAFUTUREORDER)物件(下單時要填商品代號,買賣別,委託價,數量等等的一個物件)
            oOrder = sk.OVERSEAFUTUREORDER()
            # 填入完整帳號
            oOrder.bstrFullAccount =  self.__dOrder['boxAccount']
            # 填入交易所代號
            oOrder.bstrExchangeNo = self.__dOrder['txtExchangeNo'] .get()
            # 填入期權代號
            oOrder.bstrStockNo = self.__dOrder['txtStockNo'].get()
            # 近月商品年月
            oOrder.bstrYearMonth = self.__dOrder['txtYearMonth'].get()
            # 履約價
            oOrder.bstrStrikePrice = self.__dOrder['txtStrikePrice'].get()
            # Call Put
            oOrder.sCallPut = sCallPut
            # 委託數量
            oOrder.nQty = int(self.__dOrder['txtQty'].get())
            # 委託價
            oOrder.bstrOrder = self.__dOrder['txtOrder'].get()
            # 委託價分子
            oOrder.bstrOrderNumerator = self.__dOrder['txtOrderNumerator'].get()
            # 買賣別
            oOrder.sBuySell = sBuySell
            # 新倉、平倉
            oOrder.sNewClose = sNewClose
            # 非當沖、當沖
            oOrder.sDayTrade = sDayTrade
            # ROD
            oOrder.sTradeType = sTradeType
            # LMT(限價)
            oOrder.sSpecialTradeType = sSpecialTradeType
            # 觸發價
            oOrder.bstrTrigger = self.__dOrder['txtTrigger'].get()
            # 觸發價分子
            oOrder.bstrTriggerNumerator = self.__dOrder['txtTriggerNumerator'].get()

            message, m_nCode = skO.SendOverSeaOptionOrder(Global.Global_IID, bAsyncOrder, oOrder)
            self.__oMsg.SendReturnMessage("Order", m_nCode, "SendOverSeaOptionOrder", self.__dOrder['listInformation'])
            if bAsyncOrder == False and m_nCode == 0:
                strMsg = "海選委託: " + str(message)
                self.__oMsg.WriteMessage( strMsg, self.__dOrder['listInformation'])
        except Exception as e:
            messagebox.showerror("error!", e)