由於你們很多人可能對編程和數學、金融一樣感興趣,所以我有必要討論一下這個角色實際上是什麼樣的,以及我“每天”在做些什麼,以防你們認為這種類型的工作比“更純粹”的量化角色更為適合。
許多系統/量化對沖基金被構建為獨立的“內部創業”單位,由量化研究人員、量化交易員和量化開發者組成的小組組成。所有這些職業都以“quant”為前綴,因為它們都涉及到大量的數學知識。系統交易的每個方面都高度交織在一起,因此每個人都接觸到數學和算法。
在系統基金中,在建立“交易通道”之前,有三個關鍵領域需要實施。廣義而言,它們是:
l 定價/數據源:量化研究人員和交易者需要根據證券價格時間序列開發他們的算法。因此,定量研究的一個重要部分是獲得優質的證券定價信息。數據源種類繁多。數據需要以統一的方式檢索、儲存、清理並提供給量化分析人員。這是量化開發者定價。這大約是我工作的80%。
l 信號/算法:這一方麵包括對獲得的定價數據進行統計研究,以確定交易機會。對沖基金采用的策略極其多樣。對於系統性基金來說,它們通常屬於趨勢跟踪、均值回歸、統計套利或高頻交易/做市商。所有的基金都用卡片遮擋在自己的胸前,以致於好的策略很少被披露。這個領域屬於量化研究者或交易者。
l 執行/訂單:一旦交易策略通過了所有必要的回測並取得來了足夠的理論支持,這便由量化執行者建立模型來保證在不導致過多滑點或交易費用等損失的情況下有效地進行交易。和定價一樣,這些博士團隊經常研究有效的執行算法—事實上執行和信號有很大的重疊。一旦設計了執行算法,量化執行者的工作便是建立一個與主要交易商的接口來保證交易的執行。此外,項目組合管理和調節工具需要完全自動化,能夠按需生成快照報告。後者約占我工作的20%。
不幸的是,我不會討論我們使用的精確算法,因為這篇文章不能洩露交易策略!然而,我將討論作為量化開發者的定價問題。
量化定價發展
定價包括四個主要方面:連接數據源和獲取數據,以統一的方式儲存數據,清理數據使其沒有錯誤,以及以簡單易用的方式將數據呈現給量化研究人員。
我們的基金主要(但不是唯一)利用股票多頭/空頭模型作為交易機制。我們主要關注以下資產類別:全球股票、宏觀固定收益和衍生品數據、外匯現貨數據(和期貨)、大宗商品(期貨和期權)以及S&P500、富時100指數、VIX等指數。頻率主要是日內/ohlc(開盤價,最高價,最低價,收盤價)到十分鐘的其他來源的數據。
建立這種證券數據庫的第一步是創建一個被稱為證券大師的列表。這將列出單個非重複數據庫中可能感興趣的每個資產和安全性。這種主列表的關鍵問題之一是不同的源通過不同的代碼引用相通的安全性。有必要構建一個證券映射列表為每種證券提供獨特的定價數據和安全性。
我們的定價數據是從專用和免費資源中混合取得的,通常是通過應用程序編程接口獲得的,因為可以以重複、自動化的方式執行。我們構建了一個系統來檢查錯誤,並在沒有獲得數據或數據與其他來源的相同證券不匹配的情況下提出預警。我們的數據儲存在關係數據庫管理系統中(RDBMS)中,該系統已經針對性能和我們的實際用例進行了廣泛的調整。
數據下載後,我們運行了三種主要類型的數據分析和修改腳本。第一個用來檢查從不同來源獲得的相同的安全性是否達到了相同的值。第二個用來檢驗數據中有沒有無法解釋得“尖峰信號”(即與正常交易範圍的重要偏差),如果出現,這通常表示有錯誤。第三種用來分析公司行為(股息、股票分割、股票發行等),這樣我們的產出回報流就變成了一系列百分比的價格變化,而不是絕對價格。
然後,這些數據通過內部編寫的API和數據庫複製技術。
整個過程最終完全自動化了。唯一需要執行的手動任務是檢查錯誤日誌和修復數據源、添加新數據源以及調整APIs以允許調用額外的函數。
除了作為“量化定價開發人員”的職責之外,我還為某些任務製作了基於網絡的報告工具,組合調節工具和各種其他“內務”腳本。所有這些軟件都是用Python(80%)和C++(20%)混合編寫的。我需要大量地加速一些算法(特別是組合協調)使用C++,用Python來進行大部分的數據收集和儲存。我們還大量使用MATLAB和Excel進行戰略開發和分析。
更多內容微信關注火象查看哦~