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)
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 # 觸發價