fulifeng / Temporal_Relational_Stock_Ranking

Code for paper "Temporal Relational Ranking for Stock Prediction"
https://arxiv.org/pdf/1809.09441.pdf
GNU Affero General Public License v3.0
445 stars 167 forks source link

Code for the Relational Stock Ranking (RSR) model and the Temporal Graph Convolution in our paper "Temporal Relational Ranking for Stock Prediction", [paper].

Environment

Python 3.6 & Tensorflow > 1.3

Data

All data, including Sequential Data, Industry Relation, and Wiki Relation, are under the data folder.

Sequential Data

Raw data: files under the google_finance folder are the historical (30 years) End-of-day data (i.e., open, high, low, close prices and trading volume) of more than 8,000 stocks traded in US stock market collected from Google Finance.

Processed data: 2013-01-01 is the dataset used to conducted experiments in our paper.

To get the relation data, run the following command:

tar zxvf relation.tar.gz

Industry Relation

Under the sector_industry folder, there are row relation file and binary encoding file (.npy) storing the industry relations between stocks in NASDAQ and NYSE.

Wiki Relation

Under the wikidata folder, there are row relation file and binary encoding file (.npy) storing the Wiki relations between stocks in NASDAQ and NYSE.

Code

Pre-processing

Script Function
eod.py To generate features from raw End-of-day data
sector_industry.py Generate binary encoding of industry relation
wikidata.py Generate binary encoding of Wiki relation

Training

Script Function
rank_lstm.py Train a model of Rank_LSTM
relation_rank_lstm.py Train a model of Relational Stock Ranking

Run

To repeat the experiment, i.e., train a RSR model, downloaded the pretrained sequential embedding, and extract the file into the data folder.

NASDAQ

python relation_rank_lstm.py -rn wikidata -l 16 -u 64 -a 0.1

NYSE

python relation_rank_lstm.py -m NYSE -l 8 -u 32 -a 10 -e NYSE_rank_lstm_seq-8_unit-32_0.csv.npy

to enable gpu acceleration, add the flag of:

-g 1

Cite

If you use the code, please kindly cite the following paper:

@article{feng2019temporal,
  title={Temporal relational ranking for stock prediction},
  author={Feng, Fuli and He, Xiangnan and Wang, Xiang and Luo, Cheng and Liu, Yiqun and Chua, Tat-Seng},
  journal={ACM Transactions on Information Systems (TOIS)},
  volume={37},
  number={2},
  pages={27},
  year={2019},
  publisher={ACM}
}

Contact

fulifeng93@gmail.com