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绑定事件的方法[3种]

    在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定: 在JavaScript代码中绑定: 绑定事件监听函数. 一. 在DOM元素中直接绑定 这里的DOM元素,可以理解为HT ...

  2. F# 可以把几个函数组合成新函数

    C#能做的,F#基本都能做,但F#能做的,C#未必能做. F#中的函数可以把几个函数组合起来使用.下面的例子是把由 function1 和 function2 这两个函数通过运算符“>>” ...

  3. scala学习笔记——操作符

    中置操作符(二元操作符),操作符位于两个参数之间.操作符包括字母,比如to,也可以包括操作符字符,比如1->10,等同于方法调用1.->(10) a 标识符 b 其中的标识符是一个带有两个 ...

  4. 关于javascript中setTimeout()和clearTimeout()的疑惑。

    由于在w3school中学习javascript时,当学到setTimeout()和clearTimeout()方法时.根据它所提供的例子(下面的代码转自w3cschool)—计数程序,发现当你不停的 ...

  5. 第1章 网络编程基础(4)——TCP/IP通信

    TCP协议利用网络层IP协议提供不可靠的通信服务,解决分组的重传和排序问题,为应用程序提供可靠的.端到端的.面向连接的基于字节流的服务. 对等TCP传输实体间的通信具有如下特征: 全双工 只支持两个端 ...

  6. java学习笔记 (5) —— Struts2 监听器配置

    1.创建MyListener.java 实现 PreResultLisener 接口 import com.opensymphony.xwork2.ActionInvocation; import c ...

  7. MySQL查询指定时间的数据

    user_event :用户事件表 create_time :表中存储时间的字段 #获取当月数据 SELECT * FROM user_event WHERE DATE_FORMAT(create_t ...

  8. iOS 的 APP 在系统中如何适配不同的屏幕的尺寸

    iOS 的 APP 在系统中如何适配不同的屏幕的尺寸 标签: 2007年,初代iPhone发布,屏幕的宽高是 320 x 480 像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone ...

  9. Codeforces 545C Woodcutters

    http://codeforces.com/contest/545/problem/C 题目大意: 给n棵树的在一维数轴上的坐标,以及它们的高度.现在要你砍倒这些树,树可以向左倒也可以向右倒,砍倒的树 ...

  10. Cracking the coding interview--Q1.1

    原文: Implement an algorithm to determine if a string has all unique characters. What if you can not u ...