Hi Gary,
This is an interesting use-case of fetcher and has come up a few times before. My go-to strategy at this point is to call fetcher twice, once to populate the universe and another to keep track of what dates I want to keep my positions in the stocks (or indicate a phase_out_list) in this case. So your CSV should include the date at which you want to add it to the phase_out_list.
So an example would go like this:
def pre_func(df):
#: Create a copy of the date column
df['phase_out_date'] = df['date']
return df
def initialize(context):
#: Set my universe
fetch_csv(url,
pre_func=pre_func,
universe_func=my_universe)
#: Call the same url again because we need to keep track of our phase out dates
fetch_csv(url,
pre_func=pre_func)
context.phase_out_list = []
def handle_data(context, data):
#: If the current datetime matches the phase out time, add it to the context.phase_out_list
for stock in data:
if data[stock]['phase_out_list'] == get_datetime():
context.phase_out_list.append(stock)
If you can try modifying the template above to match your code, give it shot, and come back to me with any questions/errors so we can work it out
Disclaimer
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.