“我在学一门叫Python的语言”。“什么是Python,没听说过啊,为什么不学C++啊”。这是发生在2014年,上海的一家量化基金,量化研究员和老板之间的对话。
“我想问一下关于Python的课程,什么时候能开班”。“Python啊,学的人特别少,满XX人才能开班,可能要等好几个月,C++考虑吗,JAVA和PHP呢,这几门语言的课程,报名了立即就能开班”。这也是发生在2014年,上海的一家IT培训机构,学员和客服之间的对话。
如今的2021年,哪家量化基金公司的老板,要是没听说过Python,可能会被人怀疑,是否还属于人类这个物种。而在IT培训机构,Python已成为最火爆的课程,没有之一。
Python为什么发展这么快
Python,由程序员Guido van Rossum,于1989年圣诞假期着手开发,在1991年,初代版本面世。从1991年到2014年,Python名不见经传,却在2014年之后爆发式发展,大器晚成。Python的火爆很大程度上是由于移动互联网的发展,信息量和数据量大幅增加,从而带动了对大数据的处理需求,并推动了人工智能技术的发展,而Python则搭上了大数据和人工智能的快车。
但同样是大数据和人工智能的爆发,为什么搭上这趟快车的是Python,而不是其他语言,这就要从Python的核心优势讲起。
Python的核心优势
早在2014年之前,量化行业是被C++、Matlab所垄断。量化策略研究员,往往计算机能力有限,需要使用简单的编程工具,像Matlab这样,对编程能力要求不高,又可以运用大量数学模型的工具,就成为量化策略研究员的首选。但是Matlab最大的问题是,它并非独立的语言,量化策略研究员做出的策略,并不能直接实盘,还需要程序员将Matlab代码转化成C++代码来执行交易。这就使得从策略研究到实盘的流程非常繁琐。
并且2014年后,知识产权的保护越来越严,免费的Matlab越来越难拿到,量化基金公司不得不每年花费大量的金钱购买正版Matlab,按照每个量化策略研究员至少有一个正版Matlab的基本配置,每年光软件费就要花费几十万甚至上百万。
而这个时候,Python随着大数据和人工智能的爆发,已经在计算机行业,从一个小众语言,发展成为主流语言。量化基金苦于Matlab的痛点,一直在寻找可以替代Matlab的软件或语言。而Python几乎完美解决了这些痛点。
第一,Python是一门完整性的计算机语言,而不仅仅是依附于某一个商业软件的编程工具,这就使得Python具有很强的可拓展性,量化策略研究员用Python写出策略后,可以直接实盘运行,不再需要程序员帮忙转成C++。这也间接造成量化公司的一部分C++程序员失业,不过他们出路还不错,有些回到了计算机行业,普遍有涨薪。
第二,Python是开源语言,并且在大数据处理和人工智能方面有更丰富的库可供调用,完全免费。Matlab能实现的功能,Python都可以实现。Matlab不能实现的功能,Python也可以实现。量化基金公司纷纷转向Python,直接省下了每年几十万元的软件费用。
第三,Python是所有完整的计算机语言中最简单的。这点是Python的核心优势。同样的功能,用C++可能需要1000行代码,用JAVA需要300行代码,而用Python最多50行搞定。对于量化公司,Python满足了策略快速迭代的需求,毕竟商业世界,时间就是金钱。
Python简洁的设计理念,正如Python大神Bruce Eckel的原话“Life is short, I need Python”(人生苦短,我用Python)。这句话也被印在Python创始人Guido van Rossum常穿的T恤上。
Python的替代品
Python是世界上最简单易学的完整计算机语言,没有之一。有句话说,Python不一定是计算机从业者的第一语言,但一定是非计算机从业者的第一语言。单从语言的维度看,在量化交易领域,Python已成为绝对主流,具有压倒性优势,很难被其他语言代替。
不过,如果把视野拓展到商业金融软件自带的编程工具,而不仅仅是完整的计算机语言,在量化的世界,Python还是有替代者的。以下按编程难度从难道易排序。
一是以TradeStation、Multicharts、TradeBlazer为代表的专业期货量化软件。量化交易历史悠久,海外最广泛运用的量化平台是TradeStation。FuturesTruth每年评选的前十大期货策略,大部分就是在TradeStation软件上开发的。Multicharts、TradeBlazer基于TradeStation的逻辑,但在编程工具上做了优化,使量化策略研究员能够更快上手。虽然Python已经是世界上最简单易学的计算机语言,但在TradeStation、Multicharts、TradeBlazer这3个软件上编程的难度,仍远小于Python。
二是以文华财经、同花顺、通达信为代表的常规期货与股票软件。这3个软件自带的编程工具非常类似,简称“麦语言”。文华财经可实现期货自动交易,同花顺和通达信仅可用于量化选股。在这3个软件上编程的难度,又远小于TradeStation、Multicharts、TradeBlaze。
三是东财choice与Wind的条件选股。这块量化非常简单,连代码都不用写,直接按照中文的模块生成条件组合即可。例如以下界面:
四是同花顺的AI中文识别量化,这可能是最简单的量化了,连中文模块都省了,直接打中文告诉电脑要选什么股,就像和人打中文字交流一样。例如以下界面:
总之,针对交易者既不懂编程也学不会编程,但又想做量化的痛点,现在的金融软件,已经做到了:即使一个人完全不懂编程,不会写代码,只要他会打中文字,也可以做量化。