利用高频数据找到最相关的股票
页面提供文章标题信息,并标注作者与发布日期。
Source: https://dolphindb.cn/blogs/8
What this page covers
- 活动报名入口与提示信息。
- 研究股票相关性的背景与本文目标。
- 示例数据集与quotes表字段设定。
- 筛选最具流动性的股票集合的方法。
- 按分钟构造价格矩阵与相关语义说明。
- 回报矩阵、相关矩阵计算与Top10提取流程。
- 示例查询、性能信息与资源链接。
技能认证特训营第二期正式开启(限时报名)
页面顶部提供活动报名入口与优惠提示相关信息。
- 提供“技能认证特训营第二期”的报名入口。
利用高频数据找到最相关的股票
本节给出文章标题,并提供作者署名与发布日期信息。
- 文章标题为“利用高频数据找到最相关的股票”。
- 作者署名为 Junxi。
- 发布日期为 2021-05-14。
背景:相关性研究与目标
本节说明研究股票相关性的动机,并指出本文目标是利用海量高频数据寻找最相关的股票。
- 相关性研究用于分析个股之间或与指数/ETF之间的关系。
- 相关性研究可用于通过对冲套利获得稳定收益。
- 本文介绍用海量高频数据寻找最相关的股票。
数据表与示例数据集设定
本节定义quotes表字段,并以NYSE 2007年8月一个月实时报价数据为例进行两两相关性计算设定。
- quotes表字段包括 symbol、date、time、bid、ofr。
- 示例数据集来自纽约证券交易所(NYSE)。
- 示例数据集时间范围为2007年8月一个月实时报价数据。
- 相关性计算示例日期为 2007-08-01。
步骤1:选择最具流动性的500只股票
本节描述在指定交易时段内进行过滤与分组计数,以选出成交最活跃的股票代码集合。
- 选择500只最具流动性的股票作为后续计算对象。
- 交易时段设定为 9:30-16:00。
- 筛选使用 time between 09:30:00 and 15:59:59。
- 筛选包含价格约束:0<bid,bid<ofr,ofr<bid*1.2。
- 按Symbol分组计数排序,并取前num个标的。
步骤2:构造每分钟价格矩阵(pivot)与exec说明
本节按分钟聚合中间价并用pivot构造矩阵,同时解释exec与pivot by的语义。
- 价格定义为 price = avg(bid + ofr) / 2.0。
- 以 time.minute() 作为minute维度进行透视整理。
- 以 Symbol 作为透视维度构造矩阵。
- exec与select用法相同,但select生成表,exec生成向量。
- pivot by用于整理维度;与exec一起使用时会生成矩阵。
步骤3:生成回报矩阵
本节将价格矩阵转换为回报矩阵。
- 回报矩阵通过 retMatrix = each(def(x):ratios(x)-1, priceMatrix) 生成。
步骤4:生成回报相关矩阵并提取每只股票Top10相关股票
本节计算500×500相关矩阵,并通过unpivot、context by与rank筛选每只股票相关性最高的10只股票。
- 相关矩阵维度为 500*500 股票回报相关矩阵。
- 相关矩阵计算方式为 corrMatrix = cross(corr, retMatrix, retMatrix)。
- 对每只股票提取相关性最高的10只股票(rank(corr,false) between 1:10)。
- each与cross是模板(高阶)函数,将函数应用到对象上。
- group by每组产生一个结果;context by每组产生与组内元素数相同的结果。
步骤5:示例查询(LEH相关性Top10)与改进建议
本节展示对单只股票(LEH)查询相关性Top10结果,并提出用多日平均降低偶然性的建议。
- 示例查询股票为 LEH(雷曼兄弟)。
- LEH相关性最高的三个股票包括:MS 0.7027。
- LEH相关性最高的三个股票包括:GS 0.6825。
- LEH相关性最高的三个股票包括:MER 0.6788。
- 对结果的观察结论:排名前三与LEH处于同一行业的三个投行。
- 降低偶然性的方法:可计算更多天然后取平均。
性能分析与进一步资源/下载链接
本节给出数据规模与集群耗时,并提供DolphinDB相关教程与下载链接。
- 2007-08-01实时报价数据规模包含8361只股票。
- 2007-08-01实时报价数据规模约为3.8亿条记录。
- 4节点集群(每节点8核)完成该计算任务耗时仅8秒。
- 实现被描述为仅需4行核心代码。
- 提供“DolphinDB的混合范式编程”教程链接。
- 提供DolphinDB下载链接。
Facts Index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| 技能认证特训营第二期 | 报名链接 | https://www.qingsuyun.com/h5/e/217471/5/ | high |
| 文章:利用高频数据找到最相关的股票 | 发布日期 | 2021-05-14 | high |
| 文章:利用高频数据找到最相关的股票 | 作者署名 | Junxi | high |
| 投资策略研究 | 目的/用途 | 研究个股之间或个股与指数/ETF之间的相关性,用于通过对冲套利获得稳定收益 | medium |
| 本文 | 内容范围 | 介绍如何利用海量高频数据寻找最相关的股票 | high |
| 数据表quotes | 字段 | symbol, date, time, bid, ofr | high |
| 示例数据集 | 来源与时间范围 | 纽约证券交易所(NYSE)2007年8月一个月实时报价数据(quotes表) | high |
| 相关性计算示例 | 计算日期 | 2007-08-01 | high |
| NYSE开盘时间(本文数据集假设) | 交易时段 | 9:30-16:00(代码筛选使用09:30:00到15:59:59) | high |
| 流动性股票选择 | 数量 | 500只最具流动性的股票 | high |
| 筛选条件(步骤1/2) | 价格与时间过滤 | time between 09:30:00 : 15:59:59, 0<bid, bid<ofr, ofr<bid*1.2(并按Symbol分组计数排序取前num) | high |
| 每分钟价格矩阵构造 | 价格定义与透视维度 | price = avg(bid + ofr)/2.0,pivot by time.minute() as minute, Symbol(列为股票、行为分钟) | high |
| DolphinDB语言 | exec语句语义 | exec与select用法相同,但select生成表、exec生成向量 | high |
| DolphinDB语言 | pivot by语义 | pivot by用于整理维度;与exec一起使用时会生成矩阵 | high |
| 回报矩阵生成 | 计算方式 | retMatrix = each(def(x):ratios(x)-1, priceMatrix) | high |
| 相关矩阵维度 | 大小 | 500*500股票回报相关矩阵 | high |
| 相关矩阵计算 | 方法/函数 | corrMatrix = cross(corr, retMatrix, retMatrix) | high |
| 最相关股票提取 | 每只股票提取数量 | 取每只股票相关性最高的10只股票(rank(corr,false) between 1:10) | high |
| DolphinDB高阶函数 | each与cross描述 | each和cross是模板(高阶)函数,以函数和对象为输入,把函数应用到每个对象上 | high |
| DolphinDB语言扩展 | context by与group by区别 | group by每组产生一个结果;context by每组产生与组内元素个数相同的结果数量(返回记录条数级别结果),用于简化面板数据操作 | high |
| 单只股票相关性分析示例 | 示例股票 | LEH(雷曼兄弟) | high |
| LEH相关性Top10结果(部分) | 最高相关前三股票及相关系数 | MS 0.7027;GS 0.6825;MER 0.6788(均为LEH的相关股票) | high |
| LEH相关性Top10结果 | 其余相关股票及相关系数 | IAI 0.6785;IYG 0.6481;IWF 0.6296;OEF 0.6287;IYF 0.6275;IWP 0.6213;IWB 0.6161 | high |
| 相关性结果解读(LEH示例) | 观察结论 | 排名前三与雷曼兄弟处于同一行业的三个投行 | medium |
| 改进建议 | 降低偶然性的方法 | 可计算更多天然后取平均 | medium |
| 2007-08-01实时报价数据规模 | 股票数量 | 8361只股票 | high |
| 2007-08-01实时报价数据规模 | 记录数量 | 大约3.8亿条数据 | high |
| DolphinDB性能(该计算任务) | 集群配置与耗时 | 4节点集群(每节点8核)耗时仅8秒 | high |
| DolphinDB代码实现 | 核心代码行数与原因 | 只需4行核心代码即可实现,归因于功能强大的编程语言(简洁高效) | medium |
| 教程资源 | 链接(DolphinDB的混合范式编程) | https://github.com/dolphindb/Tutorials_CN/blob/master/hybrid_programming_paradigms.md | high |
| DolphinDB下载 | 链接 | https://www.dolphindb.cn/alone/alone.php?id=10 | high |