def run_backtest_instance(args_namespace, events_log_file, heartbeat, sl, tp, short_window, long_window, equity_filename, trained_model_file): trades_filename = 'trades.csv' strategy_params = dict(stop_loss_pips=sl, take_profit_pips=tp, trained_model_file=trained_model_file, sma_short_period=short_window, sma_long_period=long_window) configuration = Configuration( data_handler_name=HistoricCSVDataHandler, execution_handler_name=SimulatedExecutionHandler) configuration.set_option(Configuration.OPTION_CSV_DIR, args_namespace.data_directory) backtest = Backtest(args_namespace.output_directory, args_namespace.symbols, args_namespace.initial_capital_usd, heartbeat, args_namespace.start_date, configuration, DataHandlerFactory(), ExecutionHandlerFactory(), Portfolio, EurUsdDailyForecastStrategy, FixedPositionSize(0.5), TextLogger(events_log_file), [Backtest.LOG_TYPE_EVENTS], strategy_params, equity_filename, trades_filename) backtest.run() return backtest.stats
def main(): strategy = get_strategy() args_namespace = strategy.create_argument_parser(False).parse_args() events_log_file = '{}/events.log'.format(args_namespace.output_directory) strategy_params = strategy.get_strategy_params(args_namespace) strategy_params['send_notifications'] = True strategy_params['webhook'] = os.environ.get('WEBHOOK_PINBAR_NOTIFIER') configuration = Configuration(data_handler_name=OandaDataHandler, execution_handler_name=OandaExecutionHandler) configuration.set_option( Configuration.OPTION_NUMBER_OF_BARS_PRELOAD_FROM_HISTORY, '0') configuration.set_option(Configuration.OPTION_ACCOUNT_ID, os.environ.get('OANDA_API_ACCOUNT_ID')) configuration.set_option(Configuration.OPTION_ACCESS_TOKEN, os.environ.get('OANDA_API_ACCESS_TOKEN')) configuration.set_option(Configuration.OPTION_TIMEFRAME, args_namespace.time_frame) trading = Trading(args_namespace.output_directory, list(args_namespace.symbols), 0, configuration, DataHandlerFactory(), ExecutionHandlerFactory(), Portfolio, strategy, FixedPositionSize(0.01), TextLogger(events_log_file), [Trading.LOG_TYPE_EVENTS], strategy_params, 'equity.csv', 'trades.csv') trading.run() trading.print_performance()
def main(): strategy = get_strategy() args_namespace = strategy.create_argument_parser(False).parse_args() strategy_params_special = strategy.get_strategy_params(args_namespace) events_log_file = '{}/events.log'.format(args_namespace.output_directory) strategy_params = dict(stop_loss_pips=args_namespace.stop_loss, take_profit_pips=args_namespace.take_profit) strategy_params.update(strategy_params_special) configuration = Configuration(data_handler_name=OandaDataHandler, execution_handler_name=OandaExecutionHandler) configuration.set_option(Configuration.OPTION_ACCOUNT_ID, os.environ.get('OANDA_API_ACCOUNT_ID')) configuration.set_option(Configuration.OPTION_ACCESS_TOKEN, os.environ.get('OANDA_API_ACCESS_TOKEN')) configuration.set_option(Configuration.OPTION_TIMEFRAME, args_namespace.time_frame) configuration.set_option( Configuration.OPTION_NUMBER_OF_BARS_PRELOAD_FROM_HISTORY, max(strategy_params['sma_short_period'], strategy_params['sma_long_period'])) trading = Trading(args_namespace.output_directory, list(args_namespace.symbols), 0, configuration, DataHandlerFactory(), ExecutionHandlerFactory(), Portfolio, strategy, FixedPositionSize(0.01), TextLogger(events_log_file), [Trading.LOG_TYPE_EVENTS], strategy_params, 'equity.csv', 'trades.csv') trading.run() trading.print_performance()
def main(): strategy = get_strategy() args_namespace = strategy.create_argument_parser().parse_args() strategy_params_special = strategy.get_strategy_params(args_namespace) heartbeat = 0 events_log_file = '{}/events.log'.format(args_namespace.output_directory) strategy_params = dict(stop_loss_pips=args_namespace.stop_loss, take_profit_pips=args_namespace.take_profit) strategy_params.update(strategy_params_special) configuration = Configuration(data_handler_name=OandaDataHandler, execution_handler_name=OandaExecutionHandler) configuration.set_option(Configuration.OPTION_ACCOUNT_ID, os.environ.get('OANDA_API_ACCOUNT_ID')) configuration.set_option(Configuration.OPTION_ACCESS_TOKEN, os.environ.get('OANDA_API_ACCESS_TOKEN')) configuration.set_option(Configuration.OPTION_TIMEFRAME, TimeFrame.TIME_FRAME_S5) trading = Trading(args_namespace.output_directory, args_namespace.symbols, heartbeat, configuration, DataHandlerFactory(), ExecutionHandlerFactory(), Portfolio, get_strategy(), FixedPositionSize(0.01), TextLogger(events_log_file), [Trading.LOG_TYPE_EVENTS], strategy_params, 'equity.csv', 'trades.csv') trading.run() trading.print_performance()
def main(): strategy = get_strategy() args_namespace = strategy.create_argument_parser(True).parse_args() events_log_file = '{}/events.log'.format(args_namespace.output_directory) strategy_params = strategy.get_strategy_params(args_namespace) strategy_params['send_notifications'] = False strategy_params['webhook'] = '' configuration = Configuration( data_handler_name=HistoricCSVDataHandler, execution_handler_name=SimulatedExecutionHandler) configuration.set_option(Configuration.OPTION_CSV_DIR, args_namespace.data_directory) simulation = Backtest( args_namespace.output_directory, args_namespace.symbols, args_namespace.initial_capital_usd, 0, args_namespace.start_date, configuration, DataHandlerFactory(), ExecutionHandlerFactory(), Portfolio, strategy, FixedPositionSize(0.5), TextLogger(events_log_file), [Backtest.LOG_TYPE_EVENTS], strategy_params, 'equity.csv', 'trades.csv', ) simulation.run() simulation.print_performance()
def main(): strategy = get_strategy() args_namespace = strategy.create_argument_parser(True).parse_args() strategy_params_special = strategy.get_strategy_params(args_namespace) events_log_file = '{}/events.log'.format(args_namespace.output_directory) strategy_params = dict(stop_loss_pips=args_namespace.stop_loss, take_profit_pips=args_namespace.take_profit) strategy_params.update(strategy_params_special) configuration = Configuration( data_handler_name=HistoricCSVDataHandler, execution_handler_name=SimulatedExecutionHandler) configuration.set_option(Configuration.OPTION_CSV_DIR, args_namespace.data_directory) backtest = Backtest( args_namespace.output_directory, args_namespace.symbols, args_namespace.initial_capital_usd, 0, args_namespace.start_date, configuration, DataHandlerFactory(), ExecutionHandlerFactory(), Portfolio, strategy, FixedPositionSize(0.5), TextLogger(events_log_file), [Backtest.LOG_TYPE_EVENTS], strategy_params, 'equity.csv', 'trades.csv', ) backtest.run() backtest.print_performance()