從CFA協會官網描述來看,一級二級的Python編程基礎PSM,涉及到以下幾方面內容:展示Python的基礎知識,以及如何使用Jupyter Notebook開發、演示和共享與金融相關的數據科學項目。
二級還有一個Python數據科學及人工智能課程,內容有:向考生介紹機器學習、人工智能和數據科學,以及使用Python理解財務報表、報告和分析。
以上是CFA協會官網內容。首先就形式上,Python是一個學習課程,考生只要學完即可,應該不需要考試(not graded)。
其次在內容上,官網提到了Python基礎,根據我們對Python的理解,應包括有以下內容。
一、基礎數據類型。Python是一門弱類型語言,變量使用前無需聲明,變量名可以看作一種引用。Python的基本數據類型分為數字、字符串、列表、元組、集合、字典。其中數字包括整型、浮點型、布爾型、以及復數。列表、元組、字典、集合、字符串則是Python中經常會使用到的數據結構,除此之外,還需掌握深拷貝和淺拷貝的概念。以上的數據類型必須要能夠熟練的運用。
二、基礎代碼邏輯。比如條件語句If、循環while/for等。這部分有一定編程經驗的同學應該都不會陌生。Python基礎同樣會包括這些常用的代碼邏輯。除此之外,Python作為面向對象的語言,也應包括面向對象這個概念的介紹。
三、文件系統。在處理數據的時候,我們往往需要從文件中讀寫數據。例如Python讀取Excel中的數據,Python讀取mySQL中的數據等,Python從金融數據庫(例如彭博、路透)的應用程序接口(API)中讀取數據等。所以文件系統的相關操作也屬于Python基礎知識。Python的文件操作很簡單,只需用open打開文件:file = open(path,pattern)。打開文件后就可以對文件進行讀寫操作,各種讀寫操作的命令也是應該涉及的。
四、函數。Python作為面向對象的編程語言,會大量使用函數。Python常用函數也是必須掌握的基礎知識。Python中用def關鍵字來定義函數,格式為def 函數名(參數)。
五、各種庫的運用。Python最具吸引力的地方就是有豐富的庫,無論是科學計算的庫、數理統計的庫、機器學習庫,還是各種金融項目的庫,Python應有盡有。比較常用的科學計算庫的介紹,或許也屬于Python基礎知識。
學完了以上內容,考生就可以使用規范化的金融數據進行分析,進行量化建模。像金融數據,我們經常同時分析4000只股票10年歷史日線數據,還要涉及到10個風險因子。4000*2500*10 = 1億個數據。學習了Python,我們就可以把這一億個數據,從金融軟件的API中讀取出來,存入關系型數據庫(MySQL),再用Python進行建模分析它們的關系,尋找它們的規律。面對億級的數據量,只要掌握了Python這個給力的工具,就再也不會發怵了。
至于Python的其他應用,比如現在運用較多的網絡爬蟲,CFA估計不會在基礎知識這里進行介紹。