This notebook provides a simple example that demonstrates how to use FactSet fundamentals data in Pipeline. For more information on Pipeline see the Getting Started Tutorial and the Pipeline Tutorial.
from quantopian.pipeline import Pipeline
from quantopian.pipeline.data import USEquityPricing
from quantopian.pipeline.data.factset import Fundamentals
from quantopian.pipeline.factors import SimpleBeta, Returns
import quantopian.research as qr
# Latest market cap value.
mcap = Fundamentals.mkt_val.latest
# Latest annual sales value.
annual_sales = Fundamentals.sales_af.latest
# 2-week returns (used for a plot below).
returns = Returns(window_length=10)
columns = {
'annual_sales': annual_sales,
'log_annual_sales': annual_sales.log(),
'mcap_decile': mcap.deciles(),
'mcap': mcap,
'mcap_asof': Fundamentals.mkt_val_asof_date.latest,
'returns': returns,
}
pipe = Pipeline(
columns,
screen=(returns.percentile_between(1, 99) & mcap.notnull()),
)#, screen=(excess_return.notnull()))# & beta.notnull()))
result = qr.run_pipeline(pipe, '2016-01-15', '2017-09-21')
result.head()
import numpy as np
sales_data = result.loc[('2016-02-08', slice(None)), :]['log_annual_sales']
sales_data = sales_data.replace([np.inf, -np.inf], np.nan)
sales_data = sales_data.dropna()
ax = sales_data.plot(
kind='hist',
title='Annual Sales Distribution (US Equities)',
x='log_annual_sales',
bins=50,
color='purple'
);
ax.set_xlabel('Annual Sales (log)');
import seaborn as sns
ax = sns.boxplot(x='returns', y='mcap_decile', data=result, orient='h')