Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Example of creating an AssetFinder instance to run Pipeline using custom local data ?

Hi,
I am trying to run backtests on custom local data. I need to take into account of withholding taxes so custom data is a must. The code I have tried can be found below.

import pandas as pd  
import numpy as np  
from six import viewkeys  
from zipline.api import (  
    attach_pipeline,  
    date_rules,  
    symbols,  
    order_target_percent,  
    pipeline_output,  
    record,  
    schedule_function,  
    set_commission,  
    set_slippage,  
    slippage,  
    set_long_only,  
)
from zipline.pipeline import Pipeline,CustomFactor  
from zipline.pipeline.factors import SimpleMovingAverage, AnnualizedVolatility  
import pandas as pd  
from datetime import datetime, timedelta  
import pytz  
import numpy as np  
from data import bloomberg, benchmark, preProcess  
import matplotlib.pyplot as plt  
from zipline.algorithm import TradingAlgorithm  
from zipline.finance.trading import TradingEnvironment  
from zipline.finance import commission, trading  
from zipline.utils.factory import create_simulation_parameters  
from zipline.pipeline.data.equity_pricing import USEquityPricing  
from zipline.pipeline.loaders.frame import DataFrameLoader  
from zipline.utils import tradingcalendar as tcal  
from zipline.pipeline.loaders import USEquityPricingLoader  
from zipline.pipeline.data import Column  
from zipline.pipeline.data import DataSet  
from zipline.pipeline.engine import SimplePipelineEngine  
from zipline.utils.calendars import get_calendar

panel = pd.read_hdf("panel_Universe.h5") ### panel is a pandas multiindex object  
panel.minor_axis = ['last_price','total_last_price','volume','pct_float','market_cap','turnover','free_float_market_cap','close']  
### panel has 8 minor axes, I will use only "close" for simplicity

assets = list(panel.items) ### These are the tickers that I want to pass to the Pipeline

close_df = panel.minor_xs('close')  
trading_calendar = get_calendar('LSE')

class MyDataSet(DataSet):  
    close = Column(dtype=float)  
    free_float_market_cap = Column(dtype=float)  
    volume = Column(dtype=float)  
    last_price = Column(dtype=float)

loaders = {MyDataSet.close: DataFrameLoader(MyDataSet.close, close_df)}

def my_dispatcher(column):  
    return loaders[column]

def choose_loader(column):  
    return my_dispatcher(column)

engine = SimplePipelineEngine(  
    get_loader=choose_loader,  
    calendar=trading_calendar.all_sessions,  
    asset_finder=assets,  
)

This is where I'm stuck since SimplePipelineEngine's asset_finder parameter requires an AssetFinder object which I do not know how to create. Basically I want to map the "assets" above into this AssetFinder object but I got nothing from the documentation.
I would greatly appreciate any help.

Sincerely,