13.08.2022 Views

advanced-algorithmic-trading

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

398

from qstrader.trading_session.backtest import Backtest

from coint_bollinger_strategy import CointegrationBollingerBandsStrategy

def run(config, testing, tickers, filename):

# Set up variables needed for backtest

events_queue = queue.Queue()

csv_dir = config.CSV_DATA_DIR

initial_equity = PriceParser.parse(500000.00)

# Use Yahoo Daily Price Handler

start_date = datetime.datetime(2015, 1, 1)

end_date = datetime.datetime(2016, 9, 1)

price_handler = YahooDailyCsvBarPriceHandler(

csv_dir, events_queue, tickers,

start_date=start_date, end_date=end_date

)

# Use the Cointegration Bollinger Bands trading strategy

weights = np.array([1.0, -1.213])

lookback = 15

entry_z = 1.5

exit_z = 0.5

base_quantity = 10000

strategy = CointegrationBollingerBandsStrategy(

tickers, events_queue,

lookback, weights,

entry_z, exit_z, base_quantity

)

strategy = Strategies(strategy, DisplayStrategy())

# Use the Naive Position Sizer

# where suggested quantities are followed

position_sizer = NaivePositionSizer()

# Use an example Risk Manager

risk_manager = ExampleRiskManager()

# Use the default Portfolio Handler

portfolio_handler = PortfolioHandler(

initial_equity, events_queue, price_handler,

position_sizer, risk_manager

)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!