$10K Third-Party Challenge: Design a Factor for a Large US Corporate Pension We’ve been working with a large US corporate pension fund, who is extremely interested in the Quantopian community’s ability to come up with interesting new factors. They want you to find something that they can’t get anywhere else, so we are asking you to send us your most unique and innovative ideas. 15 winners will share in a total prize pool of$10,000 and will be eligible to potentially have their factors licensed for inclusion in an entirely new strategy!

Quantopian is interesting to this pension fund because of the diversity of ideas that come from our community. The pension fund would like to construct an entirely new strategy combining the best unique ideas that fit within their criteria and to provide diversification from their current sources of returns.

This challenge has a new element compared to previous Quantopian challenges: we have been provided with anonymized returns data for several existing strategies that the pension fund uses to evaluate potential new managers. We are providing this obfuscated data to you so that you can check its correlation with your factors. We'll be using this correlation in the final scoring criteria.

Strategy Objectives:

This challenge will have a wider set of constraints than previous ones, which should be interesting to many of you. We are looking for factors with the following properties:

• The portfolio must hold at least 100 assets in the QTU.
• There should be a daily turnover of 5% to 20%.
• There are no constraints on risk exposures or beta to SPY, but your exposures must be time-varying — these tilts should be moving daily.
• The specific Sharpe ratio over the first 5 days must be positive.

Requirements:

Post an alpha tearsheet as a reply to this thread to submit to the challenge. To do this, run a backtest on your factor from January 4, 2014, to August 29, 2018. Then run the alpha decay notebook attached to this thread to analyze your backtest results. Note that this notebook is custom for this challenge.

Selection Criteria:

Similar to previous challenges, we will only evaluate only your factor’s end-of-day holdings. For more examples of what we look for, check out our last live tearsheet reviews.

Please avoid combining too many ideas into a single factor. You are free to submit multiple ideas, but keeping them isolated lets us better find the most interesting submissions. The scoring will be based on a combination of the following:

• alpha decay analysis - if your strategy decays too quickly it is more difficult to implement.
• consistency between in-sample and out-of-sample testing.
• uniqueness to the provided benchmark dataset (you can view your uniqueness score at the top of the alpha decay plots).

Prizes:

A total of $10,000 will be awarded as follows: • 5 winners will receive$1,000 each
• 10 winners will receive \$500 each

You will be eligible to win multiple prizes if you have multiple unique ideas that are selected!

Important Dates:
The submission deadline for this challenge is March 3, 2020, at 9 a.m. EST.

We look forward to seeing what you produce!

Thomas Wiecki,
VP of Data Science at Quantopian

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.

431 responses

Here is a template algorithm from the insiders challenge you can use.

Model 0.1

Model #1

Model #2

Model #3

Model #4

Model #5

Model #6

Model #7

@Thomas,

If we want to include the Insiders dataset (two year holdout period), can we use the period January 4, 2014 - January 4, 2018 instead?

Very excited to have a go at this challenge!

@Joakim: Good question, yes absolutely. It won't matter for the scoring as we can run it internally on the full IS and OOS period, so the only disadvantage is to you in not being able to see part of the backtest period other users have access to.

model v0.1

Thomas, I posted this concern on the tearsheet thread -- this tearsheet doesn't factor in beta as a risk factor? So if I submit a short-only algorithm, for instance, the specific IR will be much lower than it should be.

model v0.2

Thanks @Anotony, I got mixed up on my notebooks!

factset estimates

alternative (self-serve) SHORT-ONLY

as mentioned earlier, the correct specific IR is closer to 2.0 than 1.0.

Factor was created > 6 months ago.

Model #8

Model #9

Model #10

Model #11

Model 1B (alternative ranking).

Model 2A.

Model 1

model 1

Model #1

Submission v1. Fixed some coding issues with my previous v1 submission to better reflect my economic hypothesis.

Thank you for all the submissions so far! One pattern I see here in submissions by Mikhai, Arun, and Emiliano is that the lower-left plot shows the portfolio to be equal weighted. We will probably punish that type of pattern and invite you to not rely on maximize_alpha or the optimizer at all. You can see the template algorithm I shared above for how to get to a more sensible weighting scheme. Also, see the tearsheet review of an earlier challenge for more info on what we are looking for: https://www.youtube.com/watch?v=r5FRV5XnY1M

@Thomas. Thanks for the review. I'll remove the optimizer constraints and resubmit.

looks bad over this time span...

Model 2B (alternative ranking).

Model 3A.

Model 3B (alternative ranking).

Model 3.1A (updated factors with slightly higher uniqueness score).

Model 4A.

alphaV

Model 5A.

Model 5B (alternative ranking).

Model 4B (alternative ranking).

Model 4.1B

technical

Model 6B (alternative ranking).

Model 7A - Average Daily Turnover: 21.03% (raw, un-smoothed).

Model 7B (alternative ranking) - Average Daily Turnover: 20.85% (raw, un-smoothed).

2005-2019 Model #2

2014-2018 Model #2

Model 1

Model 0.2

Model 7.1A (smoothed). Average Daily Turnover: 10.26%.

Model 7.1B (smoothed). Average Daily Turnover: 10.19%.

Model 9A.

Model 9B (alternative ranking).

Model 10A.

Model 10B (alternative ranking).

Model 11 - Value Factor Composite, each statistically robust (or so I've convinced myself anyway).

Model 12 - Growth Factor Composite, each statistically robust (or so I've convinced myself anyway).

Model 12.1 - Growth Factor Composite (alternative ranking)

Model 2

Strategy #1, looks like the universe is small based on the FS fields used.

Model1:

Model 13A - Three pure Insiders factors (each statistically significant on held out data).

I'm worried that my previous models were possibly overfit, so this and future models have increased focus on robustness, simplicity, and statistical significance.

Model 13B - Same factors; alternative ranking.

Model 14.

Strategy #2

Model 3

Model 1

Model: 3A

@Thomas,
Is it ok to use targetweights with some constraints? Graphs looks much nicer.

Model #12

Model #13

Model #14

Model#15

model #16

Model #17

Strategy #3 mixes various sentiments around the market

Model #18

Model #19

Model #20

Model 1

V6 - 2 Factors . Only uses FS Guidance and FS Estimates.

Submission v2

My entry 1

Model #21

Model #22

@all: The submissions so far look really great. One pattern however, that seems to run pretty common is one where the exposures are long momentum and short value and volatility. There is nothing wrong with that per se but note that being in a cluster of strategies with very similar exposure patterns will decrease your chances of winning. It also seems that this type of exposure pattern results in lower uniqueness scores.

If you find that pattern in your algorithm, do NOT use the optimizer to get rid of it, but rather realize that your idea might not be as unique as you might have hoped for and see if you can try things more off the beaten path.

Seems like if you have both low turnover and positive returns, that would translate to at least incidental momentum exposure. It's a tautology, no?

Low turnover and low alpha decay will lead to static exposures to factors. If the factor generates a return, it'll also be exposed to returns (momentum). If value generated a negative return over the time period, it will have been short value.

Is there a way around this? Perhaps by shrinking the portfolio to a subset of the universe where the exception to the rule prevails?

S&P is on a bull market. Value is not doing well

Model 1.

Model 2.

Low volatility equity returns

Model 2

Model #3

Model 2

Model 3

Model4.1

Model #23

Model #4

1. Is the @ operator in compute_uniq()specific to Qunatopian? I have never seen this used in NumPy or Pandas.

2. I don't think you need the line:longs = expos.loc[expos > 0] in get_max_median_position_concentration()and the similar line after it with shorts. I don't see it used anywhere.

3. You can get rid of the annoying red warning when you are fixing the risk loadings bug risk_returns.loc[risk_returns.value.idxmax(), 'value'] = 0 by adding
factor_returns.is_copy = False prior to the bug-fix line.

Model #5 - Single Value Factor

Model 17A

Model 4

Model 17B

Model 0.3

Model 0.4

Model 1.1

Model 1.2

Model 4 v2 -Alternate weighing

Wow, so many low turnover, high Sharpe ratio, low correlation strategies. It's actually quite discouraging. Unless this is a festival of overfits, congrats everybody for cracking the secrets to the stock market.

Model #24, using the optimizer

Model 1.3

Model 1.4

Single Factor - 1st Submission Model 1

Model A

Submission v2.1

Submission v2.2

Model7

Model8

Model 2 , based on Earnings Expectations

Submission v1.2

Submission v1.1

Modl 5 revised - Nonlinear ML

Model 6 - Nonlinear ML

Long Backtest of Model 6 (For illustration purposes only to show long term consistencies of performance under different market regimes/conditions).
From 01/04/2006 To 01/31/2019

Submission v3

Submission v3.1

Submission v3.2

Submission v4

Submission v4.1

Submission v4.2

Model 18 - Financials specific model.

Insider-only

Model #24 One factor

Single Factor 0

Model #25

Model #26

Model #27

Model #28

Model #29

Model #30

Model 12

Model 7 -Nonlinear ML

Model A

Model AA

I have a question regarding the following property:

• The portfolio must hold at least 100 assets in the QTU

My question:
Would it be ok if the portfolio on average holds 140 assets in the QTU and 10 assets outside the QTU?

Model 3

Model 8 - same inputs and ML algo as Model 7 but added another factor derived from a separate ML algo that determines which current state each individual asset is, where state defined as trending, mean reverting or neutral.

Model 8a - same inputs and ML algo as Model 7 but added another factor derived from a separate ML algo that determines which current market regime is at, where regime defined as trending, mean reverting or neutral.

Model 1

Model 2

Strategy 2a

Model 9

Model 10

Alpha Factor #2

another factor

Model 9 - ChaosTheory principles implemented in Nonlinear ML

Alpha #3

Here's the long backtest of Model 9 (01/04/2006 - 02/08/2019). This is an alternative validation process to see if the model in sample performance is consistent on data it has not seen before. It can give some sense of statistical confidence and verifies accuracy of generalization in the face of changing market regimes and conditions.

Model 2.1

Model 2.2

Model 3

Model 4

Model 2.3

Model 2.4

Model 2.5

Model 2.6

Model 2.7

Model 2.8

Model 5

Model 6

Model 7

Model 3.1

Model 3.2

ST BB V

My first submission

Submission v5

Submission v5.1

Submission v5.2

Submission v6

Submission v6.1

Submission v6.2

Submission v7

Submission v7.1

Submission v7.2

Submission v8

Submission v8.1

Submission v8.2

Model15

Model16

Model17

Model14

My first submission

alt 2.0

Model 10

Model 11

Model13

Model18

Model 12

Model19

Model 13

Submission 4/ 2 factors with data limited to 400-450 Stocks

Model v1, using some insider data.

Model 14

Model A1

Model B1

Model C1

Model D1

Model E1

Model F1

Model G1

sub 5/ Only 1 factor with limited data (not estimates)

Sub 5.1/ the same 1 factor above.

Fund V1

Model #31

Model #32

Model #33

Model #34

Model 16

Model 17

Model 18

Model 19

Model 20

Model #35

Model 4.0

Model 1.1

Model 21

Model 22

Model 23

Model 24

Model #36

Model #37

v1.12

6/ Only 1 factor.

Model 2

Model 1, Version 1

I am not sure what to make of the huge turnover spike around Dec 2015. On the backtest, it is a lot tamer, corresponding to an increase in turnover from 16% to 22%

Model 1

Pension-01-bt7--Insiders+ML
Only up to 02-21-2018 due to Insiders data availability.

v 1.1

Model 2

Submission

Model 1, Version 2

Avg_IRS = 2.41; uniqueness = 97.05; Avg_n_holdings = 279; Avg_turnover = 0.078; v3 Backtest 34

Submission

Strat #8, high turnover

Avg_IRS = 2.48; uniqueness = 97.19; Avg_n_holdings = 402; Avg_turnover = 0.080; v5 Backtest 1

Avg_IRS = 2.51; uniqueness = 96.90; Avg_n_holdings = 616; Avg_turnover = 0.073; v5 Backtest 3

Avg_IRS = 2.53; uniqueness = 97.06; Avg_n_holdings = 737; Avg_turnover = 0.076; v5 Backtest 6

Avg_IRS = 2.54; uniqueness = 97.36; Avg_n_holdings = 725; Avg_turnover = 0.086; v5 Backtest 7

Avg_IRS = 2.55; uniqueness = 97.40; Avg_n_holdings = 765; Avg_turnover = 0.087; v5 Backtest 9

Avg_IRS = 2.57; uniqueness = 97.42; Avg_n_holdings = 795; Avg_turnover = 0.089; v5 Backtest 11

Model 6.1

Model #6

model 1

v 1.13

v 1.14

v 1.15

Model 8

Model 9

Model 10

Model 11

Model 10

Model 3

Model #38

Model #39

Model #40

Full tearsheet

Pension-01-bt27--MultiFactors+ML
Only up to 02-21-2018 due to Insiders data availability.

v1,1

v1.5

v1.3

v1.8

Model 2, Version 1

Submission v9

Submission v10

Model 1 - Values

Model 11 - same inputs as Model 9 but equally weighted factor combination (non ML)

Model #7

Model 20A

Model 21A

Model 4

Model 5

Model 20B (alternative ranking)

Model 21B (alternative ranking)

Model #8

Model 1.0 based on earnings surprise

Model23

Model #9

I_LOVE_CATS NON-LINEAR A1

Model #10

Submission

old strategy

first one

Submission 1 V1

Submission 1 V2

Model 2, Version 2

Model24.1

Model 2

model 1.1

Model 1.2

Submission v11

Submission v12

Model 2 - T Strength

Model A

Model B

model 3

model 4

Submission

Submission v13

Submission v14

Submission v17

Submission v18

Submission

Submission v15

Submission v16

Model 4 V1

Model 19 V1

Model 4 V2

v2 Backtest 10

Model C

Model D

Model E

model 5

Model F

Model G

model 6

Model 15 V1

Sub 7

model 7

model 8

model 9

Sub 8

model 10

Model 1

Model 2

Model 3

Model 4

Model 5

Model 6

model 11

RCA Model 1

Model 7

Model 8

Model 9

model 12

Model 10

Sub 9

Model 3.3

Model 3.4

Model 3.5

Sub 10

Model 1.0

Model 1.1

Sub 11

sub 12

Submission

Pension-#2

Sub 13/ 1 lonely factor.

Sub 14

Model 16 V1

Model 15 V1

Model 2

Model 14

# 2

Model 4.1

Model 4.2

Model 4.3

model 1.5

Model 14 V2

Model 4.4

Model 4.5

Model 4.6

Model 4.7

Model 4.8

Model 13 V1

Model B

Model C

Model D

Model E

Model F

Model G

Model 16 V2

Model 8 V1

Model 12 V1

Model 11

Model 10

Model 8

Model 7

Model 5

Model 3 V2

ES bt2

EU3 bt2

CA probability weighted

Old factor without constraints

EG probability weighted

model 3

Submission 2

Submission 1 (edited)

Model 6

Model 11

Model 1

Model 2

Model 3

Model 4

Sub15/ 1 factor.

model 4

Sub 16

Model 4.9

Model 5.0

Submission I

Sub 17

Sub 18

Sub 18.1

Sub 18.2

Thanks everyone for submitting, the challenge is now officially closed!

Model 3: Tech IND cross. Sorry I was late.

Model 4 - TECH IND all.

Hi everyone!

There is an update for this challenge posted here. Join our LIVE winner announcement and tearsheet review webinar here on Monday, April 6 at 2 PM EST.

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.

Congrats once again to our winners!

• Kyle M
• Vedran Rusman
• Oleg
• Oleg
• Vedran Rusman
• Joakim Arvidsson (Cream Mongoose)
• Indigo Monkey
• Joakim Arvidsson (Cream Mongoose)
• Daniele Carabini
• Joakim Arvidsson (Cream Mongoose)
• Bjarke Riis Larsen
• Viridian Hawk