Midwest Trading Competition 2018: Case 3
Case Overview
The goal of this case is to practice predictive analytics & portfolio construction
on simulated stock returns data. Given a historical series of features known to be
predictive of stock returns, your task is to create buy/sell signals for stocks in
order to form the highest sharpe portfolio.
Data
See the following link for data files:
https://drive.google.com/file/d/1KSJpJU_kyC7J03y9TsMVpZourGFS9eub/view?usp=sharing
Dependencies
Install dependencies using "pip install -r requirements.txt"
You are welcome to add other dependencies to the requirements.txt file in your submission.
Directory Overview
The following important files are included in the directory:
- portfolio.py : a portfolio interface that you are tasked with implementing (see
docstring on file for more details) - sample_strategy.py : a sample implementation of the portfolio interface that would
be an acceptable submission. - stock_data/ : a directory where you should add the provided "ticker_data.csv" and
"factor_data.csv" files.
Key Pointers/Hints
Basic
- Prior to implementing a strategy, it is a good idea to do some research with the
raw data files, and search for any relationships that you can find. - When doing research, pay close attention to the industry that a stock is in.
- Each stock, identified by the ticker column, has a different relationship to the
provided features. The best performing strategies will train models that adjust
parameters/weights based on the ticker that they are predicting returns for. - Many of the functions mapping features to stock returns are quite simple; be wary
of overfitting, because there is a lot of noise in the data.
Advanced
-
The provided features have a strong relationship with some tickers, and a weaker
relationship with others. It is a good idea to allocate more weightage to tickers
that have a stronger relationship to the features by returning larger signal values
for these tickers. -
The covariance of assets in a portfolio has a strong impact on its sharpe ratio.
Assets with returns series that are uncorrelated form portfolios with higher
sharpe ratios than assets with returns series that are correlated. Keep this
in mind when deciding the signal strength to assign to each ticker.