Notebook
In [7]:
from quantopian.pipeline import Pipeline,CustomFactor
from quantopian.research import run_pipeline
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.pipeline.filters import QTradableStocksUS
import numpy as np
In [2]:
# Create a custom factor to calculate ratio between closing price of a US stocks and SPY
class ratio_SPY(CustomFactor):  
    inputs = [USEquityPricing.close]  
    window_length = 1  
    def compute(self, today, assets, out, price):  
        out[:]=price[-1]/price[-1][np.where(assets==8554)]
In [8]:
# # Create a custom factor to calculate 52-week highs on US stocks
class High52W(CustomFactor):
    inputs = [USEquityPricing.close]
    window_length = 252
    def compute(self, today, assets, out, price):
        out[:]=np.max(price,axis=0)
In [9]:
# Create a pipeline to print 
def make_pipeline():  
    # price stores last closing prices
    price= USEquityPricing.close.latest
    # calculates last value of the ratio
    Ratio_to_SPY = ratio_SPY()
    high=High52W()
    return Pipeline(columns={'Relative_SP500': Ratio_to_SPY ,  
                             'close_price':price,'52_Week_high':high},screen=QTradableStocksUS())

results=run_pipeline(make_pipeline(), '2019-05-02', '2019-05-02')
results
Out[9]:
52_Week_high Relative_SP500 close_price
2019-05-02 00:00:00+00:00 Equity(2 [ARNC]) 23.232889 0.073465 21.440
Equity(24 [AAPL]) 230.275805 0.721354 210.520
Equity(41 [ARCB]) 50.642984 0.103995 30.350
Equity(52 [ABM]) 37.940000 0.125445 36.610
Equity(53 [ABMD]) 449.830000 0.949356 277.060
Equity(62 [ABT]) 79.723723 0.269771 78.730
Equity(64 [GOLD]) NaN 0.043140 12.590
Equity(67 [ADSK]) 178.260000 0.596114 173.970
Equity(76 [TAP]) 69.901726 0.203468 59.380
Equity(110 [RAMP]) NaN 0.197129 57.530
Equity(114 [ADBE]) 289.380000 0.970635 283.270
Equity(122 [ADI]) 117.270000 0.392989 114.690
Equity(128 [ADM]) 50.983859 0.151042 44.080
Equity(154 [AEM]) 47.295722 0.140351 40.960
Equity(161 [AEP]) 85.990000 0.291084 84.950
Equity(166 [AES]) 18.254231 0.057943 16.910
Equity(185 [AFL]) 50.360000 0.172046 50.210
Equity(197 [AGCO]) 72.550000 0.240063 70.060
Equity(216 [HES]) 73.853068 0.216283 63.120
Equity(239 [AIG]) 54.732662 0.160602 46.870
Equity(247 [AIN]) 81.005693 0.265282 77.420
Equity(253 [AIR]) 49.529333 0.115166 33.610
Equity(266 [AJG]) 83.620000 0.282004 82.300
Equity(270 [AKRX]) 19.490000 0.009389 2.740
Equity(289 [MATX]) 40.931331 0.132333 38.620
Equity(300 [ALK]) 74.346986 0.212651 62.060
Equity(301 [ALKS]) NaN 0.097656 28.500
Equity(337 [AMAT]) 54.469693 0.148712 43.400
Equity(351 [AMD]) 32.720000 0.091831 26.800
Equity(353 [AME]) 88.140000 0.295916 86.360
... ... ... ...
Equity(51982 [CBLK]) NaN 0.046498 13.570
Equity(51987 [AMRX]) NaN 0.043414 12.670
Equity(51992 [PS]) NaN 0.120854 35.270
Equity(51994 [EQH]) NaN 0.076754 22.400
Equity(52026 [CPLG]) NaN 0.043106 12.580
Equity(52028 [WH]) NaN 0.194045 56.630
Equity(52030 [EVOP]) NaN 0.100672 29.380
Equity(52033 [GSKY]) NaN 0.054242 15.830
Equity(52038 [CGC]) NaN 0.173537 50.645
Equity(52045 [PRSP]) NaN 0.078605 22.940
Equity(52059 [CVIA]) NaN 0.015385 4.490
Equity(52064 [EVRG]) NaN 0.196752 57.420
Equity(52084 [VNE]) NaN 0.075384 22.000
Equity(52100 [AVLR]) NaN 0.198739 58.000
Equity(52119 [TCDA]) NaN 0.110883 32.360
Equity(52121 [EPRT]) NaN 0.070689 20.630
Equity(52155 [BV]) NaN 0.055613 16.230
Equity(52159 [BJ]) NaN 0.096183 28.070
Equity(52165 [DOMO]) NaN 0.126645 36.960
Equity(52182 [SDRL]) NaN 0.027344 7.980
Equity(52186 [AFIN]) NaN 0.033203 9.690
Equity(52187 [RUBY]) NaN 0.056229 16.410
Equity(52209 [ALLK]) NaN 0.128598 37.530
Equity(52211 [TLRY]) NaN 0.177871 51.910
Equity(52233 [BE]) NaN 0.049068 14.320
Equity(52241 [TENB]) NaN 0.108107 31.550
Equity(52242 [FOCS]) NaN 0.127090 37.090
Equity(52244 [BRY]) NaN 0.037863 11.050
Equity(52288 [CWK]) NaN 0.066954 19.540
Equity(52291 [SONO]) NaN 0.036527 10.660

2141 rows × 3 columns