def make_pipeline(): russell_universe = StaticAssets( symbols( ['AAPL', 'AA', 'KKD', 'MON', 'SPY', 'XOM', 'JNJ', 'HD', 'MSFT'])) filt = AverageDollarVolume(window_length=30, mask=russell_universe) > 10e6 pipeline = Pipeline(columns={ "1y_returns": Returns(window_length=252), }, screen=filt) return pipeline
def make_pipeline(): base_universe = StaticAssets(symbols(['AAPL', 'SPY'])) pipe = Pipeline(columns={ 'close': USEquityPricing.close.latest, 'prev': Previous([USEquityPricing.close], window_length=2, mask=base_universe), 'ret': Returns(window_length=2, mask=base_universe), 'excess_return': ExcessReturn(window_length=2, mask=base_universe), }, screen=base_universe) return pipe
import pandas as pd from sharadar.pipeline.universes import UniverseWriter, UniverseReader, NamedUniverse from zipline.pipeline.filters import StaticAssets from sharadar.pipeline.engine import symbols, make_pipeline_engine from sharadar.util.output_dir import get_output_dir import os from zipline.pipeline import Pipeline from zipline.pipeline.data import USEquityPricing pipe_start = pd.to_datetime('2009-02-03', utc=True) pipe_end = pd.to_datetime('2020-02-07', utc=True) screen = StaticAssets(symbols(['IBM', 'F', 'AAPL'])) universes_db_path = os.path.join(get_output_dir(), "universes.sqlite") universe_name = 'my_universe1' UniverseWriter(universes_db_path).write(universe_name, screen, pipe_start, pipe_end) sids = UniverseReader(universes_db_path).get_sid(universe_name, '2020-02-07') print(sids) sids = UniverseReader(universes_db_path).get_sid(universe_name, '2002-02-07') print(sids) spe = make_pipeline_engine() pipe = Pipeline(columns={ 'Close': USEquityPricing.close.latest, }, screen=NamedUniverse('my_universe1'))
import pandas as pd from zipline.pipeline import Pipeline from zipline.pipeline.data import USEquityPricing from sharadar.pipeline.engine import load_sharadar_bundle, symbols, make_pipeline_engine from zipline.pipeline.filters import StaticAssets import time import datetime bundle = load_sharadar_bundle() bundle.asset_finder.retrieve_equities([199059, 199623]) print(symbols(['SPY'])) spe = make_pipeline_engine() pipe_start = pd.to_datetime('2020-02-03', utc=True) pipe_end = pd.to_datetime('2020-02-07', utc=True) pipe = Pipeline(columns={ 'Close': USEquityPricing.close.latest, }, screen = StaticAssets(symbols(['IBM', 'F', 'AAPL'])) ) stocks = spe.run_pipeline(pipe, pipe_start, pipe_end) print("stocks.shape [close]", stocks) from sharadar.pipeline.factors import MarketCap, EV, Fundamentals pipe_mkt_cap = Pipeline(columns={
from sharadar.pipeline.engine import prices, symbols, load_sharadar_bundle import pandas as pd pd.set_option('display.float_format', lambda x: '%.2f' % x) # Apple's stock has split five times since the company went public. # The stock split on a 4-for-1 basis on August 28, 2020, a 7-for-1 basis on June 9, 2014, # and split on a 2-for-1 basis on February 28, 2005, June 21, 2000, and June 16, 1987. start = pd.to_datetime('2020-08-26', utc=True) end = pd.to_datetime('2020-09-02', utc=True) # AAPL sid 199059 sids = symbols(['AAPL', 'F']) print(prices(sids, start, end)) print("---") bundle = load_sharadar_bundle() pricing_reader = bundle.equity_daily_bar_reader close, = pricing_reader.load_raw_arrays( ['close'], start, end, sids, ) print(close) print("---")
import pandas as pd from zipline.pipeline import Pipeline from zipline.pipeline.data import USEquityPricing from sharadar.pipeline.factors import MarketCap from sharadar.pipeline.factors import EV from sharadar.pipeline.factors import Fundamentals from sharadar.pipeline.engine import load_sharadar_bundle, symbol, symbols, make_pipeline_engine from zipline.pipeline.filters import StaticAssets import time import datetime from zipline.pipeline.factors import CustomFactor, DailyReturns, Returns from sharadar.pipeline.engine import BundleLoader from sharadar.pipeline.factors import ForwardsReturns universe = StaticAssets(symbols(['IBM', 'F', 'AAPL'])) pipe = Pipeline(columns={ 'Close': USEquityPricing.close.latest, 'monthly_ret': Returns(window_length=2), 'monthly_fret': ForwardsReturns(window_length=3, mask=universe) }, screen=universe) engine = make_pipeline_engine() pipe_start = pd.to_datetime('2020-04-06', utc=True) stocks = engine.run_pipeline(pipe, pipe_start) print(stocks)
from sharadar.pipeline.engine import (load_sharadar_bundle, symbol, symbols, prices, prices_old, returns, trading_date) import pandas as pd start = pd.to_datetime('2021-03-08', utc=True) end = pd.to_datetime('2021-03-12', utc=True) assets = symbols(['IBM', 'F', 'AAPL']) p = prices(assets, start, end) print(p) assert p.shape == (5, 3) assert type(p) == pd.DataFrame assets = symbols(['SPY']) p = prices(assets, start, end) assert p.shape == (5, ) assert type(p) == pd.Series assets = [symbol('SPY')] p = prices(assets, start, end) print(p) assert p.shape == (5, ) assert type(p) == pd.Series assets = symbols(['IBM', 'F', 'AAPL']) p = returns(assets, start, end) print(p) assert p.shape == (5, 3) assert type(p) == pd.DataFrame
from zipline.pipeline import Pipeline from zipline.pipeline.data import EquityPricing from zipline.pipeline.factors import Latest, Returns from zipline.pipeline.filters import StaticAssets pd.set_option('display.float_format', lambda x: '%.2f' % x) # Apple's stock has split five times since the company went public. # The stock split on a 4-for-1 basis on August 28, 2020, a 7-for-1 basis on June 9, 2014, # and split on a 2-for-1 basis on February 28, 2005, June 21, 2000, and June 16, 1987. start = pd.to_datetime('2020-08-26', utc=True) end = pd.to_datetime('2020-09-02', utc=True) # AAPL sid 199059 print(prices(symbols(['AAPL']), start, end)) engine = make_pipeline_engine() universe = StaticAssets(symbols(['AAPL'])) pipe = Pipeline( columns={ 'close': Latest([EquityPricing.close], mask=universe), 'mkt_cap': MarketCap(mask=universe), 'prev': Previous([USEquityPricing.close], window_length=2, mask=universe), 'ret': Returns(window_length=2, mask=universe), }, screen=universe, )
import pandas as pd from zipline.pipeline import Pipeline from zipline.pipeline.data import USEquityPricing from sharadar.pipeline.engine import symbol, symbols, make_pipeline_engine from zipline.pipeline.filters import StaticAssets tickers = symbols(['TR1M', 'TR1Y', 'RATEINF']) print(tickers) pipe = Pipeline(columns={ 'Close': USEquityPricing.close.latest, }, screen=StaticAssets(tickers)) engine = make_pipeline_engine() pipe_start = pd.to_datetime('2020-02-03', utc=True) pipe_end = pd.to_datetime('2020-02-07', utc=True) stocks = engine.run_pipeline(pipe, pipe_start, pipe_end) print("stocks.shape [close]", stocks) print(symbol('TR1M').to_dict())
pipe = Pipeline(columns={ 'close': USEquityPricing.close.latest, 'adv': AverageDollarVolume(window_length=3), 'sharesbas_arq': Fundamentals(field='sharesbas_arq'), 'sharefactor_arq': Fundamentals(field='sharefactor_arq'), 'mkt_cap': MarketCap(), 'ev': EV(), 'debt': Fundamentals(field='debtusd_arq'), 'cash': Fundamentals(field='cashnequsd_arq'), 'EvEbit': EvEbit(), 'EvEbitda': EvEbitda(), 'PriceBook': PriceBook(), 'PriceEarnings': PriceEarnings(), 'PriceSales': PriceSales() }, screen=StaticAssets(symbols(['AAPL']))) pipe_start = pd.to_datetime('2021-03-15', utc=True) stocks = spe.run_pipeline(pipe, pipe_start) print(stocks.iloc[0]) assert stocks.iloc[0]['EvEbit'] == 28.90 assert stocks.iloc[0]['EvEbitda'] == 25.20 assert stocks.iloc[0]['PriceBook'] == 31.40 assert stocks.iloc[0]['PriceEarnings'] == 32.60 assert stocks.iloc[0]['PriceSales'] == 7.10 assert stocks.iloc[0]['cash'] == 36010000000.00 assert stocks.iloc[0]['close'] == 121.03 assert stocks.iloc[0]['debt'] == 112043000000.00 assert stocks.iloc[0]['ev'] == 2157589000000.00 assert stocks.iloc[0]['mkt_cap'] == 2081556000000.00 assert stocks.iloc[0]['sharefactor_arq'] == 1.00
import pandas as pd from zipline.pipeline import Pipeline from zipline.pipeline.data import USEquityPricing from sharadar.pipeline.factors import (MarketCap, EV, Fundamentals, LogFundamentalsTrend, LogTimeTrend, InvestmentToAssets, InvestmentToAssetsTrend) from sharadar.pipeline.engine import load_sharadar_bundle, symbol, symbols, make_pipeline_engine from zipline.pipeline.filters import StaticAssets from zipline.pipeline.factors import CustomFactor import numpy as np #universe = StaticAssets(symbols(['IBM', 'F', 'AAPL'])) universe = StaticAssets(symbols(['IBM'])) pipe = Pipeline(columns={ 'ia': InvestmentToAssets(), 'ia_trend': InvestmentToAssetsTrend(mask=universe).trend }, screen=universe) engine = make_pipeline_engine() pipe_date = pd.to_datetime('2020-06-01', utc=True) stocks = engine.run_pipeline(pipe, pipe_date) print(stocks) #NO PERIODIC # ey ey_trend \ #2017-09-07 00:00:00+00:00 Equity(199059 [AAPL]) 0.055782 0.000066 # Equity(199623 [IBM]) 0.085316 -0.000013 # Equity(199713 [F]) 0.083262 0.000290
from sharadar.pipeline.factors import Exchange, Sector, IsDomesticCommonStock, MarketCap, Fundamentals, EV from zipline.pipeline.factors import AverageDollarVolume from sharadar.pipeline.universes import TradableStocksUS from sharadar.loaders.ingest_macro import ingest bundle = load_sharadar_bundle() def ingest_macro(): start = bundle.equity_daily_bar_reader.first_trading_day print("Adding macro data from %s ..." % (start)) print(ingest(start)) #ingest_macro() spe = make_pipeline_engine() pipe_start = pd.to_datetime('2021-01-04', utc=True) pipe_end = bundle.equity_daily_bar_reader.last_available_dt macro = symbols([ 'TR3M', 'TR6M', 'TR1Y', 'TR2Y', 'TR3Y', 'TR5Y', 'TR7Y', 'TR10Y', 'TR20Y', 'CBOND', 'INDPRO', 'INDPROPCT', 'PMICMP', 'UNRATE', 'RATEINF' ]) pipe = Pipeline(columns={ 'Close': USEquityPricing.close.latest, }, screen=StaticAssets(macro)) stocks = spe.run_pipeline(pipe, pipe_start, pipe_end) print(stocks.tail(30))