Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
USEquityPricing.close.latest doesn't return latest price

Hi All,

I have a question how to get the latest close form a pipeline output.

When I run code below on Monday 3.2.2020, 'USEquityPricing.close.latest' doesn't return latest Friday price.Instead Thursday price is returned (Equity(5 [AAPL]) : 273.52).

How to get correct latest price?

from zipline import run_algorithm  
from zipline.api import *  
from zipline.pipeline import CustomFactor, Pipeline  
from zipline.pipeline.data import USEquityPricing  
from zipline.pipeline.factors import Returns, SimpleMovingAverage  
import zipline.pipeline.filters as Filters  
import pytz  
import pandas as pd


def initialize(context):  
    attach_pipeline(make_pipeline(context), 'my_pipeline')  
    #schedule_function(rebalance, date_rules.month_start(), time_rules.market_open())  
    #schedule_function(record_vars, date_rules.month_start(), time_rules.market_close())

def make_pipeline(context):  
    context.symbols = symbols('SPY')  
    universe = Filters.StaticAssets(context.symbols)  
    yesterday_close = USEquityPricing.close.latest  
    return Pipeline(  
            columns = {  
            'yesterday_close' : yesterday_close,  
                      },  
            screen = universe,  
            )  
def before_trading_start(context, data):  
    global p  
    p = pipeline_output('my_pipeline')

start = datetime(2020, 2, 27, tzinfo=pytz.UTC)  
end = datetime(2020, 3, 1, tzinfo=pytz.UTC)

results = run_algorithm(start=start, end=end,  
                        initialize=initialize,  
                        before_trading_start=before_trading_start,  
                        capital_base=10000,  
                        data_frequency='daily',  
                        bundle='yh_etf' ) 

print(p)