楼主: 〇〇

才知道有个kdb+的数据库

[复制链接]
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
11#
 楼主| 发表于 2016-5-4 08:51 | 只看该作者
加载帮助
q)\l d:\help.q
q)help`
adverb    | adverbs/operators
attributes| data attributes
cmdline   | command line parameters
data      | data types
define    | assign, define, control and debug
dotz      | .z locale contents
errors    | error messages
save      | save/load tables
syscmd    | system commands
temporal  | temporal - date & time casts
verbs     | verbs/functions
q)help `sys
\1 filename  redirect stdout
\2 filename  redirect stderr
\a           tables
\b           views (see also .z.b)
\B           invalid dependencies
\c [23 79]   console height,width
\C [36 2000] browser height,width
\d [d]       q directory [go to]
\e [0|1]     error trap clients
\f [d]       functions [directory]
\l [f]       load script (or dir:files splays parts scripts)
\o [0N]      offset from gmt
\p [i]       port (0 turns off)
\P [7]       print digits(0-all)
\r old new   unix mv
\s           number of slaves (query only)
\S [-314159] seed
\t [i]       timer [x] milliseconds (1st fire after delay)
\t expr      time expression
\T [i]       timeout [x] seconds
\u           reload the userswd file specified with -u
\v [d]       variables [directory]
\w           workspace(M0 sum of allocs from M1 bytes;M1 mapped anon bytes;M2 peak of M1;M3 mapped files bytes)
             (max set by -w, 0 => unlimited) - see .Q.w[]
\w 0         count symbols defined, symbol space used (bytes)
\W [2]       week offset(sat..fri)
\x .z.p?     expunge .z.p? value (ie reset to default)
\z [0]       "D"$ uses mm/dd/yyyy or dd/mm/yyyy
\cd [d]      O/S directory [go to]
\_           is readonly (cmdline -b)
\_ f.q       create runtime script f.q_ from f.q (or f.k_ from f.k)
\[other]     O/S execute
\\           exit
\            (escape suspension, or switch language mode)
ctrl-c       (stop)
q)

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
12#
 楼主| 发表于 2016-5-4 12:02 | 只看该作者
q)s
s | name  status city
--| --------------------
s1| smith 20     london
s2| wang  20     Beijing
q)b:`s1
q)b
`s1
q)s(name)
'name
q)s(`name)
name  | `
status| 0Ni
city  | `
q)s(`s1)
name  | `smith
status| 20i
city  | `london

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
13#
 楼主| 发表于 2016-5-4 15:54 | 只看该作者

Quant 如何运算百万行的数据?
我实际工作中需要用到不少quant的知识~而我只是半路出家的量化交易员~没有受过系统性的职业训练~VBA matlab懂点皮毛~C++完全不会~我是遇到问题再去找书本~现在请教一下专业的quant如何解决如下的实际问题..

上百万行数据进行运算的问题~我用matlab非常慢~问过一些人说是自己用C++编程去运算~我想问一下是否还有专业点的专门处理大量高频金融时间序列数据的软件

4 条评论 分享
按投票排序 按时间排序
29 个回答
董可人,高频交易
xbu、日夜、Gsdf 等人赞同 • 收录于 编辑推荐
不知道“行”是一个什么概念,猜测大概是指CSV文件中的行?假设如此,那么百万行实际对应的就是百万条数据,按照平均每条数据100字节(相当高估的数值)来估算,也就是总计100MB数据量。这个数据量是什么概念呢?一块普通机械磁盘的读取速度大概有80~100MB/S,就是说一两秒之内就能读取完全部数据。如果你做的计算仅仅是一些简单的查询或是加减乘除(比如Moving Average),CPU的速度会远远快于硬盘访问,既是说在一台普通的个人电脑上,应该在几秒内就能完成计算任务。这个数字是头脑中应该有的正确的估算。有了这个概念,我们再来看看问题该如何解决。

首先,CSV格式是一个很差的存储格式。CSV按行存储,每读入一行都要按照分隔符进行拆分。它的数据全部以文本形式存储,意味着每读入一个浮点数比如1.234就要进行字符串到数字的转换。这些都是完全不必要的开销,会大大增加任务的处理时间。

其次,有人建议把数据导入到SQL数据库,这也是个坏主意。SQL数据库的确可以提供一些遍历的查询和索引,但是每次访问数据库都需要进行进程间通信,如果你需要逐条访问,这个通信时间也会非常昂贵,远远超出真正计算所需要的时间。

简言之,以上两种方案里你的大部分时间都浪费在无意义的I/O上,计算机的使用效率非常低。

下面给出几种方案建议,可以根据个人情况选择:

一,使用内存数据库(如KDB),百万条数据导入内存数据库也不过100MB左右的内存占用,毫无压力。在此基础上使用系统支持的语言(比如KDB中的Q)进行算法开发。这是quant界比较常见的一种方案,应该有成熟社区,容易找到帮助,如果你所在的机构正好有这方面的技术积累,就更方便了。缺点在于,数学计算比较受限于系统,如果你用到一些系统没提供的算法,开发成本比较大。KDB的语言本身需要陡峭的学习曲线,甚至很多方面可能非常晦涩,比如一个 ! 就可以根据上下文不同表示多种不同的操作符,从取模到生成列表,对于新手来说入门可能有些困难。

二,python神器:ipython+pandas。ipython提供一整套的类似matlab的计算环境,包含了丰富的数学函数和画图工具,示例可参见http://nbviewer.ipython.org。pandas则是专门针对金融类计算设计开发的计算库(Python Data Analysis Library),底层使用HDF5格式(一种高效的数据存储格式,对于金融时间序列来说远远优于CSV),上层提供很多强大的内建函数(统计类的mean,stddev,类SQL的group by,order by等等),而且本身工作在python环境里,可以直接使用python做编程方面的工作。更值得一提的是HDF5也是matlab支持的存储格式,所以有必要的时候可以无缝迁移到matlab(如果正好有某个算法是matlab提供而python没有的)。需要强调的是python在科学计算方面有巨大的优势,是统治级的语言,像并行计算,GPU之类都有很好的支持,不用担心要自己搭框架。

三,其他备选的还有如下一些:
The Julia Language 一个比较新的计算语言,介绍里强调了高性能,具体用起来怎么样不清楚所以不评价。
Java/Scala,java本身代表巨大的社区支持(丰富的第三方库,文档,优秀的开发环境),scala则提供强大的开发能力,以及像Apache Spark™这样的大数据处理利器 。java系在各种数学软件比如Matlab,Mathematica,R都可以直接内嵌,所以可以结合java在数据处理上的性能优势和数学软件的数学功能来一起使用。

上述任何一条方案都有非常不错的发展空间,相对而言题主的问题本身非常简单,肯定都可以胜任。具体选择哪个方案最好还是自己把相关资料通读一遍,有一个初步认识以后再结合自身情况选择。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
14#
 楼主| 发表于 2016-5-5 16:17 | 只看该作者
一个用q来解算法题的地方
http://kdber.lofter.com/?page=2&t=1355450013037

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
15#
 楼主| 发表于 2016-5-5 16:22 | 只看该作者
〇〇 发表于 2016-5-5 16:17
一个用q来解算法题的地方
http://kdber.lofter.com/?page=2&t=1355450013037

题的出处
http://www.ic.unicamp.br/~meidan ... roblemas/index.html

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
16#
 楼主| 发表于 2016-5-5 19:48 | 只看该作者
许多q代码库
http://kxsystems.github.io/

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
17#
 楼主| 发表于 2016-5-6 10:06 | 只看该作者
中文资源
http://silentlakeside.iteye.com/
http://www.myexception.cn/program/1675181.html

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
18#
 楼主| 发表于 2016-5-6 10:12 | 只看该作者
Q for Mortals2笔记.txt (42.95 KB, 下载次数: 27)

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
19#
 楼主| 发表于 2016-5-6 20:13 | 只看该作者
//模仿关系表
q)t1[]x:`a`b;y:2 3)
q)t2[]x:`a`c;y:2 4)
q)t1
x y
---
a 2
b 3
q)t2
x y
---
a 2
c 4
q)t1 lj t2
+`x`y!(`a`a`c;2 2 4)
+`x`y!(`b`a`c;3 2 4)
q)select sum y from t1
y
-
5
q)select sum y from t2
y
-
6
q)select from t1 lj t2
'type
q)select from t1,t2
x y
---
a 2
b 3
a 2
c 4

使用道具 举报

回复
论坛徽章:
0
20#
发表于 2016-11-16 00:43 | 只看该作者
Does anyone save an older version of 32-bit kdb+ v3.3 2015.08.23? Thanks for sharing!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表