Data Science 和 Finance 两个领域的融合是什么样子的?

2015-05-24 董可人

现在大部分人所说的Quant一般是指各大投行里做衍生品定价,信用评估,风险控制之类工作的人,这种工作里又有很大一部分是涉及随机过程微分方程等偏理论的数学,对数据分析要求不高;只有另外一部分基于统计的工作才和Data Science相关。两者的分类可以参见这个问题在华尔街工作的数学博士的研究方向一般是什么?

如果对使用理论模型进行定价的工作感兴趣,很多学校开设的Financial Engineering的Master课程是比较好的选择,选择的时候可以看一下课程列表,是否有随机过程,衍生品定价等课程。这套体系本身就很复杂,学习这条线路至少在短时间内不会用到Data Science的东西。

而关于算法交易(Algorithmic Trading),我本人就是做方面的工作,我们也要做很多数据分析的工作,广义上来说也是Quant类的工作,但这里的做法肯定是和定价或风控等工作很不一样的。我的理解是Data Science是领域内一个比较有前途的发展方向,但目前还不成气候,像是Machine Learning,Text Mining等技术还很难应用过来。产业界里我没有听说哪家算法交易公司是靠这些技术为核心发家致富的,学术界上发表出来的论文也都是空中楼阁(学者们对真正的交易怎么运行了解太少了),没什么价值可言。

比如说Machine Learning里做的比较多的分类(Classfication),不管是决策树(Decision Tree)还是支持向量机(SVM)这样的技术,你都很难直接用来做trading,因为常常面临的问题是金融数据往往是连续分布的变量比如价格或成交量,没有什么很好的办法可以建立明确的分类,也就导致无类可分。而且金融数据的相关变量实在太多,很多时候无法得到全部信息(比如新闻,相关股票,期货,期权等各品种的变化,可以参考用人工智能计算股票的涨和跌可行吗?这个问题里 @Pang Yunong 的回答),既然没办法拿到全景,Machine Learning那一套预测技术的效果就可想而知了(如果你是市场有效假说的坚定拥趸,相信价格反映全部信息,请忽略我)。对Text Mining,的确已经有人在做自动分析twitter上热门词汇的频率来预测股票走势,但我相信这个还处于很初级的阶段,不会有人真的只根据这种分析来做交易,最多是给trader提供一种参考。

金融交易最明显的特征是基本数据是一种时间序列,这在现有的Machine Learning框架里还没有有针对性的技术。但传统的方法像是ARMA,GARCH本身的理论假设又往往和实际不符,而且这些模型在设计上并没有侧重大数据的特点(毕竟是几十年前开发的技术了)。所以往后看,先天对大数据友好的Machine Learning框架很可能会带来一些创新。但现在时机还没有成熟。

目前来说真正有实用价值的Data Science技术,我个人认为是处理大数据的计算能力,比如MapReduce等云计算的基础架构(注1),这对金融交易这种先天就是超大数据量的业务非常有吸引力(一个交易所每天产生的交易数据就可以达到几十GB)。对这种规模的数据进行处理,分析的能力是业界非常需要的,而这个恰恰是和以往跑在单机Excel表格或是关系型数据库里的那种分析有很大区别的。至少要有对这种新型的大数据计算平台的理解,来设计符合其运行特点的算法,并且能够实际操作的能力,才可能做出一些有价值的分析。

这种大数据应用的远景是非常诱人的。只有在具备成熟的大数据计算方案的情况下,人们才能想像直接处理交易所级的原始数据的应用。设想一下如果可以在几分钟甚至几秒钟之内回测完N个交易所M年的数据,对于深入理解市场和改进策略都是非常有帮助的。也许是通过对比几百上千个交易策略的性能来筛选策略,也许是对多种投资组合的指标做可视化,而后面支撑的数据是TB或PB级别的tick数据甚至full level depth order book,这种分析是非常有价值的。

不过计算机运算能力大规模提升(得益于云计算平台的发展)也就是近几年的事情。所以即使在金融界,很多问题也都是刚刚涌现出来,技术发展还有很长的道路。如果以金融为目标去学习Data Science,我觉得需要注意的是,在深入理解那些Data Science技术(从理论到实践)的基础上,还需要加深理解金融数据的特点,才能做出有价值的工作。你会发现即使是相对成熟的MapReduce这样的云计算基础框架,也是不太容易直接拿来就用的,始终要考虑金融数据的时间序列这个特点来专门定制。这方面因为业界和学界都刚刚开展,相信各个学校的课程也都还在摸索中,不太可能找到特别有针对性的项目。对于学生(尤其是Master)来说,上课主要是为打基础,将来的发展要等到工作以后慢慢体会了。

注:

    1. 即使在IT领域,针对大数据的处理技术也还在不断发展,可以参见这两个问题:大数据计算框架除了 MapReduce 还有哪些呢,不应该是 MapReduce 去解决所有问题吧?,如何看待 Google 说已经停用 Map Reduce 好多年?,以及像是Spark Streaming这样的新技术。

Data Science 和 Finance 两个领域的融合是什么样子的?的更多相关文章

  1. 学习笔记之Data Science

    Data science - Wikipedia https://en.wikipedia.org/wiki/Data_science Data science, also known as data ...

  2. 学习Data Science/Deep Learning的一些材料

    原文发布于我的微信公众号: GeekArtT. 从CFA到如今的Data Science/Deep Learning的学习已经有一年的时间了.期间经历了自我的兴趣.擅长事务的探索和试验,有放弃了的项目 ...

  3. Data Science at the Command Line学习笔记(一)

    学习Data Science at the Command Line时,win7下安装环境是遇到了一些小问题,最后通过百度解决. 官方指导可以在这个地址找到:http://datascienceatt ...

  4. data mining,machine learning,AI,data science,data science,business analytics

    数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics ...

  5. 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics)之间有什么关系?

    本来我以为不需要解释这个问题的,到底数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)有什么区别,但是前几天因为有个学弟问我,我想了想发现我竟然也回答 ...

  6. Introducing DataFrames in Apache Spark for Large Scale Data Science(中英双语)

    文章标题 Introducing DataFrames in Apache Spark for Large Scale Data Science 一个用于大规模数据科学的API——DataFrame ...

  7. 推荐几个来自 MOOCs的 Data Science

    数据科学是一个大领域,如果你想成为一个优秀的数据专家,自学是必要的技能. MOOCs是数据科学的主要来源.有许多网站提供了 MOOCs,比如Coursera.Coursera和Udacity都还不错. ...

  8. ajax的data传参的两种方式

    ajax的data传参的两种方式 本文为转载. 1.[javascript] view plain copy /** * 订单取消 * @return {Boolean} 处理是否成功 */ func ...

  9. 【Repost】A Practical Intro to Data Science

    Are you a interested in taking a course with us? Learn about our programs or contact us at hello@zip ...

随机推荐

  1. grep DEMO

    测试数据: [xiluhua@vm-xiluhua][~]$ cat msn.txt aaa bbb bbb ccc ccc ddd bbb eee aaa ccc bbb sss [xiluhua@ ...

  2. iOS 处理多个网络请求的并发的情况

    如何处理多个网络请求的并发的情况 一.概念 1.并发 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配 ...

  3. PHP stat() 函数 返回关于文件的信息。

    定义和用法 stat() 函数返回关于文件的信息. 语法 fstat(file) 参数 描述 file 必需.规定要检查的文件. 说明 获取由 file 指定的文件的统计信息.如果 file 是符号连 ...

  4. git 本地分支与远程分支关联的一种方法

    github上已经有master分支 和dev分支 在本地 git checkout -b dev 新建并切换到本地dev分支 git pull origin dev 本地分支与远程分支相关联 在本地 ...

  5. StringBuffer类的方法

    public class Page116 { /** * StringBuffer类的练习 * @param args * @throws IOException */ public static v ...

  6. html状态码与缓存学习

    当浏览器访问一个页面时,浏览者的浏览器会向网页所在的服务器发送请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求. ...

  7. python: html

    1. 三把利剑(html css js) css(颜色 位置) js (动) 2. 标签的分类:块级标签和行内标签 块级标签(div h p) 行内标签(span) 3. 标签存在的意义:为了方便操作 ...

  8. c#sqlhelper之用法

    MySqlParameter[] a=new MySqlParameter[]{new MySqlParameter("@stu_id",stu_id)}; 参数使用

  9. Ombrophobic Bovines 分类: POJ 图论 最短路 查找 2015-08-10 20:32 2人阅读 评论(0) 收藏

    Ombrophobic Bovines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16539 Accepted: 3605 ...

  10. Curling 2.0 分类: 搜索 2015-08-09 11:14 3人阅读 评论(0) 收藏

    Curling 2.0 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14289 Accepted: 5962 Descript ...