搞金融的同学三小时快速入门python从零入门量化交易系
列
零基础学java编程【本文比较长,有4000多字和大量配图,并且需要实际操作,建议在电脑端打开】前面,我们讲了为什么要做量化交易,什么是量化交易,以及量化交易的解决方案。作为一个屌丝,这里我们选择开源(Bu Yao QIan)的解决方案:VN.PY来开始我们的量化交易旅程。然而要想使用VN.PY 你得懂一点Python,不用太多,一点就好。在之前和很多搞金融的同学交流的时候,很多人都是因为觉得要花上几个月学编程,所以打消了对量化的兴趣。其实是姿势不对,我们不是必须把编程学的很溜才能搞量化,我们只要“会一点点”就可以了,这才是快速入门量化的正确方法。所以,今天给大家带来一个3小时快速入门Python的教程。在这里声明,这篇文章目的是为了让没有编程经验的同学,能够快速入门,所以内容是最小知识集(真的不用懂太多)。按照本文边看边做,3个小时内肯定能够学会Python的基础编程。有Coding基础的同学,本文可以略过。请出门右转到京东购买《Python金融大数据分析》,学习进阶内容。一、Python是什么?Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合网页编程的JavaScript语言等等,Python
就是其中一种。Python的优势,一是容易上手,二是完成同一个工作,编写的代码量小。比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。废话不多说,我们进入学习环节。二、Python
和Anaconda的安装和使用要学习Python,你得先安装Python 和对应的编辑器。这里有人已经帮我们做好了打包的软件,anaconda。只要装上这个,Python和对应的编辑器就都有了,还附带了很多进行科学计算的package,可谓是金融分析利器。这里以Windows为例。为了便于后面安装VN.PY,我们下载4.0的32位版本,如下图:安装完毕后,点击开始菜单在Anaconda里面到,Jupyter NoteBook,点击打开后就能开始Python编程了。我们可以进入桌面文件夹,建立自己的第一个Notebook文件,这样比较好一点。建立NoteBook 后,就能看到我们的编程界面了:到这里我们的工具就准备好了。三、编程语言要学习的内容一种编程语言的学习,入门的基本包括几个方面:1、基本的类型,拿汽车来打比方,你可以理解为构成汽车的各个部件2、各种容器,可以理解为能装很多东西的部件,就像汽车的后备箱3、控制逻辑,可以理解为汽车的方向盘,用来控制程序的运行4、函数,可以理解为把一连串经常要用的指令进行组合,这样我们不需要每次都重新写,只需要调用一个函数就可以了。5、面向对象,可以理解为函数已经满足不了需求,通过对象可以
把更多东西组合在一起,方便我们调用和他人理解。四、Python的基本类型Python的基本类型其实不多,也就是整数(int)、浮点数(float)、布尔值(bool)、字符串(str)这几种。Python是一种强类型语言,所以我们要注意对象的类型,可以使用type()函数来显示对象的类型。使用Jupyter NoteBook进行编程,显示如下:基本类型是我们在Python 中用来表述数据最小的颗粒度.五、Python的容器容器是用来记录数据的,Python中的常用容器有列表、集合、元组、字典。1.列表列表(list)
是一种有序的容器,可以对元素进行增、删、改操作,例如:2.集合集合(set)是一种无序的而且元素不重复的容器。对上面的列表用set()做一个转化,会发现,之前重复的Lily没有了。3.元组元组(tuple)和list 非常类似,但是tuple一旦初始化就不能修改。因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。4.字典字典(dict)在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查速度。大家可能对这些容器没有什么概念,但当你要存一个股票的N天收盘价时,你就会用到列表;当你要存股票名字和代码的对应关系的时候,你就会用到字典。容器就是我们用来装金融数据的篮子。六、Python的控制逻辑Python是通过缩进排版来组织代码逻辑的,通过Tab键或者空格代表缩进。有相同所及的代码属于同一代码块,如果使用if、while、for、def或
者class等关键字开始的代码行,要以冒号结束,并且其后所有代码缩进相同的量,直到这个代码片段结束。1.条件判断计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现:如果if判断是true ,则执行if下缩进的语句;如果if判断是False,就不执行if的内容,而去else下缩进的语句;此外可以用elif来加入多类别判断:2.与、或、非在Python中逻辑运算符与、或、非是用and、or和not来代表的,这一点比较接近英文3.for循环Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。for循环是我们编程常用的控制形式,他的流程如下图:代码实例:4.while循环While循环是很重要的特别是很多回
测框架,底层一定是有一个while循环来不断拿数据,然后送到回测代码中进行回测。while循环是当条件为真时,就不断执行,直到条件为假为止,中间可以用continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环;5.列表推导式在我们看别人的量化代码时,有时候作者为了一些难以名状的目的,会使用列表推导式来写代码,把几行代码集合成一行,这会让很多新手摸不着头脑。在这里给大家举例讲解:看到这样的代码,大家不要慌,认证的看几遍,一般都能看懂的。就是把循环、判断和赋值写在了一行里面。七、函数函数是我们为了避免编写重复代
码,而采用的一种把某个代码片段复用的方式。1 内置函数Python为我们提供了很多的内置函数,比较常用的是求数组中的最大、最小值:2 自定义函数对于系统中没有提供的功能,我们自己自定义函数来实现:3 lambda函数针对一些比较简单的函数,没必要完整定义一个函数,这个时候我们可以用Lambda匿名函数直接定义,更加简洁:八、面相对象面向对象编程(Object Orient Programming,OOP),是把某些特征抽象出来,形成一个类。每个类一般包含的是:属性和操作属性的方法(或者叫函数)。thoPython中的类定义方式与其他语言差别不大,最大的特点是每个类方法的第一个参数都是以self开始,后面是其他参数。Python中并没有访问控制,没有类似Java,C++中private\public的关键字来表明方法的类别,而是通过特定的属性和方法命名规则来达到这个效果。protect、private系统保留定义的规则如下:1.任何以单下划线开头的名字都代表protect,比如self._5minBar、self._marketPoint;2.任何以双下划线开头的名字都代表private,比如self.__init3.任何以双下划线开头
和结尾的名字,都代表系统保留,比如:__len__();1.类的封装在编程中,我们希望能够更好的描述一个事物,而“类”就是这个解决方案,我们把一个事物的一些特征和行为都封装在这个类里面,这样我们在要使用的时候,就只需要新建一个类的对象,而不用再把所有的代码都重写一遍。2.静态方法、类方法静
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论