Official code - M2VN(Multi-Modal Learning Network for Volatility Forecasting)
M2VN: Multi-Modal Learning Network for Volatility Forecasting
This repository contains the official implementation of M2VN, a lightweight yet effective architecture that combines price, volume, and news embeddings for equity–market volatility prediction. The code accompanies our paper submitted to a ICAIF.
Repository Overview
| Path / file | Purpose | |-------------|---------| | data_provider/ | Data loading and on-the-fly preprocessing | | exp/ | Experiment settings and logging utilities | | layers/ | Custom PyTorch layers used by M2VN | | models/ | Model definition and loss functions | | runfile/ | Shell scripts for training / inference (run_final.sh) | | utils/ | Miscellaneous helpers | | Step 1–3 Aggregate Results.ipynb | Notebooks for reproducing paper tables | | run.py | Entry point if you prefer python run.py over the shell script | | LICENSE | License information (MIT) |
Quick Start
- Install packages
pip install -r requirements.txt # Provided in repo
- Download the dataset
After downloading, place the extracted folder inside e.g., (dataset/KO4.csv)
- Train & evaluate
bash ./runfile/run_final.sh
The script trains M2VN with default hyper-parameters and writes:
* Checkpoints → checkpoints/ * Final metrics (CSV) → results_test/
Reproducing Paper Results
After training finishes, open the Jupyter notebooks in the repo root:
| Notebook | What it does | | ----------------------------------------- | ---------------------------------------------- | | Step 1 Aggregate Results.ipynb | Get Main model results | | Step 2 Aggregate Results Vol(non).ipynb | W/O Volume | | Step 3 Aggregate Results Vol-sent.ipynb | W/ News Sentiment |
Running the cells in order will produce the tables reported in the paper.
Citation
If you find M2VN useful in your work, please consider citing:
@inproceedings{Anonymous,
title = {M2VN: Multi-Modal Learning Network for Volatility Forecasting},
author = {Anonymous},
booktitle = {ICAIF},
year = {2025}
}
License
This project is licensed under the MIT License – see the LICENSE file for details.
Contact
Questions or suggestions? Open an issue or reach out to Anonymous.