Ejemplo n.º 1
0
def main():
    global me

    ee = EventEngine()
    me = MainEngine(ee)
    ee.register(EVENT_TICK, on_tick_update)

    me.addGateway(ctpGateway)
    me.getGateway('CTP').filePath = os.path.join(
        os.path.dirname(os.path.abspath(__file__)),
        'CTP_connect.simnow.mock.json')
    me.connect('CTP')

    # 等待 1 秒是为了避免订阅时机 bug
    import time
    time.sleep(1)

    # vt_symbols = ['SR901C5300.CZCE', 'SR901C5200.CZCE']
    vt_symbols = ['ru1908.SHFE', 'rb1908.SHFE']
    symbols, exchanges = zip(
        *[vs.split('.') if '.' in vs else (vs, '') for vs in vt_symbols])
    for s, e in zip(symbols, exchanges):
        req = VtSubscribeReq()
        req.symbol, req.exchange = s, e
        me.subscribe(req, 'CTP')
    print('Futures subscribed.')
Ejemplo n.º 2
0
def runChildProcess():
    """子进程运行函数"""
    print('-' * 20)
    # 创建日志引擎
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.info(u'启动行情记录运行子进程')

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

    me = MainEngine(ee)
    me.addGateway(BitmexGateway)
    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)
Ejemplo n.º 3
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    recorder_engine = main_engine.add_app(DataRecorderApp)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_RECORDER_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    sleep(2)

    main_engine.write_log("数据下载开始")

    while True:
        sleep(1)
Ejemplo n.º 4
0
def main_terminal():
    """"""
    event_engine = EventEngine()
    event_engine.register(EVENT_LOG, process_log_event)
    event_engine.register(EVENT_RPC_LOG, process_log_event)

    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    rpc_engine = main_engine.add_app(RpcServiceApp)

    setting = {
        " username ": "",
        " password ": "",
        " brokers code ": "9999",
        " transaction server ": "180.168.146.187:10101",
        " quotes server ": "180.168.146.187:10111",
        " product name ": "simnow_client_test",
        " authorized coding ": "0000000000000000",
        " product information ": ""
    }
    main_engine.connect(setting, "CTP")
    sleep(10)

    rep_address = "tcp://127.0.0.1:2014"
    pub_address = "tcp://127.0.0.1:4102"
    rpc_engine.start(rep_address, pub_address)

    while True:
        sleep(1)
Ejemplo n.º 5
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    cta_engine = main_engine.add_app(CtaStrategyApp)
    main_engine.write_log("主引擎创建成功")

    main_engine.add_app(DataRecorderApp)

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    #sleep(10)

    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_all_strategies()
    #sleep(60)   # Leave enough time to complete strategy initialization
    main_engine.write_log("CTA策略全部初始化")

    cta_engine.start_all_strategies()
    main_engine.write_log("CTA策略全部启动")

    while True:
        sleep(1)
Ejemplo n.º 6
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    st_engine = main_engine.add_app(SpreadTradingApp)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_SPREAD_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    sleep(10)

    st_engine.start()
    main_engine.write_log("Arb引擎启动")

    st_engine.strategy_engine.init_all_strategies()
    # # sleep(60)   # Leave enough time to complete strategy initialization
    main_engine.write_log("Arb策略全部初始化")
    #
    st_engine.strategy_engine.start_all_strategies()
    main_engine.write_log("Arb策略全部启动")

    print('ok')
Ejemplo n.º 7
0
def run_child():
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    cta_engine = main_engine.add_app(CtaStrategyAppPro)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    # sleep(20)
    sleep(5)  # 开发用

    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_all_strategies()
    sleep(5)  # 开发用
    # sleep(60)   # Leave enough time to complete strategy initialization
    main_engine.write_log("CTA策略全部初始化")

    cta_engine.start_all_strategies()
    main_engine.write_log("CTA策略全部启动")

    cta_engine.send_run_report_email("账号1监控报表")  # 完成启动后,发送监控报表

    close_time1 = time(15, 32)
    close_time2 = time(15, 35)
    close_time3 = time(15, 36)
    lock1 = False
    lock2 = False
    lock3 = False
    while True:
        current_time = datetime.now().time()
        # 实例交易数据保存;资金曲线&策略评估指标更新
        if current_time == close_time1 and not lock1:
            cta_engine.save_all_trade_data()
            main_engine.write_log("实例交易数据保存成功")
            cta_engine.update_all_daily_results()
            main_engine.write_log("实例资金曲线&策略评估指标更新成功")
            lock1 = True

        # 发送实例评估报表
        if current_time == close_time2 and not lock2:
            cta_engine.send_evaluate_report_email("账号1实例评估报表")
            lock2 = True

        # 发送实例评估报表
        if current_time == close_time3 and not lock3:
            cta_engine.update_all_k_line()
            main_engine.write_log("CTA更新K线图完毕")
            lock3 = True

        sleep(1)
Ejemplo n.º 8
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    cta_engine = main_engine.add_app(CtaStrategyApp)
    main_engine.write_log(" main engine created successfully ")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log(" register an event listener log ")

    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log(" connection CTP interface ")

    sleep(10)

    cta_engine.init_engine()
    main_engine.write_log("CTA strategy initialization is complete ")

    cta_engine.init_all_strategies()
    sleep(60)  # Leave enough time to complete strategy initialization
    main_engine.write_log("CTA all initialization strategy ")

    cta_engine.start_all_strategies()
    main_engine.write_log("CTA policy start all ")

    while True:
        sleep(1)
Ejemplo n.º 9
0
Archivo: run.py Proyecto: lixs5/vn173
def main():
    """主程序入口"""
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()

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

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

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

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

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

    while True:
        sleep(1)
Ejemplo n.º 10
0
def main():
    event_engine = EventEngine()
    event_engine.register(EVENT_LOG,printLog)
    main_engine = MainEngine(event_engine)

    # geteway = XtpGateway(event_engine)
    #
    # default_setting: Dict[str, Any] = {
    #     "账号": "53191000704",
    #     "密码": "vj6JDKlq",
    #     "客户号": 1,
    #     "行情地址": "120.27.164.138",
    #     "行情端口": 6002,
    #     "交易地址": "120.27.164.69",
    #     "交易端口": 6001,
    #     "行情协议": "TCP",
    #     "授权码": "b8aa7173bba3470e390d787219b2112e"
    # }
    # geteway.connect(default_setting)

    geteway = CtpGateway(event_engine)
    default_setting: Dict[str, Any] = {
        "用户名": "161239",
        "密码": "Asdf4321",
        "经纪商代码": "9999",
        "交易服务器": "218.202.237.33:10102",
        "行情服务器": "218.202.237.33:10112",
        "产品名称": "",
        "授权编码": "",
        "产品信息": ""
    }
    geteway.connect(default_setting)
Ejemplo n.º 11
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    main_engine.write_log("主引擎创建成功")

    # 记录引擎

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.connect(CTP_SETTING, "CTP")
    main_engine.write_log("连接CTP接口")

    whole_market_recorder = WholeMarketRecorder(main_engine, event_engine)

    main_engine.write_log("开始录制数据")
    oms_engine = main_engine.get_engine("oms")
    while True:
        sleep(1)
Ejemplo n.º 12
0
def main():
    """主程序入口"""
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    le.addConsoleHandler()
    le.addFileHandler()
    
    le.info(u'启动JAQS服务进程')
    
    ee = EventEngine()
    le.info(u'事件引擎创建成功')
    
    me = MainEngine(ee)
    me.addGateway(ctpGateway)
    me.addApp(jaqsService)
    le.info(u'主引擎创建成功')
    
    ee.register(EVENT_LOG, le.processLogEvent)
    ee.register(EVENT_JS_LOG, le.processLogEvent)
    le.info(u'注册日志事件监听')    
    
    me.connect('CTP')
    le.info(u'连接CTP接口')    
    
    while True:
        sleep(1)
Ejemplo n.º 13
0
def main_terminal():
    """"""
    event_engine = EventEngine()
    event_engine.register(EVENT_LOG, process_log_event)
    event_engine.register(EVENT_RPC_LOG, process_log_event)

    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    rpc_engine = main_engine.add_app(RpcServiceApp)

    setting = {
        "用户名": "",
        "密码": "",
        "经纪商代码": "9999",
        "交易服务器": "180.168.146.187:10101",
        "行情服务器": "180.168.146.187:10111",
        "产品名称": "simnow_client_test",
        "授权编码": "0000000000000000",
        "产品信息": ""
    }
    main_engine.connect(setting, "CTP")
    sleep(10)

    rep_address = "tcp://127.0.0.1:2014"
    pub_address = "tcp://127.0.0.1:4102"
    rpc_engine.start(rep_address, pub_address)

    while True:
        sleep(1)
Ejemplo n.º 14
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    huobi = main_engine.add_gateway(HuobiGateway)
    cta_engine = main_engine.add_app(CtaStrategyApp)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    filename = f"connect_{huobi.gateway_name.lower()}.json"
    setting = load_json(filename)
    main_engine.connect(setting, huobi.gateway_name)
    main_engine.write_log("连接HUOBI接口")

    sleep(10)

    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_all_strategies()
    sleep(10)  # Leave enough time to complete strategy initialization
    main_engine.write_log("CTA策略全部初始化")

    cta_engine.start_all_strategies()
    main_engine.write_log("CTA策略全部启动")

    while True:
        sleep(1)
Ejemplo n.º 15
0
def main_terminal():
    """"""
    event_engine = EventEngine()
    event_engine.register(EVENT_LOG, process_log_event)
    event_engine.register(EVENT_RPC_LOG, process_log_event)

    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    rpc_engine = main_engine.add_app(RpcServiceApp)

    setting = {
        "用户名": "25500029",
        "密码": "20140602",
        "经纪商代码": "6010",
        "交易服务器": "180.169.75.194:41305",
        "行情服务器": "180.166.1.17:41313",
        "产品名称": "vntech_vnpy_2.0",
        "授权编码": "0Y1J5UIMY79BFL7S",
        "产品信息": ""
    }
    main_engine.connect(setting, "CTP")
    sleep(10)

    rep_address = "tcp://127.0.0.1:2014"
    pub_address = "tcp://127.0.0.1:4102"
    rpc_engine.start(rep_address, pub_address)

    while True:
        sleep(1)
Ejemplo n.º 16
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True         # 控制是否要将日志输出到文件中,建议设置为True,否则无法记录生成的日志。

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    main_engine.add_app(DataRecorderApp)
    main_engine.write_log("行情记录引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_RECORDER_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    sleep(15)

    main_engine.write_log("开始记录行情数据……")

    while True:
        sleep(1)
Ejemplo n.º 17
0
def run_child():
    """
    Running in the child process.
    """

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(BinancesGateway)
    # rpc_engine = main_engine.add_app(RpcServiceApp)
    cta_engine = main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(RiskManagerApp)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    binances_setting = load_json("connect_binances.json")
    gateway_name = "BINANCES"

    main_engine.connect(binances_setting, gateway_name)

    # connect_data = load_json("proxy_connect_status.json")
    # connect_data.update({gateway_name: True})
    # save_json("proxy_connect_status.json", connect_data)
    main_engine.write_log("连接BINANCES接口")

    sleep(10)

    # rpc_engine.start()

    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_all_strategies()
    sleep(10)   # Leave enough time to complete strategy initialization
    main_engine.write_log("CTA策略全部初始化")
    
    cta_engine.start_all_strategies()
    main_engine.write_log("CTA策略全部启动")
    
    try:
        while True:
            # connect_data = load_json("proxy_connect_status.json")
            # if not connect_data.get(gateway_name):
            #     main_engine.connect(binances_setting, gateway_name)
            #     connect_data.update(gateway_name, True)
            #     save_json("proxy_connect_status.json", connect_data)
            #     print("重连接口")
            sleep(10)
            
    except KeyboardInterrupt:
        main_engine.write_log("CTA策略正在退出")
        cta_engine.close()
        # rpc_engine.close()
        main_engine.close()
Ejemplo n.º 18
0
def main():
    event_engine = EventEngine()
    event_engine.register("test", handle)
    event_engine.start()
    evt = Event("test")
    evt.data = "df"
    print("recei22:" + evt.__str__())
    event_engine.put(evt)
    sleep(1)
    event_engine.stop()
Ejemplo n.º 19
0
def main():
    """"""
    qapp = create_qapp()

    event_engine = EventEngine()

    main_engine = MainEngine(event_engine)

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_FOLLOW_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    # main_engine.add_gateway(BinanceGateway)
    main_engine.add_gateway(CtpGateway)
    # main_engine.add_gateway(CtptestGateway)
    # main_engine.add_gateway(MiniGateway)
    # main_engine.add_gateway(SoptGateway)
    # main_engine.add_gateway(MinitestGateway)
    # main_engine.add_gateway(FemasGateway)
    # main_engine.add_gateway(IbGateway)
    # main_engine.add_gateway(FutuGateway)
    # main_engine.add_gateway(BitmexGateway)
    # main_engine.add_gateway(TigerGateway)
    # main_engine.add_gateway(OesGateway)
    # main_engine.add_gateway(OkexGateway)
    # main_engine.add_gateway(HuobiGateway)
    # main_engine.add_gateway(BitfinexGateway)
    # main_engine.add_gateway(OnetokenGateway)
    # main_engine.add_gateway(OkexfGateway)
    # main_engine.add_gateway(HbdmGateway)
    # main_engine.add_gateway(XtpGateway)
    # main_engine.add_gateway(TapGateway)
    # main_engine.add_gateway(ToraGateway)
    # main_engine.add_gateway(AlpacaGateway)
    # main_engine.add_gateway(OkexsGateway)
    # main_engine.add_gateway(DaGateway)
    # main_engine.add_gateway(CoinbaseGateway)
    # main_engine.add_gateway(RpcGateway)
    main_engine.add_gateway(TqdataGateway)

    main_engine.add_app(CtaStrategyApp)
    # main_engine.add_app(CtaBacktesterApp)
    # main_engine.add_app(CsvLoaderApp)
    # main_engine.add_app(AlgoTradingApp)
    # main_engine.add_app(DataRecorderApp)
    # main_engine.add_app(RiskManagerApp)
    # main_engine.add_app(ScriptTraderApp)
    # main_engine.add_app(RpcServiceApp)
    # main_engine.add_app(SpreadTradingApp)
    # main_engine.add_app(FollowTradingApp)

    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()

    qapp.exec()
Ejemplo n.º 20
0
Archivo: run.py Proyecto: gcoinman/vnpy
def run_child():
    """
    Running in the child process.
    """

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(BinancesGateway)
    rpc_engine = main_engine.add_app(RpcServiceApp)
    cta_engine = main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(RiskManagerApp)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    binances_setting = load_json("connect_binances.json")
    gateway_name = "BINANCES"

    main_engine.connect(binances_setting, gateway_name)

    main_engine.write_log("连接BINANCES接口")

    sleep(10)
    rpc_setting = load_json("rpc_service_setting.json")
    rpc_engine.start(rpc_setting['rep_address'], rpc_setting['pub_address'])

    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_all_strategies(True)
    # sleep(10)   # Leave enough time to complete strategy initialization
    main_engine.write_log("CTA策略全部初始化")
    
    # cta_engine.start_all_strategies()
    # main_engine.write_log("CTA策略全部启动")
    
    def ctrl_handler(signum, frame):
        cta_engine.stop_all_strategies()
        cta_engine.close()
        rpc_engine.close()
        main_engine.close()
        sys.exit(0)

    signal.signal(signal.SIGINT, ctrl_handler)

    while True:
        # connect_data = load_json("proxy_connect_status.json")
        # if not connect_data.get(gateway_name):
        #     main_engine.connect(binances_setting, gateway_name)
        #     connect_data.update(gateway_name, True)
        #     save_json("proxy_connect_status.json", connect_data)
        #     print("重连接口")
        sleep(10)
Ejemplo n.º 21
0
Archivo: run.py Proyecto: PanAndy/vnpy
def run_child():
    """
    Running in the child process.
    """
    # 全局配置文件机制
    # 如果想开发自己的程序,可以把全局配置文件加载成自己的
    SETTINGS["log.file"] = True

    # 创建事件引擎
    event_engine = EventEngine()

    # 创建主引擎
    main_engine = MainEngine(event_engine)

    # 添加交易接口,就是UI界面进入时的左边选择项
    main_engine.add_gateway(CtpGateway)

    # 添加应用程序,就是UI界面进入时的右边选择项
    cta_engine = main_engine.add_app(CtaStrategyApp)
    main_engine.write_log("主引擎创建成功")

    # 取主引擎的事件引擎
    # 向事件引擎注册日志事件监听函数
    # 注意主引擎在创建日志引擎的时候,由日志引擎自动向事件引擎注册了主引擎的事件EVENT_LOG -> LogEngine.__init__
    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    # 连接交易接口,相当于UI界面的连接交易接口
    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    # 等待交易接口连接成功
    sleep(10)

    # 接下来是CtaEngine的操作了
    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_all_strategies()
    sleep(60)  # Leave enough time to complete strategy initialization
    main_engine.write_log("CTA策略全部初始化")

    cta_engine.start_all_strategies()
    main_engine.write_log("CTA策略全部启动")

    while True:
        sleep(10)

        trading = check_trading_period()
        if not trading:
            print("关闭子进程")
            main_engine.close()
            sys.exit(0)
Ejemplo n.º 22
0
Archivo: cli.py Proyecto: edword01/vnpy
def init_cli_trading(gateways: Sequence[Type[BaseGateway]]):
    """"""
    event_engine = EventEngine()
    event_engine.register(EVENT_LOG, process_log_event)

    main_engine = MainEngine(event_engine)
    for gateway in gateways:
        main_engine.add_gateway(gateway)

    script_engine = main_engine.add_engine(ScriptEngine)

    return script_engine
Ejemplo n.º 23
0
def main():
    global me

    ee = EventEngine()
    me = MainEngine(ee)
    ee.register(EVENT_CONTRACT, on_contract)

    me.addGateway(ctpGateway)
    me.getGateway('CTP').filePath = os.path.join(
        os.path.dirname(os.path.abspath(__file__)),
        'CTP_connect.simnow.mock.json')
    me.connect('CTP')
Ejemplo n.º 24
0
def main():
    """"""
    # 创建 QApplication  对象 并进行初始化

    # 事件引擎
    event_engine = EventEngine()
    # 把事件引擎附加到主引擎里
    main_engine = MainEngine(event_engine)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")


    # 添加火币的交互通道
    # main_engine.add_gateway(HuobiGateway)
    # sleep(1)
    # main_engine.add_gateway(BitfinexGateway)
    # main_engine.add_gateway(OnetokenGateway)
    main_engine.add_gateway(OkexGateway)
    sleep(1)
    main_engine.add_gateway(OkexfGateway)

    # main_engine.add_gateway(HbdmGateway)
    # 把 app 保存到 apps 和 engines 里
    sleep(1)
    data_recorder_app = main_engine.add_app(DataRecorderApp)

    sleep(2)
    # 获取所有交易通道
    gateway_names = main_engine.get_all_gateway_names()
    for name in gateway_names:
        # 连接火币平台
        connect = ConnectNoDialog(main_engine=main_engine, gateway_name=name)
        connect.connect()
        sleep(2)

    sleep(20)

    for tick in data_recorder_app.tick_recordings.keys():
        data_recorder_app.add_tick_recording(tick)

    for bar in data_recorder_app.bar_recordings.keys():
        data_recorder_app.add_bar_recording(bar)

    while True:
        # 一天
        sleep(100000000)
Ejemplo n.º 25
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True         # 控制是否要将日志输出到文件中,建议设置为True,否则无法记录生成的日志。

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    cta_engine = main_engine.add_app(CtaStrategyApp)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    sleep(30)

    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_all_strategies()

    sleep(60)   # Leave enough time to complete strategy initialization

    main_engine.write_log("CTA策略全部初始化")

    cta_engine.start_all_strategies()
    main_engine.write_log("CTA策略全部启动")

    send_weixin("CTA策略全部启动")
    # send_dingding("CTA策略全部启动")

    while True:

        # main_engine.save_commission_margin_ratio()          # 每5分钟保存一次手续费率、保证金率数据

        trading = check_trading_period()
        if not trading:
            print("关闭子进程")
            main_engine.close()
            sys.exit(0)


        sleep(300)
Ejemplo n.º 26
0
def run_child():
    """
    Running in the child process.
    """

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    cta_engine = main_engine.add_app(CtaStrategyApp)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    ctp_setting = load_json("connect_ctp.json")
    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    sleep(10)

    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_all_strategies()
    # sleep(60)   # Leave enough time to complete strategy initialization
    main_engine.write_log("CTA策略全部初始化")

    cta_engine.start_all_strategies()
    main_engine.write_log("CTA策略全部启动")

    def ctrl_handler(signum, frame):
        cta_engine.stop_all_strategies()
        cta_engine.close()
        main_engine.close()
        sys.exit()

    signal.signal(signal.SIGINT, ctrl_handler)

    while True:
        sleep(10)

        trading = check_trading_period()
        if not trading:
            print("关闭子进程")
            main_engine.close()
            sys.exit(0)
Ejemplo n.º 27
0
class StrategyApp:
    def __init__(self):
        self.event_engine = EventEngine()
        self.main_engine = MainEngine(self.event_engine)
        self.main_engine.add_gateway(HbdmGateway)
        self.main_engine.add_gateway(BitmexGateway)
        log_engine = self.main_engine.get_engine("log")
        self.event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
        self.main_engine.write_log("注册日志事件监听")
        self.main_engine.add_app(CtaStrategyApp)
        self.main_engine.add_app(AlgoTradingApp)

    def start_algo(self, setting):
        self.algo_engine.start_algo(setting)

    def run(self):
        pass
Ejemplo n.º 28
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    # main_engine.add_gateway(CtpGateway)
    main_engine.add_gateway(XtpGateway, gateway_name='Xtp_test')

    print(58, main_engine.gateways)
    print(main_engine.get_all_gateway_names())
    print(main_engine.get_all_gateway_status())
    for gateway_name in main_engine.gateways:
        xtp_setting = json.load(
            open(f"./connect_{gateway_name}.json", "r", encoding="utf8"))
        main_engine.connect(xtp_setting, gateway_name)
    sleep(2)
    print(main_engine.get_all_gateway_status())
    print(59)
    cta_engine = main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(RiskManagerApp)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    # main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    sleep(10)

    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_all_strategies()
    sleep(60)  # Leave enough time to complete strategy initialization
    main_engine.write_log("CTA策略全部初始化")

    cta_engine.start_all_strategies()
    main_engine.write_log("CTA策略全部启动")

    while True:
        sleep(1)
Ejemplo n.º 29
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.add_gateway(OkexfGateway)

    while True:
        sleep(1)
Ejemplo n.º 30
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True

    event_engine = EventEngine()
    print(event_engine.__module__)
    # 把event和处理函数联系起来
    main_engine = MainEngine(event_engine)
    # 一个大的类来把策略、ctp行情、事件引擎和实盘引擎结合起来。
    # 把事件引擎加载进去主引擎
    main_engine.add_gateway(CtpGateway)
    # 最终是返回CtpGateway接口,把行情接口和交易接口添加进去
    cta_engine = main_engine.add_app(CtaStrategyApp)
    # 把CtaEngine这个实盘引擎加载进来,类似回测中的backtesting
    # 使用的具体策略在CTAEngine里面加载了。
    # 返回CtaEngine
    main_engine.write_log("主引擎创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    sleep(1)

    main_engine.get_all_contracts()
    sleep(2)
    cta_engine.init_engine()
    main_engine.write_log("CTA策略初始化完成")

    cta_engine.init_strategy('AtrRsiStrategy')
    # 给策略初始化留足时间
    sleep(1)
    main_engine.write_log("CTA策略全部初始化")

    cta_engine.start_strategy('AtrRsiStrategy')
    main_engine.write_log("CTA策略全部启动")

    while True:
        sleep(1)
Ejemplo n.º 31
0
def run_child():
    """
    Running in the child process.
    """
    SETTINGS["log.file"] = True         # 控制是否要将日志输出到文件中,建议设置为True,否则无法记录生成的日志。

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(SugarGateway)
    main_engine.add_gateway(CtpGateway)

    record_engine = main_engine.add_app(DataRecorderApp)
    spread_engine = main_engine.add_app(SpreadTradingApp)
    main_engine.write_log("行情记录及价差交易APP创建成功")

    log_engine = main_engine.get_engine("log")
    event_engine.register(EVENT_RECORDER_LOG, log_engine.process_log_event)
    main_engine.write_log("注册日志事件监听")

    main_engine.connect(sugar_setting, "SUGAR")
    main_engine.write_log("连接SUGAR接口")

    sleep(5)

    main_engine.connect(ctp_setting, "CTP")
    main_engine.write_log("连接CTP接口")

    sleep(15)

    spread_engine.start()
    main_engine.write_log("价差交易引擎启动成功")

    main_engine.write_log("开始记录行情数据……")

    while True:
        sleep(5)

        trading = check_trading_period()
        if not trading:
            print(f"{datetime.now()}\t关闭子进程")
            main_engine.close()
            sys.exit(0)