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 onRestart(self): if self.agent != None: self.scur_day = self.agent.scur_day save_insts = filter_main_cont(self.scur_day) self.agent = agent.SaveAgent(name = self.name, trader = None, cuser = None, instruments=save_insts, daily_data_days=0, min_data_days=0, tday = tday) self.agent.logger.addHandler(self.text_handler) fut_api.make_user(self.agent, misc.PROD_USER) return
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 save_all(tday): logging.basicConfig(filename="save_all_agent.log",level=logging.INFO,format='%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s') save_insts = filter_main_cont(tday) app_name = 'SaveAgent' my_agent = agent.SaveAgent(name = app_name, trader = None, cuser = None, instruments=save_insts, daily_data_days=0, min_data_days=0, tday = tday) fut_api.make_user(my_agent, misc.PROD_USER) try: while 1: time.sleep(1) except KeyboardInterrupt: my_agent.mdapis = []; my_agent.trader = None
def semi_mock(curr_date, user_cfg, insts=[['IF1412', 'IF1503']]): ''' 半模拟 实际行情,mock交易 ''' logging.basicConfig( filename="ctp_semi_mock.log", level=logging.INFO, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s' ) instruments = list(set(itertools.chain(*insts))) data_func = [ ('d', BaseObject(name = 'ATR_20', sfunc=fcustom(data_handler.ATR, n=20), rfunc=fcustom(data_handler.atr, n=20))), \ ('d', BaseObject(name = 'DONCH_L10', sfunc=fcustom(data_handler.DONCH_L, n=10), rfunc=fcustom(data_handler.donch_l, n=10))),\ ('d', BaseObject(name = 'DONCH_H10', sfunc=fcustom(data_handler.DONCH_H, n=10), rfunc=fcustom(data_handler.donch_h, n=10))),\ ('d', BaseObject(name = 'DONCH_L20', sfunc=fcustom(data_handler.DONCH_L, n=20), rfunc=fcustom(data_handler.donch_l, n=20))),\ ('d', BaseObject(name = 'DONCH_H20', sfunc=fcustom(data_handler.DONCH_H, n=20), rfunc=fcustom(data_handler.donch_h, n=20))),\ ('1m',BaseObject(name = 'EMA_3', sfunc=fcustom(data_handler.EMA, n=3), rfunc=fcustom(data_handler.ema, n=3))), \ ('1m',BaseObject(name = 'EMA_30', sfunc=fcustom(data_handler.EMA, n=30), rfunc=fcustom(data_handler.ema, n=30))) \ ] test_strat = strat.Strategy('TestStrat', [insts], None, data_func, [[1, -1]]) strat_cfg = {'strategies': [test_strat], \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':25, \ 'min_data_days':2 } agent_name = "Test" tday = curr_date my_agent, my_trader = create_agent_with_mocktrader(agent_name, instruments, strat_cfg, tday) fut_api.make_user(my_agent, user_cfg) req = BaseObject(InstrumentID='cu1502') my_trader.ReqQryInstrumentMarginRate(req) my_trader.ReqQryInstrument(req) my_trader.ReqQryTradingAccount(req) my_agent.resume() try: while 1: time.sleep(1) except KeyboardInterrupt: my_agent.mdapis = [] my_agent.trader = None pass
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 semi_mock(curr_date, user_cfg, insts = [['IF1412', 'IF1503']]): ''' 半模拟 实际行情,mock交易 ''' logging.basicConfig(filename="ctp_semi_mock.log",level=logging.INFO,format='%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s') instruments = list(set(itertools.chain(*insts))) data_func = [ ('d', BaseObject(name = 'ATR_20', sfunc=fcustom(data_handler.ATR, n=20), rfunc=fcustom(data_handler.atr, n=20))), \ ('d', BaseObject(name = 'DONCH_L10', sfunc=fcustom(data_handler.DONCH_L, n=10), rfunc=fcustom(data_handler.donch_l, n=10))),\ ('d', BaseObject(name = 'DONCH_H10', sfunc=fcustom(data_handler.DONCH_H, n=10), rfunc=fcustom(data_handler.donch_h, n=10))),\ ('d', BaseObject(name = 'DONCH_L20', sfunc=fcustom(data_handler.DONCH_L, n=20), rfunc=fcustom(data_handler.donch_l, n=20))),\ ('d', BaseObject(name = 'DONCH_H20', sfunc=fcustom(data_handler.DONCH_H, n=20), rfunc=fcustom(data_handler.donch_h, n=20))),\ ('1m',BaseObject(name = 'EMA_3', sfunc=fcustom(data_handler.EMA, n=3), rfunc=fcustom(data_handler.ema, n=3))), \ ('1m',BaseObject(name = 'EMA_30', sfunc=fcustom(data_handler.EMA, n=30), rfunc=fcustom(data_handler.ema, n=30))) \ ] test_strat = strat.Strategy('TestStrat', [insts], None, data_func, [[1,-1]]) strat_cfg = {'strategies': [test_strat], \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':25, \ 'min_data_days':2 } agent_name = "Test" tday = curr_date my_agent, my_trader = create_agent_with_mocktrader(agent_name, instruments, strat_cfg, tday) fut_api.make_user(my_agent,user_cfg) req = BaseObject(InstrumentID='cu1502') my_trader.ReqQryInstrumentMarginRate(req) my_trader.ReqQryInstrument(req) my_trader.ReqQryTradingAccount(req) my_agent.resume() try: while 1: time.sleep(1) except KeyboardInterrupt: my_agent.mdapis = []; my_agent.trader = None pass
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