Exemplo n.º 1
0
    def fill_backtest_request(self):

        ##### FILL IN WITH YOUR OWN BACKTESTING PARAMETERS
        br = BacktestRequest()

        # get all asset data
        br.start_date = "04 Jan 1989"
        br.finish_date = datetime.datetime.utcnow()
        br.spot_tc_bp = 0.5
        br.ann_factor = 252

        br.plot_start = "01 Apr 2015"
        br.calc_stats = True
        br.write_csv = False
        br.plot_interim = True
        br.include_benchmark = True

        # have vol target for each signal
        br.signal_vol_adjust = True
        br.signal_vol_target = 0.1
        br.signal_vol_max_leverage = 5
        br.signal_vol_periods = 20
        br.signal_vol_obs_in_year = 252
        br.signal_vol_rebalance_freq = 'BM'
        br.signal_vol_resample_freq = None

        # have vol target for portfolio
        br.portfolio_vol_adjust = True
        br.portfolio_vol_target = 0.1
        br.portfolio_vol_max_leverage = 5
        br.portfolio_vol_periods = 20
        br.portfolio_vol_obs_in_year = 252
        br.portfolio_vol_rebalance_freq = 'BM'
        br.portfolio_vol_resample_freq = None

        # tech params
        br.tech_params.sma_period = 200

        return br
Exemplo n.º 2
0
    from pythalesians.util.loggermanager import LoggerManager

    # for signal generation
    from pythalesians.timeseries.techind.techindicator import TechIndicator
    from pythalesians.timeseries.techind.techparams import TechParams

    # for plotting
    from pythalesians.graphics.graphs.graphproperties import GraphProperties
    from pythalesians.graphics.graphs.plotfactory import PlotFactory

    logger = LoggerManager().getLogger(__name__)

    import datetime

    cash_backtest = CashBacktest()
    br = BacktestRequest()
    fxconv = FXConv()

    # get all asset data
    br.start_date = "02 Jan 1990"
    br.finish_date = datetime.datetime.utcnow()
    br.spot_tc_bp = 2.5                             # 2.5 bps bid/ask spread
    br.ann_factor = 252

    # have vol target for each signal
    br.signal_vol_adjust = True
    br.signal_vol_target = 0.05
    br.signal_vol_max_leverage = 3
    br.signal_vol_periods = 60
    br.signal_vol_obs_in_year = 252
    br.signal_vol_rebalance_freq = 'BM'
    from pythalesians.util.loggermanager import LoggerManager

    # for signal generation
    from pythalesians.timeseries.techind.techindicator import TechIndicator
    from pythalesians.timeseries.techind.techparams import TechParams

    # for plotting
    from pythalesians_graphics.graphs.graphproperties import GraphProperties
    from pythalesians_graphics.graphs import PlotFactory

    logger = LoggerManager().getLogger(__name__)

    import datetime

    cash_backtest = CashBacktest()
    br = BacktestRequest()
    fxconv = FXConv()

    # get all asset data
    br.start_date = "02 Jan 1990"
    br.finish_date = datetime.datetime.utcnow()
    br.spot_tc_bp = 2.5                             # 2.5 bps bid/ask spread
    br.ann_factor = 252

    # have vol target for each signal
    br.signal_vol_adjust = True
    br.signal_vol_target = 0.05
    br.signal_vol_max_leverage = 3
    br.signal_vol_periods = 60
    br.signal_vol_obs_in_year = 252
    br.signal_vol_rebalance_freq = 'BM'
def fill_backtest_request(self):

    ##### FILL IN WITH YOUR OWN BACKTESTING PARAMETERS
    br = BacktestRequest()

    # get all asset data
    br.start_date = "04 Jan 1989"  # start date of backtest
    br.finish_date = datetime.datetime.utcnow()  # end date of backtest
    br.spot_tc_bp = 0.5  # bid/ask spread in basis point
    br.ann_factor = 252  # number of points in year (working)

    br.plot_start = "01 Apr 2015"  # when to start plotting
    br.calc_stats = True  # add stats to legends of plots
    br.write_csv = False  # write CSV output
    br.plot_interim = True  # plot at various stages of process
    br.include_benchmark = True  # plot trading returns versus benchmark

    # have vol target for each signal
    br.signal_vol_adjust = True  # vol adjust weighting for asset vol
    br.signal_vol_target = 0.1  # 10% vol target for each asset
    br.signal_vol_max_leverage = 5  # maximum leverage of 5
    br.signal_vol_periods = 20  # calculate realised vol over 20 periods
    br.signal_vol_obs_in_year = 252  # number of periods in year
    br.signal_vol_rebalance_freq = 'BM'  # reweight at end of month
    br.signal_vol_resample_freq = None

    # have vol target for portfolio
    br.portfolio_vol_adjust = True  # vol adjust for portfolio
    br.portfolio_vol_target = 0.1  # portfolio vol target is 10%
    br.portfolio_vol_max_leverage = 5  # max leverage of 5
    br.portfolio_vol_periods = 20  # calculate realised vol over 20 periods
    br.portfolio_vol_obs_in_year = 252  # number of periods in year
    br.portfolio_vol_rebalance_freq = 'BM'  # reweight at end of month
    br.portfolio_vol_resample_freq = None

    # tech params
    br.tech_params.sma_period = 200  # use 200D SMA later

    return br