量化投资中,MATLAB和python哪一个好

赵鹏杰 2019-12-21 23:44:00

推荐回答

现在分析全线转R/python,未来有可能上Julia。别问为什么不用matlab了。R/python组合好处在于开源,数据workflow相当容易搭建起来,另外背靠学术界,有相当多的新统计工具可以试。说R速度慢根本不是问题,机器好一点就行了。超大型的数据甚至可以跑R/hadoop。MATLAB的完全就不能比。另外说在“工程上MATLAB有而R/python没有”我觉得是十分奇怪的。就比如,目前新工具而言比如deeplearning来说。python上有Theano/pylearn2/对接caffe,MATLAB的deeplearning我目前只知道一个Toolbox。旧的工具R/python上也不缺。另外我看有答案把MATLAB能直接发送交易信号作为MATLAB卖点。我觉得贵司策略和交易是不是定位不太清晰。为了保证可靠的性能和策略管理的便利性,我想除了个人投资者没有人会选择开着MATLAB下单。
龙巧娥2019-12-22 00:02:13

提示您:回答为网友贡献,仅供参考。

其他回答

  • 我没钱,支持免费开源抛开版权不说,初期入手策略测试、数据分析用matlab非常方便但是策略测试方法、框架弄清楚后,要做正规的回测,还是Python方便,这里的正规是指严格的事件流驱动,虽然速度慢,但是避免未来函数影响、接近实盘的逻辑。Python在这方面已经有很多库了,quantopian的zipline应该算鼻祖了,国内的优矿网和ricequant都跟zipline很像,另外还有知乎大神的zn.py,PyAlgoTrade等。
    赵风艳2019-12-22 00:38:46
  • 全部用文件IO的话可以这样:matlab把所有参数输出到一个文件里,然后用system命令调python脚本。python脚本读文件做计算结果再写文件。最后matlab再读文件得到结果。假设python脚本的用法是:pythonxxx.pyin.txtout.txt则matlab调用命令..。
    齐文泉2019-12-22 00:22:35
  • Matlab在矩阵处理方面的强大优势Python无法比拟,我曾经用Matlab和Python跑同一个算法,涉及到矩阵中Symbol求导。Python用的是Numpy,Sympy和Scipy,感觉Sympy中Matrix虽然功能强大,但是速度很慢,而且需要专注其中各种细节。如:其对Complex类型是无法自动expand的,常常出现1+I2I+1这种结果,这时需要调用.expand来解决。Matlab可以使你专注于模型,Python要超过Matlab还需要时间。但是Python在内容抓取,机器学习,等有强大的第三方包,如Scarpy,Skikit-learn等,发展很快。概括之:现在用Matlab,未来用Python。
    齐春法2019-12-22 00:11:34

相关问答

Python是非常适合做quant类工作的语言,本身就是科学计算方面的统治级语言,现在加入了IPython,pandas等重量级神器,为Quant类工作量身定做,而且仍在飞速发展中,以后会越来越重要。关于其他语言,首先介绍一下我自己最喜欢的一个比较小众的组合,Mathematica+Java/Scala。Mathematica的优点在于:本身提供函数式的编程语言,表达能力非常强大,比如Map/Reduce是标配,很多时候不需要去做烦人的for循环或下标控制,排版经常可以直接照数学公式原样输入,即直观又不容易写错;代码和输出混排的排版方式使得建模时的演算和推理过程非常流畅,甚至还可以直接生成动画,对于找直观理解非常有帮助。他们也可以快速学习掌握一种像C++,Java这样的语言,实现很多必要的功能。但是一方面这些语言陡峭的学习曲线和繁琐的开发步骤会给他们真正要做的工作增加不必要的负担,另一方面一旦涉及到性能敏感的情景,他们对计算机体系结构缺乏理解的缺点就容易暴露,比如说很可能他们没有计算复杂度,内存碎片,cachemiss,甚至多线程等概念,导致写出的程序存在相当大的隐患。即使是计算机功底扎实,如果每天的工作需要在C++,Python,R/Matlab,甚至一众脚本语言之前来回切换,思维负担也会非常重,人的精力是有限的,很难同时兼顾数学建模和底层代码调试这种差距巨大的工作。长期发展下去最可能的结果就是要么远离建模,专心做生产环境开发,要么远离生产环境,专心建模。这种局面显然不论对个人还是团队都是有很大弊端的。如果深入思考这个问题,相信不难得出结论,对于Quant来说,C++这种相当面向机器的语言肯定不是最佳选择。的确在历史上,它比更面向机器的C已经友好了很多,但是在计算机技术飞速发展的今天,如果还需要Quant大量使用C++做建模类的工作显然是很遗憾的事情。设想一下你拿到一份股票数据,不论你是想分析价格走势,成交量分布,还是波动性,第一件要做的事一定是画出图来看看,有一个直观认识。如果你的工具是C++,肯定有很多时间花在编译,调试,再编译的过程上,好容易能解析文件了,接下来怎么算移动平均?怎么算波动性?全都要自己写代码。再然后怎么画图?这整个工作流简直惨不忍睹,这些问题浪费掉你大部分精力,而他们全部和你真正感兴趣的工作毫无关系。所以如果你是一个数理金融等背景的新人打算开始Quant生涯,在决定是否要投资到这项重量级技术上时需要慎重,即便它目前的市场定价可能仍在峰值。相比之下我认为Python会是更理想的选择,即能很好的完成建模工作,也可以训练一定的编程技巧,使你在必要时也能胜任一些简单的C++工作。最后同意@袁浩瀚,不要拘泥于语言,不论学习那一种,对其他的语言还是要抱有开放的心态。另外世界变化很快,你会发现单一的语言分类方式其实是没有意义的,每一门语言在发展过程中都会逐渐吸收其他语言的特性,比如Python本身就既有C/C++/Java那样命令式的特点,也有函数式的特点,像pandas甚至还提供类似SQL的使用方式,在其他语言或系统里也都或多或少包含了不同的特点,可以在学习过程里慢慢体会。