QuantRocket 2.11.0 Release Notes

QuantRocket 2.11.0 is now available. This release includes fee modeling for Zipline, improved CLI autocomplete, CFD support, an improved progress meter for backtests, full support for running on Apple Silicon, new Pyfolio plots, and other enhancements. See how to update.

Highlights

  • Fee modeling in Zipline: model margin interest, borrow fees, and management and performance fees in Zipline strategies. See the Usage Guide.

  • Improved CLI autocomplete: the JupyterLab Terminal now offers type-ahead autocomplete suggestions for QuantRocket's command line interface. See the QuickStart for a demonstration.

JupyterLab CLI autocomplete

  • New asset class: trade CFDs with Interactive Brokers. See the usage guide.

  • Progress meter for Moonshot and Zipline: view a simple performance plot while your Moonshot or Zipline backtest is still running. This replaces Zipline's previous text-only progress logging. (Moonshot didn't previously offer progress logging.)

Progress meter

API Changes

alphalens:2.11.0

  • The alphalens.from_pipeline function now supports a new parameter, enter_on_open, which can be used to calculate forward returns using open prices instead of close prices. See the usage guide.

pyfolio:2.11.0

  • Commissions plot: a new plot shows cumulative PNL vs commissions for Zipline strategies that include commissions. See an example in the Usage Guide.

  • Fees plot: a new plot shows cumulative PNL vs fees for Zipline strategies that include fees (margin interest, borrow fees, or management and performance fees). See an example in the Usage Guide.

quantrocket/blotter:2.11.0

  • support for trading CFDs. See the usage guide.

  • the blotter will now ignore any order field that starts with an underscore. This allows you to include fields in your orders that are not valid blotter fields but may be useful for other purposes, such as including a "_Symbol" field to assist with manual review of order files. See the usage guide.

quantrocket/history:2.11.0

  • throttle head timestamp requests in IBKR historical data collection to avoid pacing violation errors. See related forum post.

quantrocket/ibg:2.11.0

  • support for running the ibg container natively on Apple Silicon. Previously, the ibg container ran under emulation on Apple Silicon, which caused performance and reliability issues. With this enhancement, QuantRocket is now fully supported on Apple Silicon.

  • update to IB Gateway version 10.33.1.

quantrocket/jupyter:2.11.0

  • improved CLI autocomplete. The JupyterLab Terminal now offers type-ahead autocomplete suggestions for QuantRocket's command line interface. See the QuickStart for a demonstration. (As part of this enhancement, the shell used by the JupyterLab Terminal has changed from bash to zsh.)

  • colorized CLI documentation. To improve readability, color has been added to code examples and usage guide links when viewing CLI documentation using the -h/--help option.

quantrocket/master:2.11.0

  • support for collecting CFD listings from Interactive Brokers. See the usage guide.

  • fix an issue that occurred when collecting option chains from IBKR for an underlying with multiple trading classes with the same multiplier. See related forum post.

quantrocket/moonshot:2.11.0

  • support for trading CFDs. See the usage guide.

  • use the new --progress/progress=True parameter when running a segmented backtest to see a text-based plot of cumulative returns while the backtest is running. See the usage guide.

quantrocket/zipline:2.11.0

  • fee modeling: model margin interest, borrow fees, and management and performance fees in Zipline strategies. See the Usage Guide.

  • support for trading CFDs. See the usage guide.

  • an improved progress meter now shows a text-based plot of cumulative returns while the backtest is running. See the usage guide.

  • a new zipline.api function, zipline.api.capital_change, lets you simulate a deposit to or withdrawal from the algorithm's cash. See the API Reference.

  • add months parameter to month_start() and month_end() date rules to allow scheduled functions to only run in specific months. See the API Reference.

  • new fields added to context.portfolio object: gross_exposure, gross_value, net_exposure, net_value, long_exposure, long_value, short_exposure, short_value, longs_count, and shorts_count. See the API Reference.

  • fix NoDataForSid error in backtests under rare conditions. See related forum post.