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
Ejemplo n.º 2
0
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,
Ejemplo n.º 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,
Ejemplo n.º 6
0
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': {
Ejemplo n.º 7
0
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
Ejemplo n.º 9
0
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,
        }
Ejemplo n.º 13
0
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': {