def initAlgoLayout(self): """""" self.lineSymbol = QtWidgets.QLineEdit() self.spinVolume = QtWidgets.QDoubleSpinBox() self.spinVolume.setMinimum(0) self.spinVolume.setMaximum(1000000000) self.spinVolume.setDecimals(6) self.spinInterval = QtWidgets.QSpinBox() self.spinInterval.setMinimum(20) self.spinInterval.setMaximum(3600) self.spinMinTickSpread = QtWidgets.QSpinBox() self.spinMinTickSpread.setMinimum(0) self.spinMinTickSpread.setMaximum(1000) Label = QtWidgets.QLabel grid = QtWidgets.QGridLayout() grid.addWidget(Label(u'代码'), 0, 0) grid.addWidget(self.lineSymbol, 0, 1) grid.addWidget(Label(u'单次刷单量'), 1, 0) grid.addWidget(self.spinVolume, 1, 1) grid.addWidget(Label(u'执行间隔'), 2, 0) grid.addWidget(self.spinInterval, 2, 1) grid.addWidget(Label(u'最小价差Tick'), 3, 0) grid.addWidget(self.spinMinTickSpread, 3, 1) return grid
def initUi(self): """""" self.lineSymbol = QtWidgets.QLineEdit() self.comboDirection = QtWidgets.QComboBox() self.comboDirection.addItem(DIRECTION_LONG) self.comboDirection.addItem(DIRECTION_SHORT) self.comboDirection.setCurrentIndex(0) self.spinPrice = QtWidgets.QDoubleSpinBox() self.spinPrice.setMinimum(0) self.spinPrice.setMaximum(1000000000) self.spinPrice.setDecimals(8) self.spinVolume = QtWidgets.QDoubleSpinBox() self.spinVolume.setMinimum(0) self.spinVolume.setMaximum(1000000000) self.spinVolume.setDecimals(6) self.spinTime = QtWidgets.QSpinBox() self.spinTime.setMinimum(30) self.spinTime.setMaximum(86400) self.spinInterval = QtWidgets.QSpinBox() self.spinInterval.setMinimum(10) self.spinInterval.setMaximum(3600) self.spinMinVolume = QtWidgets.QDoubleSpinBox() self.spinMinVolume.setMinimum(0) self.spinMinVolume.setMaximum(10000) self.spinMinVolume.setDecimals(6) self.spinMinVolume.setValue(1) buttonStart = QtWidgets.QPushButton(u'启动') buttonStart.clicked.connect(self.addAlgo) buttonStart.setMinimumHeight(100) Label = QtWidgets.QLabel grid = QtWidgets.QGridLayout() grid.addWidget(Label(u'交易代码'), 0, 0) grid.addWidget(self.lineSymbol, 0, 1) grid.addWidget(Label(u'方向'), 1, 0) grid.addWidget(self.comboDirection, 1, 1) grid.addWidget(Label(u'目标价格'), 2, 0) grid.addWidget(self.spinPrice, 2, 1) grid.addWidget(Label(u'总数量'), 3, 0) grid.addWidget(self.spinVolume, 3, 1) grid.addWidget(Label(u'总时间(秒)'), 4, 0) grid.addWidget(self.spinTime, 4, 1) grid.addWidget(Label(u'间隔(秒)'), 5, 0) grid.addWidget(self.spinInterval, 5, 1) grid.addWidget(Label(u'数量取整'), 6, 0) grid.addWidget(self.spinMinVolume, 6, 1) grid.addWidget(buttonStart, 7, 0, 1, 2) self.setLayout(grid)
def initUi(self): """初始化界面""" self.setWindowTitle(vtText.TRADING) self.setMaximumWidth(400) self.setFrameShape(self.Box) # 设置边框 self.setLineWidth(1) # 左边部分 labelSymbol = QtWidgets.QLabel(vtText.CONTRACT_SYMBOL) labelName = QtWidgets.QLabel(vtText.CONTRACT_NAME) labelDirection = QtWidgets.QLabel(vtText.DIRECTION) labelOffset = QtWidgets.QLabel(vtText.OFFSET) labelPrice = QtWidgets.QLabel(vtText.PRICE) self.checkFixed = QtWidgets.QCheckBox(u'') # 价格固定选择框 labelVolume = QtWidgets.QLabel(vtText.VOLUME) labelPriceType = QtWidgets.QLabel(vtText.PRICE_TYPE) labelExchange = QtWidgets.QLabel(vtText.EXCHANGE) labelCurrency = QtWidgets.QLabel(vtText.CURRENCY) labelProductClass = QtWidgets.QLabel(vtText.PRODUCT_CLASS) labelGateway = QtWidgets.QLabel(vtText.GATEWAY) #中间部分 self.lineSymbol = QtWidgets.QLineEdit() self.lineName = QtWidgets.QLineEdit() self.comboDirection = QtWidgets.QComboBox() self.comboDirection.addItems(self.directionList) self.comboOffset = QtWidgets.QComboBox() self.comboOffset.addItems(self.offsetList) self.spinPrice = QtWidgets.QDoubleSpinBox() self.spinPrice.setDecimals(4) self.spinPrice.setMinimum(0) self.spinPrice.setMaximum(100000) self.spinVolume = QtWidgets.QSpinBox() self.spinVolume.setMinimum(0) self.spinVolume.setMaximum(1000000) self.comboPriceType = QtWidgets.QComboBox() self.comboPriceType.addItems(self.priceTypeList) self.comboExchange = QtWidgets.QComboBox() self.comboExchange.addItems(self.exchangeList) self.comboCurrency = QtWidgets.QComboBox() self.comboCurrency.addItems(self.currencyList) self.comboProductClass = QtWidgets.QComboBox() self.comboProductClass.addItems(self.productClassList) self.comboGateway = QtWidgets.QComboBox() self.comboGateway.addItems(self.gatewayList) gridleft = QtWidgets.QGridLayout() gridleft.addWidget(labelSymbol, 0, 0) gridleft.addWidget(labelName, 1, 0) gridleft.addWidget(labelDirection, 2, 0) gridleft.addWidget(labelOffset, 3, 0) gridleft.addWidget(labelPrice, 4, 0) gridleft.addWidget(labelVolume, 5, 0) gridleft.addWidget(labelPriceType, 6, 0) gridleft.addWidget(labelExchange, 7, 0) gridleft.addWidget(labelCurrency, 8, 0) gridleft.addWidget(labelProductClass, 9, 0) gridleft.addWidget(labelGateway, 10, 0) gridleft.addWidget(self.lineSymbol, 0, 1, 1, -1) gridleft.addWidget(self.lineName, 1, 1, 1, -1) gridleft.addWidget(self.comboDirection, 2, 1, 1, -1) gridleft.addWidget(self.comboOffset, 3, 1, 1, -1) gridleft.addWidget(self.checkFixed, 4, 1) gridleft.addWidget(self.spinPrice, 4, 2) gridleft.addWidget(self.spinVolume, 5, 1, 1, -1) gridleft.addWidget(self.comboPriceType, 6, 1, 1, -1) gridleft.addWidget(self.comboExchange, 7, 1, 1, -1) gridleft.addWidget(self.comboCurrency, 8, 1, 1, -1) gridleft.addWidget(self.comboProductClass, 9, 1, 1, -1) gridleft.addWidget(self.comboGateway, 10, 1, 1, -1) # 右边部分 labelBid1 = QtWidgets.QLabel(vtText.BID_1) labelBid2 = QtWidgets.QLabel(vtText.BID_2) labelBid3 = QtWidgets.QLabel(vtText.BID_3) labelBid4 = QtWidgets.QLabel(vtText.BID_4) labelBid5 = QtWidgets.QLabel(vtText.BID_5) labelAsk1 = QtWidgets.QLabel(vtText.ASK_1) labelAsk2 = QtWidgets.QLabel(vtText.ASK_2) labelAsk3 = QtWidgets.QLabel(vtText.ASK_3) labelAsk4 = QtWidgets.QLabel(vtText.ASK_4) labelAsk5 = QtWidgets.QLabel(vtText.ASK_5) self.labelBidPrice1 = QtWidgets.QLabel() self.labelBidPrice2 = QtWidgets.QLabel() self.labelBidPrice3 = QtWidgets.QLabel() self.labelBidPrice4 = QtWidgets.QLabel() self.labelBidPrice5 = QtWidgets.QLabel() self.labelBidVolume1 = QtWidgets.QLabel() self.labelBidVolume2 = QtWidgets.QLabel() self.labelBidVolume3 = QtWidgets.QLabel() self.labelBidVolume4 = QtWidgets.QLabel() self.labelBidVolume5 = QtWidgets.QLabel() self.labelAskPrice1 = QtWidgets.QLabel() self.labelAskPrice2 = QtWidgets.QLabel() self.labelAskPrice3 = QtWidgets.QLabel() self.labelAskPrice4 = QtWidgets.QLabel() self.labelAskPrice5 = QtWidgets.QLabel() self.labelAskVolume1 = QtWidgets.QLabel() self.labelAskVolume2 = QtWidgets.QLabel() self.labelAskVolume3 = QtWidgets.QLabel() self.labelAskVolume4 = QtWidgets.QLabel() self.labelAskVolume5 = QtWidgets.QLabel() labelLast = QtWidgets.QLabel(vtText.LAST) self.labelLastPrice = QtWidgets.QLabel() self.labelReturn = QtWidgets.QLabel() self.labelLastPrice.setMinimumWidth(60) self.labelReturn.setMinimumWidth(60) gridRight = QtWidgets.QGridLayout() gridRight.addWidget(labelAsk5, 0, 0) gridRight.addWidget(labelAsk4, 1, 0) gridRight.addWidget(labelAsk3, 2, 0) gridRight.addWidget(labelAsk2, 3, 0) gridRight.addWidget(labelAsk1, 4, 0) gridRight.addWidget(labelLast, 5, 0) gridRight.addWidget(labelBid1, 6, 0) gridRight.addWidget(labelBid2, 7, 0) gridRight.addWidget(labelBid3, 8, 0) gridRight.addWidget(labelBid4, 9, 0) gridRight.addWidget(labelBid5, 10, 0) gridRight.addWidget(self.labelAskPrice5, 0, 1) gridRight.addWidget(self.labelAskPrice4, 1, 1) gridRight.addWidget(self.labelAskPrice3, 2, 1) gridRight.addWidget(self.labelAskPrice2, 3, 1) gridRight.addWidget(self.labelAskPrice1, 4, 1) gridRight.addWidget(self.labelLastPrice, 5, 1) gridRight.addWidget(self.labelBidPrice1, 6, 1) gridRight.addWidget(self.labelBidPrice2, 7, 1) gridRight.addWidget(self.labelBidPrice3, 8, 1) gridRight.addWidget(self.labelBidPrice4, 9, 1) gridRight.addWidget(self.labelBidPrice5, 10, 1) gridRight.addWidget(self.labelAskVolume5, 0, 2) gridRight.addWidget(self.labelAskVolume4, 1, 2) gridRight.addWidget(self.labelAskVolume3, 2, 2) gridRight.addWidget(self.labelAskVolume2, 3, 2) gridRight.addWidget(self.labelAskVolume1, 4, 2) gridRight.addWidget(self.labelReturn, 5, 2) gridRight.addWidget(self.labelBidVolume1, 6, 2) gridRight.addWidget(self.labelBidVolume2, 7, 2) gridRight.addWidget(self.labelBidVolume3, 8, 2) gridRight.addWidget(self.labelBidVolume4, 9, 2) gridRight.addWidget(self.labelBidVolume5, 10, 2) # 发单按钮 buttonSendOrder = QtWidgets.QPushButton(vtText.SEND_ORDER) buttonCancelAll = QtWidgets.QPushButton(vtText.CANCEL_ALL) size = buttonSendOrder.sizeHint() buttonSendOrder.setMinimumHeight(size.height() * 2) # 把按钮高度设为默认两倍 buttonCancelAll.setMinimumHeight(size.height() * 2) # 整合布局 hbox = QtWidgets.QHBoxLayout() hbox.addLayout(gridleft) hbox.addLayout(gridRight) vbox = QtWidgets.QVBoxLayout() vbox.addLayout(hbox) vbox.addWidget(buttonSendOrder) vbox.addWidget(buttonCancelAll) vbox.addStretch() self.setLayout(vbox) # 关联更新 buttonSendOrder.clicked.connect(self.sendOrder) buttonCancelAll.clicked.connect(self.cancelAll) self.lineSymbol.returnPressed.connect(self.updateSymbol)