Latest Posts

Quant書單與資源分享(上)

"Every present that you regret now is a result of a past you failed to give your best."

最近統整一下資訊和身邊的資源,主要是有關quant的資料,台灣其實潛藏超多高手的.....感謝ptt的CFA版和Quant版上的前輩,還有許多事情要努力,也分享給有緣人一起努力,當然歡迎各路高手出來討論~

其實quant不外乎就是數學(主要是分析學)、機率統計、程式、金融,這幾個領域的知識,只是對這幾累得程度要求都特別strong就是了。



(1)分析&機率:
Folland,                    <<Real Analysis: Modern Techniques & Applications>>
Friedman                  <<Foundations of modern analysis>>
私心推薦這本,搭配交大開放式課程看,學習效率很好。
Rudin,                      <<Functional Analysis>>
Royden,                   <<Real Analysis>>
實分析的書後半部會cover到泛函分析,其實已經很夠用,這兩本當參考。
Kai Lai Chung,         <<A Course in Probability Theory>>
Durret                      <<Probability:Theory and Examples>>
機率論我覺得看完這兩本就差不多了。
Karatzas & Shreve,  <<Brownian Motion & Stochastic Calculus>
Oksendal,                <<Stochastic Differential Equations>>


(2)數理金融:
Mark Joshi,              <<Concepts and practice of Mathematical Finance>>
Shreve,                     <<Stochastic Calculus for Finance I>>
Shreve,                     <<Stochastic Calculus for Finance II>>
Merton,                    <<Continuous-Time Finance>>
Tomas Bjork            <<Arbitrage theory in continuous time>>
Brockwell & Davis   <<Time Series: Theory & Methods>>
Tsay,                        <<Analysis of Financial Time Series>>
第一部份算打基礎,這些才是要使用的工具


(3)金融市場
Hull,                         <<Options, Futures, & Other Derivatives>>
Kerry,                      <<Asset Pricing and Portfolio Theory>>
Duffie,                      <<Dynamic Asset Pricing Theory>>
Taleb,                      <<Dynamic Hedging: Managing Vanila & Exotic Options>>
塔雷柏的書必看
Elton, Gruber et al.   <<Modern Portfolio Theory & Investment Analysis>>
Mandebrot               <<Misbehaviour of financial markets>>



(4)數值方法與程式
Mark Joshi,             << C++ design patterns and derivatives pricing>>
Paul Glasserman,     <<Monte Carlo methods in fianncial engineering>>
Justin London,         << Modeling derivatives in C++ >>
Scott Meyer,           << Effective C++/More effective C++/effective STL>>
William Saul ,           <<Numerical recipes in C++>>
前兩本其實就很夠用了


接下來是對岸的文章,主要在說明quant要focus在哪種程式語言:

但是我不希望敷衍了事,如果回答就展開了說,說說我心中最重要的五類語言。這不僅僅是對於一個Quant必須的,而是一個豐滿的程序員所必備的。在藝術中,藝永遠比術重要;在Quant相關知識中,intuition永遠比純technique更加重要。

兩年前在Princeton,我和一位研究計算機語言的PhD兩人吃飯聊天。他的主要研究方向就是新的計算機語言,及相關的邏輯學。大神如他一頓飯下來80%的時間處於放空狀態,基本沒在關注我,但我得到了我自以為深刻的理念:一種計算機語言是一種對應哲學的體現。因此,在我看來,有五類語言構建了一個豐滿的編程能力強的Quant的一切,它們分別是:效率類語言(C、C++、Java等)、膠水類語言(Python、Ruby等)、科學類語言(Matlab、R、S等)、Alpha演算類語言(Lisp、Clojure等)、查詢類語言(SQL、Q等)。這是基於我理解淺薄的分類,完全與計算機科學的規範化分類(如面對對象語言、函數類語言)不相容。持不同意見者大可付之一笑。

1、效率類語言(C、C++、Java等):老派的Quant很多都是C++高手,特別是80年代湧入華爾街的那幫MIT的高能物理博士們。在那個年代,可以選擇的語言不多。要么就Fortan,要么就C/C++了。所以在當時基本上這些語言同時充當著基礎架構(infrastructure)和數值計算(比如Monte Carlo)的雙重目的。但是現在各種膠水類語言、科學類語言多了起來,而且由於單機性能越發強悍,效率再也不是唯一的訴求了,因此目前C++、Java大量應用於金融系統級的開發,和對於效率要求極高的實時定價等領域。從一個Quant的角度來看,這類語言最大的特點是快,編程複雜度高,維護難,同時原生語言普遍不支持向量運算。

2、膠水類語言(Python、Ruby等):我必須承認,這些語言是新世代Quant的福音。在國內工作的時候我目睹並參與了一個將原有的C++框架全部用Python重寫的項目,而現在JP Morgan這邊利率類產品的定價軟件也在從Java像Python轉移。實現同樣的代碼,Python、Ruby的 ​​實現速度比效率類語言快很多,而且在機器速度越來 ​​越快的今天,差距已經不是不可接受。這些語言最大的特點是比較快,編程複雜度高,維護相對簡單,同時大量的包(比如Numpy+Scipy)可以輕鬆實現向量運算。

3、科學類語言(Matlab、R、S等):一般而言,科學類語言最大的特點是支持向量運算,同時各種附加數學、統計包極其豐富,但運算速度無法與前兩類相比。在一個具體的投資/交易策略、模型投入實際使用前,你需要快速的去實現(Implement)和驗證(Back-testing)你的想法。這個時候,科學類語言就有絕對的優勢。驗證思路有效後,再用效率類語言或膠水類語言開發成系統級組件。你可以理解為科學類語言是用來造概念車的,而前兩類語言是用來量產的。而在具體的職業角度,造概念車的這幫人一般是Pure Quant,而實現量產的很多是Quant Developer。當然也有兩者合一的集大成者。

4、Alpha演算類語言(Lisp、Clojure等):我第一次對這類語言感興趣,是12年冬天接觸矽谷一家科技公司時(Prismatic,人工智能新聞App),發現他們在用Clojure,也極力向我推薦Clojure。Clojure是基於Java封裝的語言,可以用Java虛擬機執行。但歸根結底,Clojure是Lisp這類語言。之前我長期沉迷於過程編程與面對對像等概念之中,第一次接觸Lisp很不習慣,但後面開始感嘆於這類語言之美。我個人感覺目前Quant界用這種語言偏少,但是不排除以後流行的可能。

5、查詢類語言(SQL、Q等):SQL就不必說了,金融公司很多時候都是使用Oracle等關係型數據庫,SQL是基礎。而我之前幾次面試也遇到了SQL的問題。Q是Morgan Stanley為了應對金融中的海量數據而採用的一種非關係型查詢語言,特點是極快,有SQL的基礎可以很快掌握。

全面的說:如果你是做Pure Quant,整天與交易策略和模型睡覺,那麼2、3是必須的;如果你是開發為主,或者是Quant Developer,那麼1、2、5是必須的;如果你立志讓編程不成為你做Quant的障礙,那麼1-5全都是必須掌握或至少了解其思想的。不管是作為Quant還是Coder,都不可拘泥於語言。語言只是其背後設計哲學的體現。這就等同一個數量金融從業者不可拘泥於產品一樣。數量金融的根基永遠是供給需求、金錢時間價值這些基本的經濟學理論以及現金流的相關概率這些基本的統計學思想。如果拘泥於術而非藝,那路就會越走越窄。 


小結論:

人力其實是有限的,在這點時間內,要選擇的話,程式語言我會專注在python身上,不過程式是輔助,基本的統計和數學才是核心技術,而背後的金融直覺才是最終的藝術。

PS 好多東西要學......面對重重挑戰......覺得興奮!!

1 則留言:

  1. 請問前輩,這些書單的書都是去哪裡找的呢? 找不太到@@

    回覆刪除

Simple Randomness Designed by Templateism | MyBloggerLab Copyright © 2014

技術提供:Blogger.