Team members: Aiusha Sangadiev, Andrey Poddubny, Kirill Stepanov, Kirill Bubenchikov
This repository contains the datasets and code needed to reproduce experiments from our project "Portfolio management of crypto assets".
- Python
- Numpy, pandas, scipy
- Matplotlib
- PyTorch
Setup:
- download all the necessary datasets from data folder (everything except for csvs);
- run .ipynbs on local machine \ colab, change data PATHs if needed:
Cryptoportfolio_management - main file, contains neural network and portfolio construction experiments;
Model_Best_Stock - contains best stock model;
Get_A_matrix_function - graph generation (there exists a pre-generated graph Amatrix for use already).
- directory "/data" contains datasets used in this projects;
- directory "/model" contains trained lstm weights (load as state dict);
- directory "/image" contains the image used in this readme.
In this project, we proposed a meethod of cryptocurrency portfolio optimization using long-short term memory (LSTM) recurrent neural network coupled with temporal graph embedding ("Temporal Relational Ranking" Feng et al., 2018) to produce return forecasts for the crypto tokens. Later, these forecasts were used in mean variance portfolio (risky portfolio) optimization and Black-Litterman model to produce the portfolio weights.
You can see the resulting portfolios in the picture above - risk-based portfolio optimization and Black-Litterman optimization based on neural network returns outperform other methods, including the Markowitz mean variance portfolio model.