回复内容:

python是一种动态编程语言,语法很简洁,某种程度上类似于matlab和SAS,结合python的几种强大的科学计算类库:NumPy(主要是数学基础方面的)、SciPy(数值计算上很强大,包含NumPy)、SymPy(符号运算库)、matplotlib(绘图库)、Traits(程序界面库)等,可以近似地替代matlab、C++和SAS三者。原因在于:

第一,python首先是一种完整的动态编程语言,虽然执行效率比不上C++,但是开发效率远远高于C++,学习成本较小,对于金融工程这种专业来讲比C++更加合适,毕竟我们自己做模型的时候更在乎的是如何快速实现模型,而不是模型运行快几秒钟,当然对于金融方面的大规模产品,还是用C++更加合适,这就是程序员的事情了,我们一般不会去编写几万行代码的程序。从这个方面来讲,python可以代替C++。

第二,python利用NumPy、SciPy、SymPy、matplotlib等类库,可以完成matlab 90%以上的功能,欠缺的只是极特殊的函数。而且这些都是免费的,中国现在虽然盗版很严重,但是明显正在向正版化的方向发展,以后谁保证能得到免费的matlab?这些类库也在一直发展中,超过matlab只是时间问题。不仅如此,python利用它的界面库做程序界面是非常方便的,用的VB的都还记得可视化编程的爽快,python也可以实现,而且可以实现的更好,这是matlab远远不足的地方。利用这个功能,我们可以用python做好程序后发布给其他人使用,就像使用word这种程序一样,这种方便程度是目前matlab远远不及的。再比如我们要抓取网上的一些数据,利用matlab就比较麻烦,而利用python就极为简单。python可以大大加快我们研究的自动化程度和简单程度,需要的只是好好学习一段时间python而已。

第三,python代替SAS。这个方面其实python没有明显的优势,在统计功能上比不过SAS,但是利用python的好处在于:我们不需要再次学习SAS语言,特别是对于金融工程专业来讲,没有那么多时间和必要性去学习SAS,我们又不是搞专业数据统计的。SAS的大部分功能python都可以实现,不过实现起来比SAS困难一些,对于金融工程专业的人来说,选择SAS还不如选择python+Eviews的组合,Eviews是非常简单,几乎不需要学习。python的学习比较简单,也非常值得。

选择python的最大好处在于可以节省学习的时间,而且弹性较强,可以适应未来多变的需求。剩下的时间不如去好好研究下怎么在金融工程理论与应用方面创新,就不需要浪费时间在学习工具上了。

另外如果需要写爬虫抓取金融数据的话python也是首选,推荐scrapy框架。首先语言只是一个工具, 对于一个从业人员来说重要的是你掌握一种新的语言需要多少时间, 现在的街上如果你去Goldman你需要搞Slang(基本就是Python语法),去JPMorgan, BoA不管你是做core strategist(desk quant)还是中台后台都是用Python, 当然library quant还是在老老实实写C++至少在国际投行里面至少有一到两家在前中后台用python统一了生产环境的大多数系统(比如JPM的Athena)。虽说python可能速度不快,但是对于银行和证券公司业务里面,只有很少的组python的速度成为瓶颈,好处是可以很快产生代码投入使用,并且也可以较容易的与已有的系统链接,这样可以逐步升级。
当然还有些银行在一些项目里使用python非常同意前面的回答,只是对SAS作一点补充:SAS并不是其他软件简单意义上的统计功能强大,其数据清理,数据管理能力是所以其他软件不能比拟的 这一点估计python加eviews难以匹敌。我只能表示通过题主给的标签来看,Python并不合适。

对面目前主流HFT来说,我还真没见到过用Python的,应该仍以纯C为主。
具体原因可以参考来自THU的HFT大神 @董可人 的回答:
Python 做高频交易系统适合哪个级别的延迟? - 董可人的回答

如果不考虑HFT的话,我还是十分赞同 @邱赛高的回答的。
08-29 05:05