搞金融的同学三小时快速入门python从零入门量化交易系列新

  • 格式:docx
  • 大小:11.67 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

搞金融的同学三小时快速入门python从零入门量化交易系

【本文比较长,有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 o只要装上这个,Python和对应的编辑器就都有了,还附带了很多进行科学计算的package,可谓是金融分析利器。这里以Windows为例。为了便于后面安装VN.PY,我们下载4.0的32位版本,如下图:安装完毕后,点击开始菜单在Anaconda里面找到,Jupyter NoteBook,点击打开后就能开始Python编程了。我们可以进入桌面文件夹,建立自己的第一个Notebook文件,这样比较好找一点。建立NoteBook 后,就能看到我们的编程界面了:到这里我们的工具就准备好了。三、编程语言要学习的内容一种编程语言的学习,入门的基本包括几个方面:1、基本的类型,拿汽车来打比方,你可以理解为构成汽车的各个部件2、各种容器,可以理解为能装很多东西的部件,就像汽车的后备箱3、控制逻辑,可以理解为汽车的方向盘,用来控制程序的运行4、函数,可以理解为把一连串经常要用的指令进行组合,这样我们不需要每次都重新写,只需要调用一个函数就可以了。5、面向对象,可以理解为函

数已经满足不了需求,通过对象可以

把更多东西组合在一起,方便我们调用和他人理解。四、Python 的基本类型Python的基本类型其实不多,也就是整数

(加)、浮点数(float)、布尔值(bool)、字符串氐仃)这几种。Python是一种强类型语言,所以我们要注意对象的类型,可以使用type(谓数来显示对象的类型。使用Jupyter NoteBook进行编程,显示如下:基本类型是我们在Python 中用来表述数据最小的颗粒度.五、Python的容器容器是用来记录数据的,Python中的常用容器有列表、集合、元组、字典。1.列表列表(list)是一种有序的容器,可以对元素进行增、册h 改操作,例如:2.集合集合(set)是一种无序的而且元素不重复的容器。对上面的列表用set()做一个转化,会发现,之前重复的Lily没有了。3.元组元组(tuple)和list 非常类似,但是tuple 一旦初始化就不能修改。因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple o 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.__init

3.任何以双下划线开头和结尾的名字, 都代表系统保留,比如:len(); 1.类的封装在编程中,我们希望能够更好的描述一个事物,而“类”就是这个解决方案,我们把一个事物的一些

相关主题