針對 Quant 的 Python 快速入門指南

2021-03-02 證經學社

作者:用Python的交易員

最近有越來越多的朋友在知乎或者QQ上問我如何學習入門Python,就目前需求來看,我需要寫這麼一篇指南。

針對整個vn.py框架的學習,整體上有兩條不同的路線:


我自己本身是金融工程碩士,畢業後也是從Quant入行,所以這篇指南主要針對的是第一條路線,歡迎社區裡從第二條路線入行的朋友寫寫自己的經歷。

以下內容建議按照順序一步步走,不要跳步、不要偷懶,多敲代碼、多做調試,英語不好的就當順道提高閱讀水平吧。


Learn Python The Hard Way

連結:learnpythonthehardway.org

這套教程是我進入Python世界大門的敲門磚,一共50個Exercise包含了一個Python新手需要知道的所有基礎:

如何搭建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)


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

連結:quantstart.com/

應該是目前全球Python量化交易領域訪問量最大和內容最豐富的網站,不加之一是因為據我所知還沒有更大的,而且我還喜歡經常在網上找Python量化的資料,應該算得上經驗豐富。


QuantStart上的內容整體難度較高,都是直接使用Python來處理量化交易項目的知識經驗和代碼實例,沒有老老實實學完前幾個部分大概率是會看得雲裡霧裡。
總結下網站文章的大體分類:

買方(P宗):

算法交易

統計建模和機器學習

量化策略研究

時間序列建模

賣方(Q宗):

代碼示例:

C++

Python

外匯交易平臺開發

統計套利平臺開發

Quant職業生涯

另外網站的作者也寫了兩本書Successful Algorithmic Trading和Advanced Algorithmic Trading,比起另外一個著名的量化博客主E.P. Chan寫的兩本書質量要好非常多,推薦購買。

其他學習內容

CodeCombat

連結:codecombat.com/

寫Python代碼來玩RPG遊戲,遊戲設計的非常好,毫無基礎的人也能逐步掌握Python編程(本來就是設計給孩子的),同時一些關卡對於程式設計師的邏輯思維能力有很好的訓練。遊戲難度隨著關卡逐步增強,到後期還是有相當的挑戰度,可能導致學習者沉迷其中,入坑前請謹慎三思……

Flask Web開發:基於Python的Web應用開發實戰

Flask是Python目前在Web開發領域人氣最高的框架之一(另一個是Django),採用微框架的設計哲學,代碼短小精悍,同時還有著非常好的擴展性。

整本書的內容就是教會讀者如何一步步從0開始搭建一個自己的博客,中間涉及的設計模式、資料庫ORM、APP部署等知識在量化領域也都有相應的應用。

廖雪峰的Python教程

連結:liaoxuefeng.com/

可以作為LPTHW的中文版替代,涉及的內容相對更加豐富也帶有大量的代碼實例,不過整個教程中對於Python一些底層特性的講解較多,更加適合完成了前幾個階段的學習後用來作為二次的知識鞏固和提高,初學者建議還是從LPTHW開始入門。

知乎

連結:http://www.zhihu.com

知乎和豆瓣一樣,都是國內使用Python開發的大型項目,其員工對於Python的討論氛圍非常濃厚。同時作為一個以問答為主的社區,知乎上的Python問題下匯聚了很多國內Python業界的大牛級高手的回答和文章,上下班擠地鐵、買早飯排隊、晚上睡不著的時候隨手翻一翻,既解決了無聊又能吸收很多碎片化的知識。

vn.py項目

END

  o.im/5ecqLZ

本文已得到作者本人授權


 重大福利:【僅限今日】《Python金融量化案例系列課》立減100元!

通過具體模型和實戰授課的方式。不僅鞏固和加強學員的Python技術,並且通過實際的案例教授學員。注!學員們需要提前做好學習路徑規劃。

(本次課程顧問Joyo@證經學社(ID):zjmarketing)

相關焦點

  • Python快速入門的方法
    那麼,作為一個新手,如何才能快速並有效的入門呢?0.快速入門《和孩子一起學編程》這本書說是給兒童設計的,所以內容比較生動。非常非常非常簡單易懂 不用花太長時間就能看下來一遍。import一個easygui,初學者分分鐘做個圖形界面出來,對於初學python,成就感!!
  • 入門Python, 看這些資料就夠了
    因此特意針對初學者整理了一份, 希望對即將學習或正在學習Python的你們有幫助。 要入門Python,資料並非越多越好, 基本上看這些資料就夠了。 。目錄:第一部分: Python入門&進階教程第二部分: Python Web框架第三部分: Python擴展資料推薦的學習路徑: 1.
  • 大學生如何入門Python量化金融?
    所以綜上所述,如果是編程零基礎的同學,入門量化的程式語言毋庸置疑是選擇Python。而BaoStock是2018年的新數據接口,口碑也不錯,缺點是只針對股票市場,期貨等市場還沒有涉及。不過對於入門選手來說,這兩個接口都是綽綽有餘啦。個人用的比較多的是TusharePro,導入數據直接是DataFrame格式,非常方便。
  • 一份Python入門學習指南
    既然我們選擇了Python這款神兵利器,那麼如何才能快速的學好Python呢? 1).找一本靠譜的書注意是靠譜的,難度一定要是入門級別。剛開始學,一上來看深奧的書,很容易受阻,時間長了就會失去興趣。這裡著重介紹兩本入門書籍: 2).開發工具學習python一定要學一個好的開發工具,Python的開發工具很多,這裡我只推薦3種:Sublime text:輕量級神器,視覺效果上非常享受。簡潔,同時有龐大的插件庫,是非常流行的編輯器,適合練手小的程序和小的項目。
  • python自學指南
    這是一篇 python入門指南,針對那些沒有任何編程經驗,從零開始學習python的同學。不管你學習的出發點是興趣驅動、拓展思維,還是工作需要、想要轉行,都可以此文作為一個參考。通過自學,你只要在幾分鐘內就可以正常運行一個基本的python程序;再過1個月,你甚至都可以成為技術大拿了!
  • python如何快速入門
    昨天有同學私信我,說看了機器學習的東西,但是不懂python,也不知道怎麼入門,打算介紹一下思路給同學參考一下。首先,要連接python是什麼?可以做什麼?目前有什麼場景?機器學習實戰-sklearn介紹接下來,我根據我的經驗,來給出建議,可以參考一下如何入門
  • 十六本python入門學習書籍推薦,python入門新手必看
    隨著人工智慧時代的到來,python程式語言一步登天衝到編程排行榜第一名,因此更多朋友想轉行學習python程式語言的朋友,可以一起看一下:python入門新手必看的十六本python入門學習書籍1、python基礎教程司維所著圖書:本書包括Python程序設計的方方面面,首先從Python
  • Python推薦書籍從入門到進階(珍藏版)
    Head First Python主要講述了Python 3的基礎語法知識以及如何使用Python快速地進行Web、手機上的開發2.《Python編程:從入門到實踐》本書的講解很到位,不過就是在對一些簡單知識點的講解方面投入了過多的筆墨。
  • 程式設計師大神分享零基礎如何30天入門快速學習python
    零基礎如何30天入門快速學python?一:明確自己的學習目標不管我們學習什麼樣的知識,都要對自己的學習目標有一個明確的認識。Python的主要內容有三大模塊,包含十大部分:四、Python初級開發工程師1.python語言基礎(可以python基礎語法入門和項目實踐);2.python語言高級(能夠利用python進行一般的數據處理和爬蟲);
  • QuantLib 金融計算——基本組件之 Date 類
    需要注意的是,quantlib-python 中的 Date 類並不同於 python 自身包含的 datetime 類,也沒有繼承關係。載入 QuantLib:import QuantLib as qlprint(ql.
  • python常用英語單詞詞彙 unit6
    1. python tutorial python入門指南、python教程2.介紹;引進;採用;入門;傳入19. introduction to 介紹;入門20. getting started 入門指南;準備開始21. table of Contents 本期目錄目錄目次內容列表22. table e of contents
  • 文科生快速入門python(十三) | 文件讀寫詳解
    除了之外【python辦公自動化(一) | chardet庫自動讀寫多編碼格式的文件】中描述的編碼錯誤外,還有忘記close()造成讀不到文件、搞混r,w,a,x模式、寫錯read, readline, readlines方法之類的常見錯誤。
  • 書聲琅琅:好的Python入門教程
    好的Python入門教程,書聲琅琅教育番茄老師微信pykf20介紹,python語言現在應用非常廣泛,不管是大數據還是人工智慧,應用最多的語言還是python,因此對於許多小白來講,看到python從業者的高薪資,想要轉行,或者致力於python開發的朋友,如果要學習python,從零基礎開始,一定需要一套完整的學習路線。
  • [分享]Python金融小白自學之路
    不過對於大部分量化投資者而言,尤其是初學者,開發佔用的時間遠遠大於運行時間,如果追求運行速度的話,也可以先將策略開發出來,再使用C/C++重寫高性能代碼段。另外,從量化資源而言,Python資源更多,而且MATLAB是商業軟體,Python是開源免費的。所以綜上所述,如果是編程零基礎的同學,入門量化的程式語言毋庸置疑是選擇Python。
  • Python 密碼學入門書籍
    今天,就和大家推薦一本免費密碼學編程書籍,還是使用Python程式語言的——《Python密碼學編程》這是是一本有關密碼學、計算機編程和Python程式語言的免費入門教科書,由舊金山的軟體開發人員Albert Sweigert編寫。
  • python入門
    --Yves Hilpisch 《Python for Finance》發現近期學習python的人越來越多了,最近也有人問我有沒有啥課程或者書推薦的。我自己還是側重數據計算和在金融中的應用,系統管理、web開發等沒做過。我當年也是新手入門,自己搜索嘗試,買了很多的書,也在網上下載了很多資料。
  • 《料理模擬器》快速上手教程指南 怎麼快速入門?
    料理模擬器怎麼快速入門?想要自己經營好自己的小廚房,先要從基礎入門,有些萌新玩家還不知道怎麼操作,這裡給大家帶來了「獅子猿」提供的料理模擬器快速上手教程指南,一起來看下吧。 料理模擬器怎麼快速入門?
  • 可能是最通俗易懂的Python入門資料整理和最優學習路線推薦.
    Python官方中文文檔:優點:這無疑是最權威最全面的指南和教程。缺點:對新手及其的不友好。廖雪峰的Python教程:優點:完整、精煉、有深度。缺點:不太適合新手學習,有一種學「畫馬」的感覺。《Python編程:從入門到實踐》:優點:強調實踐。多人好評、力推,還介紹了matplotlib、NumPy等常用庫。 缺點:某些地方有些囉嗦。《Python編程快速上手》:優點:適合開發使用,有很強的任務驅動性。
  • Keras 教程: Python 深度學習終極入門指南
    Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。
  • python程序媛BeautifulSoup快速入門
    其實,媛媛本人呢,是習慣使用正則的,不過經常聽到很多同學表示正則太複雜,想要使用BeautifulSoup庫,今天呢,就滿足大家,帶著大家超級簡單案例,快速入門。1.首先,使用一個庫,先安裝。參考媛媛之前的帖子,有詳細的教大家第三方庫安裝。2.再,導入我們要用的各種庫。媛媛使用python環境為3.6。想要問問什麼不用2.7的同學,請看媛媛之前的帖子。