針對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項目

連接:項目官網維恩的派論壇最後,請容許我厚着臉皮推薦一下本身的開源項目…… #^_^#

相關文章
相關標籤/搜索