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. MVC 5.0 之奇葩错误-<类型“ASP._Page__ViewStart_cshtml”不从“System.Web.WebPages.StartPage”继承>

    在实际项目中,我们通常添加MVC项目会先添加一个MVC Empty 的项目,然后需要什么在往里面添加. 但是Empty项目里面只有一个路由注册,而且没有_ViewStart.cshtml文件需要自己添 ...

  2. 自己手动绿色化MyEclipse

    绿化过程因每个人的文件存放路径不同而不同 首先打开你解压的MyEclipse文件,或者以前安装的MyEclipse重装系统后不能用,打开到这里:记住路径,比如我的是:D:\MyEclipse 我们打开 ...

  3. C++从多n个数中选取m个数的组合

    //start 是从哪个开始取, picked代表已经取了多少个数 //process和data是全局变量数组 //语言说明比较难,我举个例子吧 //从[ 1, 2, 3, 4 ]中选取 2 个数 / ...

  4. C++ 完美破解九宫格(数独)游戏

    看到CSDN上有位大神用C#写了一个破解数独的程序(点击打开链接),不过我对C#也不懂,比较喜欢C++,就用标准C++也写了一个,希望各位喜欢.三纯程序,纯控制台程序,纯各人爱好,纯算法程序,无win ...

  5. jq:get获取json数据并以表格形式生成到页面

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. C语言 创建一个 txt 文件 bin输入字符 保存文件在工作文件夹里

    int main(void) { char s[70]; FILE *fp; fp=fopen("123.txt","r"); if((fp=fopen(&qu ...

  7. linux下安装eclipse

    最开始的版本OpenSuse + jre-7u25-linux-i586.tar.gz + eclipse-cpp-kepler-R-linux-gtk.tar.gz 配置好java环境后启动ecli ...

  8. frame嵌套的学习

    iframe嵌套的学习 具体代码<br /> window.onload=function(){<br /> var voteid=window.parent.parent.d ...

  9. MobileProject

    iOS开源项目MobileProject功能点介绍 一:MobileProject简介 MobileProject项目是一个以MVC模式搭建的开源功能集合,基于Objective-C上面进行编写,意在 ...

  10. Java学习笔记--Java8 Lambda表达式

    Java Lambda表达式入门:http://blog.csdn.net/renfufei/article/details/24600507 lambda内容的介绍:http://swiftlet. ...