Coming in early 2018

QuantRocket is currently under development.
Look around, take our product roadmap survey, and register an account or provide your email below to be notified when QuantRocket is ready.

Changes saved to local storage
Validation errors - no changes saved

QuantRocket Configuration Wizard

QuantRocket runs as a suite of Docker services which can be deployed on your home trading computer or in the cloud provider of your choice.

Use this wizard to generate a Docker configuration file for deploying your QuantRocket services.

Your license key

You can generate and view your license key on your account page .

Provide your credentials as environment variables

To keep your credentials secure, you won't enter your actual license key, or any other credentials, into this wizard. Rather, the Docker configuration file produced by this wizard will reference environment variables which are expected to contain your credentials, for example ${QUANTROCKET_LICENSE_KEY}. Before deploying QuantRocket, you'll set these environment variables on the host machine, like so:

export QUANTROCKET_LICENSE_KEY=mykey

Docker will read the credentials from the environment variables at the time of deployment and provide them to your QuantRocket services.

Local or cloud deployment?

To run QuantRocket locally (for example, on your home trading computer), you install Docker and Docker Compose on your computer, then use Docker Compose to deploy QuantRocket from a Compose file, that is, a YAML configuration file generated by this wizard.

To run QuantRocket in the cloud, you create a Docker Cloud account and connect it to one or more cloud providers of your choice (e.g. AWS). You can then provision cloud instances through Docker Cloud and deploy QuantRocket onto those instances using a stack file, that is, a YAML configuration file generated by this wizard.

Connecting over HTTP

QuantRocket services communicate with each other, and you communicate with them, over HTTP. All your communication with QuantRocket (via the command line interface or the Python client) is routed through QuantRocket's API gateway, named "houston". Think of houston as mission control for your QuantRocket deployment.

When run locally with Docker Compose, you connect to houston over HTTP on localhost. You can choose the port you wish houston to use (default 1969, the year of the Apollo 11 moon landing). When run in the cloud with Docker Cloud, you connect to houston securely over HTTPS with a username and password.

If you're just getting started, try running QuantRocket locally with Docker Compose.

Configure IB Gateway

QuantRocket automates the headless installation and configuration of IB Gateway, and allows you to start and stop IB Gateway programmatically via API.

If you have a multiple accounts/usernames, you can configure a gateway for each of them. (Using multiple gateways increases your concurrency for market data subscriptions and historical data downloads; consider a Friends and Family account structure even if you're a single trader.)

To allow automated starting and stopping of IB Gateway, you must partially opt out of the Secure Login System (SLS), IB's two-factor authentication. With a partial opt-out, your username and password (but not your security device) are required for logging into IB Gateway and other IB trading platforms; your security device is still required for logging in to Account Management. If you choose not to partially opt-out, you can still use QuantRocket by manually entering your security device codes via VNC connection each time you start IB Gateway.

How to load your code?

QuantRocket can load your strategy code, configuration files, and research notebooks from a directory on the host machine. You can then edit your code and config files on your local machine and QuantRocket will detect and apply the changes.

QuantRocket can also load your code from a Git repository. This is useful for cloud-based deployments using Docker Cloud (but can also be used for local deployments).

You can specify a Git repository and a host machine directory. QuantRocket will copy the contents of the Git repository into the host machine directory (where you can then view and/or edit the files). If you're just getting started, you can use this approach to load QuantRocket's demo code .

Where to put your databases?

QuantRocket stores your historical and fundamental data, account history, trade executions, and other data in a variety of SQLite databases.

QuantRocket can place theses databases in a directory on the host machine, from which you can access them directly or back them up.

Additionally (or instead), QuantRocket can backup your databases to an Amazon S3 bucket.

If the host directory or the S3 bucket already contains databases from a previous deployment, QuantRocket will use the existing databases. This allows you to easily re-deploy QuantRocket while preserving your data across deployments.

Connect to Quandl?

QuantRocket lets you integrate several Quandl databases.

Schedule tasks in which timezones?

You'll use QuantRocket's cron service, named "countdown," to schedule automated tasks such as downloading historical data or running your trading strategies.

You can pick the timezone in which you want to schedule your tasks, and you can create as many countdown services as you like. If you plan to trade in multiple timezones, consider creating a separate countdown service for each timezone where you will trade.

For example, suppose you trade the US and Australian stock markets, and your trading strategies need to run at precise times. If you schedule the Australian strategies in New York time, you'll have to adjust the times on your crontab whenever there's a daylight savings change in the US or Australia. You can avoid this error-prone manual step by scheduling each job in the timezone it relates to.

(If you're not sure yet which timezones you need, don't worry, you can add more countdown services later.)

Where to send your logs

QuantRocket provides rich logging to keep you informed about what it's doing. QuantRocket's logging service is called "flightlog". QuantRocket services log messages to flightlog, and flightlog sends the log messages to you.

The recommended way of monitoring your logs is through Papertrail (free plan available). You can configure Papertrail to notify other services (email, Slack, PagerDuty, webhooks, etc.) based on log message criteria. Flightlog will colorize the Papertrail logs based on message severity.

To receive critical alerts via SMS, there are several options through Papertrail, or you can configure Flightlog to send SMS alerts using Twilio (free plan available).

You can also stream your logs over HTTP through Houston, QuantRocket's API gateway (no logging configuration required). See the API docs.