コード例 #1
0
ファイル: uiArbWidget.py プロジェクト: ageofshadows/Skynet
 def initUi(self):
     """初始化界面"""
     self.setWindowTitle(u'CTA Strategy')
     
     # 按钮
     loadButton = QtWidgets.QPushButton(u'Load Strategy')
     updateMCButton = QtWidgets.QPushButton(u'Update Margin/Commission')
     
     loadButton.clicked.connect(self.load)
     updateMCButton.clicked.connect(self.updateMC)
     
     # 滚动区域,放置所有的ArbStrategyManager
     self.scrollArea = QtWidgets.QScrollArea()
     self.scrollArea.setWidgetResizable(True)
     
     # ARB组件的日志监控
     self.arbLogMonitor = QtWidgets.QTextEdit()
     self.arbLogMonitor.setReadOnly(True)
     self.arbLogMonitor.setMaximumHeight(200)
     
     # 设置布局
     hbox2 = QtWidgets.QHBoxLayout()
     hbox2.addWidget(loadButton)
     hbox2.addWidget(updateMCButton)
     hbox2.addStretch()
     
     vbox = QtWidgets.QVBoxLayout()
     vbox.addLayout(hbox2)
     vbox.addWidget(self.scrollArea)
     vbox.addWidget(self.arbLogMonitor)
     self.setLayout(vbox)
コード例 #2
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'行情数据记录工具')

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

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

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

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

        # 设置布局
        grid = QtWidgets.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 = QtWidgets.QVBoxLayout()
        vbox.addLayout(grid)
        vbox.addWidget(self.logMonitor)
        self.setLayout(vbox)
コード例 #3
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(text.CTA_STRATEGY)

        # 按钮
        loadButton = QtWidgets.QPushButton(text.LOAD_STRATEGY)
        initAllButton = QtWidgets.QPushButton(text.INIT_ALL)
        startAllButton = QtWidgets.QPushButton(text.START_ALL)
        stopAllButton = QtWidgets.QPushButton(text.STOP_ALL)

        loadButton.clicked.connect(self.load)
        initAllButton.clicked.connect(self.initAll)
        startAllButton.clicked.connect(self.startAll)
        stopAllButton.clicked.connect(self.stopAll)

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

        # CTA组件的日志监控
        self.ctaLogMonitor = QtWidgets.QTextEdit()
        self.ctaLogMonitor.setReadOnly(True)
        self.ctaLogMonitor.setMaximumHeight(200)

        # 设置布局
        hbox2 = QtWidgets.QHBoxLayout()
        hbox2.addWidget(loadButton)
        hbox2.addWidget(initAllButton)
        hbox2.addWidget(startAllButton)
        hbox2.addWidget(stopAllButton)
        hbox2.addStretch()

        vbox = QtWidgets.QVBoxLayout()
        vbox.addLayout(hbox2)
        vbox.addWidget(self.scrollArea)
        vbox.addWidget(self.ctaLogMonitor)

        self.setLayout(vbox)
        self.resize(1024, 800)  #ROBINLIN

        # ROBINLIN 窗口显示后,立即加载和初始化策略。
        self.load()
        self.initAll()
        self.startAll()
コード例 #4
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(text.CTA_STRATEGY)

        # 按钮
        loadButton = QtWidgets.QPushButton(text.LOAD_STRATEGY)
        initAllButton = QtWidgets.QPushButton(text.INIT_ALL)
        startAllButton = QtWidgets.QPushButton(text.START_ALL)
        stopAllButton = QtWidgets.QPushButton(text.STOP_ALL)
        savePositionButton = QtWidgets.QPushButton(text.SAVE_POSITION_DATA)

        loadButton.clicked.connect(self.load)
        initAllButton.clicked.connect(self.initAll)
        startAllButton.clicked.connect(self.startAll)
        stopAllButton.clicked.connect(self.stopAll)
        savePositionButton.clicked.connect(self.ctaEngine.savePosition)

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

        # CTA组件的日志监控
        self.ctaLogMonitor = QtWidgets.QTextEdit()
        self.ctaLogMonitor.setReadOnly(True)
        self.ctaLogMonitor.setMaximumHeight(200)

        # 设置布局
        hbox2 = QtWidgets.QHBoxLayout()
        hbox2.addWidget(loadButton)
        hbox2.addWidget(initAllButton)
        hbox2.addWidget(startAllButton)
        hbox2.addWidget(stopAllButton)
        hbox2.addWidget(savePositionButton)
        hbox2.addStretch()

        vbox = QtWidgets.QVBoxLayout()
        vbox.addLayout(hbox2)
        vbox.addWidget(self.scrollArea)
        vbox.addWidget(self.ctaLogMonitor)
        self.setLayout(vbox)
コード例 #5
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'期权策略')

        # 按钮
        loadButton = QtWidgets.QPushButton(u'加载策略')
        initAllButton = QtWidgets.QPushButton(u'全部初始化')
        startAllButton = QtWidgets.QPushButton(u'全部启动')
        stopAllButton = QtWidgets.QPushButton(u'全部停止')

        loadButton.clicked.connect(self.load)
        initAllButton.clicked.connect(self.initAll)
        startAllButton.clicked.connect(self.startAll)
        stopAllButton.clicked.connect(self.stopAll)

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

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

        # 设置布局
        hbox2 = QtWidgets.QHBoxLayout()
        hbox2.addWidget(loadButton)
        hbox2.addWidget(initAllButton)
        hbox2.addWidget(startAllButton)
        hbox2.addWidget(stopAllButton)
        hbox2.addStretch()

        vbox = QtWidgets.QVBoxLayout()
        vbox.addLayout(hbox2)
        vbox.addWidget(self.scrollArea)
        vbox.addWidget(self.ctaLogMonitor)
        self.setLayout(vbox)
コード例 #6
0
ファイル: uiMultiRpcMonitor.py プロジェクト: zenozxu/vnpy
    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)
コード例 #7
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)