Notebook

Testing different methods of EV/EBITDA

In [1]:
from datetime import datetime, timedelta
from time import time

import numpy as np
import pandas as pd
import talib

from alphalens.tears import create_full_tear_sheet, create_information_tear_sheet, create_returns_tear_sheet
from alphalens.utils import get_clean_factor_and_forward_returns
from quantopian.pipeline import classifiers, factors, filters
from quantopian.pipeline import Pipeline
from quantopian.pipeline.classifiers.fundamentals import Sector
from quantopian.pipeline.data import factset
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.pipeline.data import Fundamentals
from quantopian.pipeline.filters import QTradableStocksUS
from quantopian.pipeline.factors import CustomFactor, Returns
from quantopian.research import run_pipeline
In [2]:
START = pd.Timestamp('2003-03-12')
END = pd.Timestamp('2003-03-12')
In [3]:
class CalculateFromMorningstar(CustomFactor):
    inputs = [Fundamentals.ebitda,
              Fundamentals.enterprise_value]
    window_length = 200
    
    def compute(self, today, assets, out, ebitda, ev):
        # the earnings values are all quarterly, so add up the past 4 quarters
        annual_ebitda = ebitda[-1] + ebitda[-64] + ebitda[-127] + ebitda[-190]
        out[:] = ev[-1] / np.where(annual_ebitda == 0.0, 1.0, annual_ebitda)
        
class CalculateFromFactset(CustomFactor):
    inputs = [factset.Fundamentals.ebitda_oper_qf,
              factset.Fundamentals.entrpr_val_qf]
    window_length = 200
    
    def compute(self, today, assets, out, ebitda, ev):
        # the earnings values are all quarterly, so add up the past 4 quarters
        annual_ebitda = ebitda[-1] + ebitda[-64] + ebitda[-127] + ebitda[-190]
        out[:] = ev[-1] / np.where(annual_ebitda == 0.0, 1.0, annual_ebitda)
In [8]:
ev_ebitda_factset = factset.Fundamentals.entrpr_val_ebitda_oper_qf.latest
ev_ebitda_morningstar = Fundamentals.ev_to_ebitda.latest

pipe = Pipeline(
    columns={
        'ev_ebitda_factset': ev_ebitda_factset,
        'ev_ebitda_factset_calculated': CalculateFromFactset(),
        'ev_to_ebitda_morningstar': ev_ebitda_morningstar,
        'ev_to_ebitda_morningstar_calculated': CalculateFromMorningstar(),
    },
    screen=QTradableStocksUS() & ev_ebitda_factset.notnull() & ev_ebitda_morningstar.notnull()
)
In [9]:
r = run_pipeline(pipe, start_date=START, end_date=END)
In [10]:
print r.head(20)
                                              ev_ebitda_factset  \
2003-03-12 00:00:00+00:00 Equity(2 [ARNC])             11.30130   
                          Equity(24 [AAPL])             6.76374   
                          Equity(41 [ARCB])             6.31976   
                          Equity(60 [ABS])              4.68852   
                          Equity(62 [ABT])             13.57940   
                          Equity(67 [ADSK])            15.88970   
                          Equity(85 [ACF])             17.51280   
                          Equity(88 [ACI])              9.68476   
                          Equity(110 [RAMP])            8.19222   
                          Equity(114 [ADBE])           17.73200   
                          Equity(122 [ADI])            17.31710   
                          Equity(128 [ADM])             9.13503   
                          Equity(154 [AEM])            50.83260   
                          Equity(161 [AEP])             8.86392   
                          Equity(197 [AGCO])           10.44930   
                          Equity(205 [AGN])            17.68580   
                          Equity(209 [AM])              4.30494   
                          Equity(266 [AJG])            11.00050   
                          Equity(272 [AL])              6.72150   
                          Equity(300 [ALK])             8.42968   

                                              ev_ebitda_factset_calculated  \
2003-03-12 00:00:00+00:00 Equity(2 [ARNC])                       10.511468   
                          Equity(24 [AAPL])                       6.763739   
                          Equity(41 [ARCB])                       6.319763   
                          Equity(60 [ABS])                        5.094801   
                          Equity(62 [ABT])                       13.579393   
                          Equity(67 [ADSK])                      15.889747   
                          Equity(85 [ACF])                       17.512799   
                          Equity(88 [ACI])                        9.684766   
                          Equity(110 [RAMP])                      8.192214   
                          Equity(114 [ADBE])                     17.877281   
                          Equity(122 [ADI])                      17.317067   
                          Equity(128 [ADM])                       9.135032   
                          Equity(154 [AEM])                      50.832445   
                          Equity(161 [AEP])                       8.863914   
                          Equity(197 [AGCO])                     10.449301   
                          Equity(205 [AGN])                      17.685824   
                          Equity(209 [AM])                        6.562922   
                          Equity(266 [AJG])                      34.156840   
                          Equity(272 [AL])                        6.721473   
                          Equity(300 [ALK])                       8.429681   

                                              ev_to_ebitda_morningstar  \
2003-03-12 00:00:00+00:00 Equity(2 [ARNC])                     10.6733   
                          Equity(24 [AAPL])                    27.5822   
                          Equity(41 [ARCB])                     5.5831   
                          Equity(60 [ABS])                      2.5654   
                          Equity(62 [ABT])                      5.9928   
                          Equity(67 [ADSK])                    18.9164   
                          Equity(85 [ACF])                      7.5408   
                          Equity(88 [ACI])                      8.6791   
                          Equity(110 [RAMP])                    4.9727   
                          Equity(114 [ADBE])                   15.6037   
                          Equity(122 [ADI])                    19.9535   
                          Equity(128 [ADM])                     8.3707   
                          Equity(154 [AEM])                    39.7128   
                          Equity(161 [AEP])                     7.6257   
                          Equity(197 [AGCO])                   12.5756   
                          Equity(205 [AGN])                    50.0658   
                          Equity(209 [AM])                      4.3954   
                          Equity(266 [AJG])                    10.0158   
                          Equity(272 [AL])                      4.7239   
                          Equity(300 [ALK])                     5.4009   

                                              ev_to_ebitda_morningstar_calculated  
2003-03-12 00:00:00+00:00 Equity(2 [ARNC])                              10.736209  
                          Equity(24 [AAPL])                              9.329290  
                          Equity(41 [ARCB])                              8.923893  
                          Equity(60 [ABS])                               2.611344  
                          Equity(62 [ABT])                               6.674123  
                          Equity(67 [ADSK])                             21.622878  
                          Equity(85 [ACF])                               8.450287  
                          Equity(88 [ACI])                               8.679055  
                          Equity(110 [RAMP])                             4.972778  
                          Equity(114 [ADBE])                            16.154567  
                          Equity(122 [ADI])                             20.341586  
                          Equity(128 [ADM])                              6.864860  
                          Equity(154 [AEM])                             39.712815  
                          Equity(161 [AEP])                              8.186911  
                          Equity(197 [AGCO])                            12.295355  
                          Equity(205 [AGN])                             44.600106  
                          Equity(209 [AM])                               4.360898  
                          Equity(266 [AJG])                             10.809683  
                          Equity(272 [AL])                               5.578996  
                          Equity(300 [ALK])                              5.389304  
In [ ]: