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")
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)
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)
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()
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_())
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.")
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_())
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')
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_())
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)
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()
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)
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_())
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_())
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_()
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()
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()