選項

關於學習 C++ 及其與 Python/R/MATLAB 集成以進行量化金融的建議

  • May 19, 2020

對於一些背景資訊,我是經濟學博士生。雖然我之前沒有學習金融,但我在博士階段上了一門關於隨機微積分的課程和一門關於不完全市場中的資產定價的課程。我們主要討論期權定價模型及其應用(想想 GARCH 模型、隨機波動率模型、跳躍擴散模型等)。我最近一直在研究期權定價問題,我開始意識到這些東西的計算量是多麼大。例如,通過在隱含波動率空間中定義高斯概似來校準期權定價模型需要我為數千份期權合約定價,這可能需要很長時間,即使我喜歡準封閉形式的定價公式。

所以,我想知道當我需要提高速度時,學習如何使用 C++ 完成一些繁重的工作需要付出多少努力。我已經知道如何使用 MATLAB、R 並且我正在慢慢學習如何使用 Python。與我一起工作的教授還建議我學習 Python 中的物件導向程式,因為它通常會簡化我的生活。我開始這樣做,而且進展順利。那麼,我們在談論多少努力?就我而言,我們基本上是在做一些矩陣代數、數值積分等,或者在某些情況下,可能會執行相對簡單的蒙特卡羅模擬,並能夠在更高級別的語言(如 Python)之間來回移動結果, R 或 MATLBA) 和 C++。

第二個問題是它有多大用處?我真的能充分利用它來證明我可能不得不花時間學習它嗎?我的意思是,我可以使用現有的軟體包做很多事情,並且我花了很多時間來解決這些問題,但我會不時需要自定義常式。簡而言之,我想從實際使用 C++ 解決計算密集型問題的人那裡更好地了解這裡所涉及的權衡。

最後一個問題是:有沒有人有關於這個話題的相關資源?如果可能的話,我想要一些教程,其中包括處理如何對數據執行簡單回歸、如何執行蒙特卡羅模擬或如何為歐式期權定價的範例,因為這些與我所做的足夠接近,可以與我已經做的相關了解其他語言的程式。

提前致謝。

我來自 Matlab 和 Python 的背景,主要是在從 uni 回來的課程中簡單地使用過 C++,我一直在從《C++ 設計模式和衍生品定價》一書中學習 C++ 和麵向對象的思維,沒有太多困難我玩得很開心。這本書將標準的物件導向程式方法應用於衍生品定價,因此它可能正是您正在尋找的。第一章是建構一個非常簡單的 Monte Carlo 期權定價器,然後他繼續展示如何使用 OOP 以一種“正確的方式”做到這一點,這種方式允許您以一種有機的方式不斷地添加到程序中,以便它能夠做更複雜的事情。

我認為這涉及到你的第一個和第三個問題,至於你的第二個問題,我認為這本書的作者通常給出的答案是“如果你想要一份 Quant 的工作,那麼你需要學習 C++,所以要好好學習”,如果它對你的研究至關重要,我不能告訴你。根據我的理解,在 C++ 或 OOP 中建構邏輯的主要好處通常是程式碼易於擴展和重用,如果您在團隊中開展項目並且需要交出程式碼庫,這將大有裨益給其他人或讓其他人嘗試維護您的程式碼,但可能不是您更關心的問題之一。

引用自:https://quant.stackexchange.com/questions/53501