股票量化投資知識測試
㈠ CFA考試內容分為幾個級別
CFA考試共有三級,分別是Level I、Level II和Level III。三個級別不能同考,也不能跳級。考完上一級才能考下一級。其中,CFA一級考試時間為每年6月、12月,二級、三級為每年6月。
考試在全球各個地點舉行,每個考生必須依次完成三個不同級別的考試。CFA資格考試採用全英文,候選人除應掌握金融知識外,還必須具備良好的英文專業閱讀能力。順利通過CFA課程即是達到一種成就,能獲得僱主、投資者和整個投資界的高度認可。
CFA考試主要有十個科目,分別是:
Ethical and Professional Standards(total)職業道德;
Quantitative Methods數量分析;
Economics經濟學;
Financial Statement Analysts財務報表分析;
Corporate Finance公司金融;
Analysis of Equity Investments股票投資分析;
Analysis of Fixed Income Investments固定收益;
Analysis of Derivatives衍生品;
Analysis of Alternative Investments其他類投資;
Portfolio Management(total)投資組合。
㈡ 關於量化交易,這些入門知識你需要了解
這篇文章將向你介紹量化交易系統的一些基本概念。本文主要面向兩類讀者,第一類是正在努力尋找一份量化交易員工作的求職者,第二類是期望嘗試開啟自己量化交易事業的個人投資者。關於量化交易,這些入門知識你需要了解。
量化交易是數量金融學一個極其艱深復雜的領域。若要通過面試或構造你自己的交易策略,就需要你投入時間學習一些必備知識。
量化交易系統包括四個主要部分:
策略識別:搜索策略、挖掘優勢、確定交易頻率。
回溯測試:獲取數據、分析策略性能、剔除偏差。
交割系統:連接經紀商、使交易自動化、使交易成本最小化。
風險管理:最優資本配置、最優賭注或凱利准則、交易心理學。
我們首先來談談如何識別一個交易策略。
策略識別
所有量化交易流程都肇始於一個初期研究。這個研究流程包括搜索一個策略、檢驗它是否適合你可能正在運作的策略組合、獲取任何測試策略時所需數據、努力優化策略使其預期年化預期收益更高且(或)風險更低。如果你是一個「散戶」交易員,一定要清楚自己的資金是否充足,以及交易成本對策略的影響。
通過各種公開數據搜索可盈利的策略實際上十分簡單,並沒有大家想的那麼難。研究學者會定期發表理論交易結果(雖然大多為交易成本總額)。一些數量金融學主題博文也會詳細討論策略。交易期刊還會簡報一下基金管理公司使用的一些策略。
你可能會問,個人與公司怎麼可能願談他們的可盈利策略,特別是當他們知道,如果其他人「復制相同的策略」,長期而言它終將失效。
原因就在於,他們通常不會透露具體的參數以及他們所使用的調參方法,而這些優化技能才是把一個表現平庸的策略調成一個回報豐厚的策略所需的關鍵技術。實際上,若要創建你自己的、獨一無二的策略,一個最好的法子就是尋找相似的方法,爾後執行你自己的優化程序。
你所看到的很多策略都可歸入均值回歸交易策略、趨勢跟隨或動量交易策略兩類。
均值回歸策略試圖利用這么一個事實:「價格序列」(如兩個關聯資產的價差)存在一個長期均值,價格對均值的短期偏離終將回歸。
動量交易策略則試圖「搭上市場趨勢的順風車」,利用投資心理和大基金結構信息在一個方向積聚動量,跟隨趨勢直至回歸。
定量交易還有一個重要方面,即交易策略的頻率。低頻交易(Low Frequency Trading, LFT)通常指持有資產超過一個交易日的策略。相應地,高頻交易(High Frequency Trading, HFT)通常指持有資產一個交易日的策略。
超高頻交易(Ultra-High Frequency Trading, UHFT)指持有資產的時常達秒級與毫秒級的策略。雖然散戶可以進行HFT與UHFT交易,但也只是在你掌握了交易「技術棧」與訂單簿動力學的詳細知識後才有可能。本篇入門文章,我們不會對這些問題做任何深入探討。
策略或策略集合一旦確定,現在就需要在歷史數據上測試其盈利能力,這就進入了回溯測試的工作范圍。
回溯測試
回溯測試的目標是提供證據,佐以證明通過以上流程所確定的策略,無論是應用於歷史(訓練)數據還是測試數據均可盈利。它可以反映該策略未來在「真實世界」中的預期表現。
由於種種原因,回溯測試不能保證一定成功。這或許就是量化交易最為微妙之處,由於它包含了大量的偏差,我們必須盡盡力仔細審查並剔除它們。
我們將討論幾種常見類型的偏差,包括先窺偏差、倖存者偏差與優化偏差(亦稱「數據窺視偏差」)。回溯測試中其他幾個重要方面,包括歷史數據的可用性與清潔度、真實交易成本及可靠回測平台上的決定。我們會在後續「交割系統」一節深入討論交易成本。
策略一旦確定,我們就需要獲取歷史數據,並藉此展開測試,如有可能還可改進策略。現在賣數據的很多,所有資產類型的數據都有。通常,數據的質量、深度、時間間隔不同,其價格也不同。
剛入門的量化交易員(至少零售等級)最初使用雅虎金融板塊(Yahoo Finance)的免費數據就行。對於數據供應商,這里不再贅言。我想重點談一談處理歷史數據時,時常遇到的問題。
對於歷史數據,人們主要關心的問題,包括數據精度或清潔度、倖存者偏差、應對如分發紅利、拆分股票等公司行為的調整。
精度與數據整體質量有關,無論數據是否包含錯誤。有時錯誤容易識別,比如使用一個窄帶濾波器,就可以找出時間序列數據中的「窄帶」並更正它們。其他時候,錯誤又很難甄別,經常需要根據多個數據供應商提供的數據進行對比檢查。
倖存者偏差通常是免費數據集或廉價數據集的一個」特徵「。對於一個帶有倖存者偏差的數據集,它不包含已經不再交易的資產數據。不再交易的證券,則表示已經退市或破產公司的股票。如果數據集中含有此類偏差,策略在此數據集上的測試表現可能比在」真實世界「里表現的更好,畢竟歷史」贏家「已經被預先篩選出來,作為訓練數據使用。
公司行為即公司開展的常引發原始價格階梯形變化的」邏輯「活動,它不應該計入價格預期年化預期收益。公司分發紅利和拆分股票行為是引發調整的兩個常見行為,二者無論發生哪一種,都需要進行一個」回調「的流程。我們一定要留心,不要把股票拆分和真實預期年化預期收益調整混為一談。許多交易員在處理公司行為時都碰過壁!
為了開展回溯測試,我們必須使用一個軟體平台。你可以選擇一個專門的回測軟體如MultiCharts,一個數值平台如Excel或MATLAB,或者一個用Python或C++完全自主實現的平台。對於MultiCharts(或類似平台),個人是比較介紹,對於編程的要求比較低。
在做系統回測時,一定要量化表示系統性能。定量策略的「業界標准」度量為最大資金回挫與夏普比率。最大資金回挫表示一段時間(通常一年)內賬戶資金曲線從波峰至波谷的最大跌幅,常使用百分比表示。
由於大量的統計因素,LFT策略比HFT策略的資金回挫更高。歷史回測會顯示過去的最大資金回挫,它能夠較為貼切地反映策略的未來資金回挫情況。第二個度量指標是夏普比率,它被啟發式地定義為「超額預期年化預期收益均值與超額預期年化預期收益標准差的比值」。
這里,超額預期年化預期收益表示策略預期年化預期收益超出某個預定基準,如標普500或三月期短期國債(預期年化預期收益)的額度。注意人們通常不使用歷史預期年化預期收益指標,因為它忽略了策略波動性的影響,而夏普比率卻考慮到了這一點。
如果經過回測,策略的夏普比率很高且其最大資金回挫已經最小化,則可以認為它趨於無偏,下一步就是要搭建一個交割系統。
交割系統
交割系統是一個方法集合,由它來控制交易策略生成的交易列表的發送和經紀商的交割行為。事實上,交易可以半自動、甚至全自動生成,而執行機制可以手動、半自動(即「點擊一次交割一項」)或者全自動。
盡管如此,對於LFT策略,手動和半自動技術卻比較常見;對於HFT策略,則必須創建一個全自動交割機制,由於策略和技術彼此依賴,還要經常與交易指令生成器緊密相接。
在搭建交割系統時,我們需要考慮幾個關鍵因素:連接經紀商的介面、交易成本(包括傭金、滑動價差與價差)最小化、實時系統與回測時系統性能的差異。
聯系經紀人的方法有很多,你可以直接電話聯系他,也可以通過一個全自動高性能的應用程序介面(API)實現。理想情況,就是希望交割交易的自動化程度盡可能高。這樣一來,你不僅可以脫開身集中精力進行深入研究,還能運行多個策略、甚至HFT策略(實際上,如果沒有自動化交割,HFT根本不可能)。
前面說過的幾種常用回溯測試軟體如MATLAB、Excel和MultiCharts,對於LFT策略或簡單策略都是不錯的選擇。但是,如果要做真正的HFT,你就必須要構造一個用高性能語言(如C++)編寫的內部交割系統。
說個我的親身經歷,以前受聘於一家基金管理公司,我們有一個十分鍾的「交易周期」,每隔十分鍾下載一次新的市場數據,然後根據這十分鍾的信息進行交割。這里用的是一個優化的Python腳本。對於任何處理分鍾級或秒級頻率數據的工作,我相信C/C++更理想。
在一家大型的基金管理公司,交割系統的優化通常不在量化交易員的工作范圍。但是,在小點的公司或高頻交易公司,交易員就是交割人,所以技術面越廣越好。你要想進一家基金管理公司,一定要記住這一點。你的編程能力不說比你的統計學和計量經濟學稟賦更重要,至少也同樣重要!
另外一個屬於交割系統的重要問題是交易成本最小化。一般地,交易成本由三部分構成:傭金(或稅收)、損耗與價差。傭金是向經紀商、交易所和證券交易委員會(或類似政府監管機構)支付的費用;滑動價差是你的預期交割價位與真實交割價位的差值;價差則是待交易證券的賣出價與買入價之差。注意價差不是常數,它依賴於市場當前流動性(即買單和賣單數量)。
交易成本是決定一個策略是高夏普比率且盈利豐厚,還是低夏普比率且極不盈利的關鍵。根據回溯測試正確預測未來的交易成本很具有挑戰性,你需要根據策略頻率,及時獲取帶有賣出價與買入價信息的歷史交易數據。
為此,大型基金管理公司量化交易的整個團隊都專注於交割優化。當基金管理公司需要拋售大量交易時(原因五花八門),如果向市場「傾瀉」大批股票,會迅速壓低價格,可能都來不及以最優價格交割。
因此,縱使遭受損耗風險,基金管理公式也會選擇使用演算法交易,通過「打點滴」的方式向市場出單。此外,其他策略如若「捕到」這些必要性條件,也能利用市場失效(獲利)。這是基金結構性套利的內容。
交割系統最後一個主要問題關繫到策略的實時性能與回測性能的差異。這種差異由多種因素造成,比如我們在「回溯測試」一節已經深入討論過的前窺偏差與最優化偏差。
然而,對於有些策略,在部署之前不易測得這些偏差。這種情況對於HFT最為常見。交割系統和交易策略本身均可能存在程序錯誤,回溯測試時沒有顯現卻在實時交易時出來搗亂。市場可能受到繼交易策略部署後的一場政變的影響,而新的監管環境、投資者情緒與宏觀經濟形勢的變化也均可能導致現實市場表現與回溯測試表現的差異,從而造成策略盈利性上的分歧。
風險管理
量化交易迷宮的最後一塊是風險管理程序。風險包含我們之前談論的所有偏差。它包括技術風險,比如所有在交易所的伺服器突然發生硬碟故障。它還包括經紀風險,如經紀商破產(此說並非危言聳聽,引發恐慌的明富環球就是一個例子)。
總而言之,它覆蓋了幾乎所有可能幹擾到交易實現的因素,而其來源各不相同。已經有成套的書籍介紹量化交易策略的風險管理,本人也就不再對所有可能的風險來源做詳細說明。
風險管理還包括投資組合理論的一個分支,即所謂的「最優資本配置」,涉及到如何將資本分配給一組策略、如何將資本分配給策略內不同交易的方法。這是一個復雜的領域,依賴於一些高級數學知識。
最優資本配置與投資策略杠桿通過一個名為凱利准則的業界標准建立聯系。本文是一篇入門文章,我在此不詳談其計算。凱利准則對策略預期年化預期收益的統計性質做過一些假設,但是它們在金融市場中並不一定成立,交易員因此在實現時通常會有所保留。
風險管理的另外一個關鍵成分涉及到交易員自身心理因素的處理。盡管大家都承認,演算法交易若無人為干涉,不太容易出現問題。交易員在交易時,稍不留神仍然可能會摻入許多認知偏差。
一個常見的偏差是厭惡規避,當人發現損失已成定局,其所帶來的痛苦,可能會麻痹人的行為,不能做到及時拋盤止損。類似地,由於太過憂心已經到手的預期年化預期收益可能賠掉,人們可能也會過早拋盤收利。
另外一個常見的偏差是所謂的偏好偏差:交易員太看重事件而非長遠地看問題。此外,當然不能落下「恐懼與貪婪」這對經典的情緒偏差。這兩種偏差常導致杠桿不足或杠桿過度,造成爆倉(賬戶資產凈值近乎為零或更糟)或盈利縮水的局面。
總結
由此觀之,量化交易是數量金融學中一個雖趣味十足但極其復雜的領域。我對這個話題的討論淺嘗輒止,文章就已經這么長了!我在文中三言兩句帶過的問題,已經有大量的相關書籍和論文出版。
因此,在你申請量化基金交易職位前,務必要進行大量的基礎調研,至少應當具有統計學和計量經濟學的廣泛背景,以及使用MultiCharts、MATLAB、Python或者R程序語言實現的豐富經驗。如果應對的是更加復雜的高頻端策略,你的技能組合可能還要包含Linux內核修改、C/C++、匯編編程和網路延遲優化。