Skip to content

Latest commit

 

History

History
111 lines (82 loc) · 3.88 KB

File metadata and controls

111 lines (82 loc) · 3.88 KB

一、项目介绍

任务特点

和其他机器学习任务(比如视觉,推荐,NLP)不同的是,股票价格预测往往不追求过高的准确率。这是因为首先金融数据中充满了各种不同的随机噪声(或者可以理解为无法预测的因子);其次股票价格时间序列往往是 non-stationary,及其波动率会随着时间变化。然后股票价格回报率的分布一般不满足高斯分布,而属于某种长尾分布。这些统计特征使得我们在预测股价回报率的时候不会有特别高的准确率。一般来说,我们预测的准确率和我们预测的时间长度成反比,也就是说预测时间的越短,准确率越高。在本项目中,我们提供大约300 只股票从2023 年6 月1 日至2023 年12 月31 七个月的分钟级数据,预测的长度(forecast horizon)为12 分钟,即预测 12 分钟后的价格变化率:

数据与预测目标

  • 数据:约 300 只股票,2023.6.1–2023.12.31,分钟级
  • 预测目标:12 分钟后价格变化率 fret12 $$ \text{fret12} = \frac{P_{12} - P_0}{P_0} $$
  • $P_0$:当前价格;$P_{12}$:12 分钟后价格。

项目整体自由度较高,和常见的预测类任务相同,我们一般把流程分为数据分析,特征挖掘,模型定义,结果评价等几个常见环节。

项目流程

数据分析 → 特征挖掘 → 模型定义 → 结果评价


1. 预测评价(权重均分)

1. Mean Squared Error (MSE)

$$ \text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_i' - y_i)^2 $$


2. Pearson Correlation

$$ r = \frac{\sum_{i=1}^{N} \left( (y_i' - \bar{y}')(y_i - \bar{y}) \right)}{\sqrt{\sum_{i=1}^{N} (y_i' - \bar{y}')^2} \sqrt{\sum_{i=1}^{N} (y_i - \bar{y})^2}} $$


3. R Squared

$$ R^2 = 1 - \frac{\text{MSE}(\text{model})}{\text{MSE}(\text{baseline})} = 1 - \frac{\sum_{i=1}^{N} (y_i - y_i')^2}{\sum_{i=1}^{N} (\bar{y}_i - y_i)^2} $$

where $y_i'$ is the predicted value and $y_i$ is the ground truth for each observation $i$.

Tips

  1. MSE 低通常伴随更好的 r、R²,Loss 可不限于 MSE。
  2. 参考基线:6 特征 + Ridge → r≈2%–3%;预期 5%–10%;>10% 加分。
  3. 效果来自:优质特征强模型;建议:数十–上百特征 + 非线性模型(神经网络)。

2. 代码规范

参考 Google 风格:

  • 运算符、逗号后加空格
  • 类名:大驼峰;函数/变量:小驼峰/下划线
  • 命名清晰、注释精简(必要处即可)
  • 模块化、简洁紧凑

二、必要基础知识

1. Order Book(订单簿)

  • bid:买单;ask:卖单。
  • 多档位价格 + 数量快照

2. 市场事件

  • Add:挂单(买/卖)
  • Trade:成交
  • Cxl:撤单

3. 主买/主卖

  • Trade Buy:买单主动成交(主动买)
  • Trade Sell:卖单主动成交(主动卖)

4. 市场微观结构

价格形成与交易机制,短期波动的核心驱动,是优质特征来源。

5. 动量与反转

  • 动量:趋势延续(反应不足)
  • 反转:均值回归(反应过度)
  • 规律:大成交量/大单占比高 → 反转;小成交量/小单占比高 → 动量

四、数据定义(部分)

列名 含义
symbol 股票代码
interval 时间戳(毫秒)
fret12 标签:12min 后收益率 $y$
midpx 中间价:(bid0+ask0)/2
lastpx 区间最后成交价
open/high/low 区间开/高/低价
bid0/ask0 买一/卖一价
bsize0/asize0 买一/卖一量
bid4/ask4 买五/卖五价
bsize0_4/asize0_4 买1–5/卖1–5 总量
btr0_4/atr0_4 买1–5/卖1–5 总金额
nTradeBuy 主买成交次数
tradeBuyQty 主买总量
tradeBuyTurnover 主买总金额
buyVwad 买单加权平均时间

注意事项

  • 严防过拟合:测试集与训练集完全无关。