vnpy/examples/VnTrader/run.py

83 lines
1.8 KiB
Python
Raw Normal View History

# encoding: UTF-8
# 重载sys模块设置默认字符串编码方式为utf8
2018-04-13 07:49:43 +00:00
try:
reload # Python 2
except NameError: # Python 3
from importlib import reload
2018-08-06 06:16:30 +00:00
import sys
reload(sys)
2018-08-06 06:16:30 +00:00
try:
sys.setdefaultencoding('utf8')
except AttributeError:
pass
# 判断操作系统
import platform
system = platform.system()
# vn.trader模块
2017-06-04 15:07:15 +00:00
from vnpy.event import EventEngine
from vnpy.trader.vtEngine import MainEngine
from vnpy.trader.uiQt import createQApp
from vnpy.trader.uiMainWindow import MainWindow
# 加载底层接口
2018-08-06 06:16:30 +00:00
from vnpy.trader.gateway import (ctpGateway, ibGateway)
2018-04-13 07:49:43 +00:00
if system == 'Linux':
from vnpy.trader.gateway import xtpGateway
elif system == 'Windows':
from vnpy.trader.gateway import (femasGateway, xspeedGateway,
secGateway)
# 加载上层应用
2018-06-09 10:54:41 +00:00
from vnpy.trader.app import (riskManager, ctaStrategy,
2018-12-02 05:24:04 +00:00
spreadTrading, algoTrading,
tradeCopy)
#----------------------------------------------------------------------
def main():
"""主程序入口"""
# 创建Qt应用对象
qApp = createQApp()
2018-04-13 07:49:43 +00:00
# 创建事件引擎
2017-06-05 08:22:16 +00:00
ee = EventEngine()
2018-04-13 07:49:43 +00:00
# 创建主引擎
me = MainEngine(ee)
2018-04-13 07:49:43 +00:00
# 添加交易接口
me.addGateway(ctpGateway)
me.addGateway(ibGateway)
2018-04-13 07:49:43 +00:00
if system == 'Windows':
me.addGateway(femasGateway)
me.addGateway(xspeedGateway)
me.addGateway(secGateway)
2018-04-13 07:49:43 +00:00
2017-08-31 09:55:42 +00:00
if system == 'Linux':
me.addGateway(xtpGateway)
2018-04-13 07:49:43 +00:00
# 添加上层应用
me.addApp(riskManager)
me.addApp(ctaStrategy)
me.addApp(spreadTrading)
2018-06-09 10:54:41 +00:00
me.addApp(algoTrading)
2018-12-02 05:24:04 +00:00
me.addApp(tradeCopy)
2018-04-13 07:49:43 +00:00
# 创建主窗口
mw = MainWindow(me, ee)
mw.showMaximized()
2018-04-13 07:49:43 +00:00
# 在主线程中启动Qt事件循环
sys.exit(qApp.exec_())
if __name__ == '__main__':
main()