针对Quant的Python快速入门指南

做者:用Python的交易员 (原创文章,转载请注明出处)

最近有愈来愈多的朋友在知乎或者QQ上问我如何学习入门Python,就目前需求来看,我须要写这么一篇指南。

针对整个vn.py框架的学习,总体上有两条不一样的路线:html

  • 有经验的Quant学习如何使用Python语言来作策略和交易程序的开发(编程语言是学习重点)
  • 有经验的程序员学习如何将本身的编程知识和经验应用在量化研究和策略开发上(金融量化是学习重点)

我本身自己是金融工程硕士,毕业后也是从Quant入行,因此这篇指南主要针对的是第一条路线,欢迎社区里从第二条路线入行的朋友写写本身的经历。

如下内容建议按照顺序一步步走,不要跳步、不要偷懒,多敲代码、多作调试,英语很差的就当顺道提升阅读水平吧。


python

Learn Python The Hard Way

连接:

这套教程是我进入Python世界大门的敲门砖,一共50个Exercise包含了一个Python新手须要知道的全部基础:git

  • 如何搭建Python环境
  • 变量、注释、运算符
  • 输入、输出
  • 函数
  • 数据结构:字典、列表、集合
  • OO:类和对象
  • 控制语句:条件、循环
  • Python的模块
  • 构建一个小型项目
  • 等等

学习方法很简单:照着Introduction章节中的要求,不用IDE只用编辑器(文中推荐的是Notepad++,我的以为Sublime Text也不错),一行一行地敲代码,敲完后用最原始的方法来运行,根据Python解释器的异常输出来作调试。
50个Exercise所有完成后,你基本就掌握Python的运行和调试方法以及基础语法了。

程序员

利用Python进行数据分析

连接:亚马逊购买页面

这本书的做者Wes McKinney在美国著名的量化对冲基金AQR工做时开发了Python在数据分析领域的主要工具pandas。这本书最大的特色之一是做者用很是多的案例来介绍numpy、matplotlib、pandas和ipython在实践中的使用方法,读者实际操做过一次后当即就能够把相关的知识应用在本身其余相关的项目上。

网上有很多建议新手直接从某个库的用户手册开始学习,我我的不赞同这种方法。缘由是大部分库的用户手册主要是介绍其API的使用方法,内容写得太过抽象,对于原本就没有太多经验的新手而言就跟死记硬背英文单词差很少,看了挺久后每每还不知道如何把代码系统化的整合起来解决本身的问题。

算法

Python Cookbook

连接:京东购买页面

有了以上两段学习的基础后,能够把Cookbook这本著名的“烹饪秘籍”买了放在书橱里以备不时之需(没完成以上两段买了也是浪费看不懂)。既然叫秘籍,内容难度高是必然的,整本书根据用户要使用Python解决的具体问题来区分章节,请了每一个领域中的大牛分享了一些经验和代码。

和前两本不一样的是这本书的内容不用所有掌握,能够先大概扫一遍知道每章有什么内容,后面作开发遇到相应问题时再来翻书研究。另外这本书里不少技术属于Python的“奇技淫巧”级别,若是能所有掌握对于编程水平会有很是大的提升。

数据库

PyQt4入门(ZetCode)

连接:ZetCode

PyQt4是目前Python上最为主流的GUI开发库,底层运行的是C++开发的Qt代码,上层使用Python封装的API来实现调用,运行效率足以知足开发量化交易实时监控界面的需求。

对于Python新手而言,学习PyQt4除了开发GUI外,更重要的是吸取PyQt4代码中的面向对象(OO)的设计模式相关的知识。简单的量化策略能够用过程式编程的方法来实现(如轮询价格、突破100买、跌破90卖),可是对于复杂的量化策略(如期权波动率套利、跨多市场套利等)就须要使用OO的设计模式来解耦不一样功能的模块(信号生成、委托下单、风险管理),提升整个代码的健壮性和可维护性。PyQt4的OO编程风格很是简洁和清爽,掌握后用在其余的项目开发上能够大幅提升程序的编码质量。
另外推荐这本书给想要更深刻学习PyQt4的朋友:Introduction to Python Programming and Developing GUI Applications with PyQT

编程

QuantStart

连接:

应该是目前全球Python量化交易领域访问量最大和内容最丰富的网站,不加之一是由于据我所知尚未更大的,并且我还喜欢常常在网上找Python量化的资料,应该算得上经验丰富。
QuantStart上的内容总体难度较高,都是直接使用Python来处理量化交易项目的知识经验和代码实例,没有老老实实学完前几个部分大几率是会看得云里雾里。
总结下网站文章的大致分类:flask

  • 买方(P宗):
    • 算法交易
    • 统计建模和机器学习
    • 量化策略研究
    • 时间序列建模
  • 卖方(Q宗):
    • 二叉树模型
    • 随机积分
    • 偏微分方程PDE
  • 代码示例:
    • C++
    • Python
    • 外汇交易平台开发
    • 统计套利平台开发
  • Quant职业生涯
    • 职业生涯建议
    • 读书笔记

另外网站的做者也写了两本书Successful Algorithmic Trading和Advanced Algorithmic Trading,比起另一个著名的量化博客主E.P. Chan写的两本书质量要好很是多,推荐购买。设计模式

其余学习内容

CodeCombat
连接:

写Python代码来玩RPG游戏,游戏设计的很是好,毫无基础的人也能逐步掌握Python编程(原本就是设计给孩子的),同时一些关卡对于程序员的逻辑思惟能力有很好的训练。游戏难度随着关卡逐步加强,到后期仍是有至关的挑战度,可能致使学习者沉迷其中,入坑前请谨慎三思……

Flask Web开发:基于Python的Web应用开发实战

连接:亚马逊购买页面

Flask是Python目前在Web开发领域人气最高的框架之一(另外一个是Django),采用微框架的设计哲学,代码短小精悍,同时还有着很是好的扩展性。整本书的内容就是教会读者如何一步步从0开始搭建一个本身的博客,中间涉及的设计模式、数据库ORM、APP部署等知识在量化领域也都有相应的应用。

廖雪峰的Python教程数据结构

连接:

能够做为LPTHW的中文版替代,涉及的内容相对更加丰富也带有大量的代码实例,不过整个教程中对于Python一些底层特性的讲解较多,更加适合完成了前几个阶段的学习后用来做为二次的知识巩固和提升,初学者建议仍是从LPTHW开始入门。

知乎

连接:http://www.zhihu.com

知乎和豆瓣同样,都是国内使用Python开发的大型项目,其员工对于Python的讨论氛围很是浓厚。同时做为一个以问答为主的社区,知乎上的Python问题下汇聚了不少国内Python业界的大牛级高手的回答和文章,上下班挤地铁、买早饭排队、晚上睡不着的时候随手翻一翻,既解决了无聊又能吸取不少碎片化的知识。

vn.py项目

连接:项目官网维恩的派论坛最后,请容许我厚着脸皮推荐一下本身的开源项目…… #^_^#

相关文章
相关标签/搜索