Quant 如何运算百万行的数据?

论坛 期权论坛 期权     
slevin lee   2018-10-14 16:50   6949   10
我实际工作中需要用到不少quant的知识~而我只是半路出家的量化交易员~没有受过系统性的职业训练~VBA matlab懂点皮毛~C++完全不会~我是遇到问题再去找书本~现在请教一下专业的quant如何解决如下的实际问题..

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

分享到 :
0 人收藏

10 个回复

倒序浏览
2#
pipi shaou  4级常客 | 2018-10-14 16:50:24 发帖IP地址来自
买台64G 内存的mac pro,用pandas一次性载入所有数据到内存中,尽量减少那些会遍历DataFrame或重复拷贝生成新DataFrame的算法,这样也不需要额外的复杂数据库,性能应该足够快了。主要是硬件一次性投入3w,其他没啥费用了。
3#
小乙  2级吧友 | 2018-10-14 16:50:25 发帖IP地址来自
好几年前的老问题了。mongodb+redis,轻轻松松解决每秒10万并发读写的问题。
4#
行玄  3级会员 | 2018-10-14 16:50:26 发帖IP地址来自
用SAS,B别说百万行,千万行,亿行也没问题,配个intel 750ssd,秒杀所有软件
5#
无穷大  4级常客 | 2018-10-14 16:50:27 发帖IP地址来自
百万行其实是满常见的量级,Matlab完全可以处理。
首先量级方面,全市场目前2900+只A股,最近几年平均算2000只,一年算250个交易日,1年就有50万条日级别的数据,回测个几年时间,刚好就是这个数量级。
数据存储方面,服务器采用的是sql server,可以做些简单的加减乘除。
数据提取中,普通8G内存的台式机就可以用Matlab可以把数据一次性读入内存,耗时在几十秒内。要点是要在从数据库提取过程中先转换为numeric,这样在Matlab中就会存入矩阵格式,方便好用。
后续做回测的话,把数据全部矩阵化能大大提高效率。如果是简单的非path dependent的测试,完全可以用矩阵函数直接给出结果,几乎不耗时间。必须循环做的,如果只是常规的因子变换、组合,daily rebalance的通常几十秒测1组参数,1个小时能跑100组参数。
6#
eros wade  1级新秀 | 2018-10-14 16:50:28 发帖IP地址来自
看来看去,大家都在讨论工具.
其实quant的主要工作还是策略吧? 当然策略不共享, 只限小范围圈.
至于工具,我一直觉得习惯用什么就用什么吧.
我自己用的是C,估计在QUANT里没多少人用. 但我就是用了. 因为用C,十多年.
MATLAB做策略测试. C做翻译. 连接各种数据源.
7#
废安  2级吧友 | 2018-10-14 16:50:29 发帖IP地址来自
可以考虑使用SQL进行数据库层面的简单分析,analytic tool支持lead/lag,画图乃至简单的回归分析。更细致一点的分析用matlab基本都能搞定,采取dataset等格式能够好存储数据,采用并行计算能够加快计算数据。现在pc server都不错,曾经8个核同时并行,加上20-30g的内存,轻松处理几百万行数据的回测,十来分钟搞定。
8#
匿名用户   | 2018-10-14 16:50:30 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
9#
hudu  3级会员 | 2018-10-14 16:50:31 发帖IP地址来自
我猜你只是要对百万条数据进行回测,而不是实时运算。如果只是回测,数据读取时间很少,在目前主流电脑上都C++只需几秒钟吧,大部分时间耗在你的策略算法上,所以找出你算法中的瓶颈进行优化。我自己也经常跑回测,几百万条根本就不是事儿。
10#
匿名用户   | 2018-10-14 16:50:32 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
11#
匿名用户   | 2018-10-14 16:50:33 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:839
帖子:51
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP