MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。来源于百度百科:

http://baike.baidu.com/link?url=o6xt87cfVry59gnVn6u20nYK41yygWP6WvcHHgAqUw1iSi-vZbg6Tc99BqNXfjiq30W7Z-jdGYX93gm08p5TPq

Matlab有非常高的知名度,尤其在国内使用的人很多,很多大学都开设了这门课,很多人写论文都使用Matlab。由于Matlab历史比较早,并不是纯面向对象语言(尽管后来也支持面向对象编程),无法跟Java、C#这类面向对象语言相比,但Matlab有非常广阔的资源,学习资料比较多,容易上手。

由于Matlab是解释执行的,所以性能低下,对于性能要求很高的高频策略模型不适合。

R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。可以认为R是S语言的一种实现。而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman和Ross Ihaka及其他志愿人员开发了一个R系统。由“R开发核心团队”负责开发。 R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。 R的语法是来自Scheme。R的使用与S-PLUS有很多类似之处,这两种语言有一定的兼容性。S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。 来源于百度百科:

http://baike.baidu.com/link?url=lrR6SDQh5WDb6Hqmd-3xDMTpPBW5SHz6gJ_FSKiagLKRkZkimcuVz1kxV1sLX3E0PonoPtwc1nZY3vaSPSM29q

R在学术界使用广泛,一般的时间序列分析书的程序代码都是R实现的。因此,R有广泛的用户基础,网上资源非常多。还有一点非常重要,R是免费开源的,这使得R应用非常多。很多海归Quant他们就用R构建策略模型。

http://www.itongji.cn/analysis/R/

R也是解释执行的,效率低下,所以高频策略不适合。

  Python (是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。

Python 语言的特点:

简单、易学、免费、开源、丰富的库。

Python是解释执行的,效率低,所以高频策略不适合。

  F# 微软发展成为微软.NET语言提供运行环境的程序设计语言。Visual f#是多元化编程语言,它支持函数式、命令式和面向对象的混合编程风格。Visual F# 可用于开发应用程序或用 F# 码为其他 .NET 应用程序做必要的扩充。 F# 是 .NET 编程语言家族中第一个基于 Ocaml 并十分类似于它的函数语言。来源于百度百科:

http://baike.baidu.com/link?url=ZsLnLGQBV8lQYK-9-NTAYVs6CWpeXZWKEI7yBwBKcd-8x011bdUjkzUtdKh2qxBvx3r9mc2Sc_H99w1pleNC5K

  F#是微软专门为科学计算和数据分析开发的语言,非常适合开发数学算法,并与.NET高度集成,可以使用.NET的广泛资源。

F#与Matlab、R、Python相比,性能比这几种语言高,但没有C++高,因为它是不编译成本地代码的,是一种中间语言,需要安装.NET Framework。

F#的不足是缺乏资源库,目前网上资源还比较少。但一般的高频策略都能适用(超高频除外)

C++这种语言不用说了,最大的优势是性能,对于超高频的策略,只能用C++编写。

但缺点也比较明显,就是学习难度较大,学习曲线比较陡,需要下很多功夫才行。

综上所述,Matlab、R、Python这几种语言,适合做模型研究和测试,在研究和测试阶段可以采用上面这三种语言。他们的资源相对较多,可以直接使用。但到执行策略时,就不能使用这三种语言了,只能使用F#或C++了,对于超高频并对性能要求非常高的策略,就只能使用C++了。

做量化模型Matlab、R、Python、F#和C++到底选择哪一个?的更多相关文章

  1. 使用F#开发量化模型都缺什么?

    量化模型多数是基于统计的,因此,统计运算库应该是必备的.在Matlab.R中包含了大量的统计和概率运算,可以说拿来就用,非常方便,相比之下,F#的资源就很少了,这里给大家提供几个链接,可以解决一部分问 ...

  2. python做量化交易干货分享

    http://www.newsmth.NET/nForum/#!article/Python/128763 最近程序化交易很热,量化也是我很感兴趣的一块. 国内量化交易的平台有几家,我个人比较喜欢用的 ...

  3. python中的文件读写(open()函数、with open('file_directory','r') as f:、read()函数等)

    python中也有文件读写,通过调用内置的读写函数.可以完成文件的打开/关闭.读.写入.追加等功能. open()函数 open()函数为python中的打开文件函数,使用方式为: f = open( ...

  4. 基于 Agent 的模型入门:Python 实现隔离仿真

    2005 年诺贝尔经济学奖得主托马斯·谢林(Thomas Schelling)在上世纪 70 年代就纽约的人种居住分布得出了著名的 Schelling segregation model,这是一个 A ...

  5. python书籍推荐:量化投资:以Python为工具

    所属网站分类: 资源下载 > python电子书 作者:mimi 链接:http://www.pythonheidong.com/blog/article/451/ 来源:python黑洞网 内 ...

  6. 硬货 | 手把手带你构建视频分类模型(附Python演练))

    译者 | VK 来源 | Analytics Vidhya 概述 了解如何使用计算机视觉和深度学习技术处理视频数据 我们将在Python中构建自己的视频分类模型 这是一个非常实用的视频分类教程,所以准 ...

  7. RFM模型及R语言实现

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 一.基本概念 根据美国数据库营销研究所Arth ...

  8. 轻量化模型之MobileNet系列

    自 2012 年 AlexNet 以来,卷积神经网络在图像分类.目标检测.语义分割等领域获得广泛应用.随着性能要求越来越高,AlexNet 已经无法满足大家的需求,于是乎各路大牛纷纷提出性能更优越的 ...

  9. 7 Tools for Data Visualization in R, Python, and Julia

    7 Tools for Data Visualization in R, Python, and Julia Last week, some examples of creating visualiz ...

随机推荐

  1. javascript正则

      <script type="text/javascript"> //去除两边空格,如果要去除所有空格,使用/\s*即可/ String.prototype.trim ...

  2. 来自GitHub的Android UI开源项目

    最近在搞Android开发,做了一个项目后感觉,Android开发入门很是简单,但要能做出用户体验比较完美的APP实在是一件很不容易的事情!要达到一定的水准,估计还需要慢慢的积累,这里先保存一个Git ...

  3. Search 和 Select比较 - 浅谈

    Search 语法: public IFeatureCursor Search (    IQueryFilter filter,    bool Recycling); Select 语法: pub ...

  4. 莫队算法学习笔记【BZOJ2038:小Z的袜子】【SPOJ3267:D-query】

    很久以前傻乎乎地看来源奇怪的资料的时候被各种曼哈顿弄晕了. 然后现在学会的是分块方法.另新创一个分块方法. 让我们考虑这样一个区间询问问题…… 它有如下的性质: 0,n个数,Q个询问. 1,它没有修改 ...

  5. Python 番外 消息队列设计精要

    消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.当今市面上有很多主流的消息中间件,如老牌的Active ...

  6. Repeater绑定数据库,使用AspNetPager进行分页

    分页是Web中经常遇到的功能,分页主要有真分页和假分页. 所谓真分页是指:每一页显示多少数据,就从数据库读多少数据: 假分页是指:一次性从数据库读取所有数据,然后再进行分页. 这两种分页方式区别在于从 ...

  7. 钢管下料问题(钢管用量最少)Lingo求解

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang !钢管下料问题1(钢管用量最少) 题目: 钢管原料   每根19m 客户需求   4m   50根 ...

  8. wireshark抓一抓,看是不是另一个机器也企图DHCP

    早上的问题,昨晚四点睡,今早九点半起... 到公司处理此问题,不知道相关性大不大..

  9. Codeforces 525E Anya and Cubes

    http://codeforces.com/contest/525/problem/E 题意: 有n个方块,上面写着一些自然数,还有k个感叹号可用.k<=n 你可以选任意个方块,然后选一些贴上感 ...

  10. 勾选checkbox之后,button按钮可用

    js:function chkClick() {    if (document.getElementById("chkBox").checked == true) {       ...