Beispiel #1
0
    def __init__(self, analysisEngine):  # 初始化方法
        QtGui.QWidget.__init__(self)  # 调用父类初始化方法
        self.setWindowTitle('NetCurve')  # 设置窗口标题
        self.path = os.getcwd() + '/ctaLogFile/ctaPosFile'
        # self.path = os.getcwd() + '/statement/netSource'
        self.analysisEngine = analysisEngine
        #        self.resize(300,200)        # 设置窗口大小
        gridlayout = QtGui.QGridLayout()  # 创建布局组件

        self.cbAccount = QtGui.QComboBox()
        self.cbContract = QtGui.QComboBox()
        self.buttonStart = QtGui.QPushButton()
        self.lineedit = QtGui.QLineEdit('1000000')

        self.labelAcct = QtGui.QLabel(u'账户')
        self.labelCon = QtGui.QLabel(u'标的')
        self.labelAmount = QtGui.QLabel(u'初始金额')
        self.labelEvaluate = QtGui.QLabel()

        tree = lambda: collections.defaultdict(tree)
        self.dataList = tree()
        self.fileName = []

        self.loadAllPosFile()
        self.cbAccount.addItems(
            [k for k in self.groupByPosFile('name').keys()])
        self.cbContract.addItems(
            [k for k in self.groupByPosFile('contract').keys()])
Beispiel #2
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(text.DATA_RECORDER)

        # 记录合约配置监控
        tickLabel = QtGui.QLabel(text.TICK_RECORD)
        self.tickTable = QtGui.QTableWidget()
        self.tickTable.setColumnCount(2)
        self.tickTable.verticalHeader().setVisible(False)
        self.tickTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.tickTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.tickTable.setAlternatingRowColors(True)
        self.tickTable.setHorizontalHeaderLabels(
            [text.CONTRACT_SYMBOL, text.GATEWAY])

        barLabel = QtGui.QLabel(text.BAR_RECORD)
        self.barTable = QtGui.QTableWidget()
        self.barTable.setColumnCount(2)
        self.barTable.verticalHeader().setVisible(False)
        self.barTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.barTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.barTable.setAlternatingRowColors(True)
        self.barTable.setHorizontalHeaderLabels(
            [text.CONTRACT_SYMBOL, text.GATEWAY])

        activeLabel = QtGui.QLabel(text.DOMINANT_CONTRACT)
        self.activeTable = QtGui.QTableWidget()
        self.activeTable.setColumnCount(2)
        self.activeTable.verticalHeader().setVisible(False)
        self.activeTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.activeTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.activeTable.setAlternatingRowColors(True)
        self.activeTable.setHorizontalHeaderLabels(
            [text.DOMINANT_SYMBOL, text.CONTRACT_SYMBOL])

        # 日志监控
        self.logMonitor = QtGui.QTextEdit()
        self.logMonitor.setReadOnly(True)
        self.logMonitor.setMinimumHeight(600)

        # 设置布局
        grid = QtGui.QGridLayout()

        grid.addWidget(tickLabel, 0, 0)
        grid.addWidget(barLabel, 0, 1)
        grid.addWidget(activeLabel, 0, 2)
        grid.addWidget(self.tickTable, 1, 0)
        grid.addWidget(self.barTable, 1, 1)
        grid.addWidget(self.activeTable, 1, 2)

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(grid)
        vbox.addWidget(self.logMonitor)
        self.setLayout(vbox)
Beispiel #3
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'行情数据记录工具')

        # 记录合约配置监控
        tickLabel = QtGui.QLabel(u'Tick记录')
        self.tickTable = QtGui.QTableWidget()
        self.tickTable.setColumnCount(2)
        self.tickTable.verticalHeader().setVisible(False)
        self.tickTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.tickTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.tickTable.setAlternatingRowColors(True)
        self.tickTable.setHorizontalHeaderLabels([u'合约代码', u'接口'])

        barLabel = QtGui.QLabel(u'Bar记录')
        self.barTable = QtGui.QTableWidget()
        self.barTable.setColumnCount(2)
        self.barTable.verticalHeader().setVisible(False)
        self.barTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.barTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.barTable.setAlternatingRowColors(True)
        self.barTable.setHorizontalHeaderLabels([u'合约代码', u'接口'])

        activeLabel = QtGui.QLabel(u'主力合约')
        self.activeTable = QtGui.QTableWidget()
        self.activeTable.setColumnCount(2)
        self.activeTable.verticalHeader().setVisible(False)
        self.activeTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.activeTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.activeTable.setAlternatingRowColors(True)
        self.activeTable.setHorizontalHeaderLabels([u'主力代码', u'合约代码'])

        # 日志监控
        self.logMonitor = QtGui.QTextEdit()
        self.logMonitor.setReadOnly(True)
        self.logMonitor.setMinimumHeight(300)

        # 设置布局
        grid = QtGui.QGridLayout()

        grid.addWidget(tickLabel, 0, 0)
        grid.addWidget(barLabel, 0, 1)
        grid.addWidget(activeLabel, 0, 2)
        grid.addWidget(self.tickTable, 1, 0)
        grid.addWidget(self.barTable, 1, 1)
        grid.addWidget(self.activeTable, 1, 2)

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(grid)
        vbox.addWidget(self.logMonitor)
        self.setLayout(vbox)
Beispiel #4
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'登录')

        # 设置界面
        self.userName = QtGui.QLineEdit()
        self.password = QtGui.QTextEdit()
        self.comboStrategy = QtGui.QComboBox()

        grid = QtGui.QGridLayout()
        grid.addWidget(LoginLine(), 1, 0, 1, 2)
        grid.addWidget(QtGui.QLabel(u'用户名'), 2, 0)
        grid.addWidget(self.userName, 2, 1)
        grid.addWidget(QtGui.QLabel(u'令牌'), 3, 0)
        grid.addWidget(self.password, 3, 1)
        grid.addWidget(LoginLine(), 4, 0, 1, 2)
        grid.addWidget(QtGui.QLabel(u'策略'), 5, 0)
        grid.addWidget(self.comboStrategy, 5, 1)
        grid.addWidget(LoginLine(), 6, 0, 1, 2)

        self.buttonCancel = QtGui.QPushButton(u'取消')
        self.buttonConfirm = QtGui.QPushButton(u'确认')
        hbox = QtGui.QHBoxLayout()
        hbox.addWidget(self.buttonConfirm)
        hbox.addWidget(self.buttonCancel)
        self.buttonConfirm.setDefault(True)

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(grid)
        vbox.addLayout(hbox)
        self.setLayout(vbox)

        # 设为固定大小
        self.setFixedSize(self.sizeHint())

        self.buttonCancel.clicked.connect(self.close)
        self.buttonConfirm.clicked.connect(self.login)
        self.userName.returnPressed.connect(self.password.setFocus)

        # init username & token
        username = self.setting['username']
        token = self.setting['token']

        self.userName.setText(username)
        self.password.setText(token)
Beispiel #5
0
    def initUI(self):
        self.resize(350, 480)
        #self.tradeTestButton.move(50,20)
        #self.tradeTestButton.resize(160,50)
        #self.girdTradingButton.move(50,90)
        #self.girdTradingButton.resize(160,50)
        #self.CtpAndIB.move(50,160)
        #self.CtpAndIB.resize(160,50)
        #self.moreStrategyCoding.move(50,230)
        #self.moreStrategyCoding.resize(160,50)

        layout = QtGui.QGridLayout(self)
        layout.addWidget(self.tradeTestButton, 0, 0)
        layout.addWidget(self.girdTradingButton, 1, 0)
        layout.addWidget(self.CtpAndIB, 2, 0)
        layout.addWidget(self.Arbitrage, 3, 0)
        layout.addWidget(self.moreStrategyCoding, 4, 0)
        self.setLayout(layout)
        self.center()
Beispiel #6
0
    def initUi(self):
        """"""
        QtGui.QWidget.__init__(self)         # 调用父类初始化方法
        self.setWindowTitle(u'设置参数')
        self.resize(300,400)                 # 设置窗口大小
        gridlayout = QtGui.QGridLayout()     # 创建布局组件
        i = 0
        lName  = QtGui.QLabel(u'参数')
        lValue = QtGui.QLabel(u'数值')
        gridlayout.addWidget(lName,  i, 0 )
        gridlayout.addWidget(lValue, i, 1 )
        for name in self.paramDict:
            i += 1
            label = QtGui.QLabel(name)                              # 创建单选框
            self.valueEdit[name] = QtGui.QLineEdit()
            self.valueEdit[name].setText(str(self.paramDict[name]))
            self.valueEdit[name].setFocusPolicy(QtCore.Qt.NoFocus)
            gridlayout.addWidget(label, i, 0 )                      # 添加文本
            gridlayout.addWidget(self.valueEdit[name], i,  1)       # 添加文本框

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(gridlayout)
        self.addButton(vbox)
        self.setLayout(vbox)                                    
Beispiel #7
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'风险管理')

        # 设置界面
        self.buttonSwitchEngineStatus = QtGui.QPushButton(u'风控模块未启动')

        self.spinOrderFlowLimit = RmSpinBox(self.rmEngine.orderFlowLimit)
        self.spinOrderFlowClear = RmSpinBox(self.rmEngine.orderFlowClear)
        self.spinOrderSizeLimit = RmSpinBox(self.rmEngine.orderSizeLimit)
        self.spinTradeLimit = RmSpinBox(self.rmEngine.tradeLimit)
        self.spinWorkingOrderLimit = RmSpinBox(self.rmEngine.workingOrderLimit)
        self.spinOrderCancelLimit = RmSpinBox(self.rmEngine.orderCancelLimit)

        buttonClearOrderFlowCount = QtGui.QPushButton(u'清空流控计数')
        buttonClearTradeCount = QtGui.QPushButton(u'清空总成交计数')
        buttonSaveSetting = QtGui.QPushButton(u'保存设置')

        Label = QtGui.QLabel
        grid = QtGui.QGridLayout()
        grid.addWidget(Label(u'工作状态'), 0, 0)
        grid.addWidget(self.buttonSwitchEngineStatus, 0, 1)
        grid.addWidget(RmLine(), 1, 0, 1, 2)
        grid.addWidget(Label(u'流控上限'), 2, 0)
        grid.addWidget(self.spinOrderFlowLimit, 2, 1)
        grid.addWidget(Label(u'流控清空(秒)'), 3, 0)
        grid.addWidget(self.spinOrderFlowClear, 3, 1)
        grid.addWidget(RmLine(), 4, 0, 1, 2)
        grid.addWidget(Label(u'单笔委托上限'), 5, 0)
        grid.addWidget(self.spinOrderSizeLimit, 5, 1)
        grid.addWidget(RmLine(), 6, 0, 1, 2)
        grid.addWidget(Label(u'总成交上限'), 7, 0)
        grid.addWidget(self.spinTradeLimit, 7, 1)
        grid.addWidget(RmLine(), 8, 0, 1, 2)
        grid.addWidget(Label(u'活动订单上限'), 9, 0)
        grid.addWidget(self.spinWorkingOrderLimit, 9, 1)
        grid.addWidget(RmLine(), 10, 0, 1, 2)
        grid.addWidget(Label(u'单合约撤单上限'), 11, 0)
        grid.addWidget(self.spinOrderCancelLimit, 11, 1)

        hbox = QtGui.QHBoxLayout()
        hbox.addWidget(buttonClearOrderFlowCount)
        hbox.addWidget(buttonClearTradeCount)
        hbox.addStretch()
        hbox.addWidget(buttonSaveSetting)

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(grid)
        vbox.addLayout(hbox)
        self.setLayout(vbox)

        # 连接组件信号
        self.spinOrderFlowLimit.valueChanged.connect(
            self.rmEngine.setOrderFlowLimit)
        self.spinOrderFlowClear.valueChanged.connect(
            self.rmEngine.setOrderFlowClear)
        self.spinOrderSizeLimit.valueChanged.connect(
            self.rmEngine.setOrderSizeLimit)
        self.spinTradeLimit.valueChanged.connect(self.rmEngine.setTradeLimit)
        self.spinWorkingOrderLimit.valueChanged.connect(
            self.rmEngine.setWorkingOrderLimit)
        self.spinOrderCancelLimit.valueChanged.connect(
            self.rmEngine.setOrderCancelLimit)

        self.buttonSwitchEngineStatus.clicked.connect(self.switchEngineSatus)
        buttonClearOrderFlowCount.clicked.connect(
            self.rmEngine.clearOrderFlowCount)
        buttonClearTradeCount.clicked.connect(self.rmEngine.clearTradeCount)
        buttonSaveSetting.clicked.connect(self.rmEngine.saveSetting)

        # 设为固定大小
        self.setFixedSize(self.sizeHint())
Beispiel #8
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(text.RISK_MANAGER)

        # 设置界面
        self.buttonSwitchEngineStatus = QtGui.QPushButton(
            text.RISK_MANAGER_STOP)

        self.spinOrderFlowLimit = RmSpinBox(self.rmEngine.orderFlowLimit)
        self.spinOrderFlowClear = RmSpinBox(self.rmEngine.orderFlowClear)
        self.spinOrderSizeLimit = RmSpinBox(self.rmEngine.orderSizeLimit)
        self.spinTradeLimit = RmSpinBox(self.rmEngine.tradeLimit)
        self.spinWorkingOrderLimit = RmSpinBox(self.rmEngine.workingOrderLimit)
        self.spinOrderCancelLimit = RmSpinBox(self.rmEngine.orderCancelLimit)

        buttonClearOrderFlowCount = QtGui.QPushButton(
            text.CLEAR_ORDER_FLOW_COUNT)
        buttonClearTradeCount = QtGui.QPushButton(text.CLEAR_TOTAL_FILL_COUNT)
        buttonSaveSetting = QtGui.QPushButton(text.SAVE_SETTING)

        Label = QtGui.QLabel
        grid = QtGui.QGridLayout()
        grid.addWidget(Label(text.WORKING_STATUS), 0, 0)
        grid.addWidget(self.buttonSwitchEngineStatus, 0, 1)
        grid.addWidget(RmLine(), 1, 0, 1, 2)
        grid.addWidget(Label(text.ORDER_FLOW_LIMIT), 2, 0)
        grid.addWidget(self.spinOrderFlowLimit, 2, 1)
        grid.addWidget(Label(text.ORDER_FLOW_CLEAR), 3, 0)
        grid.addWidget(self.spinOrderFlowClear, 3, 1)
        grid.addWidget(RmLine(), 4, 0, 1, 2)
        grid.addWidget(Label(text.ORDER_SIZE_LIMIT), 5, 0)
        grid.addWidget(self.spinOrderSizeLimit, 5, 1)
        grid.addWidget(RmLine(), 6, 0, 1, 2)
        grid.addWidget(Label(text.TOTAL_TRADE_LIMIT), 7, 0)
        grid.addWidget(self.spinTradeLimit, 7, 1)
        grid.addWidget(RmLine(), 8, 0, 1, 2)
        grid.addWidget(Label(text.WORKING_ORDER_LIMIT), 9, 0)
        grid.addWidget(self.spinWorkingOrderLimit, 9, 1)
        grid.addWidget(RmLine(), 10, 0, 1, 2)
        grid.addWidget(Label(text.CONTRACT_CANCEL_LIMIT), 11, 0)
        grid.addWidget(self.spinOrderCancelLimit, 11, 1)

        hbox = QtGui.QHBoxLayout()
        hbox.addWidget(buttonClearOrderFlowCount)
        hbox.addWidget(buttonClearTradeCount)
        hbox.addStretch()
        hbox.addWidget(buttonSaveSetting)

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(grid)
        vbox.addLayout(hbox)
        self.setLayout(vbox)

        # 连接组件信号
        self.spinOrderFlowLimit.valueChanged.connect(
            self.rmEngine.setOrderFlowLimit)
        self.spinOrderFlowClear.valueChanged.connect(
            self.rmEngine.setOrderFlowClear)
        self.spinOrderSizeLimit.valueChanged.connect(
            self.rmEngine.setOrderSizeLimit)
        self.spinTradeLimit.valueChanged.connect(self.rmEngine.setTradeLimit)
        self.spinWorkingOrderLimit.valueChanged.connect(
            self.rmEngine.setWorkingOrderLimit)
        self.spinOrderCancelLimit.valueChanged.connect(
            self.rmEngine.setOrderCancelLimit)

        self.buttonSwitchEngineStatus.clicked.connect(self.switchEngineSatus)
        buttonClearOrderFlowCount.clicked.connect(
            self.rmEngine.clearOrderFlowCount)
        buttonClearTradeCount.clicked.connect(self.rmEngine.clearTradeCount)
        buttonSaveSetting.clicked.connect(self.rmEngine.saveSetting)

        # 设为固定大小
        self.setFixedSize(self.sizeHint())
Beispiel #9
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'行情数据记录工具')

        # 菜单
        lineSelect = QtGui.QLabel(u'需要收集的合约:')
        buttonSelect = QtGui.QPushButton(u'选择')

        lineType = QtGui.QLabel(u'合成Bar类型:')
        barType = ['1m', '5m', '15m', '30m', '60m']
        comboType = QtGui.QComboBox()
        comboType.addItems(barType)

        lineStart = QtGui.QLabel(u'开始收集:')
        buttonStart = QtGui.QPushButton(u'收集')

        buttonSelect.clicked.connect(self.select)
        buttonStart.clicked.connect(self.start)

        # 记录合约配置监控
        tickLabel = QtGui.QLabel(u'Tick记录')
        self.tickTable = QtGui.QTableWidget()
        self.tickTable.setColumnCount(2)
        self.tickTable.verticalHeader().setVisible(False)
        self.tickTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.tickTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.tickTable.setAlternatingRowColors(True)
        self.tickTable.setHorizontalHeaderLabels([u'合约代码', u'接口'])

        barLabel = QtGui.QLabel(u'Bar记录')
        self.barTable = QtGui.QTableWidget()
        self.barTable.setColumnCount(2)
        self.barTable.verticalHeader().setVisible(False)
        self.barTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.barTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.barTable.setAlternatingRowColors(True)
        self.barTable.setHorizontalHeaderLabels([u'合约代码', u'接口'])

        activeLabel = QtGui.QLabel(u'主力合约')
        self.activeTable = QtGui.QTableWidget()
        self.activeTable.setColumnCount(2)
        self.activeTable.verticalHeader().setVisible(False)
        self.activeTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.activeTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.activeTable.setAlternatingRowColors(True)
        self.activeTable.setHorizontalHeaderLabels([u'主力代码', u'合约代码'])

        # 日志监控
        self.logMonitor = QtGui.QTextEdit()
        self.logMonitor.setReadOnly(True)
        self.logMonitor.setMinimumHeight(600)

        self.logMonitor2 = QtGui.QTextEdit()
        self.logMonitor2.setReadOnly(True)
        self.logMonitor2.setMinimumHeight(600)

        self.logMonitor3 = QtGui.QTextEdit()
        self.logMonitor3.setReadOnly(True)
        self.logMonitor3.setMinimumHeight(600)

        # 设置布局
        hbox = QtGui.QHBoxLayout()
        hbox.addWidget(lineSelect)
        hbox.addWidget(buttonSelect)
        hbox.addWidget(lineType)
        hbox.addWidget(comboType)
        hbox.addWidget(lineStart)
        hbox.addWidget(buttonStart)

        grid = QtGui.QGridLayout()
        grid.addWidget(tickLabel, 0, 0)
        grid.addWidget(barLabel, 0, 1)
        grid.addWidget(activeLabel, 0, 2)
        grid.addWidget(self.tickTable, 1, 0)
        grid.addWidget(self.barTable, 1, 1)
        grid.addWidget(self.activeTable, 1, 2)

        grid2 = QtGui.QGridLayout()
        grid2.addWidget(self.logMonitor, 0, 0)
        grid2.addWidget(self.logMonitor2, 0, 1)
        grid2.addWidget(self.logMonitor3, 0, 2)

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(hbox)
        vbox.addLayout(grid)
        vbox.addLayout(grid2)
        self.setLayout(vbox)
Beispiel #10
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'风险管理')

        # 设置界面
        self.buttonSwitchEngineStatus = QtGui.QPushButton(u'风控模块未启动')

        # self.spinaccountMarginRatio = RmSpinBox(self.rmEngine.accountMarginRatio)
        # self.spintradeCountLimit = RmSpinBox(self.rmEngine.tradeCountLimit)
        # self.spinstrategyInstanceOpenLimit = RmSpinBox(self.rmEngine.strategyInstanceOpenLimit)
        # self.spinstrategyInstancePositionLimit = RmSpinBox(self.rmEngine.strategyInstancePositionLimit)
        # self.spincontractPositionLimit = RmSpinBox(self.rmEngine.contractPositionLimit)

        # buttonClearOrderFlowCount = QtGui.QPushButton(u'清空流控计数')
        # buttonClearTradeCount = QtGui.QPushButton(u'清空累计交易计数')
        # buttonSaveSetting = QtGui.QPushButton(u'保存设置')

        # Label = QtGui.QLabel
        # grid = QtGui.QGridLayout()
        # grid.addWidget(Label(u'工作状态'), 0, 0)
        # grid.addWidget(self.buttonSwitchEngineStatus, 0, 1)
        # grid.addWidget(RmLine(), 1, 0, 1, 2)
        # grid.addWidget(Label(u'账户保证金比例上限'), 2, 0)
        # grid.addWidget(self.spinaccountMarginRatio, 2, 1)
        # # grid.addWidget(Label(u'流控清空(秒)'), 3, 0)
        # # grid.addWidget(self.spinOrderFlowClear, 3, 1)
        # grid.addWidget(RmLine(), 3, 0, 1, 2)
        # grid.addWidget(Label(u'单日累计交易次数上限'), 4, 0)
        # grid.addWidget(self.spintradeCountLimit, 4, 1)
        # grid.addWidget(RmLine(), 5, 0, 1, 2)
        # grid.addWidget(Label(u'单策略实例开仓上限'), 6, 0)
        # grid.addWidget(self.spinstrategyInstanceOpenLimit, 6, 1)
        # grid.addWidget(RmLine(), 7, 0, 1, 2)
        # grid.addWidget(Label(u'单策略实例持仓上限'), 8, 0)
        # grid.addWidget(self.spinstrategyInstancePositionLimit, 8, 1)

        # hbox = QtGui.QHBoxLayout()
        # hbox.addWidget(buttonSwitchEngineStatus)
        # hbox.addWidget(buttonClearTradeCount)
        # hbox.addStretch()
        # hbox.addWidget(buttonSaveSetting)

        # vbox = QtGui.QVBoxLayout()
        # vbox.addLayout(grid)
        # vbox.addLayout(hbox)
        # self.setLayout(vbox)

        # # 连接组件信号
        # self.spinaccountMarginRatio.valueChanged.connect(self.rmEngine.setAccountMarginRatio)
        # self.spintradeCountLimit.valueChanged.connect(self.rmEngine.setTradeCountLimit)
        # self.spinstrategyInstanceOpenLimit.valueChanged.connect(self.rmEngine.setStrategyInstanceOpenLimit)
        # self.spinstrategyInstancePositionLimit.valueChanged.connect(self.rmEngine.setStrategyInstancePositionLimit)
        # self.spincontractPositionLimit.valueChanged.connect(self.rmEngine.setContractPositionLimit)
        #
        self.buttonSwitchEngineStatus.clicked.connect(self.switchEngineStatus)
        # buttonClearOrderFlowCount.clicked.connect(self.rmEngine.clearOrderFlowCount)
        # buttonClearTradeCount.clicked.connect(self.rmEngine.clearTradeCount)
        # buttonSaveSetting.clicked.connect(self.rmEngine.saveSetting)
        buttonHBox = QtGui.QHBoxLayout()
        buttonHBox.addStretch()
        buttonHBox.addWidget(self.buttonSwitchEngineStatus)
        grid = QtGui.QGridLayout()
        grid.addLayout(buttonHBox, 0, 0, 1, 1)
        self.setLayout(grid)

        # 设为固定大小
        self.setFixedSize(self.sizeHint())
Beispiel #11
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(text.DATA_RECORDER)

        # 记录合约配置监控
        tickLabel = QtGui.QLabel(text.TICK_RECORD)
        self.tickTable = QtGui.QTableWidget()
        self.tickTable.setColumnCount(2)
        self.tickTable.verticalHeader().setVisible(False)
        self.tickTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.tickTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.tickTable.setAlternatingRowColors(True)
        self.tickTable.setHorizontalHeaderLabels(
            [text.CONTRACT_SYMBOL, text.GATEWAY])

        barLabel = QtGui.QLabel(text.BAR_RECORD)
        self.barTable = QtGui.QTableWidget()
        self.barTable.setColumnCount(2)
        self.barTable.verticalHeader().setVisible(False)
        self.barTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.barTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.barTable.setAlternatingRowColors(True)
        self.barTable.setHorizontalHeaderLabels(
            [text.CONTRACT_SYMBOL, text.GATEWAY])

        activeLabel = QtGui.QLabel(text.DOMINANT_CONTRACT)
        self.activeTable = QtGui.QTableWidget()
        self.activeTable.setColumnCount(2)
        self.activeTable.verticalHeader().setVisible(False)
        self.activeTable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        self.activeTable.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        self.activeTable.setAlternatingRowColors(True)
        self.activeTable.setHorizontalHeaderLabels(
            [text.DOMINANT_SYMBOL, text.CONTRACT_SYMBOL])

        # 日志监控
        self.logMonitor = QtGui.QTextEdit()
        self.logMonitor.setReadOnly(True)
        self.logMonitor.setMinimumHeight(600)

        # 设置布局
        grid = QtGui.QGridLayout()

        grid.addWidget(tickLabel, 0, 0)
        grid.addWidget(barLabel, 0, 1)
        grid.addWidget(activeLabel, 0, 2)
        grid.addWidget(self.tickTable, 1, 0)
        grid.addWidget(self.barTable, 1, 1)
        grid.addWidget(self.activeTable, 1, 2)

        # 原有的布局结构 -> 备份
        # vbox = QtGui.QVBoxLayout()
        # vbox.addLayout(grid)
        # vbox.addWidget(self.logMonitor)
        # self.setLayout(vbox)

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(grid)
        # 在底部增加的一个可切换组件,有价格图和行情两个界面
        bottomWidget = QtGui.QTabWidget()
        priceWidget = PriceWidget(self.eventEngine, self.drEngine)
        bottomWidget.addTab(priceWidget, u'Price')
        bottomWidget.addTab(self.logMonitor, u'行情')
        vbox.addWidget(bottomWidget)
        self.setLayout(vbox)