def run_sim(start_date, end_date, daily_close): commod_list1 = [ 'm', 'y', 'l', 'ru', 'rb', 'p', 'cu', 'al', 'v', 'a', 'au', 'zn', 'ag', 'i', 'j', 'jm' ] # start_dates1 = [datetime.date(2010,10,1)] * 12 + \ [datetime.date(2012,7,1), datetime.date(2013,11,26), datetime.date(2011,6,1),datetime.date(2013,5,1)] commod_list2 = [ 'ME', 'CF', 'TA', 'PM', 'RM', 'SR', 'FG', 'OI', 'RI', 'TC', 'WH', 'IF' ] start_dates2 = [datetime.date(2012, 2,1)] + [ datetime.date(2012, 6, 1)] * 2 + [datetime.date(2012, 10, 1)] + \ [datetime.date(2013, 2, 1)] * 3 + [datetime.date(2013,6,1)] * 2 + \ [datetime.date(2013, 10, 1), datetime.date(2014,2,1), datetime.date(2010,6,1)] commod_list = commod_list1 + commod_list2 start_dates = start_dates1 + start_dates2 #sim_list = ['m', 'y', 'l', 'ru', 'rb', 'TA', 'SR', 'CF','ME', 'RM', 'ag', 'au', 'cu', 'al', 'zn'] sim_list = ['m', 'y', 'l', 'ru', 'rb', 'TA', 'SR', 'RM', 'cu'] sdate_list = [] for c, d in zip(commod_list, start_dates): if c in sim_list: sdate_list.append(d) test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'ChanBreak_' config = { 'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'unit': 1, 'scaler': (0.5, 2), 'channel_func': [dh.DONCH_H, dh.DONCH_L], 'daily_close': daily_close, 'file_prefix': file_prefix } freqs = [ 3, 5, ] windows = [20, 40, 60, 120, 270] for asset, sdate in zip(sim_list, sdate_list): config['marginrate'] = (backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1600 config['exit_min'] = 2055 config['no_trade_set'] = range(300, 302) + range(1500, 1502) + range( 2058, 2100) if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF', 'IH', 'IC']: config['rollrule'] = '-2b' config['no_trade_set'] = range(1515, 1520) + range(2110, 2115) elif asset in ['au', 'ag']: config['rollrule'] = '-25b' elif asset in ['TF', 'T']: config['rollrule'] = '-20b' config['no_trade_set'] = range(1515, 1520) + range(2110, 2115) chanbreak(asset, start_date, end_date, freqs, windows, config)
def run_sim(start_date, end_date, daily_close = False): sim_list = [ 'IF'] test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'Abberration_' if daily_close: file_prefix = file_prefix + 'daily_' config = {'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'unit': 1, 'scaler': (2.0, 2.0), 'file_prefix': file_prefix} freqs = ['5Min', '15Min', '30Min', '60Min', 'D'] windows = [35] for asset in sim_list: sdate = backtest.sim_start_dict[asset] config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1505 config['exit_min'] = 2055 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['start_min'] = 1520 config['exit_min'] = 2110 config['rollrule'] = '-1b' aberration( asset, max(start_date, sdate), end_date, freqs, windows, config)
def run_sim(start_date, end_date, daily_close = True): sim_list = [ 'rb','ru','TA','SR','CF','ag','au','cu','i','al','j','zn', 'a', 'jd'] test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'RBreaker_' if daily_close: file_prefix = file_prefix + 'daily_' config = {'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'close_daily': daily_close, 'unit': 1, 'min_rng': 0.015, 'file_prefix': file_prefix} scenarios = [(0.25, 0.05, 0.15), (0.30, 0.06, 0.20), (0.35, 0.08, 0.25), (0.4, 0.1, 0.3)] freqs = ['1min', '3min', '5min'] for asset in sim_list: sdate = backtest.sim_start_dict[asset] config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1505 config['exit_min'] = 2055 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['start_min'] = 1520 config['exit_min'] = 2110 config['rollrule'] = '-1b' r_breaker( asset, max(sdate, start_date), end_date, scenarios, freqs, config) return
def run_sim(start_date, end_date, daily_close=False): sim_list = ['IF'] test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'Abberration_' if daily_close: file_prefix = file_prefix + 'daily_' config = { 'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'unit': 1, 'scaler': (2.0, 2.0), 'file_prefix': file_prefix } freqs = ['5Min', '15Min', '30Min', '60Min', 'D'] windows = [35] for asset in sim_list: sdate = backtest.sim_start_dict[asset] config['marginrate'] = (backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1505 config['exit_min'] = 2055 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['start_min'] = 1520 config['exit_min'] = 2110 config['rollrule'] = '-1b' aberration(asset, max(start_date, sdate), end_date, freqs, windows, config)
def run_sim(start_date, end_date): #sim_list = [ 'm', 'y', 'l', 'p', 'rb', 'TA', 'SR', 'RM', 'cu', 'i', 'a', 'ag'] sim_list = [ 'rb', 'p', 'IF' ] test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'ChanBreaktest_' config = {'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'unit': 1, 'scaler': (0.5), 'channel_func': [dh.DONCH_H, dh.DONCH_L], 'pos_class': strat.ParSARTradePos, 'pos_args': {'af': 0.02, 'incr': 0.02, 'cap': 0.2}, 'file_prefix': file_prefix} freqs = [3, 5, 15] windows = [[20,10], [20,5], [40,20], [40,10], [60,30], [60, 15]] for asset in sim_list: sdate = backtest.sim_start_dict[asset] config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1600 config['exit_min'] = 2044 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['start_min'] = 1520 config['exit_min'] = 2059 config['rollrule'] = '-1b' chanbreak( asset, max(start_date, sdate), end_date, freqs, windows, config)
def run_sim(start_date, end_date, daily_close = False): commod_list1 = ['m','y','l','ru','rb','p','cu','al','v','a','au','zn','ag','i','j','jm'] # start_dates1 = [datetime.date(2010,10,1)] * 12 + \ [datetime.date(2012,7,1), datetime.date(2013,11,26), datetime.date(2011,6,1),datetime.date(2013,5,1)] commod_list2 = ['ME', 'CF', 'TA', 'PM', 'RM', 'SR', 'FG', 'OI', 'RI', 'TC', 'WH','pp', 'IF', 'MA', 'TF','IH', 'IC'] start_dates2 = [datetime.date(2012, 2,1)] + [ datetime.date(2012, 6, 1)] * 2 + [datetime.date(2012, 10, 1)] + \ [datetime.date(2013, 2, 1)] * 3 + [datetime.date(2013,6,1)] * 2 + \ [datetime.date(2013, 10, 1), datetime.date(2014,2,1), datetime.date(2014,4,1), datetime.date(2010,7,1)] + \ [datetime.date(2015,1,3), datetime.date(2014,4,1), datetime.date(2015,5,1), datetime.date(2015,5,1)] commod_list = commod_list1 + commod_list2 start_dates = start_dates1 + start_dates2 sim_list = [ 'm','y', 'p', 'RM', 'a', 'ru', 'rb', 'ag', 'TA', 'MA', 'SR', 'CF', 'i', 'j', 'au', 'cu'] sdate_list = [] for c, d in zip(commod_list, start_dates): if c in sim_list: sdate_list.append(d) test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'test/DTMA10_split_' if daily_close: file_prefix = file_prefix + 'daily_' #file_prefix = file_prefix + '_' config = {'capital': 10000, 'offset': 0, 'MA_fast': 10, 'MA_slow': 20, 'trans_cost': 0.0, 'close_daily': daily_close, 'unit': 1, 'stoploss': 0.0, 'min_range': 0.004, 'file_prefix': file_prefix} scenarios = [ (0.5, 0, 0.5, 0.5), (0.6, 0, 0.5, 0.5), (0.7, 0, 0.5, 0.5), (0.8, 0, 0.5, 0.5), \ (0.9, 0, 0.5, 0.5), (1.0, 0, 0.5, 0.5), \ (0.5, 1, 0.5, 0.5), (0.6, 1, 0.5, 0.5), (0.7, 1, 0.5, 0.5), (0.8, 1, 0.5, 0.5), \ (0.9, 1, 0.5, 0.5), (1.0, 1, 0.5, 0.5), \ (0.4, 2, 0.5, 0.5), (0.5, 2, 0.5, 0.5), (0.6, 2, 0.5, 0.5), (0.7, 2, 0.5, 0.5), (0.8, 2, 0.5, 0.5), \ (0.25, 4, 0.5,0.5), (0.3, 4, 0.5, 0.5), (0.35,4, 0.5, 0.5), (0.4, 4,0.5, 0.5), (0.45,4, 0.5, 0.5),\ (0.15, 8, 0.5, 0.5),(0.2, 8, 0.5, 0.5),(0.25, 8, 0.5, 0.5), (0.3, 8, 0.5, 0.5),\ ] for asset, sdate in zip(sim_list, sdate_list): config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['nearby'] = 1 config['rollrule'] = '-50b' config['exit_min'] = 2112 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF', 'IH', 'IC']: config['rollrule'] = '-2b' elif asset in ['au', 'ag']: config['rollrule'] = '-25b' elif asset in ['TF', 'T']: config['rollrule'] = '-20b' dual_thrust( asset, max(sdate, start_date), end_date, scenarios, config) return
def run_sim(start_date, end_date): commod_list1 = [ 'm', 'y', 'l', 'ru', 'rb', 'p', 'cu', 'al', 'v', 'a', 'au', 'zn', 'ag', 'i', 'j', 'jm' ] # start_dates1 = [datetime.date(2010,10,1)] * 12 + \ [datetime.date(2012,7,1), datetime.date(2013,11,26), datetime.date(2011,6,1),datetime.date(2013,5,1)] commod_list2 = [ 'ME', 'CF', 'TA', 'PM', 'RM', 'SR', 'FG', 'OI', 'RI', 'TC', 'WH', 'IF' ] start_dates2 = [datetime.date(2012, 2,1)] + [ datetime.date(2012, 6, 1)] * 2 + [datetime.date(2012, 10, 1)] + \ [datetime.date(2013, 2, 1)] * 3 + [datetime.date(2013,6,1)] * 2 + \ [datetime.date(2013, 10, 1), datetime.date(2014,2,1), datetime.date(2010,6,1)] commod_list = commod_list1 + commod_list2 start_dates = start_dates1 + start_dates2 #sim_list = ['m', 'y', 'l', 'ru', 'rb', 'TA', 'SR', 'CF','ME', 'RM', 'ag', 'au', 'cu', 'al', 'zn'] sim_list = [ 'm', 'y', 'l', 'TA', 'cu', 'ag', 'au', 'i', 'j', 'jm' ] #[ 'IF','ru', 'rb', 'a', 'j', 'p','pp','zn', 'al', 'SR', 'ME', 'CF', 'RM'] sdate_list = [] for c, d in zip(commod_list, start_dates): if c in sim_list: sdate_list.append(d) test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'FisherSwing_' #if daily_close: # file_prefix = file_prefix + 'daily_' config = { 'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'unit': 1, 'scaler': (2.0, 2.0), 'file_prefix': file_prefix } freqs = ['5Min', '15Min', '30Min', '60Min', '120Min'] windows = [[30, 20, 6], [20, 15, 6]] for asset, sdate in zip(sim_list, sdate_list): config['marginrate'] = (backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1505 config['exit_min'] = 2055 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['start_min'] = 1520 config['exit_min'] = 2110 config['rollrule'] = '-1b' fisher_swing(asset, max(start_date, sdate), end_date, freqs, windows, config)
def run_sim(start_date, end_date, daily_close = False): commod_list1 = ['m','y','l','ru','rb','p','cu','al','v','a','au','zn','ag','i','j','jm'] # start_dates1 = [datetime.date(2010,10,1)] * 12 + \ [datetime.date(2012,7,1), datetime.date(2013,11,26), datetime.date(2011,6,1),datetime.date(2013,5,1)] commod_list2 = ['ME', 'CF', 'TA', 'PM', 'RM', 'SR', 'FG', 'OI', 'RI', 'TC', 'WH','pp', 'IF', 'MA', 'TF','IH', 'IC'] start_dates2 = [datetime.date(2012, 2,1)] + [ datetime.date(2012, 6, 1)] * 2 + [datetime.date(2012, 10, 1)] + \ [datetime.date(2013, 2, 1)] * 3 + [datetime.date(2013,6,1)] * 2 + \ [datetime.date(2013, 10, 1), datetime.date(2014,2,1), datetime.date(2014,4,1), datetime.date(2010,7,1)] + \ [datetime.date(2015,1,3), datetime.date(2014,4,1), datetime.date(2015,5,1), datetime.date(2015,5,1)] commod_list = commod_list1 + commod_list2 start_dates = start_dates1 + start_dates2 sim_list = ['m', 'RM', 'y', 'p', 'a', 'l', 'pp', 'TA', 'SR', 'rb', 'TF', 'i'] sdate_list = [] for c, d in zip(commod_list, start_dates): if c in sim_list: sdate_list.append(d) test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'test/DT_nontrade_' if daily_close: file_prefix = file_prefix + 'daily_' #file_prefix = file_prefix + '_' config = {'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'close_daily': daily_close, 'unit': 1, 'stoploss': 0.0, 'min_range': 0.00, 'file_prefix': file_prefix} scenarios = [ (0.6, 0, 0.5), (0.7, 0, 0.5), (0.8, 0, 0.5), (0.9, 0, 0.5), (1.0, 0, 0.5), (1.1, 0, 0.5), (1.2, 0, 0.5),\ (0.6, 1, 0.0), (0.7, 1, 0.0), (0.8, 1, 0.0), (0.9, 1, 0.0), (1.0, 1, 0.0), (1.1, 1, 0.0), (1.2, 1, 0.0),\ (0.25, 2, 0), (0.3, 2, 0), (0.35, 2, 0), (0.4, 2, 0), (0.45, 2, 0), (0.5, 2, 0), (0.6, 2, 0), \ (0.2, 4, 0), (0.25,4, 0), (0.3, 4, 0), (0.35,4, 0), (0.4, 4, 0) ] for asset, sdate in zip(sim_list, sdate_list): config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['nearby'] = 1 config['rollrule'] = '-50b' config['exit_min'] = 2055 config['no_trade_set'] = range(300, 301) + range(1500, 1501) + range(2058, 2100) if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF', 'IH', 'IC']: config['rollrule'] = '-2b' config['no_trade_set'] = range(1515, 1520) + range(2110, 2115) elif asset in ['au', 'ag']: config['rollrule'] = '-25b' elif asset in ['TF', 'T']: config['rollrule'] = '-20b' config['no_trade_set'] = range(1515, 1520) + range(2110, 2115) dual_thrust( asset, max(sdate, start_date), end_date, scenarios, config) return
def run_sim(start_date, end_date, trail_loss = False): test_folder = backtest.get_bktest_folder() + 'test/' postfix = '_' if trail_loss: postfix = 'Trail_' file_prefix = test_folder + 'Turtle' + postfix config = {'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'max_loss': 2, 'max_pos': 4, 'unit': 1, 'trail_loss': trail_loss, 'file_prefix': file_prefix} commod_list1 = ['m','y','l','ru','rb','p','cu','al','v','a','au','zn','ag','i','j','jm','bu', 'sn', 'ni'] # start_dates1 = [datetime.date(2010,10,1)] * 12 + \ [datetime.date(2012,7,1), datetime.date(2013,11,26), \ datetime.date(2011,6,1),datetime.date(2013,5,1), \ datetime.date(2013,11,20), datetime.date(2014, 3, 27), datetime.date(2014, 3, 27)] commod_list2 = ['ME', 'CF', 'TA', 'PM', 'RM', 'SR', 'FG', 'OI', 'RI', 'TC', 'WH','pp', 'IF'] start_dates2 = [datetime.date(2012, 2,1)] + [ datetime.date(2012, 6, 1)] * 2 + [datetime.date(2012, 10, 1)] + \ [datetime.date(2013, 2, 1)] * 3 + [datetime.date(2013,6,1)] * 2 + \ [datetime.date(2013, 10, 1), datetime.date(2014,2,1), datetime.date(2014,4,1), datetime.date(2010,7,1)] commod_list = commod_list1+commod_list2 start_dates = start_dates1 + start_dates2 sim_list = ['m', 'y', 'ru', 'TA', 'ag', 'SR','FG', 'jd', 'CF', 'TC', 'RM', 'IF', 'cu', 'zn', 'al'] sdate_list = [] for c, d in zip(commod_list, start_dates): if c in sim_list: sdate_list.append(d) systems = [(20, 10, 1, 2, 4), (20, 5, 1, 2, 4), (15, 5, 1, 2, 4), (10, 5, 1, 2, 4), \ (20, 10, 1, 2, 3), (20, 5, 1, 2, 3), (15, 5, 1, 2, 3), (10, 5, 1, 2, 3), \ (20, 10, 1, 2, 2), (20, 5, 1, 2, 2), (15, 5, 1, 2, 2), (10, 5, 1, 2, 2), \ (20, 10, 1, 2, 1), (20, 5, 1, 2, 1), (15, 5, 1, 2, 1), (10, 5, 1, 2, 1), \ (20, 10, 1, 1, 2), (20, 5, 1, 1, 2), (15, 5, 1, 1, 2), (10, 5, 1, 1, 2), \ (20, 10, 1, 1, 1), (20, 5, 1, 1, 1), (15, 5, 1, 1, 1), (10, 5, 1, 1, 1) ] for asset, sdate in zip(sim_list, sdate_list): config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['nearby'] = 1 config['rollrule'] = '-50b' if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['rollrule'] = '-1b' elif asset in ['au', 'ag']: config['rollrule'] = '-25b' turtle( asset, max(sdate, start_date), end_date, systems, config) return
def run_sim(start_date, end_date, daily_close): commod_list1 = ['m','y','l','ru','rb','p','cu','al','v','a','au','zn','ag','i','j','jm'] # start_dates1 = [datetime.date(2010,10,1)] * 12 + \ [datetime.date(2012,7,1), datetime.date(2013,11,26), datetime.date(2011,6,1),datetime.date(2013,5,1)] commod_list2 = ['ME', 'CF', 'TA', 'PM', 'RM', 'SR', 'FG', 'OI', 'RI', 'TC', 'WH', 'IF'] start_dates2 = [datetime.date(2012, 2,1)] + [ datetime.date(2012, 6, 1)] * 2 + [datetime.date(2012, 10, 1)] + \ [datetime.date(2013, 2, 1)] * 3 + [datetime.date(2013,6,1)] * 2 + \ [datetime.date(2013, 10, 1), datetime.date(2014,2,1), datetime.date(2010,6,1)] commod_list = commod_list1 + commod_list2 start_dates = start_dates1 + start_dates2 #sim_list = ['m', 'y', 'l', 'ru', 'rb', 'TA', 'SR', 'CF','ME', 'RM', 'ag', 'au', 'cu', 'al', 'zn'] sim_list = [ 'm', 'y', 'l', 'ru', 'rb', 'TA', 'SR', 'RM', 'cu'] sdate_list = [] for c, d in zip(commod_list, start_dates): if c in sim_list: sdate_list.append(d) test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'ChanBreak_' config = {'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'unit': 1, 'scaler': (0.5, 2), 'channel_func': [dh.DONCH_H, dh.DONCH_L], 'daily_close': daily_close, 'file_prefix': file_prefix} freqs = [3, 5, ] windows = [20, 40, 60, 120, 270] for asset, sdate in zip(sim_list, sdate_list): config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1600 config['exit_min'] = 2055 config['no_trade_set'] = range(300, 302) + range(1500, 1502) + range(2058, 2100) if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF', 'IH', 'IC']: config['rollrule'] = '-2b' config['no_trade_set'] = range(1515, 1520) + range(2110, 2115) elif asset in ['au', 'ag']: config['rollrule'] = '-25b' elif asset in ['TF', 'T']: config['rollrule'] = '-20b' config['no_trade_set'] = range(1515, 1520) + range(2110, 2115) chanbreak( asset, start_date, end_date, freqs, windows, config)
def run_sim(start_date, end_date, daily_close = True): commod_list1 = ['m','y','l','ru','rb','p','cu','al','v','a','au','zn','ag','i','j','jm'] # start_dates1 = [datetime.date(2010,10,1)] * 12 + \ [datetime.date(2012,7,1), datetime.date(2013,11,26), datetime.date(2011,6,1),datetime.date(2013,5,1)] commod_list2 = ['ME', 'CF', 'TA', 'PM', 'RM', 'SR', 'FG', 'OI', 'RI', 'TC', 'WH', 'IF'] start_dates2 = [datetime.date(2012, 2,1)] + [ datetime.date(2012, 6, 1)] * 2 + [datetime.date(2012, 10, 1)] + \ [datetime.date(2013, 2, 1)] * 3 + [datetime.date(2013,6,1)] * 2 + \ [datetime.date(2013, 10, 1), datetime.date(2014,2,1), datetime.date(2010,6,1)] commod_list = commod_list1 + commod_list2 start_dates = start_dates1 + start_dates2 #sim_list = ['m', 'y', 'l', 'ru', 'rb', 'TA', 'SR', 'CF','ME', 'RM', 'ag', 'au', 'cu', 'al', 'zn'] sim_list = [ 'rb','ru','TA','SR','CF','ag','au','cu','i','al','j','zn', 'a', 'jd'] sdate_list = [] for c, d in zip(commod_list, start_dates): if c in sim_list: sdate_list.append(d) test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'RBreaker_' if daily_close: file_prefix = file_prefix + 'daily_' config = {'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'close_daily': daily_close, 'unit': 1, 'min_rng': 0.015, 'file_prefix': file_prefix} scenarios = [(0.25, 0.05, 0.15), (0.30, 0.06, 0.20), (0.35, 0.08, 0.25), (0.4, 0.1, 0.3)] freqs = ['1min', '3min', '5min'] for asset, sdate in zip(sim_list, sdate_list): config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1505 config['exit_min'] = 2055 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['start_min'] = 1520 config['exit_min'] = 2110 config['rollrule'] = '-1b' r_breaker( asset, max(sdate, start_date), end_date, scenarios, freqs, config) return
def run_sim(start_date, end_date): sim_list = [ "m", "y", "l", "TA", "cu", "ag", "au", "i", "j", "jm", ] # [ 'IF','ru', 'rb', 'a', 'j', 'p','pp','zn', 'al', 'SR', 'ME', 'CF', 'RM'] test_folder = backtest.get_bktest_folder() file_prefix = test_folder + "FisherSwing_" # if daily_close: # file_prefix = file_prefix + 'daily_' config = { "capital": 10000, "offset": 0, "trans_cost": 0.0, "unit": 1, "scaler": (2.0, 2.0), "file_prefix": file_prefix, } freqs = ["5Min", "15Min", "30Min", "60Min", "120Min"] windows = [[30, 20, 6], [20, 15, 6]] for asset in sim_list: sdate = backtest.sim_start_dict[asset] config["marginrate"] = (backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config["rollrule"] = "-50b" config["nearby"] = 1 config["start_min"] = 1505 config["exit_min"] = 2055 if asset in ["cu", "al", "zn"]: config["nearby"] = 3 config["rollrule"] = "-1b" elif asset in ["IF"]: config["start_min"] = 1520 config["exit_min"] = 2110 config["rollrule"] = "-1b" fisher_swing(asset, max(start_date, sdate), end_date, freqs, windows, config)
def run_sim(start_date, end_date): commod_list1 = ['m','y','l','ru','rb','p','cu','al','v','a','au','zn','ag','i','j','jm'] # start_dates1 = [datetime.date(2010,10,1)] * 12 + \ [datetime.date(2012,7,1), datetime.date(2013,11,26), datetime.date(2011,6,1),datetime.date(2013,5,1)] commod_list2 = ['ME', 'CF', 'TA', 'PM', 'RM', 'SR', 'FG', 'OI', 'RI', 'TC', 'WH', 'IF'] start_dates2 = [datetime.date(2012, 2,1)] + [ datetime.date(2012, 6, 1)] * 2 + [datetime.date(2012, 10, 1)] + \ [datetime.date(2013, 2, 1)] * 3 + [datetime.date(2013,6,1)] * 2 + \ [datetime.date(2013, 10, 1), datetime.date(2014,2,1), datetime.date(2010,6,1)] commod_list = commod_list1 + commod_list2 start_dates = start_dates1 + start_dates2 #sim_list = ['m', 'y', 'l', 'ru', 'rb', 'TA', 'SR', 'CF','ME', 'RM', 'ag', 'au', 'cu', 'al', 'zn'] sim_list = ['m', 'y', 'l', 'TA', 'cu', 'ag', 'au', 'i', 'j', 'jm'] #[ 'IF','ru', 'rb', 'a', 'j', 'p','pp','zn', 'al', 'SR', 'ME', 'CF', 'RM'] sdate_list = [] for c, d in zip(commod_list, start_dates): if c in sim_list: sdate_list.append(d) test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'FisherSwing_' #if daily_close: # file_prefix = file_prefix + 'daily_' config = {'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'unit': 1, 'scaler': (2.0, 2.0), 'file_prefix': file_prefix} freqs = ['5Min', '15Min', '30Min', '60Min','120Min'] windows = [[30, 20, 6], [20, 15, 6]] for asset, sdate in zip(sim_list, sdate_list): config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1505 config['exit_min'] = 2055 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['start_min'] = 1520 config['exit_min'] = 2110 config['rollrule'] = '-1b' fisher_swing( asset, max(start_date, sdate), end_date, freqs, windows, config)
def run_sim(start_date, end_date, daily_close = False): sim_list = [ 'cs', 'TF', 'i', 'rb', 'SR', 'OI', 'MA', 'l', 'v', 'TA', 'a', 'm', 'p', 'y', 'pp', 'ru'] test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'test/DTwEP_' if daily_close: file_prefix = file_prefix + 'daily_' #file_prefix = file_prefix + '_' config = {'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'close_daily': daily_close, 'unit': 1, 'stoploss': 0.0, 'min_range': 0.00, 'EP': True, 'file_prefix': file_prefix} scenarios = [ (0.6, 0, 0.5), (0.7, 0, 0.5), (0.8, 0, 0.5), (0.9, 0, 0.5), (1.0, 0, 0.5), (1.1, 0, 0.5), (1.2, 0, 0.5),\ (0.6, 1, 0.0), (0.7, 1, 0.0), (0.8, 1, 0.0), (0.9, 1, 0.0), (1.0, 1, 0.0), (1.1, 1, 0.0), (1.2, 1, 0.0),\ (0.25, 2, 0), (0.3, 2, 0), (0.35, 2, 0), (0.4, 2, 0), (0.45, 2, 0), (0.5, 2, 0), (0.6, 2, 0), \ (0.2, 4, 0), (0.25,4, 0), (0.3, 4, 0), (0.35,4, 0), (0.4, 4, 0) ] for asset in sim_list: sdate = backtest.sim_start_dict[asset] config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['nearby'] = 1 config['rollrule'] = '-50b' config['exit_min'] = 2055 config['no_trade_set'] = range(300, 301) + range(1500, 1501) + range(2059, 2100) if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF', 'IH', 'IC']: config['rollrule'] = '-2b' config['no_trade_set'] = range(1515, 1520) + range(2110, 2115) elif asset in ['au', 'ag']: config['rollrule'] = '-25b' elif asset in ['TF', 'T']: config['rollrule'] = '-20b' config['no_trade_set'] = range(1515, 1520) + range(2110, 2115) dual_thrust( asset, max(sdate, start_date), end_date, scenarios, config) return
def run_sim(start_date, end_date, daily_close=True): sim_list = [ 'rb', 'ru', 'TA', 'SR', 'CF', 'ag', 'au', 'cu', 'i', 'al', 'j', 'zn', 'a', 'jd' ] test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'RBreaker_' if daily_close: file_prefix = file_prefix + 'daily_' config = { 'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'close_daily': daily_close, 'unit': 1, 'min_rng': 0.015, 'file_prefix': file_prefix } scenarios = [(0.25, 0.05, 0.15), (0.30, 0.06, 0.20), (0.35, 0.08, 0.25), (0.4, 0.1, 0.3)] freqs = ['1min', '3min', '5min'] for asset in sim_list: sdate = backtest.sim_start_dict[asset] config['marginrate'] = (backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1505 config['exit_min'] = 2055 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['start_min'] = 1520 config['exit_min'] = 2110 config['rollrule'] = '-1b' r_breaker(asset, max(sdate, start_date), end_date, scenarios, freqs, config) return
def run_sim(start_date, end_date, daily_close = False): sim_list = ['v','FG', 'CF'] test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'DT_MA10_' if daily_close: file_prefix = file_prefix + 'daily_' #file_prefix = file_prefix + '_' config = {'capital': 10000, 'offset': 0, 'MA_fast': 10, 'MA_slow': 20, 'trans_cost': 0.0, 'close_daily': daily_close, 'unit': 1, 'stoploss': 0.0, 'min_range': 0.01, 'file_prefix': file_prefix} scenarios = [ (0.3, 2, 0.5, 0.5), (0.35, 2, 0.5, 0.5), (0.4, 2, 0.5, 0.5), (0.45, 2, 0.5, 0.5), (0.5, 2, 0.5, 0.5), (0.6, 2, 0.5, 0.5),\ (0.2, 3, 0.5, 0.5),(0.25, 3, 0.5, 0.5), (0.3, 3, 0.5, 0.5), (0.35, 3, 0.5, 0.5), (0.4, 3, 0.5, 0.5), \ (0.2, 4, 0.5, 0.5), (0.25, 4, 0.5, 0.5), (0.3, 4, 0.5, 0.5), (0.35, 4, 0.5, 0.5), (0.4, 4, 0.5, 0.5)] for asset in sim_list: sdate = backtest.sim_start_dict[asset] config['marginrate'] = ( backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['nearby'] = 1 config['rollrule'] = '-50b' config['exit_min'] = 2112 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF', 'IH', 'IC']: config['rollrule'] = '-2b' elif asset in ['au', 'ag']: config['rollrule'] = '-25b' elif asset in ['TF', 'T']: config['rollrule'] = '-20b' dual_thrust( asset, max(sdate, start_date), end_date, scenarios, config) return
def run_sim(start_date, end_date): sim_list = [ 'm', 'y', 'l', 'TA', 'cu', 'ag', 'au', 'i', 'j', 'jm' ] #[ 'IF','ru', 'rb', 'a', 'j', 'p','pp','zn', 'al', 'SR', 'ME', 'CF', 'RM'] test_folder = backtest.get_bktest_folder() file_prefix = test_folder + 'FisherSwing_' #if daily_close: # file_prefix = file_prefix + 'daily_' config = { 'capital': 10000, 'offset': 0, 'trans_cost': 0.0, 'unit': 1, 'scaler': (2.0, 2.0), 'file_prefix': file_prefix } freqs = ['5Min', '15Min', '30Min', '60Min', '120Min'] windows = [[30, 20, 6], [20, 15, 6]] for asset in sim_list: sdate = backtest.sim_start_dict[asset] config['marginrate'] = (backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config['rollrule'] = '-50b' config['nearby'] = 1 config['start_min'] = 1505 config['exit_min'] = 2055 if asset in ['cu', 'al', 'zn']: config['nearby'] = 3 config['rollrule'] = '-1b' elif asset in ['IF']: config['start_min'] = 1520 config['exit_min'] = 2110 config['rollrule'] = '-1b' fisher_swing(asset, max(start_date, sdate), end_date, freqs, windows, config)
def run_sim(start_date, end_date, daily_close=False): commod_list1 = ["m", "y", "l", "ru", "rb", "p", "cu", "al", "v", "a", "au", "zn", "ag", "i", "j", "jm"] # start_dates1 = [datetime.date(2010, 10, 1)] * 12 + [ datetime.date(2012, 7, 1), datetime.date(2013, 11, 26), datetime.date(2011, 6, 1), datetime.date(2013, 5, 1), ] commod_list2 = [ "ME", "CF", "TA", "PM", "RM", "SR", "FG", "OI", "RI", "TC", "WH", "pp", "IF", "MA", "TF", "IH", "IC", ] start_dates2 = ( [datetime.date(2012, 2, 1)] + [datetime.date(2012, 6, 1)] * 2 + [datetime.date(2012, 10, 1)] + [datetime.date(2013, 2, 1)] * 3 + [datetime.date(2013, 6, 1)] * 2 + [datetime.date(2013, 10, 1), datetime.date(2014, 2, 1), datetime.date(2014, 4, 1), datetime.date(2010, 7, 1)] + [datetime.date(2015, 1, 3), datetime.date(2014, 4, 1), datetime.date(2015, 5, 1), datetime.date(2015, 5, 1)] ) commod_list = commod_list1 + commod_list2 start_dates = start_dates1 + start_dates2 sim_list = ["m", "y", "p", "RM", "a", "rb", "ag", "TA", "MA", "SR", "i"] sdate_list = [] for c, d in zip(commod_list, start_dates): if c in sim_list: sdate_list.append(d) test_folder = backtest.get_bktest_folder() file_prefix = test_folder + "test2/DTsplit_" if daily_close: file_prefix = file_prefix + "daily_" # file_prefix = file_prefix + '_' config = { "capital": 10000, "offset": 0, "MA_fast": 10, "MA_slow": 20, "trans_cost": 0.0, "close_daily": daily_close, "unit": 1, "stoploss": 0.0, "min_range": 0.004, "file_prefix": file_prefix, } scenarios = [ (0.6, 0, 0.5, 0.0), (0.7, 0, 0.5, 0.0), (0.8, 0, 0.5, 0.0), (0.9, 0, 0.5, 0.0), (1.0, 0, 0.5, 0.0), (1.1, 0, 0.5, 0.0), (1.2, 0, 0.5, 0.0), (0.6, 1, 0.5, 0.0), (0.7, 1, 0.5, 0.0), (0.8, 1, 0.5, 0.0), (0.9, 1, 0.5, 0.0), (1.0, 1, 0.5, 0.0), (1.1, 1, 0.5, 0.0), (1.2, 1, 0.5, 0.0), (0.5, 2, 0.5, 0.0), (0.6, 2, 0.5, 0.0), (0.7, 2, 0.5, 0.0), (0.8, 2, 0.5, 0.0), (0.9, 2, 0.5, 0.0), (1.0, 2, 0.5, 0.0), (1.1, 2, 0.5, 0.0), (0.2, 4, 0.5, 0.0), (0.25, 4, 0.5, 0.0), (0.3, 4, 0.5, 0.0), (0.35, 4, 0.5, 0.0), (0.4, 4, 0.5, 0.0), (0.45, 4, 0.5, 0.0), (0.5, 4, 0.5, 0.0), ] for asset, sdate in zip(sim_list, sdate_list): config["marginrate"] = (backtest.sim_margin_dict[asset], backtest.sim_margin_dict[asset]) config["nearby"] = 1 config["rollrule"] = "-50b" config["exit_min"] = 2112 if asset in ["cu", "al", "zn"]: config["nearby"] = 3 config["rollrule"] = "-1b" elif asset in ["IF", "IH", "IC"]: config["rollrule"] = "-2b" elif asset in ["au", "ag"]: config["rollrule"] = "-25b" elif asset in ["TF", "T"]: config["rollrule"] = "-20b" dual_thrust(asset, max(sdate, start_date), end_date, scenarios, config) return