Skip to content

MatiGrinberg/Equity_Prediction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

Dense Neural Networks to forecast stock returns

For obvious reasons, I won't describe the specific architecture and feature engineering applied (nor allow to deduce it from the code). I'd rather keep it to myself. However, I will show the results obtained from it.

There's no survivorship nor look-ahead bias, and it's been tested live to guarantee the validity of its results.

The (exclusively) stocks in the portfolio, with no use of leverage and long-only positions, are equally weighted to obtain the result of such portfolio in each period.

The prediction strategy has been trained and tested from short to long-term horizons (1/3/6/12 months into the future) for almost each month from 1991 till 2022. So there are 4 different models, one trained to predict 1 month ahead, another for 3 months ahead, and so on.

The graphs shown below correspond to 1 model (3m horizon), as it would be too extensive to show graphs for each individual horizon. Even though graphs would be available for each of the 4 different horizons, only one is shown. However, some of the results from these 4 strategies plus the combination of them will be detailed further below the graphs.

The graphs below is just 1 example that isn't the best strategy, that is the one with the best results (in terms of IR, annual return, lowest losses).

Graphs (for 3m horizon predictions of individual stocks that make up an equally-weighted portfolio)

The correlation between my portfolio and benchmark returns is yet positive, but lower than 1; therefore, its performance isn't (highly) tied to market movements.

Ind_B Dif_Per
Ind_P 0.61 0.88
Ind_B 1.00 0.17

These 2 graphs show I beat the benchmark (SPX) more than half of the time. I have negative returns almost a third of the time. I have an IR of 0.2 (vs SPX), an annualized return of 13%, and a maximum loss of 46% (in a 3-month period).

image image

As the probability of including a stock in my portfolio increases, so does the return 3m ahead.

image

The two graphs that follow show the evolution of the portfolio as I test its performance over time and accumulate its returns from each date.

image image

(annualized) Information Ratios (IR vs SPX)

"Only" refers to vanilla portfolios, e.g., picking stocks thinking 1 or 3m ahead and measuring their performance versus SPX in that same timeframe (used for the prediction). So, there's a coincidence in timeframe between prediction and turnover.
"Any_Pred" means a portfolio made up of stocks picked by any of the 4 models (either by the model forecasting stocks 1/3/6/12m ahead), but the turnover and therefore its performance measurement could be every 1m or 3m. Remember, all stocks, no matter if they were picked by one model or the other, are equally weighted.
"Target_3_Turn_1" is a portfolio made up of stocks picked via prediction 3m ahead, but with a monthly turnover.
"Avg_Strategy" assumes that every month, I allocate 25% of my portfolio weight to each of the 4 possible strategies, which, in turn, make their own portfolios with their individual 1m returns.

Strategy IR vs SPX
Only_1_SPX 0.2
Only_3_SPX 0.2
Any_Pred_1_SPX 0.3
Any_Pred_3_SPX 0.3
Targ_3_Turn_1_SPX 0.2
Avg_Strat_1m_SPX 0.6

These are all the types of strategies, but obviously, there are more results to show that I'll skip for now, as I think this is sufficient to prove the validity of my technique.

About

Dense Neural Networks to forecast stock returns

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published