Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Quantopian Lecture Series: Fundamental Factor Models

Modeling returns on fundamental factors is a tried and true way to establish predictive capacity over the market. We will go over how factor models are set up.

The lecture will be presented at this meetup. We will be releasing a video lecture as well, watch this thread for a link. Find all of our lectures hosted permanently with videos at www.quantopian.com/lectures.

Credit for the notebook goes to Evgenia 'Jenny' Nitishinskaya.

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.

10 responses

Finally got around to reading these - the use of BIL's price returns in lieu of risk-free rate seems a bit off, especially considering Research doesn't include dividends. Not sure what would be better, maybe just an assumed flat rate?

+1 for dividends. I understand the dividend data is available to the back-tester in some way. Is it possible to get access to it with the research platform for factor analysis, etc?

Sorry for the late response. I forget to set a reminder to respond to this thread. Both points are good. We're releasing updated notebooks being more explicit that using BIL for the risk free rate is only for the teaching example and should not be used in real research. It's an unfortunate drawback of the platform that we do not have access to actual risk free rates, and this is the substitute currently. I'm not sure off the top of my head about dividends in research, I'll try to get more info on that.

Sorry for the late response. I forget to set a reminder to respond to this thread. Both points are good. We're releasing updated notebooks being more explicit that using BIL for the risk free rate is only for the teaching example and should not be used in real research. It's an unfortunate drawback of the platform that we do not have access to actual risk free rates, and this is the substitute currently. I'm not sure off the top of my head about dividends in research, I'll try to get more info on that.

Took a look at the notebook and had some questions.

1.) When you query fundamental data, say PE for all stocks on 9/15/2015, is that number computed before the trading day or after the trade day?

2.) Why are you regressing the instantaneous fundamental data over past returns and not future returns? Isn't the idea to determine how well a fundamental factor predicts future returns? This wasnt made clear.

Miles, I can answer #1 for you.

Generally, we get updates from Morningstar at some point after market closes. We load and process the data typically in time for the next day's trading. So if it is available on 9/15, it was likely loaded prior to market open on 9/15, based on the previous market day's data.

Each fundamentals field has an associated "as_of" field. So you can append "_as_of" to the end of a field name and get the date to which the data applies (supplied by Morningstar) to assess the freshness of any particular data point.

Hope this helps,
Josh

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.

Miles, there is a bug in this notebook that you identified in 2). I'm working on releasing new versions which use the pipeline API to do factor computations much faster than the current notebooks, and without the bug you mentioned.

Thanks,
Delaney

Question with using Fundamental Factor and Momentum Factor:
The data come in with different frequency. The fundamental factors come in quarterly or semiannually. But momentum factor could be daily or weekly. How could I use a single predicting model that combine two type of factors together?

Thanks.

Generally factors are reduced to return streams, the background for this is Arbitrage Pricing Theory. The fundamental data is used to compute the factor returns by construction long-short portfolios over a ranking of assets. This means that you can actually get daily returns if you'd like.

If you're doing some other kind of model in which you rely on the fundamental values in their raw format, then the important thing to consider is the predictive horizon of each factor. Some factors are predictive of price in the next minute, some in the next day, and some in the next year. You need to use statistics to figure out which time horizon each factor is predictive over, and then construct an overall model/algorithm that uses the predictive timelines effectively. That might mean having several portfolios, each updated at different frequencies.

Assume you have a fundamental factor model which takes quarterly data. Does this mean it has the best predict power for the quarterly returns? If it's not, is there an efficient technique to find the best predicting horizon?