2026 清华大学大数据挑战赛(THU-BDC) 的核心任务:在沪深300成分股中,每日选出至多5只股票,使其未来5日加权收益率最大化。
| 项目 | 说明 |
|---|---|
| 选股范围 | 沪深300成分股(300只) |
| 输入数据 | 每只股票过去60个交易日的量价数据 |
| 输出格式 | result.csv(stock_id, weight 两列,权重之和为1) |
| 评分公式 | final_score = (预测Top5收益 - 随机收益) / (真实Top5收益 - 随机收益) |
final_score 越接近1越好。赛事方通过 Docker 镜像以批处理方式自动评分。
CNB 容器基于 Ubuntu 24.04 LTS,通过根目录 Dockerfile 构建并部署在 CNB 云开发平台上。包含 Python 3.12、数据科学工具链、code-server IDE 及 Docker 构建/提交能力。
| 工具 | 用途 |
|---|---|
| Python 3.12 | 核心运行时,含 venv / dev / pip 模块 |
| uv | Rust 编写的高性能包管理器,比 pip 快 10-100x |
| git | 版本控制 |
| build-essential | GCC/G++,编译 C 扩展所需 |
| Docker CLI | 构建与导出赛事提交镜像 |
| TA-Lib C 库 0.6.4 | 技术指标计算的系统依赖(已预编译安装) |
以下库已安装在独立虚拟环境 /opt/venv 中,已加入 PATH,开箱即用:
| 库 | 用途 |
|---|---|
| numpy | 数值计算 |
| pandas | 数据处理 |
| scikit-learn | 机器学习 |
| matplotlib / seaborn | 可视化 |
| requests | HTTP 请求 |
| jupyter / ipykernel | 交互式 Notebook |
| tqdm | 进度条 |
已预装以下扩展:
通过 settings.json 预设:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.black-formatter",
"python.defaultInterpreterPath": "/usr/bin/python3",
"editor.fontSize": 14,
"editor.fontFamily": "'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Consolas', monospace",
"workbench.colorTheme": "Default Dark+"
}
各项目可在自己的目录下用 uv 管理独立依赖,互不干扰:
cd THU-BDC2026
uv sync # 按 pyproject.toml 安装,自动创建 .venv/
source .venv/bin/activate # 激活项目虚拟环境
/opt/venv 中的通用库(numpy、pandas 等)已全局可用,无需重复安装。
容器内已预装 Docker CLI(daemon 由 CNB 平台提供):
docker build -t my-image .
docker compose up # 本地验证
docker save -o out.tar my-image:latest # 导出
docker compose up 确认容器可正常运行并生成 result.csvdocker save -o 队伍名称.tar bdc2026:latest.tar 放入 test/tars/,运行 python test/test.py 模拟赛事评分赛事方提供了一个基于 StockTransformer 的排序学习选股示例(THU-BDC2026/ 目录),参赛者可在此基础上进行改进,也可完全替换为自己的方案。
output/result.csvTHU-BDC2026/ ├── code/src/ │ ├── config.py # 超参数配置 │ ├── model.py # StockTransformer 模型定义 │ ├── train.py # 训练入口 │ ├── predict.py # 推理入口 │ └── utils.py # 特征工程 + 数据集构建 ├── data/ # 训练/测试数据 ├── get_stock_data.py # Baostock 数据下载 ├── train.sh / test.sh # 启动脚本 ├── DockerfileTHU # Baseline Docker 镜像定义 ├── pyproject.toml # 项目依赖 ├── GUIDE.md # 图文操作指南 └── READMETHU.md # Baseline 技术细节
cd THU-BDC2026
uv sync && source .venv/bin/activate
python get_stock_data.py # 下载数据
python data/split_train_test.py # 划分数据集
sh train.sh # 训练
sh test.sh # 预测 → output/result.csv
python test/score_self.py # 自测得分
Q: 预装库和项目依赖冲突?
A: 预装库在 /opt/venv,项目依赖通过 uv sync 安装在各自的 .venv/ 中,互不影响。
Q: TA-Lib 报错?
A: 系统 C 库已预装,无需额外操作。若使用 Baseline,uv sync 会自动安装 Python 绑定。
Q: Docker build 失败?
A: 尝试关闭代理或切换网络。详见 GUIDE.md。