Example #1
0
    def initUi(self):
        """初始化界面"""

        # 1) 服务端级别按钮,
        btnConnectRpcServer = QtWidgets.QPushButton(u'Connect {0}'.format(
            self.name))
        btnActivateGateWayConnection = QtWidgets.QPushButton(u'activate CTP')
        btnDeactivateGateway = QtWidgets.QPushButton(u'Deactivate CTP')
        btnQryStatus = QtWidgets.QPushButton(u'Qry Status')

        btnConnectRpcServer.clicked.connect(self.connect_rpc_server)
        btnActivateGateWayConnection.clicked.connect(
            self.activate_gateway_connection)
        btnDeactivateGateway.clicked.connect(
            self.deactivate_gateway_connection)
        btnQryStatus.clicked.connect(self.qryStatus)

        hbox1 = QtWidgets.QHBoxLayout()
        hbox1.addWidget(btnConnectRpcServer)
        hbox1.addWidget(btnActivateGateWayConnection)
        hbox1.addWidget(btnDeactivateGateway)
        hbox1.addWidget(btnQryStatus)

        self.chkCritical = QtWidgets.QCheckBox('Critical')
        self.chkCritical.setChecked(True)
        self.chkError = QtWidgets.QCheckBox('Error')
        self.chkError.setChecked(True)
        self.chkWarning = QtWidgets.QCheckBox('Warning')
        self.chkWarning.setChecked(True)
        self.chkCtaLog = QtWidgets.QCheckBox('CtaLog')
        self.chkCtaLog.setChecked(True)
        self.chkTicks = QtWidgets.QCheckBox('Ticks')
        self.chkTicks.setChecked(False)
        self.chkSignal = QtWidgets.QCheckBox('Signal')
        self.chkSignal.setChecked(True)

        hbox1.addWidget(self.chkCritical)
        hbox1.addWidget(self.chkError)
        hbox1.addWidget(self.chkWarning)
        hbox1.addWidget(self.chkCtaLog)
        hbox1.addWidget(self.chkTicks)
        hbox1.addWidget(self.chkSignal)

        hbox1.addStretch()

        self.server_info_monitor = ServerInfoWidget()

        # 滚动区域,放置所有的CtaStrategyManager
        self.scrollArea = QtWidgets.QScrollArea()
        self.scrollArea.setWidgetResizable(True)

        # 2)服务端策略监控widget
        self.ctaMonitor = CtaEngineMonitorWidget(self)  # 参数监控
        self.ctaMonitor.setMinimumHeight(200)
        #self.ctaMonitor.setMinimumWidth(800)

        hbox2 = QtWidgets.QVBoxLayout()
        hbox2.addWidget(self.ctaMonitor)
        self.scrollArea.setLayout(hbox2)

        # 服务端日志监控widget
        self.logMonitor = QtWidgets.QTextEdit()
        self.logMonitor.setReadOnly(True)
        self.logMonitor.setMaximumHeight(200)

        vbox = QtWidgets.QVBoxLayout()
        vbox.addLayout(hbox1)
        vbox.addWidget(self.server_info_monitor)  # 添加服务监控
        vbox.addWidget(self.logMonitor)
        vbox.addWidget(self.scrollArea)

        self.setLayout(vbox)
Example #2
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'套利交易')

        # 连接运行中的套利测试(策略名称[下拉菜单],连接按钮)
        self.btnSwitchConnectStatus = QtWidgets.QPushButton(u'套利策略未连接')
        self.btnSwitchConnectStatus.clicked.connect(self.btnSwitchClick)

        Label = QtWidgets.QLabel
        grid = QtWidgets.QGridLayout()
        grid.addWidget(Label(u'状态'), 0, 0)
        grid.addWidget(self.btnSwitchConnectStatus, 0, 1)

        self.spreadStraty = QtWidgets.QComboBox()
        self.strategy_name_list = self.ctaEngine.strategyDict.keys()
        self.spreadStraty.addItems(self.strategy_name_list)

        grid.addWidget(Label(u'套利策略'), 1, 0)
        grid.addWidget(self.spreadStraty, 1, 1)


        # 网格信息+操作(新增,删除,更新)

        grid.addWidget(Label(u'方向'), 2, 0)
        self.gridDirection = QtWidgets.QComboBox()
        self.gridDirection.addItems(self.directionList)
        grid.addWidget(self.gridDirection, 2, 1)

        self.spinOpenPrice = QtWidgets.QDoubleSpinBox()
        self.spinOpenPrice.setDecimals(4)
        self.spinOpenPrice.setMinimum(-10000)    # 原来是0,为支持套利,改为-10000
        self.spinOpenPrice.setMaximum(100000)
        self.spinOpenPrice.valueChanged.connect(self.spinOpenPrice_valueChanged)

        grid.addWidget(Label(u'开仓价'), 3, 0)
        grid.addWidget(self.spinOpenPrice, 3, 1)

        self.spinClosePrice = QtWidgets.QDoubleSpinBox()
        self.spinClosePrice.setDecimals(4)
        self.spinClosePrice.setMinimum(-10000)  # 原来是0,为支持套利,改为-10000
        self.spinClosePrice.setMaximum(100000)

        grid.addWidget(Label(u'平仓价'), 4, 0)
        grid.addWidget(self.spinClosePrice, 4, 1)

        self.spinOrderVolume = QtWidgets.QSpinBox()
        self.spinOrderVolume.setMinimum(0)
        self.spinClosePrice.setDecimals(4)
        self.spinOrderVolume.setMaximum(1000)

        grid.addWidget(Label(u'委托数量'), 5, 0)
        grid.addWidget(self.spinOrderVolume, 5, 1)

        self.spinTradedVolume = QtWidgets.QSpinBox()
        self.spinTradedVolume.setMinimum(0)
        self.spinTradedVolume.setMaximum(1000)

        grid.addWidget(Label(u'成交数量'), 6, 0)
        grid.addWidget(self.spinTradedVolume, 6, 1)

        self.openStatus = QtWidgets.QCheckBox(u'')  # 开仓状态
        grid.addWidget(Label(u'开仓状态'), 7, 0)
        grid.addWidget(self.openStatus, 7, 1)

        self.orderStatus = QtWidgets.QCheckBox(u'')  # 委托状态
        grid.addWidget(Label(u'委托状态'), 8, 0)
        grid.addWidget(self.orderStatus, 8, 1)

        self.closeStatus = QtWidgets.QCheckBox(u'')  # 平仓状态
        grid.addWidget(Label(u'平仓状态'), 9, 0)
        grid.addWidget(self.closeStatus, 9, 1)

        self.reuseStatus = QtWidgets.QCheckBox(u'')  # 平仓状态
        grid.addWidget(Label(u'重用网格'), 10, 0)
        grid.addWidget(self.reuseStatus, 10, 1)

        btnAddGrid = QtWidgets.QPushButton(u'增加')
        btnAddGrid.clicked.connect(self.btnAddGridClick)
        btnUpdateGrid = QtWidgets.QPushButton(u'更新')
        btnUpdateGrid.clicked.connect(self.btnUpdateGridClick)
        btnRemoveGrid = QtWidgets.QPushButton(u'删除')
        btnRemoveGrid.clicked.connect(self.btnRemoveGridClick)
        btnRemoveAll = QtWidgets.QPushButton(u'全删除')
        btnRemoveAll.clicked.connect(self.btnRemoveAllClick)

        hbox = QtWidgets.QHBoxLayout()
        hbox.addWidget(btnAddGrid)
        hbox.addWidget(btnUpdateGrid)
        hbox.addStretch()
        hbox.addWidget(btnRemoveGrid)
        hbox.addWidget(btnRemoveAll)

        vbox = QtWidgets.QVBoxLayout()
        vbox.addLayout(grid)
        vbox.addLayout(hbox)

        # 状态信息(通过定时器,显示 上网格清单,下网格清单)

        #日志监控
        self.logMsgs = QtWidgets.QTextEdit()
        self.logMsgs.setReadOnly(True)
        self.logMsgs.setMaximumHeight(200)
        vbox.addWidget(self.logMsgs)

        self.setLayout(vbox)