def create_trader(trader_cfg, instruments, strat_cfg, agent_name, tday=datetime.date.today()): #logging.basicConfig(filename="ctp_trade.log",level=logging.DEBUG,format='%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s') #logging.info(u'broker_id=%s,investor_id=%s,passwd=%s' % (trader_cfg.broker_id,trader_cfg.investor_id,trader_cfg.passwd)) strategies = strat_cfg['strategies'] folder = strat_cfg['folder'] daily_days = strat_cfg['daily_data_days'] min_days = strat_cfg['min_data_days'] myagent = Agent(agent_name, None, None, instruments, strategies, tday, folder, daily_days, min_days) if trader_cfg == None: myagent, trader = emulator.create_agent_with_mocktrader( agent_name, instruments, strat_cfg, tday) else: myagent.trader = trader = TraderSpiDelegate( instruments=myagent.instruments, broker_id=trader_cfg.broker_id, investor_id=trader_cfg.investor_id, passwd=trader_cfg.passwd, agent=myagent, ) trader.Create('trader') trader.SubscribePublicTopic(trader.ApiStruct.TERT_QUICK) trader.SubscribePrivateTopic(trader.ApiStruct.TERT_QUICK) for port in trader_cfg.ports: trader.RegisterFront(port) trader.Init() return trader, myagent
def create_trader(trader_cfg, instruments, strat_cfg, agent_name, tday=datetime.date.today()): #logging.basicConfig(filename="ctp_trade.log",level=logging.DEBUG,format='%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s') #logging.info(u'broker_id=%s,investor_id=%s,passwd=%s' % (trader_cfg.broker_id,trader_cfg.investor_id,trader_cfg.passwd)) strategies = strat_cfg['strategies'] config = {} config['folder'] = strat_cfg['folder'] config['daily_data_days'] = strat_cfg['daily_data_days'] config['min_data_days'] = strat_cfg['min_data_days'] if 'enable_option' in strat_cfg: config['enable_option'] = strat_cfg['enable_option'] else: config['enable_option'] = False agent_class = Agent if config['enable_option'] == True: agent_class = optagent.OptionAgent myagent = agent_class(agent_name, None, None, instruments, strategies, tday, config) if trader_cfg == None: myagent, trader = emulator.create_agent_with_mocktrader(agent_name, instruments, strat_cfg, tday) else: myagent.trader = trader = TraderSpiDelegate(instruments=myagent.instruments, broker_id=trader_cfg.broker_id, investor_id= trader_cfg.investor_id, passwd= trader_cfg.passwd, agent = myagent, ) trader.Create('trader') trader.SubscribePublicTopic(trader.ApiStruct.TERT_QUICK) trader.SubscribePrivateTopic(trader.ApiStruct.TERT_QUICK) for port in trader_cfg.ports: trader.RegisterFront(port) trader.Init() return trader, myagent
def prod_test(tday, name='prod_test'): logging.basicConfig( filename="ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s' ) #trader_cfg = TEST_TRADER user_cfg = PROD_USER agent_name = name ins_setup = { 'm1505': (0, 0.5, 8, False), 'RM505': (0, 0.5, 10, False), 'rb1505': (0, 0.5, 10, False), 'y1505': (0, 0.5, 4, False), 'l1505': (0, 0.5, 4, False), 'pp1505': (0, 0.5, 4, False), 'ru1505': (0, 0.5, 1, False), 'ag1506': (0, 0.5, 6, False), 'au1506': (0, 0.5, 1, False), 'j1505': (0, 0.5, 2, False), 'al1505': (0, 0.5, 5, False), 'IF1504': (0, 0.5, 1, True) } insts = ins_setup.keys() units_dt = [ins_setup[inst][2] for inst in insts] under_dt = [[inst] for inst in insts] vol_dt = [[1] for inst in insts] ratios = [[ins_setup[inst][1], ins_setup[inst][1]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][3] for inst in insts] dt_strat = strat_dt.DTTrader('ProdDT', under_dt, vol_dt, trade_unit=units_dt, ratios=ratios, lookbacks=lookbacks, agent=None, daily_close=False, email_notify=['*****@*****.**']) dt_strat.close_tday = daily_close strategies = [dt_strat] strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':3, \ 'min_data_days':1 } #myagent = create_agent(agent_name, user_cfg, trader_cfg, insts, strat_cfg) all_insts = ins_setup.keys() myagent, my_trader = emulator.create_agent_with_mocktrader( agent_name, all_insts, strat_cfg, tday) fut_api.make_user(myagent, user_cfg) myagent.resume() try: while 1: time.sleep(1) except KeyboardInterrupt: myagent.mdapis = [] myagent.trader = None
def rbreaker_test(tday, name='rbreaker_test'): logging.basicConfig( filename="ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s' ) #trader_cfg = TEST_TRADER user_cfg = PROD_USER agent_name = name ins_setup = { 'IF1504': [[0.35, 0.07, 0.25], 1, 30], 'ru1509': [[0.35, 0.07, 0.25], 1, 120], 'rb1510': [[0.35, 0.07, 0.25], 10, 20], 'RM509': [[0.35, 0.07, 0.25], 8, 20], 'm1509': [[0.35, 0.07, 0.25], 8, 30], 'ag1506': [[0.35, 0.07, 0.25], 8, 40], 'y1509': [[0.35, 0.07, 0.25], 8, 60] } insts = ins_setup.keys() units_rb = [ins_setup[inst][1] for inst in insts] under_rb = [[inst] for inst in insts] vol_rb = [[1] for inst in insts] ratios = [ins_setup[inst][0] for inst in insts] min_rng = [ins_setup[inst][2] for inst in insts] stop_loss = 0.02 rb_strat = strat_rb.RBreakerTrader('RBreaker', under_rb, vol_rb, trade_unit=units_rb, ratios=ratios, min_rng=min_rng, trail_loss=stop_loss, freq=1, agent=None, email_notify=['*****@*****.**']) strategies = [rb_strat] strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':1, \ 'min_data_days':1 } #myagent = create_agent(agent_name, user_cfg, trader_cfg, insts, strat_cfg) all_insts = ins_setup.keys() myagent, my_trader = emulator.create_agent_with_mocktrader( agent_name, all_insts, strat_cfg, tday) fut_api.make_user(myagent, user_cfg) myagent.resume() try: while 1: time.sleep(1) except KeyboardInterrupt: myagent.mdapis = [] myagent.trader = None
def prod_test(tday, name='prod_test'): logging.basicConfig(filename="ctp_" + name + ".log",level=logging.DEBUG,format='%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s') #trader_cfg = TEST_TRADER user_cfg = PROD_USER agent_name = name ins_setup = {'m1505':(0, 0.5, 8, False), 'RM505':(0, 0.5, 10, False), 'rb1505':(0,0.5, 10, False), 'y1505':(0, 0.5, 4, False), 'l1505':(0, 0.5, 4, False), 'pp1505':(0,0.5, 4, False), 'ru1505':(0, 0.5, 1, False), 'ag1506':(0, 0.5, 6, False), 'au1506':(0, 0.5, 1, False), 'j1505':(0, 0.5, 2, False), 'al1505':(0, 0.5, 5, False), 'IF1504':(0, 0.5, 1, True)} insts = ins_setup.keys() units_dt = [ins_setup[inst][2] for inst in insts] under_dt = [[inst] for inst in insts] vol_dt = [[1] for inst in insts] ratios = [[ins_setup[inst][1], ins_setup[inst][1]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][3] for inst in insts] dt_strat = strat_dt.DTTrader('ProdDT', under_dt, vol_dt, trade_unit = units_dt, ratios = ratios, lookbacks = lookbacks, agent = None, daily_close = False, email_notify = ['*****@*****.**']) dt_strat.close_tday = daily_close strategies = [dt_strat] strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':3, \ 'min_data_days':1 } #myagent = create_agent(agent_name, user_cfg, trader_cfg, insts, strat_cfg) all_insts = ins_setup.keys() myagent, my_trader = emulator.create_agent_with_mocktrader(agent_name, all_insts, strat_cfg, tday) fut_api.make_user(myagent,user_cfg) myagent.resume() try: while 1: time.sleep(1) except KeyboardInterrupt: myagent.mdapis = [] myagent.trader = None
def rbreaker_test(tday, name='rbreaker_test'): logging.basicConfig(filename="ctp_" + name + ".log",level=logging.DEBUG,format='%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s') #trader_cfg = TEST_TRADER user_cfg = PROD_USER agent_name = name ins_setup = {'IF1504': [[0.35, 0.07, 0.25], 1, 30], 'ru1509': [[0.35, 0.07, 0.25], 1, 120], 'rb1510': [[0.35, 0.07, 0.25], 10, 20], 'RM509' : [[0.35, 0.07, 0.25], 8, 20], 'm1509' : [[0.35, 0.07, 0.25], 8, 30], 'ag1506': [[0.35, 0.07, 0.25], 8, 40], 'y1509' : [[0.35, 0.07, 0.25], 8, 60]} insts = ins_setup.keys() units_rb = [ins_setup[inst][1] for inst in insts] under_rb = [[inst] for inst in insts] vol_rb = [[1] for inst in insts] ratios = [ins_setup[inst][0] for inst in insts] min_rng = [ins_setup[inst][2] for inst in insts] stop_loss = 0.02 rb_strat = strat_rb.RBreakerTrader('RBreaker', under_rb, vol_rb, trade_unit = units_rb, ratios = ratios, min_rng = min_rng, trail_loss = stop_loss, freq = 1, agent = None, email_notify = ['*****@*****.**']) strategies = [rb_strat] strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':1, \ 'min_data_days':1 } #myagent = create_agent(agent_name, user_cfg, trader_cfg, insts, strat_cfg) all_insts = ins_setup.keys() myagent, my_trader = emulator.create_agent_with_mocktrader(agent_name, all_insts, strat_cfg, tday) fut_api.make_user(myagent,user_cfg) myagent.resume() try: while 1: time.sleep(1) except KeyboardInterrupt: myagent.mdapis = [] myagent.trader = None