Skip to main content

Zipline Pipeline extension for live trade

Project description

Zipline Pipeline Extension for Live Trading

pipeline-live is an extension for zipline pipeline independently usable for live trading, outside of zipline. While zipline is a great backtesting library, the default Pipeline API requires complicated setup for data bundle, which is often challenging to average users. Quantopian's proprietary data sources such as Morningstar is also not available to many. This library is to address this issue by using online API data sources and simplify the interface for live trading usage. The interface complies the original zipline/pipeline for the most part. For more details about the Pipeline API, please see Quantopian's tutorial and zipline document.

If you are looking to use this library for your Quantopian algorithm, check out the migration document.

Data Sources

This library predominantly relies on the IEX public data API for daily prices and fundamentals, but plans to connect to other data sources in the future. Currently supported data sources include the following.

Install

pipeline-live is a PyPI module and you can install it using pip command.

$ pip install pipeline-live

This module is tested and expected to work with python 3.6 and later

Example

Here is a simple pipeline example.

from pipeline_live.engine import LivePipelineEngine
from pipeline_live.data.sources.iex import list_symbols
from pipeline_live.data.iex.pricing import USEquityPricing
from pipeline_live.data.iex.fundamentals import IEXKeyStats
from pipeline_live.data.iex.factors import AverageDollarVolume
from zipline.pipeline import Pipeline

eng = LivePipelineEngine(list_symbols)
top5 = AverageDollarVolume(window_length=20).top(5)
pipe = Pipeline({
    'close': USEquityPricing.close.latest,
    'marketcap': IEXKeyStats.marketcap.latest,
}, screen=top5)

df = eng.run_pipeline(pipe)

'''
        close     marketcap
AAPL   215.49  1.044037e+12
AMZN  1902.90  9.293372e+11
FB     172.90  5.042383e+11
QQQ    180.80  7.092998e+10
SPY    285.79  2.737475e+11
'''

Data Cache

Since most of the data does not change during the day, the data access layer caches the dataset on disk. In case you need to purge the cache, the cache data is located in $ZIPLINE_ROOT/data/daily_cache.

Pipeline API

pipeline_live.engine.LivePipelineEngine

This class provides the similar interface to zipline.pipeline.engine.SimplePipelineEngine. The main difference is its run_pipeline does not require the start and end dates as parameters, and returns a DataFrame with the data for the current date (US/Eastern time). Its constructor accepts list_symbol function that is supposed to return the full set of symbols as a string list, which is used as the maximum universe inside the engine.

IEX Data Source API

You don't have to configure anything to use these API

pipeline_live.data.iex.pricing.USEquityPricing

This class provides the basic price information retrieved from IEX Chart API.

pipeline_live.data.iex.fundamentals.IEXCompany

This provides the DataSet interface using IEX Company API.

pipeline_live.data.iex.fundamentals.IEXKeyStats

This provides the DataSet interface using IEX Key Stats API.

pipeline_live.data.iex.factors

It is important to note that the original builtin factors from zipline does not work here as is, since some of them rely on zipline's USEquityPricing class. This package provides the same set of zipline's builtin factor classes using pipeline_live.data.iex.pricing.USEquityPricing class. For the complete list of builtin factors, please refer zipline document

pipeline_live.data.iex.classifiers.Sector()

A shortcut for IEXCompany.sector.latest

pipeline_live.data.iex.classifiers.Industry()

A shortcut for IEXCompany.industry.latest

Alpaca/Polygon Data Source API

You will need to set Alpaca API key to use these API.

pipeline_live.data.polygon.fundamentals.PolygonCompany

This class provides the DataSet interface using Polygon Symbol Details API

pipeline_live.data.polygon.filters.IsPrimaryShareEmulation

Experimental. This class filteres symbols by the following rule to return something close to IsPrimaryShare() in Quantopian.

  • must be a US company
  • must have a valid financial data

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipeline-live-0.1.6.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pipeline_live-0.1.6-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file pipeline-live-0.1.6.tar.gz.

File metadata

  • Download URL: pipeline-live-0.1.6.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for pipeline-live-0.1.6.tar.gz
Algorithm Hash digest
SHA256 4e55a2688e58722b9d9e59bc044e24ebe000f10525d34654ade3d5d15b9f7d85
MD5 01efefd092b5b0bacca8909516b8b625
BLAKE2b-256 45fdf2918d2ea7b53a0cd4f89a629a9b5259c5c58fecbea64dbb1acf7150fa47

See more details on using hashes here.

File details

Details for the file pipeline_live-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: pipeline_live-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for pipeline_live-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9f5ccbe974d2c8ef3ab5223dfdb00cf49134d3a5dc418c86dac8ebc6bbd80399
MD5 47b063c1cfc1c984c0057c0df9f86e14
BLAKE2b-256 f1537f89f6896111a98a7925c8b46a2f635dfe9cafdb4bc729bd847a8da011d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page