Notebook

Example Pipeline and Slicing by Dates

In [1]:
# Imports for pipeline
from quantopian.pipeline import Pipeline
from quantopian.research import run_pipeline

# Import any required datasets
from quantopian.pipeline.data import USEquityPricing 

# Import any required built in filters and factors
from quantopian.pipeline.filters import QTradableStocksUS, StaticAssets
In [5]:
# Define our pipeline
def make_pipeline():
    stock_volume = USEquityPricing.volume.latest 
    
    # Create a filter for just the top 50
    # Add the 'isfinite' mask to filter out infinite and/or divide by zero values
    top_pct_volume = stock_volume.top(5, mask=QTradableStocksUS())
  
    return Pipeline(columns={'stock_volume': stock_volume},
                    screen=top_pct_volume
                   )
In [6]:
# Run the pipeline over desired days
start_date = '2006-01-01'
end_date = '2008-08-1'
result = run_pipeline(make_pipeline(), start_date, end_date)

Pipeline Execution Time: 2.80 Seconds
In [7]:
# Get the dates from the index and create a series to use as a 'mask'
dti = result.index.get_level_values(0)  
query =  ( dti > '2006-01-01') & (dti < '2007-01-01')  
result_slice_2006 = result.loc[query]
display(result_slice_2006)
stock_volume
2006-01-03 00:00:00+00:00 Equity(1900 [CSCO]) 35435954.0
Equity(5061 [MSFT]) 43076900.0
Equity(11901 [SIRI]) 30554615.0
Equity(14756 [LU]) 44251600.0
Equity(20387 [VIAV]) 33602071.0
2006-01-04 00:00:00+00:00 Equity(1900 [CSCO]) 52611188.0
Equity(3951 [INTC]) 53042209.0
Equity(5061 [MSFT]) 75517659.0
Equity(5692 [ORCL]) 53659906.0
Equity(11901 [SIRI]) 70703802.0
2006-01-05 00:00:00+00:00 Equity(1900 [CSCO]) 77176238.0
Equity(5061 [MSFT]) 55542137.0
Equity(5692 [ORCL]) 53275442.0
Equity(11901 [SIRI]) 60748414.0
Equity(14756 [LU]) 59319700.0
2006-01-06 00:00:00+00:00 Equity(1900 [CSCO]) 114157058.0
Equity(3951 [INTC]) 50545571.0
Equity(5692 [ORCL]) 51553020.0
Equity(7216 [JAVA]) 69092937.0
Equity(14756 [LU]) 70599900.0
2006-01-09 00:00:00+00:00 Equity(1900 [CSCO]) 106636067.0
Equity(2518 [EMC]) 54102500.0
Equity(5061 [MSFT]) 87279175.0
Equity(5692 [ORCL]) 82920838.0
Equity(7216 [JAVA]) 85969888.0
2006-01-10 00:00:00+00:00 Equity(1900 [CSCO]) 75823663.0
Equity(5061 [MSFT]) 49497212.0
Equity(7216 [JAVA]) 80518736.0
Equity(11901 [SIRI]) 69035219.0
Equity(14756 [LU]) 46250100.0
... ... ...
2006-12-21 00:00:00+00:00 Equity(2673 [F]) 86226100.0
Equity(5692 [ORCL]) 46535465.0
Equity(7216 [JAVA]) 43599556.0
Equity(11901 [SIRI]) 50001609.0
Equity(40069 [RBAK]) 52698925.0
2006-12-22 00:00:00+00:00 Equity(2673 [F]) 55292300.0
Equity(3951 [INTC]) 46178383.0
Equity(6653 [T]) 33095400.0
Equity(7216 [JAVA]) 36819758.0
Equity(11901 [SIRI]) 38603986.0
2006-12-26 00:00:00+00:00 Equity(1900 [CSCO]) 25786647.0
Equity(2673 [F]) 48224400.0
Equity(3951 [INTC]) 33492839.0
Equity(5061 [MSFT]) 32086035.0
Equity(11901 [SIRI]) 34895805.0
2006-12-27 00:00:00+00:00 Equity(2673 [F]) 31632000.0
Equity(3951 [INTC]) 25028353.0
Equity(5061 [MSFT]) 29427913.0
Equity(11901 [SIRI]) 25479812.0
Equity(21947 [MBVX]) 30390563.0
2006-12-28 00:00:00+00:00 Equity(24 [AAPL]) 64767877.0
Equity(2673 [F]) 42610100.0
Equity(3951 [INTC]) 30354393.0
Equity(5061 [MSFT]) 28294532.0
Equity(11901 [SIRI]) 24317122.0
2006-12-29 00:00:00+00:00 Equity(24 [AAPL]) 37361814.0
Equity(1900 [CSCO]) 33840584.0
Equity(2673 [F]) 29260200.0
Equity(3951 [INTC]) 28802823.0
Equity(11901 [SIRI]) 45715069.0

1255 rows × 1 columns

In [8]:
# Display the values of the date index
display(result_slice_2006.index.get_level_values(level=0))
DatetimeIndex(['2006-01-03', '2006-01-03', '2006-01-03', '2006-01-03',
               '2006-01-03', '2006-01-04', '2006-01-04', '2006-01-04',
               '2006-01-04', '2006-01-04',
               ...
               '2006-12-28', '2006-12-28', '2006-12-28', '2006-12-28',
               '2006-12-28', '2006-12-29', '2006-12-29', '2006-12-29',
               '2006-12-29', '2006-12-29'],
              dtype='datetime64[ns, UTC]', length=1255, freq=None)