以金融從業為目的的 Python 學習應如何入門?


金融從業的範圍其實聽廣泛的,有的崗位並不需要從業者熟悉Python或者其他編程語言,比如在證券、期貨或者某些資產管理單位從事風控工作,基本上現有的IT系統功能已經很完善;從業者只是這些系統的用戶,有新需求時通常要求系統的開發者來設計和開發,很少需要從業者親自參與編程工作。

可能您在題目中把金融從業理解為研究分析(宏觀、策略、行業等)或者量化交易策略開發。這些工作由於或多或少需要頻繁地處理大量的數據。熟練應用Python的話,能夠使工作效率提高。在這個前提下,入門Python是有一定的偏向的,不同於以IT系統開發、維護為目的的Python學習。簡而言之,這類工作需要Python提高數據處理的效率,那麼關於Python數據處理的書籍、工具包文檔都是入門時必要關注的。

在書籍方面,《Python for Data Analysis》(有中文譯版)就可以作為參考。這本書出版時間相對較早了,趕不上軟體開發的速度,所以書里的程序例子有些運行結果與新版的不一致。但是這並不妨礙您通過學習這本書而獲得關於數據處理特別是金融數據處理的框架性認識。

在軟體包方面,numpy, scipy, pandas, statsmodels, ipython, matplotlib是進行金融數據處理時非常有用的軟體包,文檔、案例都比較齊全。前面介紹的那本書有比較大的篇幅介紹這些軟體包的使用。

在數據處理之外,可能您還想通過Python來進行衍生品定價、量化投資策略回測與實盤運行等工作,這些工作的內容其實大部分是在於業務自身的邏輯,編程工作的重要性略低。

歸根到底,要想利用Python提高從事上述工作的效率,那麼對於基本的數據結構和演算法的充分理解是必要的。在數據處理中,pandas提供的Series, DataFrame,以及numpy提供的ndarray都是非常重要的數據結構,而Python語言自帶的數據結構如List, tuple, dict等則是前面這些數據結構的基礎,也是熟練地寫出Python程序的基礎,值得深入學習。演算法方面,有些軟體包自帶了數據處理相關的演算法,比如scipy中的優化模塊、統計模塊,pandas中的數據表增刪改查以及向量化的統計量計算等。此外,Python自身也有一些特有的演算法和表達式能提高效率,例如list comprehension。這些都是基礎,在入門時最好能熟練地掌握。當然,像前面說的,您寫的程序的邏輯,基本上還有由金融業務的邏輯來決定。

要想快速地入門,可以嘗試掌握基本的Python語法後(通過Python的tutorial),從前面介紹的書本入手,一個一個地解決一些問題,比如把不同格式的數據表導入到Python中,轉換為所需要的數據結構,各種形勢的畫圖,將結果輸出到文件。可以在IPython這樣的互動式環境中進行,也可以在操作系統中直接運行.py文件來進行。這樣可以熟悉基本的流程及其實現方式。
在此基礎上,可以利用Python來解決一些金融方面的問題,例如:考察各個宏觀經濟變數與資本市場各類價格之間的相關性、某個選股因子的有效性檢驗、測試某些技術指標在投資中的有效性、計算某些奇異期權或者結構化產品的價格等。這樣入門Python,不僅能夠使得編程工作有一定的挑戰、有意思,也能夠加深對金融業務邏輯的理解。

謝邀。


首先通過學習python學會編程,再將python應用到專業領域。

找一本好書,認真敲代碼,做到自己寫代碼解決一些小問題。

加油!


突然想把這個答案更新一下
最近一直用python寫代碼。之前學習過python的數據分析,也算是從0單排的python。
其實學習python,更推薦直接從項目 project 入手。
通過做成一件事來學習,我覺得寫程序這東西 通過看書,看多少忘多少。
之前python 的list dictionary tuple 講道理已經看過一遍了,等要用的時候 還得重新去看文檔。

coursera 上面有一門 python 的課 是給初學者的,那門課非常不錯 programming for everybody。特別適合入門
https://www.coursera.org/specializations/python

文檔的利用
假設你是學習pandas,雖然pandas的read csv這個代碼用了無數遍,但是每次用我還得再去翻文檔
pandas.read_csv - pandas 0.19.1 documentation
學會看懂文檔,很多人就甩個文檔出來
Parameters:

filepath_or_buffer : str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handle or StringIO)

The string could be a URL. Valid URL schemes include http, ftp, s3, and file. For file URLs, a host is expected. For instance, a local file could be file ://localhost/path/to/table.csv

正常的pandas 讀取csv文件 應該是這樣的df=pd.read_csv("file_path")最簡單的一種
filepath 是string 格式的

基本上官方文檔肯定要先讀一遍

parameter就是這個函數所有可設置的參數,不光讀取文件,你還可以選擇是否包括抬頭header,等等等等
參數包括了 參數的數據格式data type 默認值是什麼,如果要使用某個參數,這些都要讀一遍,文檔裡面幾乎包括了全部內容。

sep : str, default 『,』

Delimiter to use. If sep is None, will try to automatically determine this. Separators longer than 1 character and different from "s+" will be interpreted as regular expressions, will force use of the python parsing engine and will ignore quotes in the data. Regex example: "
"

default就是默認,讀取csv 默認分隔符是逗號
如果你的csv文件的分割符號不是,那你在讀取的時候df=pd.read_csv("file_path",sep=" ")
就要設置了

但是文檔不好的地方就是沒有例子,或者例子不明顯,不多,所以這時候還沒看懂,就去google 百度 stackoverflow。比如說pandas read csv example 一般都能彈出例子。(這個例子好像不太恰當...搜了一下好像沒有 )

k-means clustering example (Python)
這個例子好像更加恰當一些。
總之,就是這麼搜索,一般都能搜到例子,然後你就依葫蘆畫瓢,寫下你的代碼

善於 google baidu stackoverflow 的提問
比如說dict 的循環 就搜索 python dictionary loop 基本上就能彈出你想要的例子。看一遍基本也動了

Iterating over dictionaries using for loops in Python

其實這些內容 很多書也有,一方面可以去翻閱教科書,另一方面就是去搜索一下。
如果你善於使用搜索引擎 基本上都能搜到你想要的。

以下是關於金融的python書籍
------------------------------------------

think python是基礎 就像上面所說的 介紹了從開始運算 然後到list dic tuple
把他當字典看。
然後就是這些書了
然後還有代碼 這些代碼挺好的 雖然不是很齊全 但是總比沒有好
還有零星幾本R和matlab的
網盤地址 python量化.zip_免費高速下載


http://www.amazon.com/Python-Finance-Analyze-Financial-Data/dp/1491945281/ref=sr_1_1?ie=UTF8qid=1441289843sr=8-1keywords=finance+python


py大法包羅萬象,金融分析,推薦英文版:Packt.Mastering.Python.for.Finance.1784394513.pdf_免費高速下載


推薦閱讀:

今後上海金融市場在與新加坡和香港的競爭中具備了哪些優勢?存在哪些劣勢?
如果華為和小米上市,市值的規模大概是什麼水平?
為什麼 SHIBOR 要提前到 9 點 30 發布?
麻袋理財怎麼樣?
家庭應該如何投資理財?

TAG:Python | 證券 | 爬蟲計算機網路 | 金融 | 證券分析 |