Back to Community
How to get single stock price data in CustomFactor calculating

Hi, I want to create a custom factor whose calculation is based on SPY price data.
For example: Asset = USEquityPricing.close.latest # the close price of the whole universe
Underlying = USEquityPricing.close[sid(8554)] #this can not be achieved which is also my question
Px = Underlying/Asset

Now I am trying to use customfilter to calculate spy's price as a factor, but when I try to use this factor to calculate "Underlying/Asset" the error appears. I think it's because these two factors have different dimension. The Asset has whole stocks price but Underlying only contain spy's price so they can't be matched to calculate.

So I wonder if there is a way to get the single stocks' price data in pipeline just like "USEquityPricing.close[sid(8554)] "

Loading notebook preview...
Notebook previews are currently unavailable.
2 responses

"I wonder if there is a way to get the single stocks' price data in pipeline just like "USEquityPricing.close[sid(8554)]".

One can create a custom factor to do this. Something like...

import numpy as np
class SPY_Close_Price(CustomFactor): 
 One can use any inputs from any assets and set any factor outputs based upon them. 
 In this case, simply return the close price of SPY for every asset. 
 inputs = [USEquityPricing.close] 
 window_length = 1 
 def compute(self, today, assets, out, close):
 spy_index = np.where(assets == 8554) # 8554 is the SID of SPY 
 # index -1 gets the latest price row. spy_index gets the SPY column. 
 out[:] = close[-1, spy_index] 

Hi Dan Whitnable,

Great! Thanks so much for your help!

Last Articles

e mini s&p 500 historical data what is a price earning ratio how to calculate beta for a portfolio yahoo finance s&p 500 historical richard dennis turtle trading system s&p 500 by market cap list list of stocks in s&p 500 modern portfolio theory efficient frontier 200 day moving average calculator what does too many redirects mean stock symbol lookup by cusip what do the initials rsi stand for