说起Web领域 你立马会想到JavaScript语言,它在Web领域不可撼动;Python也已经在金融量化投资领域占据了重要位置,从各个业务链条都能找到相应的框架实现。
在量化投资(证券和比特币)开源项目里,全球star数排名前10位里面,有7个是用Python实现的。从数据获取到策略回测再到交易,覆盖了整个业务链,还是很厉害的!
因此,堪称入门免费、简单、可移植性、解释性、 丰富的库、 面向对象的Python语言,便就是它了!
TIOBE于近日公布了 2020 年 3 月的编程语言排行榜:Python排名第三。
那为什么Python可以做到呢?它又有什么优势???
一、Python是一门比较全面与平衡的语言。
既能满足包括web在内的系统应用的开发,又能满足数据统计分析等数学领域的计算需求,同时也能作为胶水语言跟其它开发语言互通融合。
在数据分析方面,没有其他语言能像Python这样既能精于计算又能保持性能,对于时间序列数据的处理展现了简单便捷的优势。
二、Python策略开发速度。
首先,python策略开发周期非常的短,这是毋庸置疑的。因为,同一个功能Python代码100行、C语言 300行,也符合其设计哲学。
那咱们下面用两种语言 来计算下π,就一目了然了。
C语言:
Python语言:
两者很明显,Python语言只用了C语言的1/3的代码量就实现了同样的功能,但是呢,他也是优缺点的,咱们不能只说他的优点是多么的好,缺点呢也要正视,否则怎么能看到它的缺点怎么被解决和克服的。
Python的缺点也是比较明显的,虽说代码量减少了不少,运行速度也随之降低了。据了解,C语言的运行速度是Python的十倍左右,例如:python执行一段代码需要20秒,C语言仅需要2秒。
那有人肯定会问,那运行速度慢但是怎么还怎么火呢?
首先,用C语言开发策略,一般而言策略对速度的要求极高,例如:高频策略。但是门槛相对高,不仅仅是语言门槛,还有交易通道也非常关键。
所以,一般人是没有这个必要去做此类策略的,中低频的量化策略相对多见,对交易速度要求不是那么的高,因此才这么多人使用python开发策略。
所以它的缺点就不是那么重要了,被广大人群所接受了!
三、在数据分析方面,对于时间序列数据的处理展现了简单便捷的优势。而如此适用的特点,主要有下面厉害的框架和工具的支持:
Pandas:起源于AQR的数据处理包,具有金融数据分析基因
基于Series、DataFrame和Pannel多维表结构数据;数据自动对齐功能;数据清洗和计算功能;时间序列数据快速处理功能
Numpy:底层基于C实现的科学计算包
具有强大的N维数组对象;Array具有数据广播功能的函数库;具有完整的线性代数和随机数生成函数
Matplotlib:基于Python的数据绘图包,能够绘制出各类丰富的图形和报表
另外,Python在机器学习领域的应用也越来越多,其中的开源项目包括了scikit-learn、Theano、Orange等
SciPy:开源算法和数学工具包
最优化线性代数、积分、插值、特殊函数;快速傅里叶变换;信号处理和图像处理常微分方程求解;其他科学与工程中常用的计算
其功能与Matlab和Scilab等类似
四、选择的平台多样。
目前国内开源量化平台几乎都是采用python语言进行量化策略的开发。近些年,以网站的模式进行策略开发、模拟、交易的平台,聚宽、米筐、优矿,万矿,一涌而出!就目前看来,聚宽量化算是其中的佼佼者,京东量化一出没多久,直接pass了。
用python开发量化交易策略,有优点也缺点,但也不妨碍其成为量化投资界最受欢迎的开发语言。
虽说速度慢,但市场中大部分的策略属于中低频的策略,所以对策略的运行速度要求并不是很高,python刚刚好。我们还是根据自身的需求,选择适合自己的量化策略开发语言。
如果感觉写的还可以的话,欢迎关注+点赞哈,让这位正在成长的女程序猿快速成长为大神,哈哈哈哈,梦想还是得有的,下篇文章干货见哦~