Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
run_pipeline in local environment doesn't return yesterday price

Could you please help how to setup zipline (offline) run_pipeline to get yesterday price?

a) Zipline (offline) run_pipeline returns only
2020-03-10 00:00:00+00:00 Equity(8554 [SPY]) 274.42

Zipline (offline) doesn't return yesterday price:
2020-03-11 00:00:00+00:00 Equity(8554 [SPY]) 288.45

I have verified that offline bundle ingested data up to yesterday price 288.45

b) Quantopian run_pipeline returns correctly:

2020-03-10 00:00:00+00:00 Equity(8554 [SPY]) 274.42
2020-03-11 00:00:00+00:00 Equity(8554 [SPY]) 288.45

a) local zipline environment

import pandas as pd  
import os  
from zipline.data import bundles  
from zipline.pipeline.data import USEquityPricing  
from zipline.pipeline.engine import SimplePipelineEngine  
from zipline.pipeline.loaders import USEquityPricingLoader  
from zipline.utils.calendars import get_calendar  
from zipline.utils.run_algo import load_extensions  
from zipline.pipeline.filters import StaticAssets  
from zipline.pipeline import Pipeline  
from zipline.utils.run_algo import load_extensions  
load_extensions(  
    default=True,  
    extensions=[],  
    strict=True,  
    environ=os.environ,  
)


trading_calendar = get_calendar('NYSE')  
bundle_data = bundles.load('yh_spy')  
assets = bundle_data.asset_finder.lookup_symbols(['spy'], as_of_date=None)

pipeline_loader = USEquityPricingLoader(  
    bundle_data.equity_daily_bar_reader,  
    bundle_data.adjustment_reader,  
)

def choose_loader(column):  
    if column in USEquityPricing.columns:  
        return pipeline_loader  
    return my_dispatcher(column)

engine = SimplePipelineEngine(  
    get_loader=choose_loader,  
    calendar=trading_calendar.all_sessions,  
    asset_finder=bundle_data.asset_finder,  
)

p = Pipeline(  
    columns={  
        'price': USEquityPricing.close.latest,  
    },  
    screen=StaticAssets(assets)  
)

df = engine.run_pipeline(  
    p,  
    pd.Timestamp('2020-03-10', tz='utc'),  
    pd.Timestamp('2020-03-11', tz='utc')  
)

print(df)  

returns:
"2020-03-10 00:00:00+00:00 Equity(1 [SPY]) 274.42"

b) quantopian environment