Esempio n. 1
0
def main():
    """主程序入口"""
    # 重载sys模块,设置默认字符串编码方式为utf8
    reload(sys)
    sys.setdefaultencoding('utf8')

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

    # 初始化Qt应用对象
    app = QtGui.QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon('vnpy.ico'))
    app.setFont(BASIC_FONT)
    mainEngine = MainEngine()

    sm = SelectedMainWidget(mainEngine, mainEngine.eventEngine)
    sm.show()

    #sm = MainWindow(mainEngine,mainEngine.eventEngine)
    #sm.showMaximized()

    # 在主线程中启动Qt事件循环
    sys.exit(app.exec_())

    print("------------------over")
Esempio n. 2
0
def runChildProcess():
    """子进程运行函数"""
    print '-' * 20

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.info(u'启动行情记录运行子进程')

    ee = EventEngine2()
    le.info(u'事件引擎创建成功')

    me = MainEngine(ee)
    me.addGateway(ctpGateway)
    me.addApp(dataRecorder)
    le.info(u'主引擎创建成功')

    ee.register(EVENT_LOG, le.processLogEvent)
    ee.register(EVENT_ERROR, processErrorEvent)
    le.info(u'注册日志事件监听')

    me.connect('CTP')
    le.info(u'连接CTP接口')

    while True:
        sleep(1)
Esempio n. 3
0
    def __init__(self, repAddress, pubAddress):
        """Constructor"""
        super(VtServer, self).__init__(repAddress, pubAddress)
        self.usePickle()

        # 创建主引擎对象
        self.engine = MainEngine()

        # 注册主引擎的方法到服务器的RPC函数
        self.register(self.engine.connect)
        self.register(self.engine.subscribe)
        self.register(self.engine.sendOrder)
        self.register(self.engine.cancelOrder)
        self.register(self.engine.qryAccount)
        self.register(self.engine.qryPosition)
        self.register(self.engine.exit)
        self.register(self.engine.writeLog)
        self.register(self.engine.dbConnect)
        self.register(self.engine.dbInsert)
        self.register(self.engine.dbQuery)
        self.register(self.engine.dbUpdate)
        self.register(self.engine.getContract)
        self.register(self.engine.getAllContracts)
        self.register(self.engine.getOrder)
        self.register(self.engine.getAllWorkingOrders)
        self.register(self.engine.getAllGatewayNames)
        self.register(self.engine.getGateway4sysMenu)

        # 注册事件引擎发送的事件处理监听
        self.engine.eventEngine.registerGeneralHandler(self.eventHandler)
Esempio n. 4
0
    def start(self, gatewayList):
        """
        
        :param gatewayList: such as ['CHBTC', 'HUOBI'] 
        :type gatewayList: 
        :return: 
        :rtype: 
        """

        if self.isRunning:
            return
        self.isRunning = True

        # 创建主引擎对象
        self.mainEngine = MainEngine(enableCtaEngine=False,
                                     enableDrEngine=True,
                                     enableRmEngine=False)

        # 启动server
        server = VtServer(self.reqAddr, self.pubAddr, self.mainEngine)
        server.start()
        self._connectGateway(gatewayList)

        printLog('-' * 50)
        printLog(u'marketing服务器已启动')
        # 进入主循环
        self.isRunning = True
        self.onRunging()

        server.stopServer()
        self.mainEngine.exit()
Esempio n. 5
0
def main():
    """主程序入口"""
    # 重载sys模块,设置默认字符串编码方式为utf8
    reload(sys)
    sys.setdefaultencoding('utf8')

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

    # 初始化Qt应用对象
    app = QtGui.QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon(ICON_FILENAME))
    app.setFont(BASIC_FONT)

    # 设置Qt的皮肤
    try:
        f = file(SETTING_FILENAME)
        setting = json.load(f)
        if setting['darkStyle']:
            import qdarkstyle
            app.setStyleSheet(qdarkstyle.load_stylesheet(pyside=False))
        f.close()
    except:
        pass

    # 初始化主引擎和主窗口对象
    mainEngine = MainEngine()
    mainWindow = MainWindow(mainEngine, mainEngine.eventEngine)
    mainWindow.showMaximized()

    # 在主线程中启动Qt事件循环
    sys.exit(app.exec_())
Esempio n. 6
0
 def __init__(self):
     self.mainEngine = MainEngine()
     self.ctaEngine = self.mainEngine.ctaEngine
     self.drEngine = self.mainEngine.drEngine
     self.gatewayConnectedDict = {}
     self.strategyInited = False
     self.strategyStarted = False
     self.mainEngine.writeLog("MainEngine Started.")
Esempio n. 7
0
def main():
    """主程序入口"""
    app = QtGui.QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon('vnpy.ico'))
    app.setFont(BASIC_FONT)

    mainEngine = MainEngine()
    mainWindow = MainWindow(mainEngine, mainEngine.eventEngine)
    mainWindow.showMaximized()

    sys.exit(app.exec_())
Esempio n. 8
0
def main():
    """主程序入口"""
    # 重载sys模块,设置默认字符串编码方式为utf8
    reload(sys)
    sys.setdefaultencoding('utf8')

    # 初始化主引擎和主窗口对象
    mainEngine = MainEngine()
    mainEngine.connect('CTP')
    time.sleep(5)
    mainEngine.ctaEngine.loadSetting()
    mainEngine.ctaEngine.initStrategy('tradeTest')
    mainEngine.ctaEngine.startStrategy('tradeTest')
Esempio n. 9
0
def main():
    """主程序入口"""
    # 设置底部任务栏图标,win7以下请注释掉
    ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('vn.py trading system')
    
    app = QtGui.QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon('vnpy.ico'))
    app.setFont(BASIC_FONT)
    
    mainEngine = MainEngine()
    mainWindow = MainWindow(mainEngine, mainEngine.eventEngine)
    mainWindow.showMaximized()
    
    sys.exit(app.exec_())
Esempio n. 10
0
def runServer():
    """运行服务器"""
    global g_trade
    signal.signal(signal.SIGTERM, signal_handler)
    signal.signal(signal.SIGINT, signal_handler)

    mainEngine = MainEngine(enableCtaEngine=False, enableDrEngine=True, enableRmEngine=False)
    g_trade = Trade(
        config.TRADE_REQ_ADDR,
        config.TRADE_PUB_ADDR,
    )
    g_trade.start([
        vtConstant.EXCHANGE_CHBTC,
    ], mainEngine)
Esempio n. 11
0
def tcplink(sock, addr):
    print 'Accept new connection from %s:%s...' % addr
    sock.send('Welcome!')
    mainEngine = MainEngine()

    while True:
        data = sock.recv(1024)
        time.sleep(1)
        if data == 'exit' or not data:
            break
        mainEngine.ctaEngine.loadSetting()
        mainEngine.ctaEngine.initStrategy(data)
        mainEngine.ctaEngine.startStrategy(data)
        sock.send("SEVER OK")
    sock.close()
Esempio n. 12
0
def run(gateway, strategyName):
    reload(sys)
    sys.setdefaultencoding('utf-8')
    """主程序入口"""
    mainEngine = MainEngine()
    logPrint = LogPrint(mainEngine)
    print "connect MongoDB.........."
    mainEngine.dbConnect()
    time.sleep(5)

    print "connet %s.........." % gateway
    mainEngine.connect(gateway)
    time.sleep(5)

    print "start strategy %s......." % strategyName
    mainEngine.ctaEngine.loadSetting()
    mainEngine.ctaEngine.initStrategy(strategyName)
    mainEngine.ctaEngine.startStrategy(strategyName)
Esempio n. 13
0
def main():
    """主程序入口"""
    # 重载sys模块,设置默认字符串编码方式为utf8
    '''
    reload(sys)
    try:
        sys.setdefaultencoding('utf8')
    except:
        pass
    '''

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

    # 初始化Qt应用对象
    icon = os.path.join(os.getcwd(), 'setting', 'vnpy.ico')

    app = QApplication(['VnTrader', ''])
    app.setWindowIcon(QIcon(icon))
    app.setFont(BASIC_FONT)

    darksheet = qdarkstyle.load_stylesheet(pyside=False)
    whitesheet = app.styleSheet()
    sheets = [whitesheet, darksheet]
    # 设置Qt的皮肤
    try:
        f = open("setting/VT_setting.json")
        setting = json.load(f)
        if setting['darkStyle']:
            app.setStyleSheet(darksheet)
            sheets = [darksheet, whitesheet]
    except:
        pass

    # 初始化主引擎和主窗口对象
    mainEngine = MainEngine()
    mainWindow = MainWindow(mainEngine, mainEngine.eventEngine, app, sheets)
    mainWindow.showMaximized()
    mainWindow.showLogin()

    # 在主线程中启动Qt事件循环
    sys.exit(app.exec_())
Esempio n. 14
0
def main():
    """主程序入口"""
    # 重载sys模块,设置默认字符串编码方式为utf8
    reload(sys)

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

    # 初始化Qt应用对象
    app = QtGui.QApplication(sys.argv)
    # app.setFont(BASIC_FONT)

    # 初始化主引擎和主窗口对象
    mainEngine = MainEngine()
    mainWindow = MainWindow(mainEngine, mainEngine.eventEngine)
    mainWindow.showMaximized()

    # 在主线程中启动Qt事件循环
    sys.exit(app.exec_())
Esempio n. 15
0
def main():
    app = QCoreApplication(sys.argv)
    mainEngine = MainEngine()
    # 若需要连接数据库,则启动
    mainEngine.dbConnect()
    # 指定的连接配置
    mainEngine.connect('CTP_Prod')
    # 加载cta的配置
    mainEngine.ctaEngine.loadSetting()
    # 初始化策略,如果多个,则需要逐一初始化多个
    mainEngine.ctaEngine.initStrategy(u'S26_PTA套利')
    # 逐一启动策略
    mainEngine.ctaEngine.startStrategy(u'S26_PTA套利')

    logM = LogMonitor(mainEngine.eventEngine)
    errorM = ErrorMonitor(mainEngine.eventEngine)
    tradeM = TradeMonitor(mainEngine.eventEngine)
    orderM = OrderMonitor(mainEngine.eventEngine, mainEngine)
    positionM = PositionMonitor(mainEngine.eventEngine)
    accountM = AccountMonitor(mainEngine.eventEngine)

    app.exec_()
Esempio n. 16
0
def runServer():
    """运行服务器"""
    repAddress = 'tcp://*:2014'
    pubAddress = 'tcp://*:2015'

    # 创建并启动服务器
    server = VtServer(repAddress, pubAddress, MainEngine())
    server.start()

    printLog('-' * 50)
    printLog(u'vn.trader服务器已启动')

    # 进入主循环
    while True:
        printLog(u'请输入exit来关闭服务器')
        if raw_input() != 'exit':
            continue

        printLog(u'确认关闭服务器?yes|no')
        if raw_input() == 'yes':
            break

    server.stopServer()
Esempio n. 17
0
            if response:
                break
        except Exception, e:
            pass  

    # 初始化Qt应用对象
    app = QtGui.QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon(ICON_FILENAME))
    app.setFont(BASIC_FONT)
    
    # 设置Qt的皮肤
    try:
        f = file(SETTING_FILENAME)
        setting = json.load(f)    
        if setting['darkStyle']:
            import qdarkstyle
            app.setStyleSheet(qdarkstyle.load_stylesheet(pyside=False))
    except:
        pass
    
    # 初始化主引擎和主窗口对象
    mainEngine = MainEngine()
    mainWindow = MainWindow(mainEngine, mainEngine.eventEngine)
    mainWindow.showMaximized()
    
    # 在主线程中启动Qt事件循环
    sys.exit(app.exec_())
    
if __name__ == '__main__':
    main()