前言
不是几乎所有,是参数维度低 (如一维矩阵) ,交易频率不高的情况下 (5分钟bar以上),Python为最优解
机构会根据业务需求选择语言,常见的是做高频用C++其他的用Python。其实没有所谓“最好的”做量化交易只的编程语言一说
【----帮助Python学习,以下所有学习资料文末免费领!----】
策略代码化之前,在语言的选择上要考虑以下因素:
- 语言维护成本
- 语言的性能
- 语言的韧性
- 模块化程度
- 语言的性能可以理解成程序运行的快慢。
在这点上,C语言摘得桂冠,而Python远远输于大部分语言,它的运行速度几乎垫底,这个劣势在量化交易中是个弊端
语言的切性可以理解为处理问题的能力。
打个比方,C#和C是瑞士军刀,大活细活都能做,而Python是把电锯,修整大型物品游刃有余但处理精细的调修工作会很吃力。这点Python也是不如如C+的。
量化策略不是一谢而就的,不是写完了挂那儿跑就能一直钱生钱的,运行的时候会遇到大量的问题
比如说资金量逐渐大起来对价格扰动,再比如说实盘和回测表现差异过大等等,所以后期都需要持续性的维护
在这一点上Python的优势就体现出来了: 模块化程度高,也就是大量功能调包即可实现,因此代码量小,维护成本低
模块化程度高,也就是说那些复杂的函数功能,被封装在一个个轻量级的库(library)里,通过两行代码调用就能实现。
为什么量化鸡构选择了Python,而非C+?
虽然Python在性能和韧性上都比不过C,但是Python高性能库多啊,上手起来快啊.
如果机构都追求十全十美,都用C语言,那会是怎样的情景?
一个用np.reshape就能实现的功能,用C写出了一扒拉。一个原本一百多行的代码策略,用C硬生生凑了一两干行。
遇到运行报错,原本改一行代码就能解决,现在要改几十行代码。
用时和维护成本一下子就被拉高了好几个级别
那么什么场景下,必须用C+呢?
- 参数维度比较大的时候。如果是低维参数,比如一维的list,那么Pvthon足矣。如果参数是十维,比如10x1的一阶矩阵,C+无疑是更合适的语言
- 交易频率很高的时候。交易5分钟bar或者5分钟以上的bar,选Python别犹豫。交易1秒以下的bar (sub-second次秒级) ,你只能选C
你可以想想在高频领域,为啥不能用Python,因为Pvthon太慢了,你要在零点几秒的时间里赚到money,等Python经过一系列计算发出交易指会,镰刀都挥过波了。
总结一下
量化机构之所以用Python作为开发语言,最主要的原因是
Python把大段的代码都打包进了库里,做调包侠是很快乐的事
感谢感谢在座的各位点赞
下面将围绕Python量化交易方面分享相关的学习资源。
一、Python所有方向的学习路线
刚开始学习python,如果你连完整的学习步骤都没有规划好,基本不可能学会python。他把Python所有方向路线做了整理,形成各个领域的知识点汇总。(图片太大了,这里放不了没完整版可以文末免费领取)
二、入门全套学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
三、Python操作实例
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
四、Python就业项目实战
我们学习Python必然是为了找到高薪的工作或者高报酬的兼职,下面是一些公司所能用到的实战项目,学完这些相信大家一定可以找到满意的工作。
11 Django框架
16 微信公众号
18 通用爬虫模块使用
…
21 数据分析
22 机器学习
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
资料领取
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以微信扫描下方CSDN官方认证二维码【免费获取】↓↓↓。
好文推荐
了解python的前景:https://blog.csdn.net/SpringJavaMyBatis/article/details/127194835
了解python的兼职副业:https://blog.csdn.net/SpringJavaMyBatis/article/details/127196603