Exemplo n.º 1
0
 def initMenu(self):
     """初始化菜单"""
     # 创建菜单
     menubar = self.menuBar()
     
     # 设计为只显示存在的接口
     gatewayDetails = self.mainEngine.getAllGatewayDetails()
     
     sysMenu = menubar.addMenu(vtText.SYSTEM)
     
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_FUTURES:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
     sysMenu.addSeparator()
     
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_EQUITY:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
     sysMenu.addSeparator()
     
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_INTERNATIONAL:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])       
     sysMenu.addSeparator()
             
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_BTC:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
     sysMenu.addSeparator()
             
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_DATA:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
     
     sysMenu.addSeparator()
     sysMenu.addAction(self.createAction(vtText.CONNECT_DATABASE, self.mainEngine.dbConnect, loadIconPath('database.ico')))
     sysMenu.addSeparator()
     sysMenu.addAction(self.createAction(vtText.EXIT, self.close, loadIconPath('exit.ico')))
     
     # 功能应用
     appMenu = menubar.addMenu(vtText.APPLICATION)
     
     for appDetail in self.appDetailList:
         # 如果没有应用界面,则不添加菜单按钮
         if not appDetail['appWidget']:
             continue
         
         function = self.createOpenAppFunction(appDetail)
         action = self.createAction(appDetail['appDisplayName'], function, loadIconPath(appDetail['appIco']))
         appMenu.addAction(action)
     
     # 帮助
     helpMenu = menubar.addMenu(vtText.HELP)
     helpMenu.addAction(self.createAction(vtText.CONTRACT_SEARCH, self.openContract, loadIconPath('contract.ico')))
     helpMenu.addAction(self.createAction(vtText.EDIT_SETTING, self.openSettingEditor, loadIconPath('editor.ico')))
     helpMenu.addSeparator()
     helpMenu.addAction(self.createAction(vtText.RESTORE, self.restoreWindow, loadIconPath('restore.ico')))
     helpMenu.addAction(self.createAction(vtText.ABOUT, self.openAbout, loadIconPath('about.ico')))
     helpMenu.addSeparator()
     helpMenu.addAction(self.createAction(vtText.TEST, self.test, loadIconPath('test.ico')))
Exemplo n.º 2
0
 def initMenu(self):
     """初始化菜单"""
     # 创建菜单
     menubar = self.menuBar()
     
     # 设计为只显示存在的接口
     gatewayDetails = self.mainEngine.getAllGatewayDetails()
     
     sysMenu = menubar.addMenu(vtText.SYSTEM)
     
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_FUTURES:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
     sysMenu.addSeparator()
     
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_EQUITY:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
     sysMenu.addSeparator()
     
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_INTERNATIONAL:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])       
     sysMenu.addSeparator()
             
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_BTC:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
     sysMenu.addSeparator()
             
     for d in gatewayDetails:
         if d['gatewayType'] == GATEWAYTYPE_DATA:
             self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
     
     sysMenu.addSeparator()
     sysMenu.addAction(self.createAction(vtText.CONNECT_DATABASE, self.mainEngine.dbConnect, loadIconPath('database.ico')))
     sysMenu.addSeparator()
     sysMenu.addAction(self.createAction(vtText.EXIT, self.close, loadIconPath('exit.ico')))
     
     # 功能应用
     appMenu = menubar.addMenu(vtText.APPLICATION)
     
     for appDetail in self.appDetailList:
         # 如果没有应用界面,则不添加菜单按钮
         if not appDetail['appWidget']:
             continue
         
         function = self.createOpenAppFunction(appDetail)
         action = self.createAction(appDetail['appDisplayName'], function, loadIconPath(appDetail['appIco']))
         appMenu.addAction(action)
     
     # 帮助
     helpMenu = menubar.addMenu(vtText.HELP)
     helpMenu.addAction(self.createAction(vtText.CONTRACT_SEARCH, self.openContract, loadIconPath('contract.ico')))
     helpMenu.addAction(self.createAction(vtText.EDIT_SETTING, self.openSettingEditor, loadIconPath('editor.ico')))
     helpMenu.addSeparator()
     helpMenu.addAction(self.createAction(vtText.RESTORE, self.restoreWindow, loadIconPath('restore.ico')))
     helpMenu.addAction(self.createAction(vtText.ABOUT, self.openAbout, loadIconPath('about.ico')))
     helpMenu.addSeparator()
     helpMenu.addAction(self.createAction(vtText.TEST, self.test, loadIconPath('test.ico')))
Exemplo n.º 3
0
 def initMenu(self):
     """初始化菜单"""
     # 创建菜单
     menubar = self.menuBar()
     # 帮助
     helpMenu = menubar.addMenu(vtText.HELP)
     # helpMenu.addAction(self.createAction(vtText.CONTRACT_SEARCH, self.openContract, loadIconPath('contract.ico')))
     # helpMenu.addAction(self.createAction(vtText.EDIT_SETTING, self.openSettingEditor, loadIconPath('editor.ico')))
     helpMenu.addSeparator()
     helpMenu.addAction(
         self.createAction(vtText.RESTORE, self.restoreWindow,
                           loadIconPath('restore.ico')))
     helpMenu.addAction(
         self.createAction(vtText.ABOUT, self.openAbout,
                           loadIconPath('about.ico')))
Exemplo n.º 4
0
def createQApp():
    """创建PyQt应用对象"""
    # 创建Qt应用对象
    qApp = QtWidgets.QApplication([])

    # 设置Qt的皮肤
    if globalSetting['darkStyle']:
        try:
            import qdarkstyle
            qApp.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        except:
            print "Unexpected error:", sys.exc_info()[0]

    # 设置Windows底部任务栏图标
    if 'Windows' in platform.uname():
        import ctypes
        ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(
            'vn.trader')

    # 设置Qt字体
    qApp.setFont(BASIC_FONT)

    # 设置Qt图标
    qApp.setWindowIcon(QtGui.QIcon(loadIconPath('vnpy.ico')))

    # 返回创建好的QApp对象
    return qApp
Exemplo n.º 5
0
def display_multi_grid():

    qApp = createQApp()
    qApp.setWindowIcon(QtGui.QIcon(loadIconPath('dashboard.ico')))
    w = GridKline()
    w.showMaximized()
    sys.exit(qApp.exec_())
Exemplo n.º 6
0
def createQApp():
    """创建PyQt应用对象"""
    # 创建Qt应用对象
    qApp = QtWidgets.QApplication([])

    # 设置Qt的皮肤
    if globalSetting['darkStyle']:
        try:
            import qdarkstyle
            qApp.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        except :
            print("Unexpected error when import darkStyle:", sys.exc_info()[0])

    # 设置Windows底部任务栏图标
    if 'Windows' in platform.uname():
        import ctypes
        ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('vn.trader')

    # 设置Qt字体
    qApp.setFont(BASIC_FONT)

    # 设置Qt图标
    qApp.setWindowIcon(QtGui.QIcon(loadIconPath('vnpy.ico')))

    # 返回创建好的QApp对象
    return qApp
Exemplo n.º 7
0
def  display_multi_grid():

    qApp = createQApp()
    qApp.setWindowIcon(QtGui.QIcon(loadIconPath('dashboard.ico')))
    w = GridKline()
    w.showMaximized()
    sys.exit(qApp.exec_())
Exemplo n.º 8
0
    def addConnectAction(self, menu, gatewayName, displayName=''):
        """增加连接功能"""
        if gatewayName not in self.gatewayNameList:
            return

        def connect():
            self.mainEngine.ws_connect(gatewayName)

        if not displayName:
            displayName = gatewayName

        actionName = vtText.CONNECT + displayName
        connectAction = self.createAction(actionName, connect,
                                          loadIconPath('connect.ico'))
        menu.addAction(connectAction)
Exemplo n.º 9
0
 def addConnectAction(self, menu, gatewayName, displayName=''):
     """增加连接功能"""
     if gatewayName not in self.gatewayNameList:
         return
     
     def connect():
         self.mainEngine.connect(gatewayName)
         
     if not displayName:
         displayName = gatewayName
     
     actionName = vtText.CONNECT + displayName
     connectAction = self.createAction(actionName, connect, 
                                       loadIconPath('connect.ico'))
     menu.addAction(connectAction)
Exemplo n.º 10
0
def display_multi_window():
    qApp = createQApp()

    qApp.setWindowIcon(QtGui.QIcon(loadIconPath('dashboard.ico')))
    settings = []
    collections = ['RB99_5', 'RB99_10']
    for collection in collections:
        s = {
            'kline_name': collection,
            'mongo': {
                'host': 'localhost',
                'port': 27017,
                'db': 'Renko_Db',
                'collection': collection,
                'is_live': True
            }
        }
        settings.append(s)

    w = MultiKlineWindow(parent=None, settings=settings)
    w.showMaximized()
    sys.exit(qApp.exec_())
Exemplo n.º 11
0
    def addConnectAction(self, menu, gatewayName, displayName=''):
        """增加连接功能"""
        if gatewayName not in self.gatewayNameList:
            return

        def connect():
            try:
                r = self.mainEngine.connect(gatewayName)
            except:
                print("Unexpected error:", sys.exc_info()[0])
                traceback.print_exc()

            if r:
                self.connectGatewayDict[gatewayName] = gatewayName
                self.connected = True

        if not displayName:
            displayName = gatewayName

        actionName = vtText.CONNECT + displayName
        connectAction = self.createAction(actionName, connect,
                                          loadIconPath('connect.ico'))
        menu.addAction(connectAction)
Exemplo n.º 12
0
    def addConnectAction(self, menu, gatewayName, displayName=''):
        """增加连接功能"""
        if gatewayName not in self.gatewayNameList:
            return

        def connect():
            try:
                r = self.mainEngine.connect(gatewayName)
            except:
                print( "Unexpected error:", sys.exc_info()[0])
                traceback.print_exc()

            if r:
                self.connectGatewayDict[gatewayName] = gatewayName
                self.connected = True

        if not displayName:
            displayName = gatewayName

        actionName = vtText.CONNECT + displayName
        connectAction = self.createAction(actionName, connect,
                                          loadIconPath('connect.ico'))
        menu.addAction(connectAction)
Exemplo n.º 13
0
    def initMenu(self):
        """初始化菜单"""

        autoDisconnetAction = QtWidgets.QAction(u'自动断开重连', self)
        autoDisconnetAction.triggered.connect(self.setAutoDisconnect)

        # 创建菜单
        menubar = self.menuBar()

        # 系统
        sysMenu = menubar.addMenu(vtText.SYSTEM)
        # 系统,连接的接口清单
        gatewayDetails = self.mainEngine.getAllGatewayDetails()

        gatewayDetails = sorted(gatewayDetails,
                                key=lambda gw: gw['gatewayName'])
        has_gw = False
        # 期货类接口
        for d in gatewayDetails:
            if d['gatewayType'] == GATEWAYTYPE_FUTURES:
                self.addConnectAction(sysMenu, d['gatewayName'],
                                      d['gatewayDisplayName'])
                has_gw = True

        if has_gw:
            sysMenu.addSeparator()
            has_gw = False

        for d in gatewayDetails:
            if d['gatewayType'] == GATEWAYTYPE_EQUITY:
                self.addConnectAction(sysMenu, d['gatewayName'],
                                      d['gatewayDisplayName'])
                has_gw = True
        if has_gw:
            sysMenu.addSeparator()
            has_gw = False

        for d in gatewayDetails:
            if d['gatewayType'] == GATEWAYTYPE_INTERNATIONAL:
                self.addConnectAction(sysMenu, d['gatewayName'],
                                      d['gatewayDisplayName'])
                has_gw = True
        if has_gw:
            sysMenu.addSeparator()
            has_gw = False

        for d in gatewayDetails:
            if d['gatewayType'] == GATEWAYTYPE_BTC:
                self.addConnectAction(sysMenu, d['gatewayName'],
                                      d['gatewayDisplayName'])
                has_gw = True
        if has_gw:
            sysMenu.addSeparator()
            has_gw = False

        # 系统=》自动重连, 接口连接后,断开时,自动重连
        sysMenu.addSeparator()
        sysMenu.addAction(autoDisconnetAction)

        # 系统=》连接数据库
        sysMenu.addSeparator()
        sysMenu.addAction(
            self.createAction(vtText.CONNECT_DATABASE,
                              self.mainEngine.dbConnect,
                              loadIconPath('database.ico')))

        # 系统=》退出菜单
        sysMenu.addSeparator()
        sysMenu.addAction(
            self.createAction(vtText.EXIT, self.close,
                              loadIconPath('exit.ico')))

        # 功能应用
        appMenu = menubar.addMenu(vtText.APPLICATION)
        for appDetail in self.appDetailList:
            function = self.createOpenAppFunction(appDetail)
            action = self.createAction(appDetail['appDisplayName'], function,
                                       loadIconPath(appDetail['appIco']))
            appMenu.addAction(action)

        # 算法相关
        #algoMenu = menubar.addMenu(u'算法')
        #algoMenu.addAction(ctaAction)
        spreadAction = self.createAction(u'网格套利', self.openSpread)
        appMenu.addAction(spreadAction)
        #appMenu.addAction(kChart)

        # 帮助
        helpMenu = menubar.addMenu(vtText.HELP)
        helpMenu.addAction(
            self.createAction(vtText.CONTRACT_SEARCH, self.openContract,
                              loadIconPath('contract.ico')))
        helpMenu.addAction(
            self.createAction(vtText.EDIT_SETTING, self.openSettingEditor,
                              loadIconPath('editor.ico')))
        helpMenu.addSeparator()
        helpMenu.addAction(
            self.createAction(vtText.RESTORE, self.restoreWindow,
                              loadIconPath('restore.ico')))
        helpMenu.addAction(
            self.createAction(vtText.ABOUT, self.openAbout,
                              loadIconPath('about.ico')))
        helpMenu.addSeparator()
        helpMenu.addAction(
            self.createAction(vtText.TEST, self.test,
                              loadIconPath('test.ico')))
Exemplo n.º 14
0
def display_multi_grid():

    qApp = createQApp()
    qApp.setWindowIcon(QtGui.QIcon(loadIconPath('dashboard.ico')))
    w = GridKline()
    w.showMaximized()
    sys.exit(qApp.exec_())


if __name__ == '__main__':

    #
    ## 界面设置
    qApp = createQApp()
    qApp.setWindowIcon(QtGui.QIcon(loadIconPath('dashboard.ico')))
    #
    # K线界面
    try:
        ui = KLineWidget(display_vol=False, display_sub=True)
        ui.show()
        ui.KLtitle.setText('btc()', size='20pt')
        ui.add_indicator(indicator='ema34', is_main=True)
        ui.add_indicator(indicator='ema55', is_main=True)
        ui.add_indicator(indicator='ema120', is_main=True)
        ui.add_indicator(indicator='sk', is_main=False)
        ui.add_indicator(indicator='sd', is_main=False)

        # 这里加载基础K线
        df = pd.read_csv('logs/SDemo_btc_usdt_M5.csv')
        if 'openInterest' not in df.columns:
Exemplo n.º 15
0
Arquivo: uiQt.py Projeto: haotin/vnpy
from vnpy.trader.vtGlobal import globalSetting
from vnpy.trader.vtFunction import loadIconPath

# 创建Qt应用对象
qApp = QtGui.QApplication([])

# 设置Qt的皮肤
if globalSetting['darkStyle']:
    try:
        import qdarkstyle
        qApp.setStyleSheet(qdarkstyle.load_stylesheet(pyside=False))
    except ImportError:
        pass

# 设置Windows底部任务栏图标
if 'Windows' in platform.uname():
    import ctypes
    ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('vn.trader')

# 设置Qt字体
try:
    family = globalSetting['fontFamily']
    size = globalSetting['fontSize']
    BASIC_FONT = QtGui.QFont(family, size)
except:
    BASIC_FONT = QtGui.QFont(u'微软雅黑', 12)
qApp.setFont(BASIC_FONT)

# 设置Qt图标
qApp.setWindowIcon(QtGui.QIcon(loadIconPath('vnpy.ico')))
Exemplo n.º 16
0
    def initMenu(self):
        """初始化菜单"""

        autoDisconnetAction = QtWidgets.QAction(u'自动断开重连', self)
        autoDisconnetAction.triggered.connect(self.setAutoDisconnect)

        # 创建菜单
        menubar = self.menuBar()
        
        # 系统
        sysMenu = menubar.addMenu(vtText.SYSTEM)
        # 系统,连接的接口清单
        gatewayDetails = self.mainEngine.getAllGatewayDetails()

        has_gw = False
        # 期货类接口
        for d in gatewayDetails:
            if d['gatewayType'] == GATEWAYTYPE_FUTURES:
                self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
                has_gw = True

        if has_gw:
            sysMenu.addSeparator()
            has_gw = False

        for d in gatewayDetails:
            if d['gatewayType'] == GATEWAYTYPE_EQUITY:
                self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
                has_gw = True
        if has_gw:
            sysMenu.addSeparator()
            has_gw = False


        for d in gatewayDetails:
            if d['gatewayType'] == GATEWAYTYPE_INTERNATIONAL:
                self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
                has_gw = True
        if has_gw:
            sysMenu.addSeparator()
            has_gw = False


        for d in gatewayDetails:
            if d['gatewayType'] == GATEWAYTYPE_BTC:
                self.addConnectAction(sysMenu, d['gatewayName'], d['gatewayDisplayName'])
                has_gw = True
        if has_gw:
            sysMenu.addSeparator()
            has_gw = False

        # 系统=》自动重连, 接口连接后,断开时,自动重连
        sysMenu.addSeparator()
        sysMenu.addAction(autoDisconnetAction)

        # 系统=》连接数据库
        sysMenu.addSeparator()
        sysMenu.addAction(
            self.createAction(vtText.CONNECT_DATABASE, self.mainEngine.dbConnect, loadIconPath('database.ico')))

        # 系统=》退出菜单
        sysMenu.addSeparator()
        sysMenu.addAction(self.createAction(vtText.EXIT, self.close, loadIconPath('exit.ico')))

        # 功能应用
        appMenu = menubar.addMenu(vtText.APPLICATION)
        for appDetail in self.appDetailList:
            function = self.createOpenAppFunction(appDetail)
            action = self.createAction(appDetail['appDisplayName'], function, loadIconPath(appDetail['appIco']))
            appMenu.addAction(action)
        
        # 算法相关
        #algoMenu = menubar.addMenu(u'算法')
        #algoMenu.addAction(ctaAction)
        spreadAction = self.createAction(u'网格套利',self.openSpread)
        appMenu.addAction(spreadAction)
        #appMenu.addAction(kChart)

        # 帮助
        helpMenu = menubar.addMenu(vtText.HELP)
        helpMenu.addAction(
            self.createAction(vtText.CONTRACT_SEARCH, self.openContract, loadIconPath('contract.ico')))
        helpMenu.addAction(
            self.createAction(vtText.EDIT_SETTING, self.openSettingEditor, loadIconPath('editor.ico')))
        helpMenu.addSeparator()
        helpMenu.addAction(self.createAction(vtText.RESTORE, self.restoreWindow, loadIconPath('restore.ico')))
        helpMenu.addAction(self.createAction(vtText.ABOUT, self.openAbout, loadIconPath('about.ico')))
        helpMenu.addSeparator()
        helpMenu.addAction(self.createAction(vtText.TEST, self.test, loadIconPath('test.ico')))