Exemplo n.º 1
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(okexGateway)
    me.addApp(dataRecorder)
    le.info(u'主引擎创建成功')

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

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

    while True:
        sleep(1)
Exemplo n.º 2
0
def main():
    """主程序入口"""
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()

    le.info('服务器进程启动')

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

    # 创建主引擎
    me = MainEngine(ee)

    # 添加交易接口
    me.addGateway(ctpGateway)

    # 添加上层应用
    me.addApp(ctaStrategy)
    me.addApp(rpcService)

    le.info('主引擎创建成功')

    # 阻塞运行
    le.info('服务器启动成功')
    while 1:
        sleep(1)
Exemplo n.º 3
0
def main():
    """主程序入口"""
    # 创建事件引擎
    ee = EventEngine2()

    # 创建主引擎
    me = MainEngine(ee)

    # 添加交易接口
    me.addGateway(ctpGateway)
    me.addGateway(femasGateway)
    me.addGateway(xspeedGateway)
    me.addGateway(sgitGateway)
    me.addGateway(oandaGateway)
    me.addGateway(ibGateway)
    me.addGateway(shzdGateway)
    me.addGateway(huobiGateway)
    me.addGateway(okcoinGateway)

    # 添加上层应用
    me.addApp(riskManager)
    me.addApp(dataRecorder)
    me.addApp(ctaStrategy)

    # 创建主窗口
    mw = MainWindow(me, ee)
    mw.showMaximized()

    # 在主线程中启动Qt事件循环
    sys.exit(qApp.exec_())
def runChildProcess():
    """子进程运行函数"""

    # 创建日志引擎
    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)
    le.info(u'注册日志事件监听')

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

    has_recorder_day = False
    while True:
        sleep(1)
        if has_recorder_day == False:
            time_now = datetime.now()
            if time_now.time().hour > 15 and time_now.time().minute > 5:
                event1 = Event(type_=EVENT_RECORDER_DAY)
                ee.put(event1)
                has_recorder_day = True
Exemplo n.º 5
0
def runChildProcess():
    """子进程运行函数"""
    print '-' * 20
    printLog(u'启动CTA策略运行子进程')

    ee = EventEngine2()
    printLog(u'事件引擎创建成功')

    me = MainEngine(ee)
    me.addGateway(ctpGateway)
    me.addApp(ctaStrategy)
    printLog(u'主引擎创建成功')

    ee.register(EVENT_LOG, processLogEvent)
    ee.register(EVENT_CTA_LOG, processCtaLogEvent)
    printLog(u'注册日志事件监听')

    me.connect('CTP')
    printLog(u'连接CTP接口')

    sleep(5)  # 等待CTP接口初始化

    cta = me.appDict[ctaStrategy.appName]

    cta.loadSetting()
    printLog(u'CTA策略载入成功')

    cta.initAll()
    printLog(u'CTA策略初始化成功')

    cta.startAll()
    printLog(u'CTA策略启动成功')

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

        # 创建事件引擎
        self.ee = EventEngine2()

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

        # 注册主引擎的方法到服务器的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.getAllGatewayDetails)

        # 注册事件引擎发送的事件处理监听
        self.engine.eventEngine.registerGeneralHandler(self.eventHandler)
Exemplo n.º 7
0
def runChildProcess():
    """子进程运行函数"""
    print('-' * 20)

    # 创建日志引擎
    le = setup_logger(filename='logs/vnpy.log', debug=False)
    # 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)
Exemplo n.º 8
0
def runChildProcess():
    """子进程运行函数"""
    print('-' * 20)

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()

    le.info('启动行情记录运行子进程')

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

    me = MainEngine(ee)
    me.addGateway(ctpGateway)

    me.addApp(dataRecorder)
    le.info('主引擎创建成功')

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

    me.connect('CTP')
    le.info('连接CTP接口')
    while True:
        sleep(1)
Exemplo n.º 9
0
def runChildProcess():
    """子进程运行函数"""
    # print('-'*20)

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_WARN)
    # le.addConsoleHandler()
    le.addFileHandler()

    le.info(u'启动CTA策略运行子进程')

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

    me = MainEngine(ee)

    me.addGateway(ctpGateway)
    me.addGateway(ibGateway)

    me.addApp(riskManager)
    me.addApp(ctaStrategy)
    # me.addApp(dataRecorder)
    le.info(u'主引擎创建成功')

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

    me.connect('IB')
    le.info(u'连接IB接口')
    sleep(5)  # 等待接口初始化
    me.connect('CTP')
    le.info(u'连接CTP接口')

    # sleep(10)    # 等待接口初始化
    can_done1 = Event()
    can_done1.wait(timeout=10)
    cta = me.getApp(ctaStrategy.appName)
    cta.loadSetting()
    le.info(u'CTA策略载入成功')

    cta.initAll()
    le.info(u'CTA策略初始化成功')

    cta.startAll()
    le.info(u'CTA策略启动成功')

    while True:
        can_done2 = Event()
        can_done2.wait(timeout=1)
Exemplo n.º 10
0
def runChildProcess():
    """子进程运行函数"""
    print('-' * 20)

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()

    le.info(u'启动CTA策略运行子进程')

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

    me = MainEngine(ee)

    le.info(u'bbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
    me.addGateway(ctpGateway)

    sleep(10)  # 等待CTP接口初始化
    le.info(u'aaaaaaaaaaaaaaaaaaaaaaaaaaa')

    me.addApp(ctaStrategy)
    me.addApp(weixinRecorder)
    le.info(u'主引擎创建成功')

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

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

    sleep(10)  # 等待CTP接口初始化
    me.dataEngine.saveContracts()  # 保存合约信息到文件

    cta = me.getApp(ctaStrategy.appName)

    cta.loadSetting()
    le.info(u'CTA策略载入成功')

    cta.initAll()
    le.info(u'CTA策略初始化成功')

    cta.startAll()
    le.info(u'CTA策略启动成功')

    while True:
        sleep(1)
Exemplo n.º 11
0
    def run(self):
        print('-' * 30)
        self.running = True
        # 创建日志引擎
        le = LogEngine()
        self.le = le
        le.setLogLevel(le.LEVEL_INFO)
        # le.addConsoleHandler()
        # le.addFileHandler()

        le.info(u'启动CTA策略运行子进程')

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

        me = MainEngine(ee)
        self.me = me
        me.addGateway(okexfGateway)
        me.addGateway(huobiGateway)
        me.addGateway(binanceGateway)
        me.addGateway(bitmexGateway)
        me.addGateway(oandaGateway)

        if is_windows:
            me.addGateway(ctpGateway)

        me.addApp(ctaStrategy)
        le.info(u'主引擎创建成功')

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

        for gw in self.get_gateways(me):
            le.info(u'连接Gateway[%s]的行情和交易接口' % gw)
            me.connect(gw)
        sleep(5)  # 等待接口初始化
        me.dataEngine.saveContracts()  # 保存合约信息到文件

        cta = me.getApp(ctaStrategy.appName)
        self.cta = cta
        le.info(u"读取策略配置")
        cta.loadSetting()
        le.info(u"初始化所有策略")
        cta.initAll()
        le.info(u"开始所有策略")
        cta.startAll()
Exemplo n.º 12
0
def runChildProcess():
    """子进程运行函数"""
    print '*' * 50

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()

    le.info(u'marketMaker childProcess is working')

    ee = EventEngine2()

    me = MainEngine(ee)
    le.info(u'MainEngine has been established')
    me.addGateway(huobiGateway)
    le.info(u'huobiGateway has been established')

    ee.register(EVENT_LOG, le.processLogEvent)
    ee.register(EVENT_MMK_LOG, le.processLogEvent)
    ee.register(EVENT_ERROR, processError)
    le.info(u'register log event monitor')

    me.connect('HUOBI')
    le.info(u'connect huobiGateway')

    sleep(5)  # 等待CTP接口初始化

    # for k,v in me.dataEngine.contractDict.items():
    #     print '%s:%s' % (k,v.__dict__)

    me.addApp(mmkStrategy)

    mmk = me.getApp(mmkStrategy.appName)

    mmk.loadSetting()
    # le.info(u'MMK策略载入成功')

    mmk.initAll()
    # le.info(u'MMK策略初始化成功')

    mmk.startAll()
    # le.info(u'MMK策略启动成功')

    while True:
        sleep(10)
Exemplo n.º 13
0
def runChildProcess():
    """子进程运行函数"""
    print '*' * 50

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()

    le.info(u'tab childProcess is working')

    ee = EventEngine2()

    me = MainEngine(ee)
    le.info(u'MainEngine has been established')
    me.addGateway(binanceGateway)
    le.info(u'binanceGateway has been established')

    ee.register(EVENT_LOG, le.processLogEvent)
    ee.register(EVENT_ERROR, processError)
    ee.register(EVENT_TABTRADING_LOG, le.processLogEvent)
    ee.register(EVENT_TABTRADING_ALGOLOG, le.processLogEvent)
    le.info(u'register log event monitor')

    me.connect('BINANCE')
    le.info(u'connect binanceGateway')

    sleep(5)  # 等待CTP接口初始化

    # for k,v in me.dataEngine.contractDict.items():
    #     print '%s:%s' % (k,v.__dict__)

    me.addApp(tabStrategy_binance)

    tab = me.getApp(tabStrategy_binance.appName)
    tab.init()
    le.info(u'tabEngine_binance has been inited')

    # tab.algoEngine.startAlgo()
    # le.info(u'tabAlgo已启动')

    # tab.startAll()
    # le.info(u'CTA策略启动成功')

    while True:
        sleep(10)
Exemplo n.º 14
0
def runChildProcess():
    """子进程运行函数"""
    print '-' * 20

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()

    le.info(u'启动CTA策略运行子进程')

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

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

    def process_error(event):
        error = event.dict_['data']
        le.error(error.errorMsg)

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

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

    sleep(5)  # 等待CTP接口初始化

    cta = me.getApp(ctaStrategy.appName)

    cta.loadSetting()
    le.info(u'CTA策略载入成功')

    cta.initAll()
    le.info(u'CTA策略初始化成功')

    cta.startAll()
    le.info(u'CTA策略启动成功')

    while True:
        sleep(1)
Exemplo n.º 15
0
def runChildProcess():
    """子进程运行函数"""
    print '-'*20
    
    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()
    
    le.info(u'启动CTA策略运行子进程')
    
    ee = EventEngine2()
    le.info(u'事件引擎创建成功')
    
    me = MainEngine(ee)
    me.addGateway(ctpGateway)
    me.addApp(ctaStrategy)
    le.info(u'主引擎创建成功')
    
    ee.register(EVENT_LOG, le.processLogEvent)
    ee.register(EVENT_CTA_LOG, le.processLogEvent)
    ee.register(EVENT_ERROR, processErrorEvent)
    le.info(u'注册日志事件监听')
    
    me.connect('CTP')
    le.info(u'连接CTP接口')
    
    sleep(10)    # 等待CTP接口初始化
    print("hehe")
    me.updateDominant()
    
    cta = me.getApp(ctaStrategy.appName)
    
    cta.loadSetting()
    le.info(u'CTA策略载入成功')
    
    cta.initAll()
    le.info(u'CTA策略初始化成功')
    
    cta.startAll()
    le.info(u'CTA策略启动成功')
    
    while True:
        sleep(1)
Exemplo n.º 16
0
def runChildProcess():
    """子进程运行函数"""
    print '-'*20
    
    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()
    
    le.info(u'启动CTA策略运行子进程')
    
    ee = EventEngine2()
    le.info(u'事件引擎创建成功')
    
    me = MainEngine(ee)
    me.addGateway(ctpGateway)
    me.addApp(dailyStrategy)
    #me.addApp(rpcService)  ##先不加
    le.info(u'主引擎创建成功')
    
    ee.register(EVENT_LOG, le.processLogEvent)
    ee.register(EVENT_DAILY_LOG, le.processLogEvent)
    ee.register(EVENT_ERROR,le.processErrorEvent)
    le.info(u'注册日志事件监听')
    
    me.connect('CTP')
    le.info(u'连接CTP接口')
    le.setMysqlClient(me.mysqlClient)  ##日志写数据库
    
    sleep(5)    # 等待CTP接口初始化
    
    cta = me.getApp(dailyStrategy.appName)
    
    cta.loadSetting()
    le.info(u'CTA策略载入成功')
    
    cta.initAll()
    le.info(u'CTA策略初始化成功')
    
    cta.startAll()
    le.info(u'CTA策略启动成功')
    
    while True:
        sleep(1)
Exemplo n.º 17
0
def run_strategy():
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    ee = EventEngine2()
    me = MainEngine(ee)
    me.addGateway(gateway)
    me.addApp(ctaStrategy)
    # ee.register(EVENT_LOG, le.processLogEvent)
    # ee.register(EVENT_CTA_LOG, le.processLogEvent)
    me.connect(gateway.gatewayName)
    gw = me.getGateway(gateway.gatewayName)

    cta = me.getApp(ctaStrategy.appName)
    cta.settingfilePath = "CTA_setting.json"

    cta.loadSetting()
    cta.initAll()
    cta.startAll()
Exemplo n.º 18
0
def runChildProcess():
    """子进程运行函数"""
    # print('-'*20)

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_WARN)
    # le.addConsoleHandler()
    le.addFileHandler()

    le.info(u'启动CTA策略运行子进程')

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

    me = MainEngine(ee)
    me.addGateway(onetokenGateway)

    me.addApp(riskManager)
    me.addApp(ctaStrategy)
    # me.addApp(dataRecorder)
    le.info(u'主引擎创建成功')

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

    me.connect('ONETOKEN')
    le.info(u'连接1token接口')

    sleep(5)  # 等待接口初始化

    cta = me.getApp(ctaStrategy.appName)
    cta.loadSetting()
    le.info(u'CTA策略载入成功')

    cta.initAll()
    le.info(u'CTA策略初始化成功')

    cta.startAll()
    le.info(u'CTA策略启动成功')

    while True:
        sleep(1)
Exemplo n.º 19
0
def runBacktestingProcess():
    """子进程运行函数"""
    print('-' * 20)

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()

    le.info(u'启动CTA策略运行子进程')

    ee = EventEngine2()

    me = MainEngine(ee)

    me.addApp(ctaStrategy)

    le.info(u'主引擎创建成功')

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

    me.dbConnect()
    le.info("连接数据库")

    cta = me.getApp(ctaStrategy.appName)

    cta.loadSetting()
    le.info(u'CTA策略载入成功')

    cta.setBackTestingMode()
    le.info(u'运行CTA策略回测')

    cta.runBacktesting()

    cta.stopAll()
    ee.stop()

    while True:
        sleep(1)
Exemplo n.º 20
0
def runChildProcess():
    """子进程运行函数"""
    print('-' * 20)

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()

    le.info('启动CTA策略运行子进程')

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

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

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

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

    sleep(5)  # 等待CTP接口初始化

    cta = me.appDict[ctaStrategy.appName]

    cta.loadSetting()
    le.info('CTA策略载入成功')

    cta.initAll()
    le.info('CTA策略初始化成功')

    cta.startAll()
    le.info('CTA策略启动成功')

    while True:
        sleep(1)
Exemplo n.º 21
0
    def run(self, monitor=False):
        self.running = True
        # 创建日志引擎
        le = LogEngine()
        self.le = le
        le.setLogLevel(le.LEVEL_INFO)
        # le.addConsoleHandler()
        # le.addFileHandler()

        le.info(u'启动CTA策略运行子进程')

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

        self.handle_rs_setting()

        me = initialize_main_engine(ee)
        self.me = me
        le.info(u'主引擎创建成功')

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

        for gw in self.get_gateways(me):
            le.info(u'连接Gateway[%s]的行情和交易接口' % gw)
            me.connect(gw)
        sleep(5)  # 等待接口初始化
        me.dataEngine.saveContracts()  # 保存合约信息到文件

        cta = me.getApp(ctaStrategy.appName)
        self.cta = cta
        le.info(u"读取策略配置")
        cta.loadSetting()
        le.info(u"初始化所有策略")
        cta.initAll()
        if monitor:
            cta.enablePlugin(CtaStrategyInfoPlugin)
        le.info(u"开始所有策略")
        cta.startAll()
Exemplo n.º 22
0
def main():
    """客户端主程序入口"""
    # 创建事件引擎
    eventEngine = EventEngine2()
    eventEngine.start(timer=False)

    # 创建客户端
    reqAddress = 'tcp://localhost:2014'
    subAddress = 'tcp://localhost:0602'
    client = VtClient(reqAddress, subAddress, eventEngine)

    client.subscribeTopic('')
    client.start()

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

    # 在主线程中启动Qt事件循环
    sys.exit(qApp.exec_())
Exemplo n.º 23
0
def runChildProcess():
    """子进程运行函数"""
    print '-' * 20
    printLog(u'启动行情记录运行子进程')

    ee = EventEngine2()
    printLog(u'事件引擎创建成功')

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

    ee.register(EVENT_LOG, processLogEvent)
    printLog(u'注册日志事件监听')

    me.connect('CTP')
    printLog(u'连接CTP接口')

    while True:
        sleep(1)
Exemplo n.º 24
0
def runChildProcess():
    """子进程运行函数"""
    print('-' * 30)

    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    # le.addConsoleHandler()
    # le.addFileHandler()

    le.info(u'启动CTA策略运行子进程')

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

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

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

    key = findConnectKey()
    me.connect(key)
    le.info(u'连接行情和交易接口')

    sleep(5)  # 等待Gateway接口初始化
    me.dataEngine.saveContracts()  # 保存合约信息到文件

    # 加载CTA策略
    cta = me.getApp(ctaStrategy.appName)
    cta.loadSetting()
    cta.initAll()
    cta.startAll()

    while True:
        sleep(1)
Exemplo n.º 25
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接口')

    #获取全部合约信息并自动订阅
    contracts = me.getAllContracts()
    while len(contracts) == 0:
        sleep(1)
        contracts = me.getAllContracts()
    print(u"共获取" + str(len(contracts)) + u"条合约信息")
    for contract in contracts:
        if contract.productClass == u"期货":
            req = VtSubscribeReq()
            req.symbol = contract.symbol
            me.subscribe(req, contract.gatewayName)
            me.getApp(dataRecorder.appName).tickSymbolSet.add(req.symbol)

    while True:
        sleep(1)
Exemplo n.º 26
0
def main():
    """主程序入口"""
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()

    le.info(u'服务器进程启动')

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

    # 创建主引擎
    me = MainEngine(ee)

    # 安全退出机制
    def shutdown(signal, frame):
        le.info(u'安全关闭进程')
        me.exit()
        sys.exit()

    for sig in [signal.SIGINT, signal.SIGTERM]:
        signal.signal(sig, shutdown)

    # 添加交易接口
    me.addGateway(ctpGateway)

    # 添加上层应用
    me.addApp(ctaStrategy)
    me.addApp(rpcService)
    cta = me.getApp(ctaStrategy.appName)
    le.info(u'主引擎创建成功')
    cta.loadSetting()
    le.info(u'CTA策略载入成功')
    # 阻塞运行
    le.info(u'服务器启动成功')
    while 1:
        sleep(1)
Exemplo n.º 27
0
def runChildProcess():
    """子进程运行函数"""

    le.info(u'启动行情记录运行子进程')

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

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

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

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

    while True:
        #向文件写时间
        write_time()
        sleep(5)
Exemplo n.º 28
0
    def __init__(self,name):
        multiprocessing.Process.__init__(self)
        #self.fileName = fileName
        #self.ee = EventEngine2() #成员变量
        # 创建日志引擎
        self.name = name
        le = LogEngine()
        le.setLogLevel(le.LEVEL_INFO)
        le.addConsoleHandler()
        le.addFileHandler() 
        self.le = le 
        ee = EventEngine2()
        self.le.info(u'事件引擎创建成功')

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

        ee.register(EVENT_LOG, self.le.processLogEvent)
        ee.register(EVENT_CTA_LOG, self.le.processLogEvent)
        ee.register(EVENT_ERROR, processErrorEvent)
        self.le.info(u'注册日志事件监听')   
        self.me = me
Exemplo n.º 29
0
from vnpy.event import EventEngine2
from vnpy.trader.vtZcEngine import DbEngine
from vnpy.trader.vtConstant import (DIRECTION_LONG, DIRECTION_SHORT,
                                    STATUS_NOTTRADED, STATUS_PARTTRADED, STATUS_UNKNOWN,
                                    PRICETYPE_MARKETPRICE)
from vnpy.trader.vtSendMail import SendEmail
import pandas as pd

# 自定义日志级别
LOG_DEBUG = 10
LOG_INFO = 20
LOG_IMPORTANT = 30
LOG_ERROR = 40

# 全局公用的数据库引擎
eeEE = EventEngine2()
mydb = DbEngine(eeEE)


"""
对于一个交易单位的封装,设定目标仓位后自动进行仓位管理
"""
class Cell(object):
    def __init__(self, vtSymbol, direction, target_unit, plan_in_price, in_condition):

        self.vtSymbol = vtSymbol  # 合约
        self.open_direction = direction  # 买卖方向
        self.target_unit = target_unit  # 目标仓位
        self.plan_in_price = plan_in_price  # 计划入场价格
        self.in_condition = in_condition  # 入场条件 1:20日突破 2:55日突破 3:0.5N 4:移仓
Exemplo n.º 30
0
except NameError:
    pass  # Python 3

# 创建主引擎代理对象
from vnpy.event import EventEngine2
from vnpy.trader.vtEvent import (EVENT_TICK, EVENT_ORDER, EVENT_TRADE,
                                 EVENT_ACCOUNT, EVENT_POSITION, EVENT_LOG,
                                 EVENT_ERROR, EVENT_CONTRACT)
from vnpy.trader.vtObject import VtSubscribeReq, VtOrderReq, VtCancelOrderReq
from vnpy.trader.app.rpcService.rsClient import MainEngineProxy
from vnpy.trader.app.ctaStrategy.ctaBase import EVENT_CTA_LOG, EVENT_CTA_STRATEGY

reqAddress = 'tcp://localhost:6688'
subAddress = 'tcp://localhost:8866'

ee = EventEngine2()
me = MainEngineProxy(ee)
me.init(reqAddress, subAddress)


#----------------------------------------------------------------------
def printLog(event):
    """打印日志"""
    log = event.dict_['data']
    print(log.logTime, log.logContent)


ee.register(EVENT_LOG, printLog)

# 载入Web密码
import json