Step1 - Set the ZIPLINE_ROOT¶
[7]:
import os
os.environ['ZIPLINE_ROOT'] = os.path.join(os.getcwd(), '.zipline')
os.listdir(os.environ['ZIPLINE_ROOT'])
os.environ['ZIPLINE_TRADER_CONFIG'] = os.path.join(os.getcwd(), "./zipline-trader.yaml")
with open(os.environ['ZIPLINE_TRADER_CONFIG'], 'r') as f:
data = f.read()
print(data[:20])
[7]:
['custom_data', 'data', 'extension.py']
Step2 - Load your Bundle¶
[10]:
import zipline
from zipline.data import bundles
bundle_name = 'alpaca_api'
bundle_data = bundles.load(bundle_name)
Step3 - Create The Data Portal¶
[25]:
from zipline.pipeline.loaders import USEquityPricingLoader
from zipline.utils.calendars import get_calendar
from zipline.pipeline.data import USEquityPricing
from zipline.data.data_portal import DataPortal
import pandas as pd
# Set the dataloader
pricing_loader = USEquityPricingLoader.without_fx(bundle_data.equity_daily_bar_reader, bundle_data.adjustment_reader)
# Define the function for the get_loader parameter
def choose_loader(column):
if column not in USEquityPricing.columns:
raise Exception('Column not in USEquityPricing')
return pricing_loader
# Set the trading calendar
trading_calendar = get_calendar('NYSE')
start_date = pd.Timestamp('2019-07-05', tz='utc')
end_date = pd.Timestamp('2020-11-13', tz='utc')
# Create a data portal
data_portal = DataPortal(bundle_data.asset_finder,
trading_calendar = trading_calendar,
first_trading_day = start_date,
equity_daily_reader = bundle_data.equity_daily_bar_reader,
adjustment_reader = bundle_data.adjustment_reader)
Let’s Get Some Historical Data¶
[26]:
equity = bundle_data.asset_finder.lookup_symbol("ACES", end_date)
data_portal.get_history_window(assets=[equity], end_dt=end_date, bar_count=10,
frequency='1d',
field='close',
data_frequency='daily')
[26]:
Equity(604 [ACES]) | |
---|---|
2020-11-02 00:00:00+00:00 | 57.10 |
2020-11-03 00:00:00+00:00 | 58.50 |
2020-11-04 00:00:00+00:00 | 57.16 |
2020-11-05 00:00:00+00:00 | 60.86 |
2020-11-06 00:00:00+00:00 | 61.23 |
2020-11-09 00:00:00+00:00 | 61.54 |
2020-11-10 00:00:00+00:00 | 60.25 |
2020-11-11 00:00:00+00:00 | 62.42 |
2020-11-12 00:00:00+00:00 | 61.77 |
2020-11-13 00:00:00+00:00 | 61.82 |