from backtester.swarms.rankingclasses import * from backtester.swarms.rebalancing import SwarmRebalance from strategies.strategy_bbands import StrategyBollingerBands STRATEGY_NAME = StrategyBollingerBands.name STRATEGY_SUFFIX = 'alt2-bearish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategyBollingerBands, 'exo_name': 'ZN_CallSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ #OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [-1]), OptParam('BB_Period', 20, 5, 30, 10), OptParam('BB_K', 2, 7, 9, 1), ### Trend 0:5 OptParamArray('RulesIndex', np.arange(26)[0:5]), ### Vola breakout 5:10 #OptParamArray('RulesIndex', np.arange(26)[5:10]), ### High vola(BBands width percent rank > 80-90) 10:15 #OptParamArray('RulesIndex', np.arange(26)[10:15]), ### %B rules 15:26 #OptParamArray('RulesIndex', np.arange(26)[15:26]), ### All rules
from strategies.strategy_macross_with_trail import StrategyMACrossTrail STRATEGY_NAME = StrategyMACrossTrail.name STRATEGY_SUFFIX = 'bullish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategyMACrossTrail, 'exo_name': 'ZW_CallSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ #OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [-1]), OptParam('SlowMAPeriod', 20, 10, 110, 50), OptParam('FastMAPeriod', 2, 1, 1, 5), OptParam('MedianPeriod', 5, 35, 35, 1) ], }, 'swarm': { 'members_count': 2, 'ranking_class': RankerBestWithCorrel(window_size=-1, correl_threshold=0.5), 'rebalance_time_function': SwarmRebalance.every_friday, }, 'costs': { 'manager': CostsManagerEXOFixed, 'context': { 'costs_options': 3.0, 'costs_futures': 3.0,
from strategies.strategy_swingpoint import StrategySwingPoint from strategies.strategy_macross_with_trail import StrategyMACrossTrail STRATEGY_CONTEXT = { 'strategy': { 'class': StrategySwingPoint, 'exo_name': '../../mat/strategy_270225.mat', 'direction': 0, 'opt_params': [ # OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [-1]), OptParam('sphTreshold', 2, 1, 5, 2), OptParam('splTreshold', 2, 1, 5, 2), # bearish_breakout_confirmed, bearish_failure_confirmed, bullish_breakout_confirmed, bullish_failure_confirmed OptParamArray('RulesIndex', [0]), OptParam('MedianPeriod', 5, 5, 9, 3) ], }, 'swarm': { 'members_count': 5, 'ranking_function': SwarmRanker.highestreturns_universal, 'ranking_params': { # Ranking function exta parameters (main ranking metric period) 'eqty_returns_period': 14, # Ignoring all members which equity less than it's MovingAverage({ignore_eqty_less_ma_period}) 'ignore_eqty_less_ma': True, # Comment the line to turn off
from strategies.strategy_ichimokucloud import StrategyIchimokuCloud STRATEGY_NAME = StrategyIchimokuCloud.name STRATEGY_SUFFIX = 'alt2-bearish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategyIchimokuCloud, 'exo_name': 'ZC_PutSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ #OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [1]), OptParam('conversion_line_period', 9, 25, 25, 5), OptParam('base_line_period', 26, 26, 26, 13), OptParam('leading_spans_lookahead_period', 26, 2, 54, 2), OptParam('leading_span_b_period', 52, 20, 20, 2), OptParamArray('RulesIndex', [1]), OptParam('MedianPeriod', 5, 50, 50, 10) ], }, 'swarm': { 'members_count': 1, 'ranking_class': RankerBestWithCorrel(window_size=-1, correl_threshold=-0.5), 'rebalance_time_function': SwarmRebalance.every_friday, },
from strategies.strategy_ichimokucloud import StrategyIchimokuCloud STRATEGY_NAME = StrategyIchimokuCloud.name STRATEGY_SUFFIX = 'bearish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategyIchimokuCloud, 'exo_name': 'ZC_PutSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ #OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [1]), OptParam('conversion_line_period', 9, 5, 5, 45), OptParam('base_line_period', 26, 26, 26, 1), OptParam('leading_spans_lookahead_period', 26, 13, 13, 1), OptParam('leading_span_b_period', 52, 52, 52, 10), #OptParamArray('RulesIndex', np.arange(1)), OptParamArray('RulesIndex', [1]), #OptParamArray('RulesIndex', [7,8,9,10]), #OptParamArray('RulesIndex', [10,11,12,13]), # 7,9 OptParam('MedianPeriod', 5, 39, 39, 13) ], }, 'swarm': { 'members_count': 2, 'ranking_class': RankerBestWithCorrel(window_size=-1, correl_threshold=0.5), 'rebalance_time_function': SwarmRebalance.every_friday,
from strategies.strategy_swingpoint import StrategySwingPoint STRATEGY_NAME = StrategySwingPoint.name STRATEGY_SUFFIX = 'bullish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategySwingPoint, 'exo_name': 'ZC_CallSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ # OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [1]), OptParam('sphTreshold', 2, 2, 2, 2), OptParam('splTreshold', 2, 2, 12, 2), # bearish_breakout, bearish_failure, bullish_breakout, bullish_failure OptParamArray('RulesIndex', [1]), OptParam('MedianPeriod', 5, 10, 20, 10) ], }, 'swarm': { 'members_count': 2, 'ranking_class': RankerBestWithCorrel(window_size=-1, correl_threshold=0.5), 'rebalance_time_function': SwarmRebalance.every_friday, }, 'costs': { 'manager': CostsManagerEXOFixed, 'context': {
from strategies.strategy_bbands import StrategyBollingerBands STRATEGY_NAME = StrategyBollingerBands.name STRATEGY_SUFFIX = 'alt2-bearish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategyBollingerBands, 'exo_name': 'NG_PutSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ #OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [1]), OptParam('BB_Period', 20, 5, 30, 5), OptParam('BB_K', 2, 8, 10, .5), ### Trend 0:5 OptParamArray('RulesIndex', np.arange(26)[0:5]), ### Vola breakout 5:10 #OptParamArray('RulesIndex', np.arange(26)[5:10]), ### High vola(BBands width percent rank > 80-90) 10:15 #OptParamArray('RulesIndex', np.arange(26)[10:15]), ### %B rules 15:26 #OptParamArray('RulesIndex', np.arange(26)[15:26]),
from backtester.swarms.rankingclasses import * from backtester.swarms.rebalancing import SwarmRebalance from strategies.strategy_bbands import StrategyBollingerBands STRATEGY_NAME = StrategyBollingerBands.name STRATEGY_SUFFIX = 'bearish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategyBollingerBands, 'exo_name': 'ZW_CallSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ #OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [-1]), OptParam('BB_Period', 20, 10, 30, 10), OptParam('BB_K', 2, 5, 9, 1), ### Trend 0:5 #OptParamArray('RulesIndex', np.arange(26)[0:5]), ### Vola breakout 5:10 #OptParamArray('RulesIndex', np.arange(26)[5:10]), ### High vola(BBands width percent rank > 80-90) 10:15 #OptParamArray('RulesIndex', np.arange(26)[10:15]), ### %B rules 15:26 OptParamArray('RulesIndex', np.arange(26)[18:22]), ### All rules
from strategies.strategy_pnf import StrategyPointAndFigurePatterns STRATEGY_NAME = StrategyPointAndFigurePatterns.name STRATEGY_SUFFIX = 'smallbox-bearish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategyPointAndFigurePatterns, 'exo_name': 'CL_CallSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ # OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [1]), OptParam('BoxSize', 1, 30, 50, 10), OptParam('Reversal', 2, 15, 20, 1), OptParamArray('MaxMinWindowPercent', [0.05]), OptParam('ColumnConsecMoveCount', 2, 1, 1, 1), OptParamArray('RulesIndex', np.arange(9)), OptParam('MedianPeriod', 5, 30, 50, 10), ], }, 'swarm': { 'members_count': 2, 'ranking_class': RankerBestWithCorrel(window_size=-1, correl_threshold=0.5), 'rebalance_time_function': SwarmRebalance.every_friday, }, 'costs': { 'manager': CostsManagerEXOFixed,
from strategies.strategy_swingpoint import StrategySwingPoint STRATEGY_NAME = StrategySwingPoint.name STRATEGY_SUFFIX = 'bullish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategySwingPoint, 'exo_name': 'ZN_CallSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ #OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [1]), OptParam('sphTreshold', 2, 2, 2, 2), OptParam('splTreshold', 2, 2, 14, 2), #bearish_breakout, bearish_failure, bullish_breakout, bullish_failure OptParamArray('RulesIndex', [1]), OptParam('MedianPeriod', 5, 50, 50, 25) ], }, 'swarm': { 'members_count': 2, 'ranking_class': RankerBestWithCorrel(window_size=-1, correl_threshold=0.5), 'rebalance_time_function': SwarmRebalance.every_friday, }, 'costs': { 'manager': CostsManagerEXOFixed, 'context': {
from strategies.strategy_macross_with_trail import StrategyMACrossTrail STRATEGY_NAME = StrategyMACrossTrail.name STRATEGY_SUFFIX = 'bearish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategyMACrossTrail, 'exo_name': 'ZC_CallSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ #OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [-1]), OptParam('SlowMAPeriod', 20, 10, 70, 5), OptParam('FastMAPeriod', 2, 2, 20, 2), OptParam('MedianPeriod', 5, 50, 50, 10) ], }, 'swarm': { 'members_count': 2, 'ranking_class': RankerBestWithCorrel(window_size=-1, correl_threshold=0.5), 'rebalance_time_function': SwarmRebalance.every_friday, }, 'costs': { 'manager': CostsManagerEXOFixed, 'context': { 'costs_options': 3.0, 'costs_futures': 3.0,
from strategies.strategy_swingpoint import StrategySwingPoint import logging logger = logging.getLogger() STRATEGY_CONTEXT = { 'strategy': { 'class': StrategySwingPoint, 'exo_name': './data/strategy_2010348.mat', 'direction': -1, 'opt_params': [ # OptParam(name, default_value, min_value, max_value, step) OptParam('sphTreshold', 2, 10, 14, 2), OptParam('splTreshold', 2, 10, 14, 2), OptParam('RulesIndex', 0, 0, 1, 1), OptParam('MedianPeriod', 5, 5, 20, 3) ], }, 'swarm': { 'members_count': 5, 'ranking_function': SwarmRanker.highestreturns_14days, 'rebalance_time_function': SwarmRebalance.every_monday, 'global_filter_function': SwarmFilter.swingpoint_threshold, 'global_filter_params': { 'up_factor': 3.0, 'down_factor': 10.0, 'period': 1, }
from backtester.swarms.rankingclasses import * from backtester.swarms.rebalancing import SwarmRebalance from strategies.strategy_ichimokucloud import StrategyIchimokuCloud STRATEGY_NAME = StrategyIchimokuCloud.name STRATEGY_SUFFIX = 'bearish-' STRATEGY_CONTEXT = { 'strategy': { 'class': StrategyIchimokuCloud, 'exo_name': 'CL_PutSpread', # <---- Select and paste EXO name from cell above 'opt_params': [ #OptParam(name, default_value, min_value, max_value, step) OptParamArray('Direction', [-1]), OptParam('conversion_line_period', 9, 1, 90, 5), OptParam('base_line_period', 26, 13, 53, 13), OptParam('leading_spans_lookahead_period', 26, 26, 26, 13), OptParam('leading_span_b_period', 52, 10, 10, 10), OptParamArray('RulesIndex', np.arange(14)), OptParam('MedianPeriod', 5, 20, 30, 10) ], }, 'swarm': { 'members_count': 2, 'ranking_class': RankerBestWithCorrel(window_size=-1, correl_threshold=0.8), 'rebalance_time_function': SwarmRebalance.every_friday, }, 'costs': { 'manager': CostsManagerEXOFixed, 'context': {