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
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
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' br.signal_vol_resample_freq = None tech_params = TechParams(); tech_params.sma_period = 200; indicator = 'SMA' # pick USD crosses in G10 FX # note: we are calculating returns from spot (it is much better to use to total return # indices for FX, which include carry)
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' tech_params = TechParams(); tech_params.sma_period = 200; indicator = 'SMA' # pick USD crosses in G10 FX # note: we are calculating returns from spot (it is much better to use to total return # indices for FX, which include carry) logger.info("Loading asset data...")