A solution to the QRT Data Challenge 2022

Hello all

Now that the challenge is complete, I’d like to share some of the work I did to solve this exciting task.
In a nutshell, I tried to optimize the output parameters given the constraints we had using pytorch’s built-in features:

  • a. I enforced A matrix orthogonality using product of Householder reflectors
  • b. When optimizing, I defined “a sample” as all the information for a time period with all returns for all stocks
  • c. I used CosineEmbeddingLoss torch as loss to optimize
  • d. Combining a, b, c makes it possible to reproduce a metric close to the one we want to maximize for the challenge
  • e. Finally, I used pytorch lightening and ray tune for hyperparameter optimization during cross-validation

This solution was ranked 2nd in the public leaderboard and 78th in the private leaderboard (RIP :cry:).
Overall, I see a bit of inconsistency between the two rankings for all competitors. My current understanding is that the challenge was complex (high variance in the data / high bias for the model), hence the gap between the proposed solutions is extremely close.

My work can be found in the github repository available here: GitHub - PirashanthR/QRT-Data-Challenge-2022: Sample solution for QRT data challenge 2022: Learning factors for stock market returns prediction

Do not hesitate if you have any questions.
Also, I personally would be happy to read your thoughts and conclusions about this data challenge.