quant-graph-stock

Quantitative Financeqlibrigorous codebase

Description

Graph-Based Multi-Stock Prediction on CSI300

Objective

Design and implement a graph-based stock prediction model that leverages inter-stock relationships through a stock-concept graph. Your code goes in custom_model.py. Three reference implementations (HIST, GATs, LightGBM) are provided as read-only.

Evaluation

Signal quality: IC, ICIR, Rank IC. Portfolio (TopkDropout, top 50, drop 5): Annualized Return, Max Drawdown, Information Ratio. Automatic via qlib's workflow.

Workflow Configuration

workflow_config.yaml lines 14-26 and 32-45 are editable. This covers the model plus dataset adapter/preprocessor configuration. Instruments, date ranges, train/valid/test splits, and evaluation settings are fixed.

Code

custom_model.py
EditableRead-only
1# Custom graph-based stock prediction model for MLS-Bench
2#
3# EDITABLE section: CustomModel class with fit() and predict() methods.
4# FIXED sections: imports and stock-concept graph loading below.
5import os
6import numpy as np
7import pandas as pd
8import torch
9import torch.nn as nn
10import torch.nn.functional as F
11from qlib.model.base import Model
12from qlib.data.dataset import DatasetH
13from qlib.data.dataset.handler import DataHandlerLP
14
15DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
workflow_config.yaml
EditableRead-only
1# Qlib workflow configuration for CSI300 graph-based stock prediction benchmark.
2# Used by run_workflow.py — matches Alpha360/CSI300 official benchmark settings.
3# Alpha360: 6 base features x 60 days = 360 features, flattened as DatasetH.
4
5qlib_init:
6 provider_uri: "~/.qlib/qlib_data/cn_data"
7 region: cn
8
9sys:
10 rel_path:
11 - "." # So custom_model.py is importable via module_path
12
13task:
14 model:
15 class: CustomModel

Additional context files (read-only):

  • qlib/qlib/model/base.py

Results

ModelTypeic csi300 icir csi300 rank ic csi300 rank icir csi300 annualized return csi300 max drawdown csi300 information ratio csi300 ic csi100 icir csi100 rank ic csi100 rank icir csi100 annualized return csi100 max drawdown csi100 information ratio csi100 ic csi300 recent icir csi300 recent rank ic csi300 recent rank icir csi300 recent annualized return csi300 recent max drawdown csi300 recent information ratio csi300 recent
gatsbaseline---------------------
gatsbaseline0.0500.3760.0600.4740.106-0.0671.3620.0470.2600.0520.304-0.014-0.203-0.2520.0290.2140.0450.3280.103-0.0441.324
gatsbaseline---------------------
gatsbaseline---------------------
histbaseline---------------------
histbaseline0.0530.3490.0660.4380.088-0.0511.2500.0520.2820.0580.328-0.001-0.171-0.0100.0360.2510.0520.3400.093-0.0591.194
histbaseline---------------------
histbaseline---------------------
lgbmbaseline---------------------
lgbmbaseline---------------------
lgbmbaseline0.0400.3080.0490.4020.020-0.1000.2800.0360.2200.0440.277-0.017-0.158-0.3340.0250.1820.0410.3020.020-0.0760.266
lgbmbaseline0.0410.3070.0500.4030.013-0.1160.1880.0370.2200.0460.278-0.014-0.163-0.2670.0240.1780.0410.3010.056-0.0620.781
lgbmbaseline---------------------
lgbmbaseline---------------------
lgbmbaseline0.0400.3080.0490.4020.020-0.1000.2800.0360.2200.0440.277-0.017-0.158-0.3340.0250.1820.0410.3020.020-0.0760.266
lgbmbaseline---------------------
lgbmbaseline---------------------
lgbmbaseline0.0400.3080.0490.4020.020-0.1000.2800.0360.2200.0440.277-0.017-0.158-0.3340.0250.1820.0410.3020.020-0.0760.266
anthropic/claude-opus-4.6vanilla0.0440.2970.0600.4190.045-0.0910.5850.0440.2230.0570.301-0.014-0.196-0.2290.0370.2830.0480.3610.116-0.0531.441
google/gemini-3.1-pro-previewvanilla0.0240.1530.0390.240-0.016-0.184-0.1640.0370.1860.0470.241-0.041-0.227-0.6560.0280.2060.0470.3290.075-0.0850.938
gpt-5.4-provanilla0.0310.2290.0410.3030.008-0.1160.1210.0270.1490.0390.204-0.048-0.200-0.8640.0200.1400.0370.2490.030-0.0610.448
anthropic/claude-opus-4.6agent0.0450.3480.0570.4130.037-0.0980.4780.0370.2100.0490.2590.003-0.2100.0430.0120.0770.0400.252-0.031-0.096-0.389
google/gemini-3.1-pro-previewagent0.0490.3540.0640.4630.083-0.0611.2390.0340.1760.0490.257-0.045-0.232-0.7700.0340.2660.0510.3660.033-0.0610.517
gpt-5.4-proagent0.0340.2660.0390.3250.021-0.1460.2610.0370.1990.0390.217-0.016-0.162-0.2890.0180.1290.0350.2570.041-0.0780.481

Agent Conversations