DolphinDB机器学习案例教程:实时实际波动率预测
本教程使用上证50成分股2020年的level2快照数据,构建频率为10分钟的高频交易特征(价差、深度不平衡指标、加权平均价格、买卖压力指标、实际波动率)作为模型输入,将未来10分钟的波动率作为模型输出,利用DolphinDB内置机器学习框架中支持分布式计算的adaBoostRegressor算法构建回归模型,使用根均方百分比误差(Root Mean Square Percentage Error,RMSPE)作为评价指标,终实现了测试集RMSPE=1.701的拟合效果,下图展示了中信建投部分波动率预测结果。本教程示例代码必须在1.30.18及以上版本和2.00.6及以上版本的DolphinDB server上运行。
将训练后的模型持久化在DolphinDB服务端,结合DolphinDB流数据处理框架,实时预测上证50成分股未来十分钟的实际波动率。本教程包含内容可在左侧目录快速浏览。
1. Snapshot数据文件结构
本教程应用的数据源为上交所level2快照数据(Snapshot),每幅快照间隔时间为3秒或5秒,数据文件结构如下:
字段 | 含义 | 字段 | 含义 | 字段 | 含义 |
---|---|---|---|---|---|
SecurityID | 证券代码 | LowPx | 低价 | BidPrice[10] | 申买十价 |
DateTime | 日期时间 | LastPx | 新价 | BidOrderQty[10] | 申买十量 |
PreClosePx | 昨收价 | TotalVolumeTrade | 成交总量 | OfferPrice[10] | 申卖十价 |
OpenPx | 开始价 | TotalValueTrade | 成交总金额 | OfferOrderQty[10] | 申卖十量 |
HighPx | 高价 | InstrumentStatus | 交易状态 | …… | …… |
2. 数据预处理
2020年上交所所有证券的Snapshot数据已经提前导入至DolphinDB数据库中,一共约28.75亿条快照数据,导入方法见股票行情数据导入实例,一共174列。
2.1 数据样本选择
本教程用到的字段为Snapshot中的部分字段,包括: 股票代码、快照时间、申买十价,申买十量,申卖十价,申卖十量。
样本为2020年上证50指数的成分股:
- 股票代码
601318,600519,600036,600276,601166,600030,600887,600016,601328,601288,
600000,600585,601398,600031,601668,600048,601888,600837,601601,601012,
603259,601688,600309,601988,601211,600009,600104,600690,601818,600703,
600028,601088,600050,601628,601857,601186,600547,601989,601336,600196,
603993,601138,601066,601236,601319,603160,600588,601816,601658,600745
相关文章