Example #1
0
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
Example #2
0
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
Example #3
0
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)
Example #7
0
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
Example #8
0
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))