예제 #1
0
    def initAlgoLayout(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(0)
        self.spinVolume.setValue(1)

        self.comboOffset = QtWidgets.QComboBox()
        self.comboOffset.addItems(['', OFFSET_OPEN, OFFSET_CLOSE])
        self.comboOffset.setCurrentIndex(0)

        self.spinPotsize = QtWidgets.QDoubleSpinBox()
        self.spinPotsize.setMinimum(0)
        self.spinPotsize.setValue(4)
        self.spinPotsize.setMaximum(1000)
        self.spinPotsize.setDecimals(0)

        self.spinFailval = QtWidgets.QDoubleSpinBox()
        self.spinFailval.setMinimum(0)
        self.spinFailval.setMaximum(1000)
        self.spinFailval.setDecimals(0)

        self.spinGoodval = QtWidgets.QDoubleSpinBox()
        self.spinGoodval.setMinimum(0)
        self.spinGoodval.setMaximum(1000)
        self.spinGoodval.setDecimals(0)

        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.spinPotsize, 1, 1)

        grid.addWidget(Label(u'方向'), 2, 0)
        grid.addWidget(self.comboDirection, 2, 1)

        grid.addWidget(Label(u'数量'), 3, 0)
        grid.addWidget(self.spinVolume, 3, 1)

        return grid
예제 #2
0
 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)
예제 #3
0
    def initSignalLayout(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(0)
        
        self.comboOffset = QtWidgets.QComboBox()
        self.comboOffset.addItems(['', OFFSET_OPEN, OFFSET_CLOSE])
        self.comboOffset.setCurrentIndex(0)
        
        self.spinPriceAdd = QtWidgets.QDoubleSpinBox()
        self.spinPriceAdd.setMinimum(0)
        self.spinPriceAdd.setMaximum(1000000000)
        self.spinPriceAdd.setDecimals(8)        
        
        buttonStart = QtWidgets.QPushButton(u'启动')
        buttonStart.clicked.connect(self.addSignal)
        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.comboOffset, 4, 1)
        # grid.addWidget(Label(u'超价'), 5, 0)
        # grid.addWidget(self.spinPriceAdd, 5, 1)        
        
        print 'bt. initSignalLayout():',grid
        return grid
예제 #4
0
파일: dmaAlgo.py 프로젝트: pyctp/vnpurectp
 def initAlgoLayout(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.comboPriceType = QtWidgets.QComboBox()
     self.comboPriceType.addItems([PRICETYPE_LIMITPRICE, PRICETYPE_MARKETPRICE])
     self.comboPriceType.setCurrentIndex(0)
     
     self.comboOffset = QtWidgets.QComboBox()
     self.comboOffset.addItems(['', OFFSET_OPEN, OFFSET_CLOSE])
     self.comboOffset.setCurrentIndex(0)
     
     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.comboPriceType, 4, 1)
     grid.addWidget(Label(u'开平'), 5, 0)
     grid.addWidget(self.comboOffset, 5, 1)
     
     return grid
예제 #5
0
파일: stAlgo.py 프로젝트: pyctp/vnpurectp
    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
예제 #6
0
    def initSignalLayout(self):
        """"""

        self.lineSymbol = QtWidgets.QLineEdit()

        self.comboDirection = QtWidgets.QComboBox()
        self.comboDirection.addItem(DIRECTION_LONG)
        self.comboDirection.addItem(DIRECTION_SHORT)
        self.comboDirection.setCurrentIndex(0)

        self.spinPotsize = QtWidgets.QDoubleSpinBox()
        self.spinPotsize.setMinimum(0)
        self.spinPotsize.setMaximum(1000)
        self.spinPotsize.setDecimals(0)

        self.spinFailval = QtWidgets.QDoubleSpinBox()
        self.spinFailval.setMinimum(0)
        self.spinFailval.setMaximum(1000)
        self.spinFailval.setDecimals(0)

        self.spinGoodval = QtWidgets.QDoubleSpinBox()
        self.spinGoodval.setMinimum(0)
        self.spinGoodval.setMaximum(1000)
        self.spinGoodval.setDecimals(0)

        buttonStart = QtWidgets.QPushButton(u'启动')
        buttonStart.clicked.connect(self.addSignal)
        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.spinPotsize, 1, 1)
        grid.addWidget(Label(u'亏点'), 2, 0)
        grid.addWidget(self.spinFailval, 2, 1)
        grid.addWidget(Label(u'盈点'), 3, 0)
        grid.addWidget(self.spinGoodval, 3, 1)

        return grid
예제 #7
0
    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)