首页 文章 精选 留言 我的

精选列表

搜索[数据库连接池],共10000篇文章
优秀的个人博客,低调大师

干货丨如何在数据库中利用高频数据找到最相关股票?

在制定投资策略时,我们往往会研究股票之间的相关性。研究个股的相关性或者个股与指数,ETF之间的相关性,从而通过对冲套利来获得稳定收益。找到最相关的股票,可以根据交易员的经验,也可以根据股票的相关信息(行业,beta,每日回报等)。 本文将介绍如何利用海量的高频数据寻找最相关的股票。 假设我们有一个数据表quotes,包含以下字段: symbol:股票代码 date:日期 time:时间 bid:买入价格 ofr:卖出价格 下面以纽约证券交易所2007年8月一个月实时报价数据的数据表quotes为例,计算股票在2007年8月1日的两两相关性。 选择500只最具流动性的股票。注意,由于本文使用的是纽约证券交易所的数据集,所以开盘时间是9:30-16:00。 dateValue=2007.08.01 num=500 syms = (exec count(*) from quotes where date = dateValue, time between 09:30:00 : 15:59:59, 0<bid, bid<ofr, ofr<bid*1.2 group by Symbol order by count desc).Symbol[0:num] 2. 构造股票每分钟交易价格的矩阵。列表示股票,行表示分钟。 priceMatrix = exec avg(bid + ofr)/2.0 as price from quotes where date = dateValue, Symbol in syms, 0<bid, bid<ofr, ofr<bid*1.2, time between 09:30:00 : 15:59:59 pivot by time.minute() as minute, Symbol exec和pivot by是DolphinDB编程语言的特点之一。exec与select的用法相同,但是select子句生成的是表,exec子句生成的是向量。pivot by用于整理维度,与exec一起使用时会生成一个矩阵。 3. 生成股票回报矩阵 retMatrix = each(def(x):ratios(x)-1, priceMatrix) 4. 生成500*500的股票回报相关矩阵 corrMatrix = cross(corr, retMatrix, retMatrix) 这时已经生成了500只最具流动性股票的两两相关性矩阵,取每只股票相关性最高的10只股票。 mostCorrelated = select * from table(corrMatrix.columnNames() as sym, corrMatrix).unpivot(`sym, syms).rename!(`sym`corrSym`corr) context by sym having rank(corr,false) between 1:10 步骤3和步骤4中使用的模板函数each和cross是 DolphinDB database 中的高阶函数,它以函数和对象作为输入内容,把函数应用到每个对象上。模板函数在复杂的批量计算中非常有用。 context by 语句是 DolphinDB database 编程语言的一个创新,是对标准SQL的扩展,大大简化了对面板数据的操作。context by与group by类似,都是用于分组计算。它们的区别是,group by对每组计算产生一个结果,而context by可对每组计算产生与组中元素个数相同的结果个数。换句话说,group by返回的结果个数等于组的个数,而context by返回结果的个数等于表中记录条数。context by增加了数据操作的灵活性,它可以把函数应用到组内的每个成员,这对组内计算的场景非常有用。 5. 这时我们可以分析某只股票与其他股票的相关性。比如,取与雷曼兄弟股票相关性最高的10只股票。从结果看,排名前三的都是与雷曼兄弟处于同一行业的三个投行。如果要取得更好的效果,避免数据的偶然性,可以计算更多天,然后取平均。 select * from mostCorrelated where sym='LEH' order by corr desc sym corrSym corr LEH MS 0.7027 LEH GS 0.6825 LEH MER 0.6788 LEH IAI 0.6785 LEH IYG 0.6481 LEH IWF 0.6296 LEH OEF 0.6287 LEH IYF 0.6275 LEH IWP 0.6213 LEH IWB 0.6161 性能分析 在2007年8月1日,共有8361只股票的实时报价数据,大约是3.8亿条数据。上面的代码需要对数据进行过滤,按分钟聚合,形成数据表透视,并进行矩阵迭代运算,如此复杂的计算任务,DolphinDB在一个4节点(每节点8核)的集群上耗时仅8秒。除此之外,DolphinDB的代码十分简洁高效,只需4行核心代码即可实现,这得益于功能强大的编程语言。如果你对DolphinDB编程语言感兴趣,可以查看DolphinDB的混合范式编程。

优秀的个人博客,低调大师

分布式图数据库 Nebula Graph v1.0.1 发布,支持多种压缩算法

Nebula Graph 发布 1.0.1 版。相比 1.0.0 版本,该版本针对系统稳定性、性能上做了很多优化和改进。 New Features 路径查询FIND PATH中 vid 支持uuid()https://github.com/vesoft-inc/nebula/pull/2209 增加了 disable rocksdb block cache 的功能,通过设置storaged.conf的rocksdb_block_cache为任意非正数来 disable block cache.https://github.com/vesoft-inc/nebula/pull/2177 避免了多线程对 meta client 的localCacheLock_的lock contention 等待事件,提高了性能https://github.com/vesoft-inc/nebula/pull/2165 底层存储支持多种压缩算法,支持对 rocksdb 每个level 指定压缩策略https://github.com/vesoft-inc/nebula/pull/2179 bug-fix 修复手动 Compaction 时CompactionFilter失效的问题https://github.com/vesoft-inc/nebula/pull/2184 修复某些情况下,Leader错误发送Snapshothttps://github.com/vesoft-inc/nebula/pull/2150 修复增加属性后,UPSERT/UPDATE SET xxx老数据的新字段报错的问题https://github.com/vesoft-inc/nebula/pull/2186 修复GO m ... n当 m 为 0 可能导致的问题https://github.com/vesoft-inc/nebula/pull/2202 修复 pipe 操作结合 GO n STEPS 查询时,某些情况下可能返回数据不全的问题https://github.com/vesoft-inc/nebula/pull/2203

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册