def test_main(tday, name='option_test'): ''' import agent trader,myagent = agent.trade_test_main() #开仓 ##释放连接 trader.RegisterSpi(None) ''' 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 = TEST_USER agent_name = name opt_strat = optstrat.IndexFutOptStrat(name, ['IF1504', 'IF1506'], [datetime.datetime(2015, 4, 17, 15, 0, 0), datetime.datetime(2015,6,19,15,0,0)], [[3700, 3750, 3800, 3850, 3900, 3950, 4000, 4050]]*2) insts_dt = ['IF1504'] units_dt = [1]*len(insts_dt) under_dt = [[inst] for inst in insts_dt] vols_dt = [[1]]*len(insts_dt) lookbacks_dt = [0]*len(insts_dt) insts_daily = ['IF1504'] under_daily = [[inst] for inst in insts_daily] vols_daily = [[1]]*len(insts_daily) units_daily = [1]*len(insts_daily) lookbacks_daily = [0]*len(insts_daily) dt_strat = strat_dt.DTTrader('DT_test', under_dt, vols_dt, trade_unit = units_dt, lookbacks = lookbacks_dt, agent = None, daily_close = False, email_notify = []) dt_daily = strat_dt.DTTrader('DT_Daily', under_daily, vols_daily, trade_unit = units_daily, lookbacks = lookbacks_daily, agent = None, daily_close = True, email_notify = ['*****@*****.**']) strategies = [dt_strat, dt_daily, opt_strat] all_insts = opt_strat.instIDs strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':3, \ 'min_data_days':1 } #myagent, my_trader = emulator.create_agent_with_mocktrader(agent_name, all_insts, strat_cfg, tday) myagent = fut_api.create_agent(agent_name, user_cfg, trader_cfg, all_insts, strat_cfg, tday) #fut_api.make_user(myagent,user_cfg) myagent.resume() # myagent.tick_id = 2100000 # myagent.instruments['IF1503'].day_finalized = False # ctick = agent.TickData(instID='IF1503', timestamp=datetime.datetime(2015,3,10,15,0,0), # openInterest=10000, # volume=10, price=3520, # high=3570, low=3500, # bidPrice1=3519.6, bidVol1=3, # askPrice1=3520.4, askVol1=2, # up_limit = 3700, down_limit = 3300) # myagent.RtnTick(ctick) try: while 1: time.sleep(1) except KeyboardInterrupt: myagent.mdapis = [] myagent.trader = None
def main(tday, name='option_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 = misc.TEST_TRADER user_cfg = misc.TEST_USER opt_strat = optstrat.IndexFutOptStrat(name, ['IF1504', 'IF1506'], [ datetime.datetime(2015, 4, 17, 15, 0, 0), datetime.datetime(2015, 6, 19, 15, 0, 0) ], [[3400, 3450, 3500, 3550, 3600, 3650]] * 2) insts_dt = ['IF1504'] units_dt = [1] * len(insts_dt) under_dt = [[inst] for inst in insts_dt] vols_dt = [[1]] * len(insts_dt) lookbacks_dt = [0] * len(insts_dt) insts_daily = ['IF1504'] under_daily = [[inst] for inst in insts_daily] vols_daily = [[1]] * len(insts_daily) units_daily = [1] * len(insts_daily) lookbacks_daily = [0] * len(insts_daily) dt_strat = strat_dt.DTTrader('DT_test', under_dt, vols_dt, trade_unit=units_dt, lookbacks=lookbacks_dt, agent=None, daily_close=False, email_notify=[]) dt_daily = strat_dt.DTTrader('DT_Daily', under_daily, vols_daily, trade_unit=units_daily, lookbacks=lookbacks_daily, agent=None, daily_close=True, email_notify=['*****@*****.**']) strategies = [dt_strat, dt_daily, opt_strat] strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':3, \ 'min_data_days':1 } myApp = MainApp(name, trader_cfg, user_cfg, strat_cfg, tday, master=None) myGui = Gui(myApp) myGui.iconbitmap(r'c:\Python27\DLLs\thumbs-up-emoticon.ico') myGui.mainloop()
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 test_main(tday, name='prod_trade'): ''' import agent trader,myagent = agent.trade_test_main() #开仓 ##释放连接 trader.RegisterSpi(None) ''' logging.basicConfig( filename="ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s' ) trader_cfg = DCE_OPT_TRADER user_cfg = DCE_OPT_USER agent_name = name insts_dt = ['m1505', 'm1509'] units_dt = [[1]] * len(insts_dt) under_dt = [[inst] for inst in insts_dt] lookbacks_dt = [0] * len(insts_dt) #insts_turtle = ['IF1503'] #under_turtle = [[inst] for inst in insts_turtle] #units_turtle = [[1]]*len(insts_turtle) #insts_daily = ['IF1503'] #under_daily = [[inst] for inst in insts_daily] #units_daily = [[1]]*len(insts_daily) #lookbacks_daily = [0]*len(insts_daily) dt_strat = strat_dt.DTTrader('DT_test', under_dt, units_dt, trade_unit=[2, 2], lookbacks=lookbacks_dt, agent=None, daily_close=False, email_notify=['*****@*****.**']) #dt_daily = strat_dt.DTTrader('DT_Daily', under_daily, trade_unit = units_daily, lookbacks = lookbacks_daily, agent = None, daily_close = True, email_notify = ['*****@*****.**']) #turtle_strat = strat_turtle.TurtleTrader('Turtle_test', under_turtle, trade_unit = units_turtle, agent=None, email_notify = ['*****@*****.**'] ) strategies = [dt_strat] #, dt_daily, turtle_strat] strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':2, \ 'min_data_days':2 } all_insts = insts_dt #list(set(insts_turtle).union(set(insts_dt)).union(set(insts_daily))) #myagent, my_trader = emulator.create_agent_with_mocktrader(agent_name, all_insts, strat_cfg, tday) myagent = fut_api.create_agent(agent_name, user_cfg, trader_cfg, 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_trade(tday, name='prod_trade'): base.config_logging( "ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s', to_console=True, console_level=logging.INFO) trader_cfg = misc.HT_DN_TD user_cfg = misc.HT_DN_MD ins_setup = { 'm1605': (1, 0.7, 0.0, 2, False), 'RM605': (1, 0.6, 0.0, 2, False), 'y1605': (0, 0.8, 0.0, 1, False), 'p1605': (1, 0.9, 0.0, 1, False), 'OI601': (0, 0.7, 0.0, 0, False), 'a1601': (0, 1.0, 0.0, 2, False), 'rb1605': (0, 0.6, 0.0, 4, False), 'l1605': (0, 0.7, 0.0, 1, False), 'pp1601': (4, 0.3, 0.0, 1, False), 'TA601': (1, 0.6, 0.0, 1, False), 'MA601': (1, 0.8, 0.0, 2, False), 'jd1601': (1, 0.8, 0.0, 1, False), 'SR605': (1, 0.8, 0.0, 1, False), } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] 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=daily_close, email_notify=[], ma_win=10) strategies = [dt_strat] folder = misc.get_prod_folder() strat_cfg = {'strategies': strategies, \ 'folder': folder, \ 'daily_data_days':4, \ 'min_data_days':1 } myApp = MainApp(name, trader_cfg, user_cfg, strat_cfg, tday, master=None, save_test=False) myGui = Gui(myApp) myGui.mainloop()
def prod_test(tday, name='prod_test'): base.config_logging( "ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s', to_console=True, console_level=logging.INFO) trader_cfg = None user_cfg = misc.HT_PROD_MD ins_setup = { 'IF1510': [[0.3, 0.07, 0.2], 1, 30, 1], 'IH1510': [[0.3, 0.07, 0.2], 1, 30, 1], 'ru1601': [[0.35, 0.08, 0.25], 1, 120, 3], 'rb1601': [[0.25, 0.05, 0.15], 5, 20, 3], 'RM601': [[0.35, 0.07, 0.25], 4, 20, 1], 'm1601': [[0.35, 0.07, 0.25], 4, 30, 3], 'ag1512': [[0.4, 0.1, 0.3], 4, 40, 5], 'y1601': [[0.25, 0.05, 0.15], 4, 60, 1], 'cu1512': [[0.25, 0.05, 0.15], 1, 700, 1] } 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] freq = [ins_setup[inst][3] for inst in insts] stop_loss = 0.015 rb_strat = strat_rb.RBreakerTrader('ProdRB', under_rb, vol_rb, trade_unit=units_rb, ratios=ratios, min_rng=min_rng, trail_loss=stop_loss, freq=freq, agent=None, email_notify=[]) ins_setup = { 'm1601': (0, 0.7, 0.0, 8, False, 0.004), 'RM601': (-1, 0.5, 0.0, 8, False, 0.004), 'rb1601': (0, 0.7, 0.0, 8, False, 0.004), 'l1601': (0, 0.7, 0.0, 2, False, 0.004), 'pp1601': (0, 0.7, 0.0, 2, False, 0.004), 'TA601': (-1, 0.4, 0.0, 4, False, 0.004), 'ru1601': (0, 0.7, 0.0, 1, False, 0.004), 'SR601': (0, 0.7, 0.0, 4, False, 0.004), 'MA601': (0, 0.7, 0.0, 3, False, 0.004), 'au1512': (0, 0.7, 0.0, 1, False, 0.004), 'i1601': (2, 0.4, 0.0, 1, False, 0.004), 'IF1510': (0, 0.6, 0.0, 1, False, 0.004), 'IH1510': (0, 0.6, 0.0, 1, False, 0.004), 'y1601': (0, 0.7, 0.0, 4, False, 0.004), 'p1601': (0, 0.7, 0.0, 4, False, 0.004), 'TF1512': (2, 0.5, 0.0, 1, False, 0.0), } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] for inst in insts] min_rng = [ins_setup[inst][5] 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=daily_close, ma_win=10, email_notify=[], min_rng=min_rng) ins_setup = { 'rb1601': (1, 0.6, 0.5, 4, False, 0.004), 'l1601': (0, 0.5, 0.5, 1, False, 0.004), 'pp1601': (0, 0.5, 0.5, 1, False, 0.004), 'TA601': (0, 0.4, 0.5, 2, False, 0.004), 'MA601': (-1, 0.5, 0.5, 2, False, 0.004), 'jd1601': (2, 0.4, 0.5, 2, False, 0.004), 'a1601': (2, 0.4, 0.5, 2, False, 0.004), 'SR601': (1, 0.6, 0.5, 1, False, 0.004), 'm1601': (2, 0.3, 0.5, 2, False, 0.004), 'RM601': (-1, 0.3, 0.5, 2, False, 0.004), 'i1601': (4, 0.3, 0.5, 1, False, 0.004), 'TF1512': (2, 0.4, 0.5, 1, False, 0.0), } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] for inst in insts] min_rng = [ins_setup[inst][5] for inst in insts] dtma_strat = strat_dt.DTTrader('DTMA10', under_dt, vol_dt, trade_unit=units_dt, ratios=ratios, lookbacks=lookbacks, agent=None, daily_close=daily_close, email_notify=[], min_rng=min_rng) ins_setup = { 'm1601': (0, 0.7, 0.0, 8, False), 'RM601': (-1, 0.5, 0.0, 8, False), 'rb1601': (0, 0.7, 0.0, 8, False), 'TA601': (-1, 0.4, 0.0, 4, False), 'ru1601': (0, 0.7, 0.0, 1, False), 'SR601': (0, 0.7, 0.0, 4, False), 'MA601': (0, 0.7, 0.0, 3, False), 'ag1512': (0, 0.7, 0.0, 1, False), 'i1601': (2, 0.4, 0.0, 1, False), 'y1601': (0, 0.7, 0.0, 4, False), 'p1601': (0, 0.7, 0.0, 4, False), } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] for inst in insts] dtsplit_strat = dt_split.DTSplitTrader('DTSplit', under_dt, vol_dt, trade_unit=units_dt, ratios=ratios, lookbacks=lookbacks, agent=None, daily_close=daily_close, ma_win=10, email_notify=[], min_rng=[0.004]) ins_setup = { 'i1601': [2, 2, 2], #'jm1601': [1, 1, 1], 'TF1512': [1, 1, 1], 'TC601': [2, 4, 1], 'TA601': [2, 3, 2], #'bu1512': [1, 1, 1], 'CF601': [2, 1, 2], 'ru1601': [1, 1, 1], } insts = ins_setup.keys() units_tl = [ins_setup[inst][2] for inst in insts] under_tl = [[inst] for inst in insts] vol_tl = [[1] for inst in insts] trail_loss = [ins_setup[inst][0] for inst in insts] max_pos = [ins_setup[inst][1] for inst in insts] tl_strat = strat_tl.TurtleTrader('ProdTL', under_tl, vol_tl, trade_unit=units_tl, agent=None, email_notify=['*****@*****.**'], windows=[5, 15], max_pos=max_pos, trail_loss=trail_loss) ins_setup = { 'j1601': [1, 1, 1], 'rb1601': [1, 1, 1], #'bu1512' :[2, 4, 1], 'p1601': [1, 1, 2], 'jd1601': [2, 2, 1], } insts = ins_setup.keys() units_tl = [ins_setup[inst][2] for inst in insts] under_tl = [[inst] for inst in insts] vol_tl = [[1] for inst in insts] trail_loss = [ins_setup[inst][0] for inst in insts] max_pos = [ins_setup[inst][1] for inst in insts] tl_strat2 = strat_tl.TurtleTrader('ProdTL2', under_tl, vol_tl, trade_unit=units_tl, agent=None, email_notify=['*****@*****.**'], windows=[10, 20], max_pos=max_pos, trail_loss=trail_loss) strategies = [ rb_strat, dt_strat, dtma_strat, tl_strat, tl_strat2, dtsplit_strat ] folder = misc.get_prod_folder() strat_cfg = {'strategies': strategies, \ 'folder': folder, \ 'daily_data_days':21, \ 'min_data_days':4 } myApp = MainApp(name, trader_cfg, user_cfg, strat_cfg, tday, master=None, save_test=False) myGui = Gui(myApp) #myGui.iconbitmap(r'c:\Python27\DLLs\thumbs-up-emoticon.ico') myGui.mainloop()
def prod_trade2(tday, name='prod_trade2'): base.config_logging( "ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s', to_console=True, console_level=logging.INFO) trader_cfg = misc.HT_PROD_TD user_cfg = misc.HT_PROD_MD ins_setup = { 'm1601': (0, 0.8, 0.0, 0, False, 0.004), 'RM601': (0, 0.8, 0.0, 0, False, 0.004), 'y1601': (0, 0.7, 0.0, 0, False, 0.004), 'p1601': (0, 0.9, 0.0, 0, False, 0.004), 'a1601': (0, 1.0, 0.0, 0, False, 0.004), 'rb1601': (0, 0.7, 0.5, 0, False, 0.004), 'l1601': (2, 0.4, 0.0, 0, False, 0.004), 'pp1601': (4, 0.4, 0.0, 0, False, 0.004), 'TA601': (0, 0.6, 0.0, 0, False, 0.004), 'MA601': (0, 0.8, 0.0, 0, False, 0.004), 'jd1601': (4, 0.4, 0.0, 0, False, 0.004), 'SR601': (1, 0.9, 0.0, 0, False, 0.004), 'i1601': (2, 0.4, 0.0, 0, False, 0.004), #'TF1512':(2, 0.5, 0.0, 1, False, 0.0), 'm1605': (0, 0.8, 0.0, 2, False, 0.004), 'RM605': (0, 0.8, 0.0, 2, False, 0.004), 'y1605': (0, 0.7, 0.0, 2, False, 0.004), 'p1605': (0, 0.9, 0.0, 2, False, 0.004), 'a1605': (0, 1.0, 0.0, 2, False, 0.004), 'rb1605': (0, 0.7, 0.5, 4, False, 0.004), 'l1605': (2, 0.4, 0.0, 4, False, 0.004), 'pp1605': (4, 0.4, 0.0, 2, False, 0.004), 'TA605': (0, 0.6, 0.0, 3, False, 0.004), 'MA605': (0, 0.8, 0.0, 3, False, 0.004), 'jd1605': (4, 0.4, 0.0, 4, False, 0.004), 'SR605': (1, 0.9, 0.0, 2, False, 0.004), 'i1605': (2, 0.4, 0.0, 2, False, 0.004), 'cs1605': (0, 1.0, 0.0, 3, False, 0.004), } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] for inst in insts] min_rng = [ins_setup[inst][5] for inst in insts] dt_strat1 = strat_dt.DTTrader('DT1', under_dt, vol_dt, trade_unit=units_dt, ratios=ratios, lookbacks=lookbacks, agent=None, daily_close=daily_close, email_notify=[], ma_win=10, min_rng=min_rng) ins_setup = { 'm1601': (0, 0.7, 0.0, 0, False, 0.004), 'RM601': (0, 0.6, 0.0, 0, False, 0.004), 'y1601': (0, 0.6, 0.0, 0, False, 0.004), 'p1601': (0, 1.1, 0.0, 0, False, 0.004), 'a1601': (0, 0.8, 0.0, 0, False, 0.004), 'rb1601': (0, 0.6, 0.0, 0, False, 0.004), 'l1601': (0, 0.7, 0.0, 0, False, 0.004), 'pp1601': (4, 0.35, 0.0, 0, False, 0.004), 'TA601': (0, 1.0, 0.0, 0, False, 0.004), 'MA601': (0, 0.9, 0.0, 0, False, 0.004), 'jd1601': (4, 0.3, 0.0, 0, False, 0.004), 'SR601': (1, 0.8, 0.0, 0, False, 0.004), 'i1601': (2, 0.5, 0.0, 0, False, 0.004), #'TF1512': (2, 0.6, 0.0, 1, False, 0.0), 'm1605': (0, 0.7, 0.0, 2, False, 0.004), 'RM605': (0, 0.6, 0.0, 2, False, 0.004), 'y1605': (0, 0.6, 0.0, 2, False, 0.004), 'p1605': (0, 1.1, 0.0, 2, False, 0.004), 'a1605': (0, 0.8, 0.0, 2, False, 0.004), 'rb1605': (0, 0.6, 0.0, 4, False, 0.004), 'l1605': (0, 0.7, 0.0, 4, False, 0.004), 'pp1605': (4, 0.35, 0.0, 2, False, 0.004), 'TA605': (0, 1.0, 0.0, 3, False, 0.004), 'MA605': (0, 0.9, 0.0, 3, False, 0.004), 'jd1605': (4, 0.3, 0.0, 4, False, 0.004), 'SR605': (1, 0.8, 0.0, 2, False, 0.004), 'i1605': (2, 0.5, 0.0, 2, False, 0.004), 'cs1605': (0, 1.1, 0.0, 3, False, 0.004), } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] for inst in insts] min_rng = [ins_setup[inst][5] for inst in insts] dt_strat2 = strat_dt.DTTrader('DT2', under_dt, vol_dt, trade_unit=units_dt, ratios=ratios, lookbacks=lookbacks, agent=None, daily_close=daily_close, email_notify=[], ma_win=10, min_rng=min_rng) ins_setup = { 'm1601': (0, 0.8, 0.0, 0, False), 'RM601': (0, 0.8, 0.0, 0, False), 'y1601': (0, 0.9, 0.0, 0, False), 'p1601': (1, 1.0, 0.0, 0, False), 'a1601': (1, 0.9, 0.0, 0, False), 'rb1601': (2, 0.5, 0.0, 0, False), 'TA601': (1, 0.7, 0.0, 0, False), 'MA601': (1, 0.7, 0.0, 0, False), 'SR601': (2, 0.9, 0.0, 0, False), 'i1601': (4, 0.4, 0.0, 0, False), 'ag1512': (1, 0.6, 0.0, 0, False), 'ag1606': (1, 0.8, 0.0, 2, False), 'm1605': (0, 0.8, 0.0, 2, False), 'RM605': (0, 0.8, 0.0, 2, False), 'y1605': (0, 0.9, 0.0, 2, False), 'p1605': (1, 1.0, 0.0, 2, False), 'a1605': (1, 0.9, 0.0, 2, False), 'rb1605': (2, 0.5, 0.0, 4, False), 'TA605': (1, 0.7, 0.0, 3, False), 'MA605': (1, 0.7, 0.0, 3, False), 'SR605': (2, 0.9, 0.0, 2, False), 'i1605': (4, 0.4, 0.0, 2, False), } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] for inst in insts] dtsplit_strat1 = dt_split.DTSplitTrader('DTSp1', under_dt, vol_dt, trade_unit=units_dt, ratios=ratios, lookbacks=lookbacks, agent=None, daily_close=daily_close, ma_win=10, email_notify=[], min_rng=[0.004]) ins_setup = { 'm1601': (0, 1.0, 0.0, 0, False), 'RM601': (0, 1.0, 0.0, 0, False), 'y1601': (0, 1.0, 0.0, 0, False), 'p1601': (1, 1.1, 0.0, 0, False), 'a1601': (1, 1.1, 0.0, 0, False), 'rb1601': (0, 0.9, 0.0, 0, False), 'TA601': (1, 0.9, 0.0, 0, False), 'MA601': (1, 0.9, 0.0, 0, False), 'SR601': (4, 0.45, 0.0, 0, False), 'i1601': (4, 0.5, 0.0, 0, False), 'ag1512': (1, 1.1, 0.0, 0, False), 'ag1606': (1, 1.1, 0.0, 2, False), 'm1605': (0, 1.0, 0.0, 2, False), 'RM605': (0, 1.0, 0.0, 2, False), 'y1605': (0, 1.0, 0.0, 2, False), 'p1605': (1, 1.1, 0.0, 2, False), 'a1605': (1, 1.1, 0.0, 2, False), 'rb1605': (0, 0.9, 0.0, 4, False), 'TA605': (1, 0.9, 0.0, 3, False), 'MA605': (1, 0.9, 0.0, 3, False), 'SR605': (4, 0.45, 0.0, 2, False), 'i1605': (4, 0.5, 0.0, 2, False), } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] for inst in insts] dtsplit_strat2 = dt_split.DTSplitTrader('DTSp2', under_dt, vol_dt, trade_unit=units_dt, ratios=ratios, lookbacks=lookbacks, agent=None, daily_close=daily_close, ma_win=10, email_notify=[], min_rng=[0.004]) ins_setup = { 'i1601': [1, 1, 2], 'TA601': [2, 2, 2], 'bu1512': [2, 1, 1], 'bu1601': [2, 1, 1], 'i1605': [1, 1, 2], 'TA605': [2, 2, 2], 'ZC605': [2, 3, 1], } insts = ins_setup.keys() units_tl = [ins_setup[inst][2] for inst in insts] under_tl = [[inst] for inst in insts] vol_tl = [[1] for inst in insts] trail_loss = [ins_setup[inst][0] for inst in insts] max_pos = [ins_setup[inst][1] for inst in insts] tl_strat1 = strat_tl.TurtleTrader('TL1', under_tl, vol_tl, trade_unit=units_tl, agent=None, email_notify=[], windows=[5, 15], max_pos=max_pos, trail_loss=trail_loss) ins_setup = { 'j1601': [1, 2, 1], #'TC605': [2, 3, 2], 'i1601': [2, 2, 1], 'j1605': [1, 2, 1], 'ZC605': [2, 3, 2], 'i1605': [2, 2, 1], } insts = ins_setup.keys() units_tl = [ins_setup[inst][2] for inst in insts] under_tl = [[inst] for inst in insts] vol_tl = [[1] for inst in insts] trail_loss = [ins_setup[inst][0] for inst in insts] max_pos = [ins_setup[inst][1] for inst in insts] tl_strat2 = strat_tl.TurtleTrader('TL2', under_tl, vol_tl, trade_unit=units_tl, agent=None, email_notify=[], windows=[10, 20], max_pos=max_pos, trail_loss=trail_loss) strategies = [ dtsplit_strat1, dtsplit_strat2, dt_strat1, dt_strat2, tl_strat1, tl_strat2 ] folder = misc.get_prod_folder() strat_cfg = {'strategies': strategies, \ 'folder': folder, \ 'daily_data_days':21, \ 'min_data_days':3 } myApp = MainApp(name, trader_cfg, user_cfg, strat_cfg, tday, master=None, save_test=False) myGui = Gui(myApp) #myGui.iconbitmap(r'c:\Python27\DLLs\thumbs-up-emoticon.ico') myGui.mainloop()
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 = None user_cfg = misc.PROD_USER 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.015 rb_strat = strat_rb.RBreakerTrader('ProdRB', under_rb, vol_rb, trade_unit=units_rb, ratios=ratios, min_rng=min_rng, trail_loss=stop_loss, freq=1, agent=None, email_notify=['*****@*****.**']) ins_setup = { 'm1509': (0, 0.5, 8, False), 'RM509': (0, 0.5, 10, False), 'rb1510': (0, 0.5, 10, False), 'y1509': (0, 0.5, 4, False), 'l1509': (0, 0.5, 4, False), 'pp1509': (0, 0.5, 4, False), 'ru1509': (0, 0.5, 1, False), 'SR509': (0, 0.7, 8, False), 'TA509': (0, 0.7, 4, False), 'ag1506': (0, 0.5, 6, False), 'au1506': (0, 0.5, 1, False), 'i1509': (2, 0.3, 1, 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=daily_close, email_notify=['*****@*****.**']) strategies = [rb_strat, dt_strat] strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':3, \ 'min_data_days':1 } myApp = MainApp(name, trader_cfg, user_cfg, strat_cfg, tday, master=None, save_test=False) myGui = Gui(myApp) #myGui.iconbitmap(r'c:\Python27\DLLs\thumbs-up-emoticon.ico') myGui.mainloop()
def m_opt_sim(tday, name='Soymeal_Opt'): logging.basicConfig( filename="ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s' ) trader_cfg = misc.DCE_OPT_TRADER user_cfg = misc.DCE_OPT_USER opt_strat = optstrat.CommodOptStrat(name, ['m1509', 'm1601'], [ datetime.datetime(2015, 8, 7, 15, 0, 0), datetime.datetime(2015, 12, 7, 15, 0, 0) ], [[2600 + 50 * i for i in range(10)], [2500 + 50 * i for i in range(13)]]) insts_dt = ['m1509'] units_dt = [2] * len(insts_dt) under_dt = [[inst] for inst in insts_dt] vols_dt = [[1]] * len(insts_dt) lookbacks_dt = [0] * len(insts_dt) ratios = [[0.4, 0.5]] * len(insts_dt) dt_strat = strat_dt.DTTrader('DT_test', under_dt, vols_dt, trade_unit=units_dt, ratios=ratios, lookbacks=lookbacks_dt, agent=None, daily_close=[False], email_notify=[]) ins_setup = {'m1509': [[0.35, 0.07, 0.25], 2, 30]} insts_rb = ins_setup.keys() units_rb = [ins_setup[inst][1] for inst in insts_rb] under_rb = [[inst] for inst in insts_rb] vol_rb = [[1] for inst in insts_rb] ratios = [ins_setup[inst][0] for inst in insts_rb] min_rng = [ins_setup[inst][2] for inst in insts_rb] stop_loss = 0.0 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 = [opt_strat, dt_strat, rb_strat] strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':5, \ 'min_data_days':1 } myApp = MainApp(name, trader_cfg, user_cfg, strat_cfg, tday, master=None, save_test=True) myGui = Gui(myApp) myGui.iconbitmap(r'c:\Python27\DLLs\thumbs-up-emoticon.ico') myGui.mainloop()
def option_test(tday, name='option_test'): base.config_logging( "ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s', to_console=True, console_level=logging.INFO) trader_cfg = misc.TEST_TRADER user_cfg = misc.TEST_USER opt_strat = optionarb.OptionArbStrat( name, ['IF1509', 'IF1512'], [201509, 201512], [[3400, 3500, 3600, 3650, 3700, 3750, 3800, 3850, 3900, 4000, 4100]] * 2) ins_setup = {'IF1509': 1} insts = ins_setup.keys() units_tl = [ins_setup[inst] for inst in insts] under_tl = [[inst] for inst in insts] vol_tl = [[1] for inst in insts] tl_strat = strat_tl.TurtleTrader('ProdTL', under_tl, vol_tl, trade_unit=units_tl, agent=None, email_notify=[]) ins_setup = {'IF1509': (0, 0.7, 0.0, 1, False)} insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] 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=daily_close, email_notify=[]) ins_setup = {'IF1509': [[0.3, 0.07, 0.2], 1, 30, 1]} 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] freq = [ins_setup[inst][3] for inst in insts] stop_loss = 0.015 rb_strat = strat_rb.RBreakerTrader('ProdRB', under_rb, vol_rb, trade_unit=units_rb, ratios=ratios, min_rng=min_rng, trail_loss=stop_loss, freq=freq, agent=None, email_notify=[]) strategies = [tl_strat, dt_strat, rb_strat] folder = misc.get_prod_folder() strat_cfg = {'strategies': strategies, \ 'folder': folder, \ 'daily_data_days':21, \ 'min_data_days':1, 'enable_option': True } myApp = MainApp(name, trader_cfg, user_cfg, strat_cfg, tday, master=None, save_test=False) myGui = Gui(myApp) myGui.mainloop()
def Soymeal_Opt(tday, name='Soymeal_Opt'): base.config_logging( "ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s', to_console=True, console_level=logging.INFO) trader_cfg = misc.HT_OPTSIM_TRADER user_cfg = misc.HT_OPTSIM_USER ins_setup = {'m1601': 5, 'm1605': 5} insts = ins_setup.keys() units_tl = [ins_setup[inst] for inst in insts] under_tl = [[inst] for inst in insts] vol_tl = [[1] for inst in insts] tl_strat = strat_tl.TurtleTrader('ProdTL', under_tl, vol_tl, trade_unit=units_tl, agent=None, email_notify=[]) ins_setup = { 'm1601': (0, 0.5, 0.0, 10, False), 'm1605': (0, 0.5, 0.0, 10, False) } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] 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=daily_close, email_notify=[]) ins_setup = { 'm1601': [[0.3, 0.07, 0.2], 1, 30, 5], 'm1605': [[0.3, 0.07, 0.2], 1, 30, 5] } 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] freq = [ins_setup[inst][3] for inst in insts] stop_loss = 0.015 rb_strat = strat_rb.RBreakerTrader('ProdRB', under_rb, vol_rb, trade_unit=units_rb, ratios=ratios, min_rng=min_rng, trail_loss=stop_loss, freq=freq, agent=None, email_notify=[]) strategies = [tl_strat, dt_strat, rb_strat] folder = misc.get_prod_folder() strat_cfg = {'strategies': strategies, \ 'folder': folder, \ 'daily_data_days':21, \ 'min_data_days':1, 'enable_option': True } myApp = MainApp(name, trader_cfg, user_cfg, strat_cfg, tday, master=None, save_test=True) myGui = Gui(myApp) myGui.mainloop()
def prod_trade(tday, name='prod_trade'): logging.basicConfig( filename="ctp_" + name + ".log", level=logging.DEBUG, format= '%(name)s:%(funcName)s:%(lineno)d:%(asctime)s %(levelname)s %(message)s' ) trader_cfg = misc.PROD_TRADER user_cfg = misc.PROD_USER # ins_setup = {'ag1506': [[0.4, 0.1, 0.3], 1, 40], # '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.015 # rb_strat = strat_rb.RBreakerTrader('ProdRB', under_rb, vol_rb, trade_unit = units_rb, # ratios = ratios, min_rng = min_rng, trail_loss = stop_loss, freq = 5, # agent = None, email_notify = []) ins_setup = { 'm1509': (0, 0.7, 0.0, 4, False), 'RM509': (-1, 0.5, 0.0, 4, False), 'rb1510': (0, 0.7, 0.0, 4, False), 'p1509': (0, 0.7, 0.0, 2, False), 'y1509': (0, 0.7, 0.0, 2, False), 'l1509': (0, 0.7, 0.0, 1, False), 'pp1509': (0, 0.7, 0.0, 1, False), 'TA509': (-1, 0.4, 0.0, 2, False), 'MA509': (-1, 0.5, 0.5, 2, False), 'jd1509': (2, 0.4, 0.5, 2, False), 'a1509': (2, 0.4, 0.5, 2, False), #'SR509' :(1,0.6, 0.5, 1, False), # 'ru1509':(0, 0.5, 1, False), # 'SR509' :(0, 0.7, 8, False), # 'i1509' :(2, 0.3, 1, False), } insts = ins_setup.keys() units_dt = [ins_setup[inst][3] 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][2]] for inst in insts] lookbacks = [ins_setup[inst][0] for inst in insts] daily_close = [ins_setup[inst][4] 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=daily_close, email_notify=[]) # ins_setup = {'rb1510':(1,0.6, 0.5, 4, False), # 'l1509' :(0,0.5, 0.5, 1, False), # 'pp1509':(0,0.5, 0.5, 1, False), # 'TA509' :(0,0.4, 0.5, 2, False), # 'MA509' :(-1,0.5, 0.5, 2, False), # 'jd1509':(2,0.4, 0.5, 2, False), # 'a1509' :(2,0.4, 0.5, 2, False), # 'SR509' :(1,0.6, 0.5, 1, False), # #'m1509':(2,0.3, 0.5, 2, False), # #'RM509' :(-1,0.3, 0.5, 2, False), # # 'ru1509':(0, 0.5, 1, False), # # 'i1509' :(2, 0.3, 1, False), # } ins_setup = { 'm1509': 2, 'RM509': 2, 'rb1510': 2, #'y1509': 1, #'l1509': 1, #'pp1509':1, #'ru1509':1, 'TA509': 1, #'MA509' :1, #'au1506':1, 'i1509': 1 } insts = ins_setup.keys() units_tl = [ins_setup[inst] for inst in insts] under_tl = [[inst] for inst in insts] vol_tl = [[1] for inst in insts] tl_strat = strat_tl.TurtleTrader('ProdTL', under_tl, vol_tl, trade_unit=units_tl, agent=None, email_notify=[]) strategies = [dt_strat, tl_strat] strat_cfg = {'strategies': strategies, \ 'folder': 'C:\\dev\\src\\ktlib\\pythonctp\\pyctp\\', \ 'daily_data_days':21, \ 'min_data_days':1 } myApp = MainApp(name, trader_cfg, user_cfg, strat_cfg, tday, master=None, save_test=False) myGui = Gui(myApp) #myGui.iconbitmap(r'c:\Python27\DLLs\thumbs-up-emoticon.ico') myGui.mainloop()