def main(): event_engine = EventEngine() main_engine = MainEngine(event_engine) ok_gateway = main_engine.add_gateway(OkexGateway) ok_gateway.connect() print(u'服务启动成功')
def __init__(self, main_engine: MainEngine, event_engine: EventEngine): """""" super().__init__(main_engine, event_engine, APP_NAME) self.trade_slippage: int = 0 self.timer_interval: int = 3 self.instant_trade: bool = False self.order_count: int = 100000 self.timer_count: int = 0 self.active_orders: Dict[str, Dict[str, OrderData]] = {} self.gateway_map: Dict[str, str] = {} self.ticks: Dict[str, TickData] = {} self.positions: Dict[Tuple[str, Direction], PositionData] = {} # Patch main engine functions self._subscribe = main_engine.subscribe self._query_history = main_engine.query_history main_engine.subscribe = self.subscribe main_engine.query_history = self.query_history main_engine.send_order = self.send_order main_engine.cancel_order = self.cancel_order self.load_setting() self.load_data() self.register_event()
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("注册日志事件监听") 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)
def main(): """""" qapp = create_qapp() event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(CtpGateway) # main_engine.add_gateway(CtptestGateway) # main_engine.add_gateway(MiniGateway) # main_engine.add_gateway(MinitestGateway) # main_engine.add_gateway(FemasGateway) # main_engine.add_gateway(SoptGateway) # main_engine.add_gateway(SopttestGateway) # main_engine.add_gateway(SecGateway) # main_engine.add_gateway(UftGateway) # main_engine.add_gateway(EsunnyGateway) # main_engine.add_gateway(HsoptionGateway) # main_engine.add_gateway(XtpGateway) # main_engine.add_gateway(ToraStockGateway) # main_engine.add_gateway(ToraOptionGateway) # main_engine.add_gateway(OesGateway) # main_engine.add_gateway(ComstarGateway) # main_engine.add_gateway(IbGateway) # main_engine.add_gateway(TapGateway) # main_engine.add_gateway(DaGateway) # main_engine.add_gateway(RohonGateway) # main_engine.add_gateway(TtsGateway) # main_engine.add_gateway(SgitGateway) # main_engine.add_gateway(KsgoldGateway) # main_engine.add_gateway(OstGateway) # main_engine.add_gateway(GtjaGateway) # main_engine.add_gateway(NhFuturesGateway) # main_engine.add_gateway(NhStockGateway) # main_engine.add_gateway(FutuGateway) # main_engine.add_app(CtaStrategyApp) # main_engine.add_app(CtaBacktesterApp) # main_engine.add_app(SpreadTradingApp) # main_engine.add_app(AlgoTradingApp) # main_engine.add_app(OptionMasterApp) # main_engine.add_app(PortfolioStrategyApp) # main_engine.add_app(ScriptTraderApp) # main_engine.add_app(ChartWizardApp) # main_engine.add_app(RpcServiceApp) # main_engine.add_app(ExcelRtdApp) # main_engine.add_app(DataManagerApp) # main_engine.add_app(DataRecorderApp) # main_engine.add_app(RiskManagerApp) # main_engine.add_app(WebTraderApp) # main_engine.add_app(PortfolioManagerApp) # main_engine.add_app(PaperAccountApp) main_window = MainWindow(main_engine, event_engine) main_window.showMaximized() qapp.exec()
def download(stock_name): event_engine = EventEngine() main_engine = MainEngine(event_engine) backtester_engine = main_engine.add_app(CtaBacktesterApp) backtester_engine.init_engine() backtester_engine.run_downloading(stock_name, Interval.MINUTE, datetime.datetime(2019, 7, 15, 20), datetime.datetime(2019, 8, 22, 5)) print("download 完成")
def test_cmd(): event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(HuobiGateway) print(main_engine.engines) for gw in main_engine.exchanges: print(gw) default_setting = main_engine.get_default_setting('HUOBI') pprint(default_setting)
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 main(): """""" # 创建 QApplication 对象 并进行初始化 # 事件引擎 event_engine = EventEngine() # 把事件引擎附加到主引擎里 main_engine = MainEngine(event_engine) # 添加火币的交互通道 main_engine.add_gateway(HuobiGateway) # main_engine.add_gateway(BitfinexGateway) # main_engine.add_gateway(OnetokenGateway) # main_engine.add_gateway(OkexGateway) # main_engine.add_gateway(OkexfGateway) main_engine.add_gateway(HbdmGateway) # 把 app 保存到 apps 和 engines 里 main_engine.add_app(DataRecorderApp) # 获取所有交易通道 gateway_names = main_engine.get_all_gateway_names() for name in gateway_names: # 连接火币平台 connect = ConnectNoDialog(main_engine=main_engine, gateway_name=name) connect.connect() while True: # 一天 sleep(24 * 60 * 60)
def initiate(self): # self.conn = psycopg2.connect(dbname='timeseries', host='backtesting-dev.coqmt1duzsgx.us-east-1.redshift.amazonaws.com', port=5439, user='******', password='******') # self.conn = psycopg2.connect(dbname='atp', host='atp-dev.cjbwf6taixqt.us-east-1.rds.amazonaws.com', port=3306, user='******', password='******') self.mariadb_engine = create_engine( 'mysql+mysqldb://atpuser:[email protected]:3306/atp' ) self.redshift_engine = create_engine( 'postgresql+psycopg2://jaguar_stage:H%w2flf^gjmY2uSa@backtesting-stage.coqmt1duzsgx.us-east-1.redshift.amazonaws.com:5439/timeseries' ) # postgresql+psycopg2://alex:Alx_123E@backtesting-dev.coqmt1duzsgx.us-east-1.redshift.amazonaws.com:5439/timeseries self.conn_mariadb = self.mariadb_engine.connect() self.conn_redshift = self.redshift_engine.connect() self.query_timing() self.current_date = pd.Timestamp.now().date() self.previous_date = self.timing_position.index[0].date() if self.current_date <= self.previous_date: print('current date and previous date wrong') self.query_atp_stock() event_engine = EventEngine() self.main_engine = MainEngine(event_engine) self.main_engine.add_gateway(CtpGateway) # main_window = MainWindow(main_engine, event_engine) # main_window.showMaximized() self.main_engine.write_log("主引擎创建成功") # simnow setting = { "用户名": "057802", "密码": "5816605", "经纪商代码": '9999', "交易服务器": "180.168.146.187:10100", "行情服务器": "180.168.146.187:10110", "产品名称": "simnow_client_test", "授权编码": 0000000000000000, "产品信息": '' } self.main_engine.connect(setting, self.engine_name) time.sleep(5) self.subscribe_quote() time.sleep(2) self.cur_balance = round( self.main_engine.get_all_accounts()[0].balance, 2) self.get_quote() self.get_futures_volume() self.get_trading()
def main(): """主入口函数""" qapp = create_qapp() event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(DeribitGateway) main_window = MainWindow(main_engine, event_engine) main_window.showMaximized() qapp.exec()
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
def main(): """Start VN Trader""" qapp = create_qapp() event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(TradeAgentGateway) main_window = MainWindow(main_engine, event_engine) main_window.showMaximized() qapp.exec()
def main(): """""" qapp = create_qapp() event_engine = EventEngine() main_engine = MainEngine(event_engine) # 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(BitstampGateway) # main_engine.add_gateway(GateiosGateway) main_engine.add_gateway(BybitGateway) # 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(PortfolioManagerApp) main_window = MainWindow(main_engine, event_engine) main_window.showMaximized() qapp.exec()
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.backtester_engine = self.main_engine.add_app(CtaBacktesterApp) self.backtester_engine.init_engine() self.algo_engine:AlgoEngine = self.main_engine.add_app(AlgoTradingApp) self.algo_engine.init_engine() self.close = None
def main(): """""" qapp = create_qapp() event_engine = EventEngine() main_engine = MainEngine(event_engine) engine_name = 'BINANCES' main_engine.add_gateway(BinancesGateway) setting = { "key": "bEZCKVAkJYugYErdlg5GAj7PGgh72ieFIVtDVYgUwJuE7M0vLFM7lN7JuQPYB0AL", "secret": "LGZXmPUe4iXqOWlmjiUHGvf7XsdLSBWe5HfXauJoxu8qR9RTeZMUqzTOhcRiAK9K", "会话数": 3, "服务器": ["REAL"], "合约模式": "正向", "代理地址": "", "代理端口": 0 } main_engine.connect(setting, engine_name) main_window = MainWindow(main_engine, event_engine) main_window.showMaximized() main_engine.write_log("主引擎创建成功") qapp.exec() pass
def __init__(self): # 和交易系统连接成功将有log信息在控制台打印 SETTINGS["log.active"] = True SETTINGS["log.level"] = INFO SETTINGS["log.console"] = True setting = load_json("connect_ctp.json") self.main_engine = MainEngine() self.main_engine.add_gateway(CtpGateway) self.main_engine.connect(setting, "CTP") self.filename = "contracts" self.con_type_dict = {"主连": "L8", "指数": "L9"}
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)
def main(): print("实盘交易") # 事件引擎 event_engine = EventEngine() # 把事件引擎附加到主引擎里 main_engine = MainEngine(event_engine) main_engine.write_log("主引擎创建成功") main_engine.add_gateway(OkexfGateway) # 获取所有交易通道 gateway_names = main_engine.get_all_gateway_names() for name in gateway_names: # 连接火币平台 connect = ConnectExchange(main_engine=main_engine, gateway_name=name) connect.connect() sleep(2) setting = load_json(filename="jyx_data_recorder_setting.json") vt_symbols = setting["vt_symbols"] functions = [] for vt_symbol in vt_symbols: gevent.sleep(1) # 交易对, 交易所 symbol, exchange_str = vt_symbol.split(".") exchange = Exchange(exchange_str) gateway = main_engine.get_gateway(exchange_str) functions += start_gevent(gateway=gateway, symbol=symbol, exchange=exchange) gevent.joinall(functions)
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)
def __init__(self, main_engine: MainEngine, event_engine: EventEngine): """""" super().__init__() self.engine = main_engine.get_engine(APP_NAME) self.init_ui()
def downloading_history_data(args): ''' download stocks or futures bar data. ''' req = HistoryRequest(symbol=args.symbol, exchange=Exchange(args.exchange), interval=Interval(args.interval), start=datetime.strptime(args.startdate, '%Y-%m-%d'), end=datetime.strptime(args.enddate, '%Y-%m-%d')) event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(CtpGateway) cta_backtester_engine = main_engine.add_app(CtaBacktesterApp) cta_backtester_engine.start_downloading(req.vt_symbol, req.interval, req.start, req.end)
def __init__(self, main_engine: MainEngine, event_engine: EventEngine): """""" super().__init__() self.engine = main_engine.get_engine(APP_NAME) self.init_ui()
def __init__(self, main_engine: MainEngine, event_engine: EventEngine, gateway_name: str): """ :param main_engine: 主引擎对象 :param event_engine: 事件引擎对象 :param gateway_name: gateway 名字 """ # 主引擎 self.main_engine = main_engine # 事件引擎 self.event_engine = event_engine # gateway名字 self.gateway_name = gateway_name # 回测引擎 self.backtester_engine = main_engine.get_engine(APP_NAME) self.class_names = [] self.settings = {} self.target_display = "" # 初始化策略设置 self.init_strategy_settings() # 绑定 事件处理函数 self.register_event() # 初始化回测引擎 self.backtester_engine.init_engine()
def main(): """Start VN Trader""" qapp = create_qapp() event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(CtpGateway) main_engine.add_app(CtaStrategyApp) main_engine.add_app(CtaBacktesterApp) main_engine.add_app(DataManagerApp) main_window = MainWindow(main_engine, event_engine) main_window.showMaximized() qapp.exec()
def main(): """""" qapp = create_qapp() event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(BinanceGateway) # main_engine.add_gateway(BitmexGateway) # 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(HuobifGateway) # main_engine.add_gateway(OkexsGateway) # main_engine.add_gateway(CoinbaseGateway) # main_engine.add_gateway(BitstampGateway) # main_engine.add_gateway(GateiosGateway) # main_engine.add_gateway(BybitGateway) # main_engine.add_gateway(DeribitGateway) # main_engine.add_gateway(OkexoGateway) # main_engine.add_gateway(BinancefGateway) # 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(PortfolioManagerApp) # main_engine.add_app(OptionMasterApp) # main_engine.add_app(ChartWizardApp) # main_engine.add_app(ExcelRtdApp) # main_engine.add_app(DataManagerApp) # main_engine.add_app(PortfolioStrategyApp) main_window = MainWindow(main_engine, event_engine) main_window.showMaximized() qapp.exec()
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)
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)
def download3(): event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(BitmexGateway) setting = { "ID": "jhrmZrfaxqD-wmHpVXBjhlBe", "Secret": "QZdRHN-XVyEHnutgbVpRP29JtJgGAlATHXC1gVUGM7f8Xu7f", "会话数": 3, "服务器": "REAL", "代理地址": "127.0.0.1", "代理端口": "1080", } main_engine.connect(setting, "BITMEX") sleep(20) backtester_engine = main_engine.add_app(CtaBacktesterApp) backtester_engine.init_engine() start_date = datetime.datetime(2018, 8, 10, 20) end_date = datetime.datetime.now() while start_date < end_date: try: next_date = start_date + datetime.timedelta(10) backtester_engine.run_downloading("ETHUSD.BITMEX", Interval.MINUTE, start_date, next_date) sleep(90) start_date = next_date except Exception as e: print(e) print("等待120秒后继续") sleep(120) # backtester_engine.run_downloading("XBTUSD.BITMEX", Interval.MINUTE, datetime.datetime(2019,7,1,20), datetime.datetime(2019,7,10,10)) print("download 完成")
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)
def __init__(self, main_engine: MainEngine, event_engine: EventEngine): """""" super().__init__() self.engine: ManagerEngine = main_engine.get_engine(APP_NAME) self.tree_items: Dict[Tuple, QtWidgets.QTreeWidgetItem] = {} self.init_ui()
def __init__(self, main_engine: MainEngine, event_engine: EventEngine): super().__init__() self.main_engine = main_engine self.event_engine = event_engine self.recorder_engine = main_engine.get_engine(APP_NAME) self.init_ui() self.register_event() self.recorder_engine.put_event()
def __init__(self, main_engine: MainEngine, event_engine: EventEngine): super(CtaManager, self).__init__() self.main_engine = main_engine self.event_engine = event_engine self.cta_engine = main_engine.get_engine(APP_NAME) self.managers = {} self.init_ui() self.register_event() self.cta_engine.init_engine() self.update_class_combo()
def main(): """""" qapp = create_qapp() event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(CtpGateway) 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_app(CtaStrategyApp) main_engine.add_app(CsvLoaderApp) main_window = MainWindow(main_engine, event_engine) main_window.showMaximized() qapp.exec()