Skip to content

ExpectedReturns Factor Creation and Feature Engineering

Justin M. Shea edited this page Mar 29, 2024 · 7 revisions

Background

In this project, you shall reproduce work related to concepts referenced in Expected Returns: An Investors Guide to Harvesting Market Rewards by Antti Ilmanen.

From the Description;

This comprehensive reference delivers a toolkit for harvesting market rewards from a wide range of investments. Written by a world-renowned industry expert, the reference discusses how to forecast returns under different parameters. Expected returns of major asset classes, investment strategies, and the effects of underlying risk factors such as growth, inflation, liquidity, and different risk perspectives, are also explained. Judging expected returns requires balancing historical returns with both theoretical considerations and current market conditions. Expected Returns provides extensive empirical evidence, surveys of risk-based and behavioral theories, and practical insights.

Related work

You will use some functions found in popular R in finance packages such as FactorAnalytics and PerformanceAnalytics. While extremely helpful, these packages do not completely construct factors, variables, or features which is the aim of this project. Making this work open source stands to help a large cross section of those working in the industry as well as hobbyists who want to gain a deeper understanding of these methods.

Details of the Expected Returns project

This will be a series of functions to create a factor analysis framework researchers can use to input data, and construct any factor they wish.

Mentors will guide your understanding of the topic, support the learning of good practices in software development for quantitative finance using R, and provide quality market data for testing & validating these approaches.

Students engaged in this project will obtain a deeper understanding of:

    1. Developing R packages
    1. Creating variables for statistical or machine learning analysis
    1. Factor Analysis & active portfolio management
    1. How researchers can use a factor analysis framework to input data, and construct any factor they wish.

Repositories containing existing work useful for porting functions to R

Open source cross-sectional asset pricing repository

Replication Process in Finance

Approaches to Dynamic asset weighting examples

Hou, Kewei and Mo, Haitao and Xue, Chen and Zhang, Lu (2016). Which Factors?

Value-oriented equity selection, chapter 12.

Asness, Clifford and Frazzini, Andrea (2012). The devil in HML's details

Asness, Clifford S. and Moskowitz, Tobias J. and Pedersen, Lasse Heje (2013). Value and momentum everywhere

Commodity Momentum and trend following, Chapter 14.

Moskowitz, Tobias J and Ooi, Yao Hua and Pedersen, Lasse Heje (2012). Time Series Momentum

Balts, Kosowski (2012). Demystifying Time-Series Momentum Strategies: Volatility Estimators, Trading Rules and Pairwise Correlations

Balts, Kosowski (2013). Momentum Strategies in Futures Marketsand Trend-Following Funds

Ari Levine, Yao Hua Ooi, Matthew P. Richardson, Caroline Sasseville (2016). Commodities for the Long Run

...and more!

Steps for this project:

  • Read the texts referenced above
  • Get familiar with the ExpectedReturns project.
  • Create factor constructor functions for all papers listed above, ie feature engineering in ML parlance.
  • Add Unit tests using the tinytest R package, throughout the course of creating and testing your functions.

Mentors

Student-developer

Applying and tests

Firstly, please reach out to mentors directly with questions. We would love to chat with you and gauge your interest in the project.

Next, please do one or more of the following tests before contacting the mentors above. We encourage work on Linux Debian-based distributions.

  1. Pre-req: Please show show us a Github link, .R, .Rmd, or similar files which demonstrate an R project you've completed.

  2. Easy: Begin by downloading and building the ExpectedReturns and FactorAnalytics packages locally. List any build errors or issues you encounter on install, and see if you can work through those and get the package to build.

library(remotes)
install_github("JustinMShea/ExpectedReturns")
install_github("braverock/FactorAnalytics")
  1. Intermediate: Check the files in the vignettes directory and find one that doesn't build and identify bugs. Message the authors privately with issues you would open (don't post this in public).

  2. Harder: Reflect on the steps above. How do you interpret the statistical estimates of the vignettes that are working for you? In addition, was there any repetitious code in the vignette that may be written as a function for future use? If so please include it as an example.

Solutions of tests

Students, please post a link to your test results here.