Notebook
In [23]:
from quantopian.pipeline.factors import AverageDollarVolume, RSI, SimpleMovingAverage, CustomFactor, BollingerBands
from quantopian.pipeline.filters import QTradableStocksUS
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.research import run_pipeline
import numpy as np
from quantopian.pipeline import Pipeline
from quantopian.pipeline.data.factset import EquityMetadata, Fundamentals, RBICSFocus
from quantopian.pipeline.classifiers.morningstar import Sector
from sklearn.svm import SVC, OneClassSVM, LinearSVC
from quantopian.pipeline.data.factset.estimates import (PeriodicConsensus, Actuals, ConsensusRecommendations as Consensus, LongTermConsensus, Guidance)
from quantopian.pipeline.data.psychsignal import aggregated_twitter_withretweets_stocktwits as st
from quantopian.pipeline.factors import Latest, DailyReturns, Returns
import pandas as pd
from sklearn.preprocessing import MinMaxScaler #, StandardScaler
from quantopian.pipeline.data.sentdex import sentiment
from sklearn import preprocessing
from scipy.stats.mstats import winsorize
import statsmodels.api as smx
In [24]:
class Value_N_Days_Ago(CustomFactor):   
    """
    Finds the value of the input N days ago. The input can be either a dataset or a factor.
    Set the window_length to the number of days N to look back.
    """
    def compute(self, today, assets, out, inputs):
        out[:] =  inputs[0]
In [25]:
def make_pipeline():
    
#Built-in    

    rets25d = Returns(window_length=25, mask=QTradableStocksUS())
   
    
#Manual    
    
    close_latest = USEquityPricing.close.latest
    
    close_25d_ago = Value_N_Days_Ago(inputs=[USEquityPricing.close], window_length=25)
    
    rets = (close_latest - close_25d_ago) / (close_25d_ago)
    
    
# Rank Returns in Ascending Order (False) or Decending Order (True)

    ranked_rets = rets25d.rank(ascending=False , mask = QTradableStocksUS())
    
#Test for Difference between methods    
    
    difference = rets25d - rets
    
    
    pipe = Pipeline(
        columns={
                'rets25d': rets25d,
                'ranked_rets': ranked_rets,
                'rets_manual': rets,
                'difference': difference

        },
        screen = QTradableStocksUS()
    )
    
    return pipe

#Run the pipeline to view output securities:
run_pipeline(make_pipeline(), '2017-01-24', '2017-05-24')

Pipeline Execution Time: 0.76 Seconds
Out[25]:
difference ranked_rets rets25d rets_manual
2017-01-24 00:00:00+00:00 Equity(2 [ARNC]) 0.0 544.0 0.037460 0.037460
Equity(24 [AAPL]) 0.0 549.0 0.036868 0.036868
Equity(31 [ABAX]) 0.0 1892.0 -0.105283 -0.105283
Equity(41 [ARCB]) 0.0 1135.0 -0.008237 -0.008237
Equity(52 [ABM]) 0.0 1054.0 -0.001640 -0.001640
Equity(53 [ABMD]) 0.0 1687.0 -0.059830 -0.059830
Equity(62 [ABT]) 0.0 490.0 0.043431 0.043431
Equity(64 [GOLD]) 0.0 30.0 0.271949 0.271949
Equity(67 [ADSK]) 0.0 604.0 0.033198 0.033198
Equity(76 [TAP]) 0.0 1203.0 -0.013131 -0.013131
Equity(84 [ACET]) 0.0 1822.0 -0.082128 -0.082128
Equity(110 [RAMP]) 0.0 1562.0 -0.044118 -0.044118
Equity(114 [ADBE]) 0.0 382.0 0.056047 0.056047
Equity(122 [ADI]) 0.0 1173.0 -0.011276 -0.011276
Equity(128 [ADM]) 0.0 1311.0 -0.022086 -0.022086
Equity(154 [AEM]) 0.0 18.0 0.293085 0.293085
Equity(161 [AEP]) 0.0 916.0 0.009659 0.009659
Equity(166 [AES]) 0.0 1616.0 -0.049958 -0.049958
Equity(168 [AET]) 0.0 1607.0 -0.048930 -0.048930
Equity(185 [AFL]) 0.0 1016.0 0.001299 0.001299
Equity(197 [AGCO]) 0.0 228.0 0.081278 0.081278
Equity(216 [HES]) 0.0 1843.0 -0.088066 -0.088066
Equity(239 [AIG]) 0.0 1166.0 -0.010876 -0.010876
Equity(247 [AIN]) 0.0 1150.0 -0.009030 -0.009030
Equity(253 [AIR]) 0.0 1973.0 -0.142265 -0.142265
Equity(266 [AJG]) 0.0 542.0 0.037682 0.037682
Equity(270 [AKRX]) 0.0 1124.0 -0.007389 -0.007389
Equity(289 [MATX]) 0.0 1701.0 -0.062022 -0.062022
Equity(300 [ALK]) 0.0 609.0 0.032845 0.032845
Equity(301 [ALKS]) 0.0 1433.0 -0.032292 -0.032292
... ... ... ... ... ...
2017-05-24 00:00:00+00:00 Equity(49608 [MTCH]) 0.0 361.0 0.091868 0.091868
Equity(49610 [SQ]) 0.0 44.0 0.258803 0.258803
Equity(49615 [DLTH]) 0.0 1087.0 0.008354 0.008354
Equity(49630 [CSRA]) 0.0 956.0 0.018809 0.018809
Equity(49655 [TEAM]) 0.0 270.0 0.112402 0.112402
Equity(49666 [AGR]) 0.0 863.0 0.026685 0.026685
Equity(49700 [FCE_A]) 0.0 1200.0 0.000000 0.000000
Equity(49727 [GCP]) 0.0 1554.0 -0.036278 -0.036278
Equity(49736 [EDIT]) 0.0 1895.0 -0.101205 -0.101205
Equity(49751 [AVXS]) 0.0 1671.0 -0.053752 -0.053752
Equity(49760 [WBT]) 0.0 811.0 0.031201 0.031201
Equity(49877 [PNK]) 0.0 1394.0 -0.017233 -0.017233
Equity(49883 [LSXM_K]) 0.0 1012.0 0.014817 0.014817
Equity(49891 [MGP]) 0.0 1235.0 -0.003190 -0.003190
Equity(49908 [RRR]) 0.0 570.0 0.057880 0.057880
Equity(49925 [NGVT]) 0.0 1263.0 -0.005050 -0.005050
Equity(49959 [SITE]) 0.0 600.0 0.054273 0.054273
Equity(50002 [COTV]) 0.0 1766.0 -0.070777 -0.070777
Equity(50003 [USFD]) 0.0 428.0 0.078403 0.078403
Equity(50004 [GMS]) 0.0 1508.0 -0.030117 -0.030117
Equity(50040 [ATKR]) 0.0 1995.0 -0.151694 -0.151694
Equity(50049 [FTV]) 0.0 693.0 0.043659 0.043659
Equity(50070 [HTZ]) 0.0 2094.0 -0.377185 -0.377185
Equity(50077 [TWLO]) 0.0 2050.0 -0.195591 -0.195591
Equity(50119 [TRTN]) 0.0 268.0 0.112533 0.112533
Equity(50132 [APFH]) 0.0 162.0 0.152713 0.152713
Equity(50138 [PI]) 0.0 40.0 0.271329 0.271329
Equity(50143 [PTHN]) 0.0 24.0 0.360456 0.360456
Equity(50181 [FHB]) 0.0 1282.0 -0.006527 -0.006527
Equity(50194 [MEDP]) 0.0 1926.0 -0.113032 -0.113032

176590 rows × 4 columns