Software Update

How to update

To update to the latest version of QuantRocket, download the latest Docker Compose file.

For local deployments:

$ cd /path/to/quantrocket/folder
$ curl 'https://www.quantrocket.com/composefiles/latest/local/docker-compose.yml' -o docker-compose.yml

For cloud deployments:

$ cd /path/to/quantrocket/folder
$ curl 'https://www.quantrocket.com/composefiles/latest/cloud/docker-compose.yml' -o docker-compose.yml

(You can also download the Compose file from the downloads page.)

Then deploy the changes using Docker Compose:

$ docker-compose -p quantrocket up -d

You can reclaim disk space by removing old images that are no longer needed:

$ docker image prune --all

Versioning scheme

The format of QuantRocket version numbers is MAJOR.MINOR.PATCH (for example 1.3.1). As new features are added, typically the minor version is incremented, with the major version occasionally being incremented for large redesigns or backwards-incompatible changes. Patch versions are incremented for bug fixes and small updates in between successive minor version releases.

The QuantRocket version number is indicated in the Compose file, for example: x-quantrocket-version: '1.4.1'.

Due to QuantRocket's microservice architecture, each service/container has its own version number, for example: quantrocket/master:1.4.0. These version numbers will share the same major and minor version as the Compose file's x-quantrocket-version, but the patch versions can differ.

Some services/containers have version numbers with more than three numeric components to reflect the version number of an important piece of underlying software. For example, quantrocket/ibg version numbers have the format 1.3.973.0, where 973 reflects the version of IB Gateway embedded in the container.


Release Notes

Release 1.9.0

2019-09-25

Highlights

  • Intelligent Code Editor. This release includes a new browser-based code editor based on Eclipse Theia. While JupyterLab is a great tool for data science, it sorely lacks an intelligent code editor. Now you can switch over to Theia for code editing and benefit from code completion, error checking, refactoring tools, and more. Access Theia via menu buttons from JupyterLab. The QuickStart accessible from the JupyterLab Launcher includes an introduction to Theia.
  • JupyterLab update. This release includes the latest version of JupyterLab, plus new, easy-to-access QuantRocket-related menu items for common tasks such as accessing Theia, streaming logs in terminals, and creating Moonshot strategy files.
  • Execute Python functions via the satellite service. Use the satellite service to execute Python functions using dot notation and pass arguments to them via the command line. (Previously it was only possible to execute shell commands.) See the usage guide.
  • A new function, quantrocket.master.get_contract_nums_reindexed_like, takes a DataFrame of futures prices and returns a DataFrame of integers representing each contract's sequence in the futures chain as of each date. See the usage guide.

Complete 1.9.0 release notes

quantrocket-client:1.9.0

  • New function: quantrocket.master.get_contract_nums_reindexed_like. From a DataFrame of futures prices, returns a DataFrame of integers representing each contract's sequence in the futures chain as of each date, where 1 is the front contract, 2 is the second nearest contract, etc. See the usage guide.

quantrocket/history:1.9.0

  • Add new options to shard intraday databases by month or by day. See the usage guide.

quantrocket/jupyter:1.9.0

  • Update to JupyterLab 1.1.3
  • Add menu and launcher buttons for the following:
    • open QuickStart tutorial
    • open Theia Code Editor
    • open IB Gateway GUI
    • stream logs via Terminal
    • create a new Moonshot or MoonshotML strategy file

quantrocket/master:1.9.0

  • Add new option --exclude-expired/exclude_expired to quantrocket master get/download_master_file to exclude expired futures or options contracts.

quantrocket/satellite:1.9.0

  • Execute Python functions via the satellite service. Use the satellite service to execute Python functions using dot notation and pass arguments to them via the command line. (Previously it was only possible to execute shell commands.) See the usage guide.

quantrocket/theia:1.9.0

  • New service which provides Eclipse Theia, a browser-based code editor offering code completion, error checking, refactoring tools, and more. The QuickStart accessible from the JupyterLab Launcher includes an introduction to Theia.

Release 1.8.0

2019-08-13

Highlights

  • Implementation shortfall analysis. Compare Moonshot backtest results with live PNL to see how well live trading tracks your backtest. See the usage guide.
  • Trade combos (aka spreads), including native futures spreads such as calendar spreads or intercommodity spreads, option combos such as straddles or strangles, and stock combos. Define combo legs, collect real-time data for the combo, and submit combo orders through the blotter. See the usage guide.
  • The realtime data service now supports creating multiple aggregate databases from a single tick database. Previously, each tick database could have only a single aggregate database associated with it.

API changes

  • The function quantrocket.moonshot.intraday_to_daily has been moved to moonchart.utils.intraday_to_daily. The rationale for this move is that the function now supports both Moonshot and PNL CSVs and is oriented toward prepping these CSVs for Moonchart.
  • PNL CSVs downloaded from the blotter are now returned with intraday granularity (with a Time column) instead of daily granularity. In connection with this change, the time parameter, which controlled the snapshot time for daily PNL results, has been removed from quantrocket blotter pnl/quantrocket.blotter.download_pnl. Daily granularity can be obtained using the moonchart.utils.intraday_to_daily function.

Complete 1.8.0 release notes

quantrocket/blotter:1.8.0

  • Combo orders are now supported. See the usage guide.
  • PNL CSVs are now returned with intraday granularity (with a Time column) instead of daily granularity. Daily granularity can be obtained using the moonchart.utils.intraday_to_daily function.
  • The time parameter, which controlled the snapshot time for daily PNL results, has been removed from quantrocket blotter pnl/quantrocket.blotter.download_pnl.
  • Column names in detailed PNL CSVs now include the symbol and conid, instead of the conid only.
  • New fields added to PNL CSVs: TotalHoldings and Turnover

quantrocket-client:1.8.3

  • New function: quantrocket.blotter.read_pnl_csv. This utility function loads a PNL CSV into a DataFrame, similar to quantrocket.moonshot.read_moonshot_csv.
  • The function quantrocket.moonshot.intraday_to_daily has been moved to moonchart.utils.intraday_to_daily. The old function is still available as an alias but will print a deprecation warning.
  • The function get_reuters_estimates_reindexed_like is now indexed to the AnnounceDate field. Previously it was indexed to the UpdatedDate field. These fields often have the same date but not always.

quantrocket/license-service:1.8.0

  • Change license server backend to AWS Lambda after previous backend (Webtask) was deprecated. (The license service queries the license server backend to obtain the user's subscriptions and permissions.)

quantrocket/master:1.8.0

  • Define combos in the securities master database. See the usage guide.

quantrocket-moonchart:1.8.0

  • Implementation shortfall tear sheets. See the usage guide.
  • Added function moonchart.utils.intraday_to_daily. See the API Reference.

quantrocket-moonshot:1.8.0

  • Add a --no-cache/no_cache option which can be used to avoid using cached files on backtests, parameter scans, and ML walk-foward optimizations. This can be useful if the underlying data has changed. See the usage guide.

quantrocket/postgres:1.8.0

  • Update to TimescaleDB version 1.4.1. (This update makes it possible for the realtime service to support multiple aggregate databases per tick database.)

quantrocket/realtime:1.8.0

  • Collect real-time data for combos. See the usage guide.
  • Multiple aggregate databases can now be created from a single tick database. Previously, each tick database could have only a single aggregate database associated with it.

Release 1.7.1

2019-06-27

This is a patch release with the following bug fix:

quantrocket/history:1.7.1

  • fix an issue with historical data collection where earlier price data may be lost if split or dividend adjustments are detected for a security and data collection is interrupted before the security's entire history can be re-collected. See community post.

Release 1.7.0

2019-06-21

Highlights

  • Real-time data from Interactive Brokers. See the usage guide.
    • stream or snapshot: collect a continuous stream of market data or a single snapshot of data
    • tick or aggregate: collect tick data and optionally aggregate it into bar data of any size
    • pull or push: pull tick or aggregate data into your code by querying, or push the stream of tick data to your code over WebSockets
    • live market recording: store the data in a database for later replay

API changes

  • The function get_historical_prices is deprecated in favor of a new function get_prices which can be used to query history databases (like before), real-time aggregate databases, or a mix of both. The new function can be imported as from quantrocket import get_prices. The function signature is identical to the previous function signature of get_historical_prices. The function get_historical_prices is still available and is simply an alias for get_prices.
  • Mirroring the previous change, the method Moonshot.get_historical_prices is renamed Moonshot.get_prices. Normally this method is not directly used but might be used in interactive strategy development.
  • The output of quantrocket db list/quantrocket.db.list_databases has changed to accomodate the introduction of PostgreSQL databases for the realtime service. Previously, the output was a flat list of SQLite databases. Now, the output is a dict with two keys, 'postgres' and 'sqlite', each of which contains a list of databases of that type.
  • All db service commands/functions that previously supported a service parameter (singular) now support a services parameter (plural), allowing you to specify multiple services. The service parameter is deprecated and will print a deprecation warning. This change affects quantrocket db list/quantrocket.db.list_databases, quantrocket db s3push/quantrocket.db.s3_push_databases, quantrocket db s3pull/quantrocket.db.s3_pull_databases, and quantrocket db optimize/quantrocket.db.optimize_databases.
  • The command/function quantrocket db get/quantrocket.db.download_database is deprecated and will print a deprecation warning. Please use docker cp if you need to download a database as described in the usage guide.

Terms of Service

  • added section 1.d, "Timescale License Agreement," to the Terms of Service. QuantRocket utilizes TimescaleDB, a time-series database packaged as a PostgreSQL server extension, for real-time data storage and querying. Use of TimescaleDB is governed by the Timescale License Agreement as described in the referenced section of the Terms of Service.

Documentation

Complete 1.7.0 release notes

quantrocket-client:1.7.2

  • The new function get_prices replaces the now deprecated function get_historical_prices. get_prices supports querying history databases (like before), real-time aggregate databases, or a mix of both. The function signature is identical to the previous function signature of get_historical_prices. The function get_historical_prices is still available and is simply an alias for get_prices. Import the new function as follows:
>>> from quantrocket import get_prices
  • fix a bug that made get_historical_prices (now get_prices) not work when using the client library directly from Windows. See community post.

quantrocket/db:1.7.0

  • Add support for PostgreSQL databases (which are used by the realtime service) to all db service endpoints, including the endpoints for listing databases, backup and restoring of databases to Amazon S3, and optimizing (vacuuming) databases.
  • See also the API changes outlined above related to the introduction of PostgreSQL databases.

quantrocket/fundamental:1.7.0

  • Reliability improvements for IB fundamental data collection

quantrocket/history:1.7.0

  • Include fields in output of quantrocket history config/quantrocket.history.get_db_config.
  • Add new command/function to list history database codes: quantrocket history list/quantrocket.history.list_databases. See the usage guide.
  • fix a problem where QuantRocket wouldn't collect historical data for futures that previously had no data available but now have data available. See community post.

quantrocket/moonshot:1.7.0

  • The method Moonshot.get_historical_prices is renamed Moonshot.get_prices. Normally this method is not directly used but might be used in interactive strategy development. The previous name is still available as an alias and will print a deprecation warning.

quantrocket/postgres:1.7.0

  • New service/container running PostgreSQL + TimescaleDB, for storing real-time data

quantrocket/realtime:1.7.0

  • New service/container for collecting and managing real-time data. See the usage guide.

quantrocket/zipline:1.7.0

  • Removes IEX as the data source for benchmark returns. The IEX API used by Zipline has been decommissioned, which causes backtests to fail. See GitHub issue. As a workaround, this release includes a patch which overrides the IEX API call with dummy benchmark data with returns of 0. If you want meaningful benchmark data, please set your own benchmark symbol using: set_benchmark(symbol("SOME_SYMBOL_IN_YOUR_DATA")).

Release 1.6.1

2019-04-20

This is a patch release with the following enhancement:

quantrocket/master:1.6.1

  • automatically detect IB website base url when collecting exchanges and listings from IB website. IB now redirects non-North American customers from www.interactivebrokers.com/* to the home page of the appropriate subsidiary website (e.g. www.interactivebrokers.co.uk). This caused QuantRocket not to be able to find the exchange and product listings on the IB website for non-North American customers. QuantRocket will now detect the redirect and issue all website queries to the appropriate subsidiary website. This replaces the IB_WEB env var introduced in version 1.6.0, which provided a manual workaround.

Release 1.6.0

2019-04-12

Highlights

  • Support for machine learning strategies using walk-forward optimization. See the usage guide.
  • Forward-looking earnings announcements dates from Wall Street Horizon, via IB. See the usage guide.

API changes

This release introduces a breaking API change for Moonshot strategies that rely on the MASTER_FIELDS parameter to access securities master data in the body of their strategy. However, reverting to the old behavior is simple. See below for more details.
  • The master_fields parameter for get_historical_prices is deprecated. Instead, if you need securities master fields aligned to prices, please make a separate call to the newly added function get_securities_reindexed_like (see usage guide). This API change is motivated by performance considerations: querying numeric fields (like prices) and string fields (like symbols, exchanges, etc.) in the same query forces Pandas to load all the fields, including numeric ones, as the object dtype rather than float or integer, resulting in slower loads and higher memory consumption. This problem is avoided by loading numeric and non-numeric fields in two separate queries.
  • Related to the above change, the Moonshot.MASTER_FIELDS parameter now defaults to None whereas previously it defaulted to ["Currency", "Multiplier", "PriceMagnifier", "PrimaryExchange", "SecType", "Symbol", "Timezone"]. If you were accessing any of these master fields in the body of your Moonshot strategy, you will receive a KeyError. The preferred solution is to update your code to use get_securities_reindexed_like (see usage guide). Alternatively, to preserve the old behavior, set MASTER_FIELDS manually:

    class MyStrategy(Moonshot):
    
      MASTER_FIELDS = ["Currency", "Multiplier", "PriceMagnifier", "PrimaryExchange", "SecType", "Symbol", "Timezone"]

Documentation

Complete 1.6.0 release notes

quantrocket/fundamental:1.6.0

  • Forward-looking earnings announcements dates from Wall Street Horizon, via IB. See the usage guide.
  • a new force parameter for collect_reuters_estimates and collect_reuters_financials forces fundamentals to be queried for all specified securities even if they were collected recently. (The default behavior is to skip securities that were updated in the last 12 hours.) Also available for the new function collect_wsh_earnings_dates.

quantrocket/history:1.6.0

  • support for sharding intraday databases by year. See the usage guide.
  • fix improper database index to yield faster query performance for Sharadar databases

quantrocket/jupyter:1.6.0

  • update to quantrocket-client 1.6.4
    • new function: get_securities_reindexed_like. See usage guide.
    • a new ffill parameter for get_reuters_estimates_reindexed_like allows disabling forward-filling if you only want the estimate/actual populated on the date it was first available. (Forward-filling is enabled by default.) See the API reference.
    • a new shift parameter for get_reuters_estimates_reindexed_like allows disabling the shifting of estimates and actuals by one period (enabled by default). Shifting is intended to prevent lookahead bias, but some announcements occur before the market open so shifting is overly cautious in those cases. See the API reference.

quantrocket/master:1.6.0

  • add environment variable IB_WEB which can be used to override the IB website base URL used for collecting listings. Can be used to point directly to an IB subsidiary website. See community post for background. To override the URL, create or edit your docker-compose.override.yml file and add the following override for the master service:
    version: '2.4'
    services:
      master:
        environment:
        - IB_WEB=https://www.interactivebrokers.co.uk

quantrocket/moonshot:1.6.0

  • Support for machine learning strategies using walk-forward optimization
  • update to moonshot 1.6.2
    • support machine learning strategies with new MoonshotML class

Release 1.5.1

2019-02-15

This is a patch release with several minor enhancements:

quantrocket/jupyter:1.5.1

  • automatically enable inline plotting and load seaborn plot styles on notebook startup

quantrocket/history:1.5.1

  • reliability improvement for collecting BID_ASK bar type

quantrocket/master:1.5.1


Release 1.5.0

2019-02-07

Highlights

  • Moonshot support for intraday strategies that trade throughout the day. See the usage guide.
  • Moonchart improvements including new plots, improved style and formatting, better summary table, and greater flexibility to create your own plots. See example tear sheets, learn more in the Moonshot usage guide, or see the API reference.
  • ability to specify a Moonshot benchmark security located in a separate database. See the usage guide.

API changes

  • Tearsheet.from_moonshot_csv is now a class method and consequently the preferred syntax for constructing a Moonchart tearsheet has changed and is slightly simpler (the old way still works too):
    >>> from moonchart import Tearsheet
    >>> Tearsheet.from_moonshot_csv("backtest_results.csv")
  • The DB_TIMES_FILTER class attribute for the Moonshot class is now deprecated and will be removed in a future release, please use DB_TIMES instead. This change is to provide a more consistent naming convention with other DB_* Moonshot attributes.
  • User must now specify whether and how to shard an intraday database. Previously the default was to shard by conid and time but this is not always the right choice, therefore the user should decide. See the usage guide.

Documentation

Complete 1.5.0 release notes

quantrocket/account:1.5.0

  • Add exchange rates for additional currencies: BGN, BRL, CNH, CNY, HRK, IDR, ISK, MYR, PHP, PLN, RON, THB, TRY, ZAR

quantrocket/flightlog:1.5.0

  • Add option to filter log file when downloading. See usage guide.

quantrocket/fundamental:1.5.0

  • stability improvements for Reuters fundamental data collection

quantrocket/history:1.5.0

  • add endpoint to wait for historical data collection to finish
  • remove 'auto' choice from shard option in create_db endpoint; user must now choose whether and how to shard intraday databases. See the usage guide.
  • stability improvements for IB historical data collection

quantrocket/jupyter:1.5.0

  • update to quantrocket-client 1.5.4
    • New function: quantrocket.moonshot.read_moonshot_csv. See API reference.
    • New function: quantrocket.moonshot.intraday_to_daily. See API reference.
    • New function: quantrocket.utils.segmented_date_range. See API reference.
  • update to moonchart 1.5.6
    • add daily holdings plot to Tearsheet
    • add daily turnover plot to Tearsheet
    • add public DailyPerformance and AggregateDailyPerformance classes. See API reference and usage guide.
    • better axis labeling and plot formatting
    • better summary performance table
    • add trim_outliers parameter to Tearsheet. See API reference.

quantrocket/master:1.5.0

  • consult ib-trading-calendars package in addition to IB API to improve trading calendar accuracy. See the usage guide.
  • improved identification of ETFs. See community post for background.

quantrocket/moonshot:1.5.0

  • update to moonshot 1.5.4
    • support for intraday strategies that trade throughout the day
    • support for using a benchmark security from a separate database. See the usage guide.
    • better labels for forex in backtest results
    • deprecate DB_TIMES_FILTER class attribute for Moonshot class, please use DB_TIMES instead.

Release 1.4.1

2018-11-23

This is a patch release that fixes a breaking change to container naming conventions introduced by Docker Compose version 1.23.0. See this community post for more details.


Release 1.4.0

2018-11-19

Highlights

  • Sharadar premium data integration. Sharadar provides harmonized point-in-time fundamentals and end of day prices for 14,000 US companies, active and delisted. Fully integrated with QuantRocket and Moonshot. See the usage guide, data guide, and pricing.
  • Code Library. This release introduces support for cloning sample code into your deployment from QuantRocket's browsable Code library.
  • Set credentials and configuration within JupyterLab. With this release, credentials and configuration that were previously set via the Configuration Wizard can now be set or edited from within JupyterLab using the CLI or Python API. This includes IB credentials, license key, S3 credentials, Papertrail integration, and more. See the release notes below for details.

API changes

  • For the CLI, quantrocket master listings has been deprecated in favor of quantrocket master collect. This change is to bring parity with the data collection terminology of other commands (such as quantrocket history collect). The deprecated command is still available but will print a warning.
  • quantrocket master collect/quantrocket.master.collect_listings now support multiple exchanges using the exchanges parameter. The exchange parameter (singular) is deprecated and will print a deprecation warning.
  • Delisted securities are now included by default in the master file (quantrocket master get/download_master_file). They can optionally be excluded with the --exclude-delisted/exclude_delisted parameter. Previously, delisted securities were excluded from the master file by default, but this diverged from QuantRocket's standard behavior of returning all query results by default.

quantrocket/codeload:1.4.0

quantrocket/countdown:1.4.0

quantrocket/db:1.4.0

quantrocket/flightlog:1.4.0

quantrocket/fundamental:1.4.0

quantrocket/history:1.4.0

quantrocket/ibg:1.4.973.0

quantrocket/license-service:1.4.0

quantrocket/master:1.4.0

  • Add API endpoints for collecting and querying Sharadar listings and for translating between IB and Sharadar domains
  • include delisted securities by default in query results
  • reliability improvements to IB listings collection

quantrocket/zipline:1.4.0

  • Update from Python 3.5 to 3.6

Release 1.3

Highlights

  • Short sale data. You can collect and query the number of shortable shares and associated borrow fees. See the usage guide
  • internal redesign of historical data collection, providing improved speed and reliability, especially for collecting small bar sizes such as 1-minute bars. See more details below in the quantrocket/history section.
  • addition of QGrid, providing Excel-like sorting and filtering of DataFrames. See the usage guide.
  • minute backtests now support making daily history calls (data.history(sid, 'price', 10, '1d') in addition to minute history calls (data.history(sid, 'price', 10, '1m'). This is the same behavior as on Quantopian. Minute bars are rolled up to daily bars during bundle ingestion to support this behavior.
  • supporting for ingesting minute databases into Zipline that don't fit in memory

API deprecations

  • For API endpoints related to data collection, the term "fetch" has been deprecated and replaced by the term "collect". The purpose is to improve the clarity of the API. The deprecated commands and functions are still available for backwards compatibility but will now print a warning message to remind you to switch over.
 CLIPython API
fundamentalfetch-financials -> collect-financials
fetch-estimates -> collect-estimates
fetch_reuters_financials -> collect_reuters_financials
fetch_reuters_estimates -> collect_reuters_estimates
historyfetch -> collectfetch_history -> collect_history
cancel_history_requests -> cancel_collections
masterfetch-calendar -> collect-calendarfetch_listings -> collect_listings
fetch_option_chains -> collect_option_chains
fetch_calendar -> collect_calendar
  • Not specifying a calendar with quantrocket zipline ingest (which causes the default NYSE calendar to be used) is deprecated and will now print a warning message. Associating data with the wrong calendar leads to confusing error messages; therefore it is best to be explicit.

quantrocket/account

1.3.0

2018-09-14

  • retrieve all exchange rates directly from ECB due to reliability problems with exchangeratesapi.io

quantrocket/countdown

1.3.0

2018-09-14

  • update to quantrocket-client==0.45.1

quantrocket/db

1.3.0

2018-09-14

  • add option to view details when listing databases
  • support for managing sharded databases stored in subdirectories
  • fix a bug that prevented pulling a single database from S3 if it didn't already exist locally

quantrocket/fundamental

1.3.0

2018-09-14

  • short sale data: collect and query number of shortable shares and associated borrow fees
  • performance improvement: query results are now cached for up to 24 hours. Running the same query will use the cache, yielding a faster response.
  • reliability improvements for Reuters fundamental data collection
  • update API and logging to reflect replacement of the term "fetch" with "collect". Commands and functions such as fetch-financials are now deprecated and renamed collect-financials. However, the deprecated commands and functions will continue to be available for backwards compatibility.

quantrocket/history

1.3.2

2018-09-25

  • reduce memory footprint of intraday data collection by using odo to write data to disk
  • add warning if insufficient disk space for estimated final database size

1.3.1

2018-09-18

This is a bug fix release.

  • Guarantee that query results are always sorted by date. Previously, in rare cases query results might be only approximately sorted by date. Both Moonshot and Zipline expect query results to be sorted by date.

1.3.0

2018-09-14

  • internal redesign of historical data collection, with the following benefits:
    • fewer timeouts, especially for small bar sizes such as 1-minute
    • total database size is estimated in addition to total runtime
    • faster startup time, especially for small bar sizes
    • new IB Gateways that appear during data collection are now discovered and used
    • improved reliability, including adaptive timeouts and better retry logic
    • more informative reporting via the detailed logs, including processing stages, response time report, and completion report
  • add support for sharding by both time and conid, to maximize query flexibility
  • update API and logging to reflect replacement of the term "fetch" with "collect". Commands and functions such as fetch are now deprecated and renamed collect. However, the deprecated commands and functions will continue to be available for backwards compatibility.

quantrocket/houston

1.3.0

2018-09-14

  • update to openresty 1.13.6.2 and noVNC 1.0.0
  • add tips to noVNC menu in IB Gateway GUI

quantrocket/ibg

1.3.973.0

2018-09-14

  • remove command for accessing IB logfile via Docker. Starting in IB Gateway 973, logfiles are stored in a binary format and must be viewed/exported through the GUI.
  • stability improvements

quantrocket/jupyter

1.3.0

2018-09-14

  • update to Anaconda 5.2.0
  • update to pyfolio 0.9.0
  • add QGrid 1.1.1
  • update to quantrocket-client 0.45.1 (view changes)
  • update to moonshot 0.6.0 (view changes)

quantrocket/master

1.3.0

2018-09-14

  • improve ETF identification for European ETFs
  • update API and logging to reflect replacement of the term "fetch" with "collect". Commands and functions such as fetch_listings are now deprecated and renamed collect_listings. However, the deprecated commands and functions will continue to be available for backwards compatibility.

quantrocket/moonshot

1.3.0

2018-09-14

  • update to moonshot 0.6.0 (view changes)
  • update to Anaconda 5.2.0
  • update to TA-Lib 0.4.16
  • update to quantrocket-client==0.45.1 (view changes)

quantrocket/satellite

1.3.0

2018-09-14

  • update to quantrocket-client==0.45.1

quantrocket/zipline

1.3.1

2018-09-17

This is a bug fix release.

  • update to quantrocket-zipline-extensions 1.3.3: fixes bug to allow daily roll-up of minute bars to work with multi-security bundles (view changes)

1.3.0

2018-09-14

  • update to zipline 1.3
  • minute backtests now support making daily history calls (data.history(sid, 'price', 10, '1d') in addition to minute history calls (data.history(sid, 'price', 10, '1m'). This is the same behavior as on Quantopian. Minute bars are rolled up to daily bars during bundle ingestion to support this behavior.
  • add option to filter history database by date range, universes, or conids before ingestion
  • redesign minute bar ingestion to reduce memory usage by loading one security at a time
  • more flexible options for removing ingested data
  • update to quantrocket-zipline-extensions 1.3.2 (view changes)
  • Not specifying a calendar with quantrocket zipline ingest (which causes the default NYSE calendar to be used) is deprecated and will now print a warning message. Associating data with the wrong calendar leads to confusing error messages; therefore it is best to be explicit.

Release 1.2

quantrocket/account

1.2.1

2018-08-24

  • update exchangeratesapi.io URL after upstream change

1.2.0

2018-05-30

  • use exchangeratesapi.io instead of fixer.io, and get full rates history from ECB website
  • add account portfolio endpoint

quantrocket/codeload

1.2.0

2018-05-30

  • add optional OVERWRITE_EXISTING env var to overwrite existing files (default is to ignore existing)

quantrocket/countdown

1.2.0

2018-05-30

  • log cron mail to logspout
  • update to quantrocket-client==0.40.3

quantrocket/db

1.2.0

2018-05-30

  • disable s3 pull on launch if env var S3PULL_ON_LAUNCH=false

quantrocket/fundamental

1.2.0

2018-05-30

  • include restatements by default in query financials endpoint, and always use FiscalPeriodEndDate for date filters (to simplify)
  • include delisted securities when returning fundamentals (unless universe does not contain any)

quantrocket/history

1.2.2

2018-07-12

1.2.1

2018-06-05

  • fix memory leak that caused memory usage to grow indefinitely during long-running data collection

1.2.0

2018-05-30

  • add option to override universes when collecting history
  • switch to primary exchange on error "BEST queries are not supported for this contract"
  • allow collecting history availability only, and allow querying availability
  • add support for time-sharded databases
  • cumulative daily calculations for intraday databases
  • include delisted securities when returning history (unless universe does not contain any)
  • add delist_missing option
  • add between_times param to create-db endpoint

quantrocket/houston

1.2.0

2018-05-30

  • remove support for Docker Cloud after service discontinuation
  • don't log jupyter access log because too noisy

quantrocket/ibg

973.1

2018-08-01

  • fix an issue preventing connecting a live account

973.0

2018-07-27

  • update to IB Gateway version 973
  • automatically restart IB Gateway if unresponsive for 60 seconds (doesn't apply if 2-factor authentication is enabled; number of seconds can be set with environment variable IBG_FORCE_RESTART)
  • stability and reliability improvements

quantrocket/jupyter

1.2.2

2018-07-11

  • update to quantrocket-client==0.41.0 with support for segmented backtests (view changes)
  • update to moonshot==0.5.3 (view changes)

1.2.1

2018-06-18

Starting with this version, the versioning scheme for quantrocket/jupyter is changed to mirror other services. (Previously the versioning scheme mirrored the underlying Anaconda version.)

  • update to quantrocket-client==0.40.7 (view changes)
  • update to alphalens==3.2.0

quantrocket/launchpad

1.2.1

2018-07-24

  • allow sec types IND and FOP in quantrocket.launchpad.permissions.yml

quantrocket/license-service

1.2.1

2018-07-19

  • support for multiple accounts which are denominated in different base currencies

quantrocket/master

1.2.1

2018-06-12

  • save tick size rules to securities master database at the time listings are collected
  • improve error handling of trading calendar endpoints

1.2.0

2018-05-30

  • allow querying DateDelisted
  • change query logic to AND universes and exchange/currencies/etc instead of ORing them
  • add endpoint for rounding prices to tick sizes
  • add endpoints for collecting and querying trading hours

quantrocket/moonshot

1.2.2

2018-07-11

1.2.1

2018-06-18

1.2.0

2018-05-30

  • add trade endpoint
  • better handling of passing on-the-fly params
  • return CSV by default instead of PDF in backtest and paramscan endpoints
  • add codeload to path instead of codeload_moonshot (for parity with Jupyter)

quantrocket/satellite

1.2.0

2018-05-30

  • update to quantrocket-client==0.40.3

Release 1.1

quantrocket/account

1.1.1

2018-03-12

  • better type inference with JSON output: integers are now returned as integers instead of as floats
  • exchange rates from a base currency to itself are now stored as a convenience

quantrocket/countdown

1.1.1

2018-03-20

  • update to quantrocket-client==0.31.0

quantrocket/db

1.1.1

2018-03-20

  • improve handling of S3 pulls on service launch to speed up launch time

quantrocket/fundamental

1.1.1

2018-03-20

  • better type inference with JSON output: integers are now returned as integers instead of as floats

quantrocket/history

1.1.1

2018-03-14

  • improve handling of IB response timeouts

    Previously when the IB API failed to respond to a request after 30 seconds, the history service would log the failure and continue with the next request for the same security. Since non-responses from the IB API are usually temporary, and since the history service fills data from back to forwards (old to new), this behavior could lead to gaps in the data. Now, after a non-response from the IB API, the history service will skip to the next security to avoid creating data gaps.

  • make runtime estimates more informative by including average response time and number of remaining requests

  • shorten request durations for intraday bars to speed up response times

quantrocket/houston

1.1.2

2018-03-20

  • redirect root path to JupyterLab; requires quantrocket/jupyter:4.4.0.9 or higher

quantrocket/ibg

972.0

2018-05-30

  • update to IB Gateway version 972

971.0

2018-05-04

  • update to IB Gateway version 971

970.2

2018-05-02

  • add credentials endpoint for setting/getting IB credentials on running container

970.0

2018-03-13

  • update to IB Gateway version 970

quantrocket/jupyter

4.4.0.10

2018-05-30

  • update to quantrocket-client==0.40.3
  • update to moonshot==0.5.2

4.4.0.9

2018-03-16

  • update from classic Jupyter to JupyterLab
  • add QuantRocket command line interface (CLI) to Jupyter terminal. With this release it is no longer necessary to install the QuantRocket client separately.
  • add custom command to open IB Gateway GUI from Jupyter interface
  • automatically packagify codeload directory and subdirectories and make them importable using import codeload

    Any folders under the codeload directory which are valid Python package names (lowercase letters and underscores) and which contain one or more .py files will automatically be packagified, that is, an __init__.py file will be created if it doesn't already exist. Packages can be imported from the top-level codeload package using standard Python dot notation. For example, a function called my_function located in codeload/moonshot/utils.py can be imported in Jupyter notebooks as follows:

    from codeload.moonshot.utils import my_function
  • update to Alphalens 0.3.0

quantrocket/master

1.1.1

2018-03-16

  • add Estonia, Latvia, Lithuania exchanges
  • better type inference with JSON output: integers are now returned as integers instead of as floats

quantrocket/moonshot

1.1.1

2018-03-20

  • update to Moonchart 0.3.1 (fixes bug with plotting gross returns)

quantrocket/zipline

1.1.1.11

1.1.1.9

  • better handling of minute bar ingestion

1.1.1.8