## Combining Alpha Factors - Python Programming for Finance p.23

Hello and welcome to part 11 of the Python for Finance with Quantopian tutorials. In the previous tutorial, we covered analysis of a couple new factors, which we have deemed to be decent new alpha factors. What we want to do here now is combine all three alpha factors into a new factor, and then analyze that. To do this, we just need to slightly modify our previous alpha factor checker notebook:

```from quantopian.pipeline import Pipeline
from quantopian.research import run_pipeline
from quantopian.pipeline.filters.morningstar import Q1500US
from quantopian.pipeline.data.sentdex import sentiment
from quantopian.pipeline.data.morningstar import operation_ratios

def make_pipeline():
# Yes: operation_ratios.revenue_growth, operation_ratios.operation_margin, sentiment

testing_factor1 = operation_ratios.operation_margin.latest
testing_factor2 = operation_ratios.revenue_growth.latest
testing_factor3 = sentiment.sentiment_signal.latest

universe = (Q1500US() &
testing_factor1.notnull() &
testing_factor2.notnull() &
testing_factor3.notnull())

testing_factor = testing_factor1 + testing_factor2 + testing_factor3

testing_quantiles = testing_factor.quantiles(2)

pipe = Pipeline(columns={
'testing_factor':testing_factor,
'shorts':testing_quantiles.eq(0),
'longs':testing_quantiles.eq(1)},

screen=universe)
return pipe

result = run_pipeline(make_pipeline(), start_date='2015-01-01', end_date='2016-01-01')

Notice the changes made are adding 2 new `testing_factors`, then having the final `testing_factor` just as these three factors added together. This is a pretty crude way of doing things, but it should work just fine. From here, everything is actually the same.

```assets = result.index.levels[1].unique()
pricing = get_pricing(assets, start_date='2014-12-01', end_date='2016-02-01', fields='open_price')
len(assets)```
```import alphalens

alphalens.tears.create_factor_tear_sheet(factor = result['testing_factor'],
prices = pricing,
quantiles = 2,
periods = (3, 10, 30))```

Combining everything and running it:

```Ann. alpha	0.123	0.108	0.098
beta	-0.147	-0.186	-0.221
IC Mean	0.045	0.069	0.105```

This along with all of the analysis in Alphalens is a major improvement overall. The alpha here is higher than any single alpha factor, same with the IC.

The next tutorial:

• Intro and Getting Stock Price Data - Python Programming for Finance p.1

• Handling Data and Graphing - Python Programming for Finance p.2

• Basic stock data Manipulation - Python Programming for Finance p.3

• More stock manipulations - Python Programming for Finance p.4

• Automating getting the S&P 500 list - Python Programming for Finance p.5

• Getting all company pricing data in the S&P 500 - Python Programming for Finance p.6

• Combining all S&P 500 company prices into one DataFrame - Python Programming for Finance p.7

• Creating massive S&P 500 company correlation table for Relationships - Python Programming for Finance p.8

• Preprocessing data to prepare for Machine Learning with stock data - Python Programming for Finance p.9

• Creating targets for machine learning labels - Python Programming for Finance p.10 and 11

• Machine learning against S&P 500 company prices - Python Programming for Finance p.12

• Testing trading strategies with Quantopian Introduction - Python Programming for Finance p.13

• Placing a trade order with Quantopian - Python Programming for Finance p.14

• Scheduling a function on Quantopian - Python Programming for Finance p.15

• Quantopian Research Introduction - Python Programming for Finance p.16

• Quantopian Pipeline - Python Programming for Finance p.17

• Alphalens on Quantopian - Python Programming for Finance p.18

• Back testing our Alpha Factor on Quantopian - Python Programming for Finance p.19

• Analyzing Quantopian strategy back test results with Pyfolio - Python Programming for Finance p.20

• Strategizing - Python Programming for Finance p.21

• Finding more Alpha Factors - Python Programming for Finance p.22

• Combining Alpha Factors - Python Programming for Finance p.23
• Portfolio Optimization - Python Programming for Finance p.24

• Zipline Local Installation for backtesting - Python Programming for Finance p.25

• Zipline backtest visualization - Python Programming for Finance p.26

• Custom Data with Zipline Local - Python Programming for Finance p.27

• Custom Markets Trading Calendar with Zipline (Bitcoin/cryptocurrency example) - Python Programming for Finance p.28