This project investigates various methodologies for forecasting volatility within cryptocurrency markets. The primary objective is to identify the most effective models and understand the key factors influencing predicted volatility. The insights gained can be applied to algorithmic trading strategies, risk management frameworks, and the pricing of cryptocurrency options.
This individual project builds upon prior group work by exploring six distinct econometric and machine learning models to predict the volatility of six different cryptocurrencies across varying time resolutions. The performance of these models is rigorously compared using metrics such as Root Mean Squared Error (RMSE), Mean Absolute Percentage Error (MAPE), and the Diebold-Mariano (DM) Test.
A key finding of this study is the robustness of the traditional econometric forecasting method, Exponentially Weighted Moving Average (EWMA), which provided competitive results and served as a sufficient baseline against more advanced machine learning models.
Final report can be found here
crypto-rv-forecast/
├── data/ # Raw, processed, and external datasets
├── notebooks/ # Jupyter notebooks for data analysis, modeling, and experimentation
├── reports/ # Project documentation including proposal, literature review, and the final report
├── results/ # Model outputs, visualizations, and evaluation logs
├── environment.yml # Conda environment configuration file
├── requirements.txt # Pip requirements file (alternative to environment.yml)
└── README.md # Project overview and setup instructions (this file)This section guides you through the necessary steps to set up and run the project.
- Python 3.10 or higher
- Conda package manager (recommended) or pip
Using Conda (Recommended):
- Clone the repository:
git clone [https://github.com/zhyoung17/crypto-rv-forecast.git](https://github.com/zhyoung17/crypto-rv-forecast.git) cd crypto-rv-forecast - Create the Conda environment:
conda env create -f environment.yml conda activate crypto-rv-forecast
Alternatively, using venv and pip:
- Clone the repository:
git clone [https://github.com/zhyoung17/crypto-rv-forecast.git](https://github.com/zhyoung17/crypto-rv-forecast.git) cd crypto-rv-forecast - Create a virtual environment:
python3 -m venv env source env/bin/activate # On macOS and Linux # env\Scripts\activate # On Windows
- Install dependencies:
pip install -r requirements.txt
- Navigate to the
notebooksdirectory:cd notebooks - Start Jupyter Notebook or JupyterLab:
jupyter notebook # or jupyter lab - Open the desired notebooks and follow the instructions within.
This project utilizes publicly available datasets for analysis:
- Cryptocurrency Price History: Hourly resolution historical price data for Bitcoin (BTC), Ethereum (ETH), Solana (SOL), Ripple (XRP), and Dogecoin (DOGE). Data was obtained using the Yahoo Finance API.
For any questions, suggestions, or feedback regarding this project, please feel free to reach out to:
- Young Zhan Heng: GitHub
This individual project was completed by Young Zhan Heng, a student at the National University of Singapore. It builds upon the foundational work of a group project that included the following contributors:
I would like to express my sincere gratitude to all the educators who have guided me throughout my undergraduate education at NUS, and especially to my project mentor, Professor Huang Ta Cheng, for his invaluable guidance and support.