financial-world-model
收藏数据集概述
Twelve Data World Model Dataset 是一个多模态金融时间序列数据集,基于 Twelve Data 市场数据构建。该数据集旨在支持时间序列预测、文本生成和强化学习等任务。
基本信息
- 许可证: MIT
- 语言: 英语
- 任务类别: 时间序列预测、文本生成、强化学习
- 标签: 金融、股票、OHLCV、技术指标、世界模型
- 数据规模: 1000万至1亿条记录
- 数据集名称: Twelve Data World Model Dataset
时间跨度和划分
数据集按照时间戳进行划分,确保训练、验证和测试集之间无重叠:
| 划分 | 日期范围 |
|---|---|
| 训练集 | 截至2023-12-31 |
| 验证集 | 2024-01-01 → 2024-12-31 |
| 测试集 | 2025-01-01 → 最新可用数据 |
注意:对于 trajectories_* 配置,如果窗口跨越划分边界,则该窗口会被丢弃,确保训练集和验证集不重叠。时间戳使用 America/New_York 时区。
股票池
包含51只美国大盘股,涵盖多个行业板块:
- 科技、金融、医疗保健、消费、工业/能源/材料、通信
此外,宏观背景行情指标(如 SPY、QQQ、VIXY、TLT、行业SPDR等)作为列附加到每一行股票数据中,但不可作为独立的可训练标的。
时间粒度与配置
数据集提供三种时间粒度(日、小时、分钟),每种粒度下有三种视图(bars、text、trajectories),共9个配置:
| 配置名称 | 数据格式 | 说明 |
|---|---|---|
bars_1day |
Parquet | 日线OHLCV及技术指标 |
bars_1h |
Parquet | 小时线OHLCV及技术指标 |
bars_1min |
Parquet | 分钟线OHLCV及技术指标 |
text_1day |
JSONL | 日线指令微调文本 |
text_1h |
JSONL | 小时线指令微调文本 |
text_1min |
JSONL | 分钟线指令微调文本 |
trajectories_1day |
Parquet | 日线轨迹(用于世界模型训练) |
trajectories_1h |
Parquet | 小时线轨迹 |
trajectories_1min |
Parquet | 分钟线轨迹 |
每种粒度下,三个视图的股票池和时间划分完全一致。
各时间粒度的数据深度
| 时间粒度 | 典型历史深度(如AAPL/MSFT等老标的) | 轨迹窗口(大小/步长) |
|---|---|---|
1day |
数十年(可追溯至上市) | 30/5, 60/10, 120/20 |
1h |
数年 | 24/6, 120/24 |
1min |
数年 | 390/195(一个美国交易时段), 1950/390(一周) |
注:新上市标的的历史数据从上市日期开始提供,无人工回溯填充。
数据视图详解
1. bars_* 视图:OHLCV与技术指标
每行代表一个标的在一个时间粒度下的一个K线。主要列包括:
- 核心字段:
datetime(时间戳)、symbol(股票代码)、timeframe(时间粒度)、open/high/low/close(OHLC价格)、volume(成交量)、close_adj(除权除息调整收盘价) - 收益率:
ret_1(单周期简单收益率)、logret_1(单周期对数收益率)、ret_5(5周期简单收益率)、logret_20(20周期对数收益率) - 波动率:
rv_5/rv_20/rv_60(5/20/60周期已实现波动率)、atr_14(14周期平均真实波幅) - 动量:
rsi_14(14周期相对强弱指标)、macd/macd_signal/macd_hist(MACD(12,26,9)线、信号线、柱状图)、mom_10(10周期动量) - 成交量:
obv(能量潮)、vol_z_20(20周期成交量Z分数) - 布林带:
bb_mid/bb_up/bb_lo(布林带(20, 2σ)中轨/上轨/下轨)、bb_pctb(%B位置) - 宏观背景:
spy_logret_1(SPY单周期对数收益率)、vix_level(VIX水平)、tlt_logret_1(TLT单周期对数收益率)、dxy_logret_1(美元指数单周期对数收益率)、sector_logret_1(对应行业ETF单周期对数收益率)
因果性保证:所有技术指标和宏观列在时间点 t 仅使用 ≤ t 的信息,保障了因果性。
2. text_* 视图:指令微调文本
每行包含一个指令微调记录,字段如下:
symbol: 股票代码timeframe: 时间粒度as_of: K线时间戳(ISO格式),提示中的所有信息均早于或等于此时间prompt: 自然语言描述(包含当前K线及已观测的指标)label: 下一根K线的结果(方向和对数收益率),最后一根K线为空meta: 元数据(如行索引)
防泄露保证:prompt 不包含 as_of 之后的任何信息,只有 label 携带下一周期的结果。
3. trajectories_* 视图:世界模型训练轨迹
每行代表一个固定长度的滚动窗口,适合世界模型和序列模型训练。字段如下:
trajectory_id: 稳定ID(格式:{symbol}_{timeframe}_{window}_{start_ts})symbol: 股票代码timeframe: 时间粒度feature_names: 状态向量的列名列表(长度 F)timestamps: 时间戳列表(T个ISO时间戳)states: 状态矩阵,形状(T, F)next_states: 下一时刻状态矩阵,形状(T, F),相较于states偏移一个时间步rewards_logret: 可选标量奖励序列(对数收益率),null表示无奖励split: 划分(train/val/test)
状态向量固定包含以下字段(共20个特征):
open, high, low, close_adj, volume, logret_1, rv_20, rsi_14, macd, macd_signal, macd_hist, atr_14, bb_pctb, obv, vol_z_20, spy_logret_1, vix_level, tlt_logret_1, dxy_logret_1, sector_logret_1
数据加载示例
使用 datasets 库加载数据:
python from datasets import load_dataset
加载日线OHLCV+技术指标
bars = load_dataset("twelvedata/financial-world-model", "bars_1day")
加载小时线指令微调文本
text = load_dataset("twelvedata/financial-world-model", "text_1h")
加载日线轨迹(用于世界模型训练)
traj = load_dataset("twelvedata/financial-world-model", "trajectories_1day")
也可直接用 DuckDB 查询 Parquet 文件:
sql SELECT symbol, datetime, close, rsi_14 FROM bars_1day/test.parquet WHERE symbol = AAPL ORDER BY datetime DESC LIMIT 10;
更新频率
数据集通过增量流水线定期更新,流程包括:
- 按标的和时间粒度获取最近窗口的数据(重新获取前一天数据以捕获修正)
- 检测拆股和分红事件,必要时触发对应标的的重新回溯填充(确保
close_adj历史正确) - 重新计算技术指标和宏观数据
- 重新生成三个视图并推送到此处
已知限制
- 仅包含美国股票,盘内数据仅限于常规交易时段(不含盘前盘后)
- 宏观背景通过ETF代理(如用VIXY代理VIX,UUP代理DXY),与相应指数不完全一致
- 盘内历史数据深度(尤其是
1min)受限于Twelve Data的供应商限制,远小于日线数据。同一标的不同时间粒度的日期覆盖范围可能不同 - 文本视图基于模板生成,而非LLM生成,内容密集且重复,适合作为微调基础而非人类风格文本
引用
bibtex @misc{twelvedata-world-model, title = {Twelve Data World Model Dataset}, author = {Twelve Data}, year = {2026}, url = {https://huggingface.co/datasets/twelvedata/financial-world-model} }




