设为首页 收藏本站
查看: 1566|回复: 0

[经验分享] 做量化模型Matlab、R、Python、F#和C++到底选择哪一个?

[复制链接]
发表于 2015-12-2 10:44:55 | 显示全部楼层 |阅读模式
  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++了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-146246-1-1.html 上篇帖子: 开启vim的Python支持 下篇帖子: [python]pip常用命令(转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表