QuantRocket 2.7.0 Release Notes

QuantRocket 2.7.0 is now available. This release provides compatibility with Docker Compose v2 and includes other enhancements, improvements, and bug fixes. See how to update .

Highlights

  • compatibility with Docker Compose v2, which ships with recent versions of Docker Desktop, and which uses hyphens instead of underscores in container names (e.g. quantrocket-ibg1-1). Docker Compose v2 caused problems running the ibg service in earlier versions of QuantRocket. Both Docker Compose v1 and v2 are supported with this release.
  • The blotter now automatically incorporate dividends into PNL calculations for US stocks. See the usage guide.
  • The blotter provides a new API for applying splits to open positions. See the usage guide.
  • Moonshot parameter scan results are now logged to flightlog, to provide feedback sooner during long-running parameter scans. See the usage guide for example output.

API Changes

  • The endpoint for collecting Reuters estimates from the IBKR API (quantrocket.fundamental.collect_reuters_estimates/quantrocket fundamental collect-reuters-estimates) has been removed. The IBKR API stopped returning new estimates data in 2020 and stopped returning any estimates data earlier in 2021. The endpoints for querying estimates from your local database (quantrocket.fundamental.download_reuters_estimates/quantrocket fundamental reuters-estimates and quantrocket.fundamental.get_reuters_estimates_reindexed_like) have been retained so that users who previously collected Reuters estimates can continue querying the data.
  • When inserting intraday data into a custom database, the quantrocket.db functions insert_or_fail, insert_or_ignore, and insert_or_replace will now cast datetime columns to ISO 8601 format using the 'T' separator (YYYY-MM-DDTHH:MM:SS). Prior to this change, underlying pandas behavior caused a space separator to be used (YYYY-MM-DD HH:MM:SS). This caused some edge cases when querying a custom intraday database using start_date/end_date parameters, as the history service expects a 'T' separator to be used. Users with existing custom intraday databases are advised to convert the existing data to use the 'T' separator, so that all data is stored consistently. The following one-time query should be run (setting DB_CODE to the appropriate database code):
$ DB_CODE=custom-intraday
$ sqlite3 /var/lib/quantrocket/quantrocket.v2.history.$DB_CODE.sqlite 'UPDATE Price SET Date = REPLACE(Date, " ", "T")'

Docker

  • compatibility with Docker Compose v2, which ships with recent versions of Docker Desktop, and which uses hyphens instead of underscores in container names (e.g. quantrocket-ibg1-1). Docker Compose v2 caused problems running the ibg service and caused problems with logging in earlier versions of QuantRocket. Both Docker Compose v1 and v2 are supported with this release. Docker Desktop users can enable Docker Compose v2 from the Docker preferences menu or by running the following command: docker-compose enable-v2. (You will only see hyphen separators in container names if you then run docker-compose down before running docker-compose up -d.)

quantrocket/blotter:2.7.0

  • automatically incorporate dividends into PNL calculations for US stocks. See the usage guide.
  • provide a new API for applying splits to open positions. See the usage guide.

quantrocket/db:2.7.0

  • handle an issue where pushing databases to a S3 bucket located in a region other than us-east-1 sporadically failed
  • cast datetime columns to ISO format with "T" separator before inserting into database in quantrocket.db functions insert_or_fail, insert_or_ignore, and insert_or_replace. See note above under API changes.

quantrocket/moonshot:2.7.0

  • log results to flightlog during parameter scans, to provide feedback sooner during long-running parameter scans. See the usage guide for example output.

moonchart:2.7.0

  • print a table of results at end of parameter scan tear sheet
  • add optional start_date and end_date parameters to Tearsheet.from_moonshot_csv and Tearsheet.from_pnl_csv. See the API Reference.

quantrocket/postgres:2.7.0

  • update to TimescaleDB 2.5.1

trading_calendars:2.7.0

  • add Juneteenth holiday to XNYS calendar beginning in 2022

quantrocket/zipline:2.7.0

  • fix an issue with minute bar ingestion from a history database when the data crosses over daylight savings time. See related forum post.
  • fix an error where data.can_trade failed for assets listed on exchanges that don't have trading calendars. See related forum post.
  • fix an occasional FileNotFoundError in US stock ingestion. See related forum post.
  • treat IBKR "Inactive" order status as equivalent to "Cancelled". See related forum post.