示例#1
0
 def initAlgoLayout(self):
     """"""
     self.lineActiveVtSymbol = QtWidgets.QLineEdit()
     self.linePassiveVtSymbol = QtWidgets.QLineEdit()
     
     validator = QtGui.QDoubleValidator()
     validator.setBottom(0)
     
     self.lineSpread = QtWidgets.QLineEdit()
     self.lineSpread.setValidator(validator)
     
     self.lineVolume = QtWidgets.QLineEdit()
     self.lineVolume.setValidator(validator)
     
     # intValidator = QtGui.QIntValidator()
     intValidator = QtGui.QDoubleValidator()
     intValidator.setBottom(10)
     self.lineInterval = QtWidgets.QLineEdit()
     self.lineInterval.setValidator(intValidator)
     
     Label = QtWidgets.QLabel
     
     grid = QtWidgets.QGridLayout()
     grid.addWidget(Label(u'主动腿代码'), 0, 0)
     grid.addWidget(self.lineActiveVtSymbol, 0, 1)
     grid.addWidget(Label(u'被动腿代码'), 1, 0)
     grid.addWidget(self.linePassiveVtSymbol, 1, 1)
     grid.addWidget(Label(u'套利价差'), 2, 0)
     grid.addWidget(self.lineSpread, 2, 1)
     grid.addWidget(Label(u'委托数量'), 3, 0)
     grid.addWidget(self.lineVolume, 3, 1)
     grid.addWidget(Label(u'运行间隔'), 4, 0)
     grid.addWidget(self.lineInterval, 4, 1)
     
     return grid
示例#2
0
    def initAlgoLayout(self):
        """"""
        self.lineVtSymbol = QtWidgets.QLineEdit()

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

        doubleValidator = QtGui.QDoubleValidator()
        doubleValidator.setBottom(0)

        intValidator = QtGui.QIntValidator()
        intValidator.setBottom(1)

        self.linePrice = QtWidgets.QLineEdit()
        self.linePrice.setValidator(doubleValidator)

        self.lineVolume = QtWidgets.QLineEdit()
        self.lineVolume.setValidator(doubleValidator)

        self.lineDisplay = QtWidgets.QLineEdit()
        self.lineDisplay.setValidator(doubleValidator)

        self.lineInterval = QtWidgets.QLineEdit()
        self.lineInterval.setValidator(intValidator)

        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.lineVtSymbol, 0, 1)
        grid.addWidget(Label(u'方向'), 1, 0)
        grid.addWidget(self.comboDirection, 1, 1)
        grid.addWidget(Label(u'价格'), 2, 0)
        grid.addWidget(self.linePrice, 2, 1)
        grid.addWidget(Label(u'数量'), 3, 0)
        grid.addWidget(self.lineVolume, 3, 1)
        grid.addWidget(Label(u'挂出数量'), 4, 0)
        grid.addWidget(self.lineDisplay, 4, 1)
        grid.addWidget(Label(u'运行间隔'), 5, 0)
        grid.addWidget(self.lineInterval, 5, 1)
        grid.addWidget(Label(u'开平'), 6, 0)
        grid.addWidget(self.comboOffset, 6, 1)

        return grid
示例#3
0
    def initAlgoLayout(self):
        """"""
        self.lineVtSymbol = QtWidgets.QLineEdit()

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

        doubleValidator = QtGui.QDoubleValidator()
        doubleValidator.setBottom(0)

        self.linePrice = QtWidgets.QLineEdit()
        self.linePrice.setValidator(doubleValidator)

        self.comboClosePips = QtWidgets.QComboBox()
        self.comboClosePips.addItems(['2', '3', '4', '5', '6', '7', '8', '9'])
        self.comboClosePips.setCurrentIndex(4)
        self.comboStopPips = QtWidgets.QComboBox()
        self.comboStopPips.addItems(['2', '3', '4', '5', '6', '7', '8', '9'])
        self.comboStopPips.setCurrentIndex(2)

        self.lineVolume = QtWidgets.QLineEdit()
        self.lineVolume.setValidator(doubleValidator)

        self.comboPrePips = QtWidgets.QComboBox()
        self.comboPrePips.addItems(['2', '3', '4', '5', '6', '7', '8', '9'])
        self.comboPrePips.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.lineVtSymbol, 0, 1)
        grid.addWidget(Label(u'方向'), 1, 0)
        grid.addWidget(self.comboDirection, 1, 1)
        grid.addWidget(Label(u'价格'), 2, 0)
        grid.addWidget(self.linePrice, 2, 1)
        grid.addWidget(Label(u'数量'), 3, 0)
        grid.addWidget(self.lineVolume, 3, 1)
        grid.addWidget(Label(u'提前跳'), 4, 0)
        grid.addWidget(self.comboPrePips, 4, 1)
        grid.addWidget(Label(u'止盈跳'), 5, 0)
        grid.addWidget(self.comboClosePips, 5, 1)
        grid.addWidget(Label(u'止损跳'), 6, 0)
        grid.addWidget(self.comboStopPips, 6, 1)

        return grid
示例#4
0
    def initAlgoLayout(self):
        """"""
        self.lineStrategyName = QtWidgets.QLineEdit()
        self.lineVtSymbol = QtWidgets.QLineEdit()

        validator = QtGui.QDoubleValidator()
        validator.setBottom(0)
        intValidator = QtGui.QIntValidator()
        intValidator.setBottom(1)

        self.lineSpread = QtWidgets.QLineEdit()
        self.lineSpread.setValidator(validator)

        self.lineVolume = QtWidgets.QLineEdit()
        self.lineVolume.setValidator(intValidator)

        self.lineTradeCommand = QtWidgets.QLineEdit()

        self.lineInterval = QtWidgets.QLineEdit()
        self.lineInterval.setValidator(intValidator)

        Label = QtWidgets.QLabel

        grid = QtWidgets.QGridLayout()
        grid.addWidget(Label(u'价差合约'), 0, 0)
        grid.addWidget(self.lineVtSymbol, 0, 1)
        grid.addWidget(Label(u'交易命令'), 1, 0)
        grid.addWidget(self.lineTradeCommand, 1, 1)
        grid.addWidget(Label(u'套利价差'), 2, 0)
        grid.addWidget(self.lineSpread, 2, 1)
        grid.addWidget(Label(u'委托数量'), 3, 0)
        grid.addWidget(self.lineVolume, 3, 1)
        grid.addWidget(Label(u'运行间隔'), 4, 0)
        grid.addWidget(self.lineInterval, 4, 1)
        grid.addWidget(Label(u'策略名称'), 5, 0)
        grid.addWidget(self.lineStrategyName, 5, 1)

        return grid
示例#5
0
 def initUi(self):
     """"""
     self.setWindowTitle(u'交易复制')
     self.setMinimumWidth(700)
     self.setMinimumHeight(700)
     
     # 创建组件
     self.lineReqAddress = QtWidgets.QLineEdit(self.REQ_ADDRESS)
     self.lineSubAddress= QtWidgets.QLineEdit(self.SUB_ADDRESS)
     self.lineRepAddress = QtWidgets.QLineEdit(self.REP_ADDRESS)
     self.linePubAddress = QtWidgets.QLineEdit(self.PUB_ADDRESS)
     
     validator = QtGui.QDoubleValidator()
     validator.setBottom(0)
     self.lineCopyRatio = QtWidgets.QLineEdit()
     self.lineCopyRatio.setValidator(validator)
     self.lineCopyRatio.setText(self.COPY_RATIO)
     
     validator2 = QtGui.QIntValidator()
     validator2.setBottom(1)
     self.lineInterval = QtWidgets.QLineEdit()
     self.lineInterval.setValidator(validator2)
     self.lineInterval.setText(self.INTERVAL)
     
     self.buttonProvider = QtWidgets.QPushButton(u'启动发布者')
     self.buttonProvider.clicked.connect(self.startProvider)
     
     self.buttonSubscriber = QtWidgets.QPushButton(u'启动订阅者')
     self.buttonSubscriber.clicked.connect(self.startSubscriber)
     
     self.buttonStopEngine = QtWidgets.QPushButton(u'停止')
     self.buttonStopEngine.clicked.connect(self.stopEngine)
     self.buttonStopEngine.setEnabled(False)
     
     self.buttonResetAddress = QtWidgets.QPushButton(u'重置地址')
     self.buttonResetAddress.clicked.connect(self.resetAddress)
     
     self.logMonitor = QtWidgets.QTextEdit()
     self.logMonitor.setReadOnly(True)
     
     self.widgetList = [
         self.lineCopyRatio,
         self.lineInterval,
         self.linePubAddress,
         self.lineSubAddress,
         self.lineRepAddress,
         self.lineReqAddress,
         self.buttonProvider,
         self.buttonSubscriber,
         self.buttonResetAddress
     ]
     
     # 布局
     QLabel = QtWidgets.QLabel
     grid = QtWidgets.QGridLayout()
     
     grid.addWidget(QLabel(u'响应地址'), 0, 0)
     grid.addWidget(self.lineRepAddress, 0, 1)
     grid.addWidget(QLabel(u'请求地址'), 0, 2)
     grid.addWidget(self.lineReqAddress, 0, 3)
     
     grid.addWidget(QLabel(u'发布地址'), 1, 0)
     grid.addWidget(self.linePubAddress, 1, 1)
     grid.addWidget(QLabel(u'订阅地址'), 1, 2)
     grid.addWidget(self.lineSubAddress, 1, 3)
     
     grid.addWidget(QLabel(u'发布间隔(秒)'), 2, 0)
     grid.addWidget(self.lineInterval, 2, 1)
     grid.addWidget(QLabel(u'复制比例(倍)'), 2, 2)
     grid.addWidget(self.lineCopyRatio, 2, 3)
     
     grid.addWidget(self.buttonProvider, 3, 0, 1, 2)
     grid.addWidget(self.buttonSubscriber, 3, 2, 1, 2)
     grid.addWidget(self.buttonStopEngine, 4, 0, 1, 2)
     grid.addWidget(self.buttonResetAddress, 4, 2, 1, 2)
     
     grid.addWidget(self.logMonitor, 5, 0, 1, 4)
     
     self.setLayout(grid)
示例#6
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(vtText.TRADING)
        self.setFixedHeight(400)
        self.setFixedWidth(600)
        self.setFrameShape(self.Box)    # 设置边框
        self.setLineWidth(1)           

        # 左边部分
        labelPriceType = QtWidgets.QLabel(vtText.PRICE_TYPE)
        labelSymbol = QtWidgets.QLabel(u'VT代码')
        labelPrice = QtWidgets.QLabel(vtText.PRICE)
        labelVolume = QtWidgets.QLabel(u'数量')
        labelOffset = QtWidgets.QLabel(vtText.OFFSET)
        
        self.comboPriceType = QtWidgets.QComboBox()
        self.comboPriceType.addItems(self.priceTypeList)
        
        self.lineSymbol = QtWidgets.QLineEdit()
        
        validator = QtGui.QDoubleValidator()
        validator.setBottom(0)        

        self.linePrice = QtWidgets.QLineEdit()
        self.linePrice.setValidator(validator)
        
        self.lineVolume = QtWidgets.QLineEdit()
        self.lineVolume.setValidator(validator)

        self.comboOffset = QtWidgets.QComboBox()
        self.comboOffset.addItems(self.offsetList)
        
        gridLeft = QtWidgets.QGridLayout()
        gridLeft.addWidget(labelPriceType, 0, 0)
        gridLeft.addWidget(labelSymbol, 1, 0)
        gridLeft.addWidget(labelPrice, 2, 0)
        gridLeft.addWidget(labelVolume, 3, 0)
        gridLeft.addWidget(labelOffset, 4, 0)
        
        gridLeft.addWidget(self.comboPriceType, 0, 1)
        gridLeft.addWidget(self.lineSymbol, 1, 1)
        gridLeft.addWidget(self.linePrice, 2, 1)
        gridLeft.addWidget(self.lineVolume, 3, 1)
        gridLeft.addWidget(self.comboOffset, 4, 1)
        
        # 右边部分
        self.depthMonitor = DepthMonitor(self.mainEngine, self.eventEngine)

        # 发单按钮
        buttonBuy = QtWidgets.QPushButton(u'买/多')
        buttonSell = QtWidgets.QPushButton(u'卖/空')
        buttonCancelAll = QtWidgets.QPushButton(vtText.CANCEL_ALL)
        
        size = buttonBuy.sizeHint()
        buttonBuy.setMinimumHeight(size.height()*2)
        buttonSell.setMinimumHeight(size.height()*2)
        buttonCancelAll.setMinimumHeight(size.height()*2)
        
        buttonBuy.clicked.connect(self.sendBuyOrder)
        buttonSell.clicked.connect(self.sendSellOrder)
        buttonCancelAll.clicked.connect(self.cancelAll)
        
        buttonBuy.setStyleSheet('color:white;background-color:red')
        buttonSell.setStyleSheet('color:white;background-color:green')
        buttonCancelAll.setStyleSheet('color:black;background-color:yellow')
        
        gridButton = QtWidgets.QGridLayout()
        gridButton.addWidget(buttonBuy, 0, 0)
        gridButton.addWidget(buttonSell, 0, 1)
        gridButton.addWidget(buttonCancelAll, 1, 0, 1, 2)
        
        # 整合布局
        vbox = QtWidgets.QVBoxLayout()
        vbox.addLayout(gridLeft)
        vbox.addLayout(gridButton)
        
        hbox = QtWidgets.QHBoxLayout()
        hbox.addLayout(vbox)
        hbox.addWidget(self.depthMonitor)
        
        self.setLayout(hbox)

        # 关联更新
        self.lineSymbol.returnPressed.connect(self.updateSymbol)
        self.depthMonitor.itemDoubleClicked.connect(self.updatePrice)