有人用量化交易賺到錢嗎?這還真有,一位從事量化交易的實戰(zhàn)者,他將他的實戰(zhàn)心得寫成一個量化交易系列,從文中你會對整個量化交易的框架、流程、以及策略思路的來源地都有相應地說明。接下來就和小編一起來看看量化交易應該如何入門吧,以及如何用量化交易賺到人生第一桶金!
在此文中我將為你們介紹一些端對端量化交易系統(tǒng)的基本概念,希望借此幫助到兩類讀者:一類是希望在基金公司中找到量化交易相關工作的人,另一類是那些希望能自行利用算法進行交易的“散戶”。
量化交易是量化金融中非常復雜的一個領域。要通過面試或者制定自己專屬的交易策略,需要花費大量時間來學習相關知識。不僅如此,你還需要粗略會些編程技能,至少要會MATLAB,R語言或者Python其中一種語言。然而,隨著策略交易頻率的增加,技術方面相關性更強了,因此熟悉C語言或C++就更為重要。
.png)
量化交易系統(tǒng)由四個主要部分組成:
策略識別-尋找策略,利用優(yōu)勢以及決定交易頻率
策略回測-獲取數據,分析策略性能以及消除偏差
執(zhí)行系統(tǒng)-與經紀(開戶)公司對接,自動化交易以及最小化交易成本。
風險管理-較優(yōu)資本配置,“押注規(guī)模”/凱利公式以及交易心理。
我們先來看看如何確定交易策略。
策略識別
所有的量化交易過程都是在研究初期就開始了的。這個研究過程包括尋找策略,看看這個策略是否與你正在運行的其他策略組合相融,獲取測試策略所需的所有數據,并試圖優(yōu)化策略以獲得更高的回報和/或更低的風險。如果你是以“散戶”的身份運行交易策略,還需要考慮自己的資金要求,以及每項交易成本是如何影響策略的。
與人們普遍認為的相反,通過各種公開渠道尋找可盈利的策略是非常簡單的。學術界會定期發(fā)表理論交易結果(盡管大部分是交易成本總額),量化金融的博客通常會詳述其使用的策略,行業(yè)期刊也會概述基金采用的部分策略。
你可能會問,為什么個人和企業(yè)都這么熱衷于討論自己的盈利策略呢,尤其是知道其他人都想來“分一杯羹”的情況下,可能這個策略長期來看就未必還能盈利了。原因在于,他們其實不會討論他們使用的確切的參數設置和微調方法。這些優(yōu)化手段是將相對平庸的策略轉為獲取高額收益的關鍵。實際上,創(chuàng)建自己獨特策略的較佳方法之一,就是找到相似的方法,然后自己進行調優(yōu)。
quantivity.wordpress.com
很多你接觸到的策略通常都是劃分到均值回歸和趨勢追蹤/動量這兩類里的。均值回歸策略是一種希望利用“價格序列”(如兩個相關資產之間的價差)上的長期均值的存在以及圍繞該均值的短期波動終會回歸的策略。動量策略試圖利用投資者心理和大型基金結構,搭上市場趨勢的順風車,這種順風車可以在一個方向聚集動量,并跟隨趨勢,直到趨勢逆轉。
定量交易的另一個非常重要的方面是交易策略的頻率。低頻交易(LFT)通常指持有資產超過一個交易日的策略。
相對應的是高頻交易(HFT),通常指持有資產不超過一個交易日的策略。超高頻交易(UHFT)指的是以秒和毫秒為單位進行資產交易的策略。作為散戶,高頻交易和超高頻交易當然也有可能,但只在對交易的“技術棧”和訂單動態(tài)有詳細了解的情況下才可實現。因此在這篇介紹性文章中不會過多涉及。
一旦確定了某個或某套策略組合,就需要根據歷史數據對其盈利能力進行測試,這就屬于回測的范疇了。
.png)
策略回測
回測的目的是提供證據,以證明通過上述過程確定的策略在應用于歷史數據和樣本外數據時是能獲得收益的。這就為該策略在“現實世界”中的表現設定了預期。然而,由于種種原因,回測并不能完全保證策略的成功。這或許是量化交易中最為微妙的領域了,因為這其中有許多的偏差,需要經過深思熟慮盡量消除偏差。
我們會討論一些常見的偏差類型,比如前瞻性偏差,幸存者偏差和優(yōu)化偏差(也稱“數據透視”偏差)?;販y中的其他重要領域還包括歷史數據的可用性和清洗程度,考慮實際的交易成本和選擇一個穩(wěn)定的回測平臺。我們將在后面的執(zhí)行系統(tǒng)部分討論交易成本。
一旦確定了一項策略,就應該獲取歷史數據用于測試,或更進一次用于改進策略。在所有種類的投資中都擁有大量的數據供應商。它們的售價會因數據質量、深度和實效性而有所區(qū)別。開始量化交易,最傳統(tǒng)的開始手段(至少是散戶開始的手段)是使用雅虎今日的免費數據集。在此我不會過多講述這些供應商,而是集中于討論處理歷史數據集時可能會遇到的一般問題。
對歷史數據的主要關注點在于準確性/清洗程度,幸存者偏差和企業(yè)行動(如股息和股票分割)的調整:
準確度和數據的整體質量掛鉤,即它是否包含錯誤數據。有時,錯誤很容易被識別,比如使用窄帶濾波器(spike filter),在時間序列數據中挑出錯誤的“高峰”并予以糾正。而有的時候又會很難發(fā)現。這時我們通常需要有兩個或以上的供應商,來檢驗雙方的數據。
幸存者偏差通常是免費或廉價數據集的一種“特征”。數據集具有幸存者偏差意味著它不包含不再進行交易的資產。就股票而言,指的就是那些退市或破產的股票。這一偏差意味著,在這樣的數據集中,任何股票策略都會比在“現實世界”中表現更佳,因為歷史的“贏家”已經被預先挑選出來了。
企業(yè)行動包括企業(yè)進行的“后手”活動,這些活動通常會導致原始價格的階躍函數變化,不應被包含在價格回報的計算中。股息和股票分割的調整是這類變化的罪魁禍首。在每一個這類動作中都需要進行一次反向調整。我們必須非常小心,不要將股票分割和真正的回報調整混為一談。很多交易員都被這類企業(yè)行動坑了一把。
為了執(zhí)行回測程序,我們得使用軟件平臺。你可以使用專用的回測軟件,如Tradestation,或是數字平臺,如Excel或MATLAB,或者使用編程語言如Python或C++進行自定義實現。
我不會Tradestation類似的軟件或是Excel和MATLAB這類工具做過多研究,因為我相信可以搭建一個完整的自用技術棧,原因如下:這樣做的一個好處是,哪怕是使用最先進的統(tǒng)計策略,都可以緊密地集成化回測軟件和執(zhí)行系統(tǒng)。特別是對于高頻交易策略而言,使用自定義實現是至關緊要的。
.jpg)
回測系統(tǒng)時,必須能量化其性能表現。量化策略的“工業(yè)標準”指標是最大回撤率和夏普率。最大回撤率是指賬戶權益曲線在特定時間段內(通常是每年)的最大峰谷跌幅,通常以百分比的形式出現。
由于許多統(tǒng)計因素的影響,低頻交易策略的最大回撤率通常會比高頻交易策略高。歷史回測會找出過去的最大回撤率,對未來的最大回撤率會有很大指導作用。第二個衡量指標是夏普率,定義是超額回報的平均值除以這些超額回報的標準差。
在這里,超額回報指的是戰(zhàn)略回報高于預設基準,比如標準普爾500指數或是三個月的短期國庫券。請注意,年化回報通常不是衡量的指標,因為與夏普率不同,它沒有考慮策略的波動性。
一旦策略通過回測并被認為是基本沒有偏差,還有了好的夏普率和最低限度的回撤率,是時候建立一個執(zhí)行系統(tǒng)了。
執(zhí)行系統(tǒng)
執(zhí)行系統(tǒng)是指將一系列由策略生成的交易發(fā)送給經紀去執(zhí)行的系統(tǒng)。盡管實際上交易生成可以是半自動或全自動的,執(zhí)行機制會是全手動、手動的(如“點擊一次”)或全自動的。對于低頻交易策略,手動和半手動技術是非常常見的。對于高頻交易策略,必須搭建一個全自動的執(zhí)行機制,(由于策略和技術的相互依賴),該機制通常與交易生成器緊密耦合。
搭建執(zhí)行系統(tǒng)時較優(yōu)先考慮的是與經紀業(yè)務的對接,最小化交易成本(包括傭金、時延和差價)以及實時系統(tǒng)和回測系統(tǒng)性能之間的差異。
與經紀業(yè)務的對接實現方式有很多,可以和直接打給你的交易員,或是編寫一個全自動化的高性能程序編程接口(API)。理想情況下是希望盡可能地自動化執(zhí)行交易操作。能讓你有時間關注于進一步的研究,并且允許你同時運行多個策略,甚至更高頻的策略(實際上如果沒有自動執(zhí)行,高頻交易基本上是不可能實現的)。
上述常用的回測軟件,如MATLAB、Excel和Tradestation,使用較低頻率和較簡單的策略時表現尚可。然而,如果要執(zhí)行高頻交易策略的話,必須要用C++等高性能語言編寫搭建一個自用執(zhí)行系統(tǒng)。說個題外話,在我以前工作的基金機構中,我們有個10分鐘的“交易循環(huán)”,每10分鐘下載一次新的市場數據,然后在同一時間段內基于該信息進行交易,使用的是優(yōu)化后的Python腳本。若是分鐘級或秒級的數據,我相信C語言或C++會更理想。
.png)
在更大的基金機構中,優(yōu)化執(zhí)行往往不是量化交易員的職責。然而在小公司或是高頻交易型公司,交易員就是執(zhí)行者,因此需要更廣泛的技能組合。請記住,如果你想在基金機構工作,你的編程技術和你的統(tǒng)計學和計量經濟學知識同樣重要,甚至更重要。
另外一個在執(zhí)行層面需關注的重要問題是如何最小化交易成本。交易成本通常由三個部分組成,傭金(或納稅),由經紀機構、交易所和證監(jiān)會(或其他類似的政府監(jiān)管機構)規(guī)定收取的費用;時延,即打算提交訂單的時間和實際提交訂單的時間差;差價,即交易證券買賣價格的差別。請注意,差價不是恒定的,而是取決于當前市場上的流動性(如買賣訂單是否可用)。
交易成本會區(qū)分開擁有良好夏普率的可盈利策略和擁有較差夏普率的不可盈利策略。使用回測較難準確預測出交易成本。根據策略的頻率,需獲得歷史的交易數據,其中包括買賣價格的勾選數據。基于這些原因,大型基金機構的整個量化團隊都會致力于優(yōu)化執(zhí)行情況。
考慮這樣的場景:某基金機構需要拋售大量交易(這樣做的原因有很多)。拋售如此大的份額到市場上,會迅速地壓低價格,從而得不到較佳執(zhí)行。因此將訂單慢慢流入市場的算法是存在的,盡管這樣做會導致基金機構時延的風險。除此之外,還有一些針對這些必然性并利用其效率低下的其他策略。這就屬于基金結構套利的范疇。
執(zhí)行系統(tǒng)最后一個主要問題是關于策略性能和回測性能的差異的。產生差異的原因有很多。我們在考慮回測時,已經深入討論過前瞻性偏差和優(yōu)化偏差的問題了。然而,有些策略在部署之前并不能很好地測試出這些偏差。這主要發(fā)生在高頻交易中。
在執(zhí)行系統(tǒng)和交易策略本身都可能存在漏洞,這些漏洞并不會在回測時出現,但卻會出現在實時交易中。在策略實施后,市場可能會出現制度變化。新的監(jiān)管環(huán)境、不斷變化的投資者情緒和宏觀經濟現象都可能導致市場行為的變化,從而改變你策略的盈利能力。
.jpg)
風險管理
量化交易的最后一塊拼圖是風險管理流程。“風險”包括了之前討論的各種偏差。還包括了技術風險,比如交易所的突然故障。還包括了經紀風險,比如經紀公司破產(這并非不可能,鑒于最近對曼氏金融這類情況的恐慌情緒)。
簡而言之,風險涵蓋所有可能干涉交易實施的因素,來源可能有很多。很多作者用了整本書去講述量化策略的風險管理,所以在這我不會展開講述所有可能的風險來源。
風險管理還包括了所謂的較優(yōu)資本配置,這是投資組合理論的分支。通過這種方式,資本被分配到一系列不同的策略以及策略中的交易上。這是個復雜的領域,依賴于一些高深的數學。與較優(yōu)資本配置和策略杠桿相關的行業(yè)標準稱為凱利公式。因為這是一篇介紹性文章,我不會深入講述其計算方法。凱利公式對回報的統(tǒng)計性質作出了一些假設,在金融市場上未必成立,因此交易員在對其實施上通常持保守態(tài)度。
風險管理的另一關鍵組成部分是管理個人心理狀況。在交易過程中可能會出現有許多的認知偏差。雖然在算法交易中,大家公認這不算是大問題,前提是讓策略獨自完成決策。
一個常見的認知偏差是損失厭惡,即在處于損失狀態(tài),由于損失的痛苦,人們通常不愿進行斬倉處理。同樣,還會發(fā)生由于害怕損失已經獲得的足夠多的利潤,從而提前取出利潤。另外一個常見的認知偏差是近期偏差。
當交易員著眼于近期事件而非長遠時,這種認知偏差就會出現。當然還有另外一對經典的情緒偏差——恐懼和貪婪。這通常會導致杠桿過低或過高,從而導致崩盤(例如賬戶權益趨于零或更糟)或減少收益。
.png)
總結
可以看出,量化交易是一個極其復雜但很有趣的量化金融領域。在這篇文章中,我只涉及到其皮毛,但篇幅已經很長了。有很多我只提了一兩句的內容,都有很多對應的書籍和論文針對該內容詳細展開。因此在申請量化交易崗位前,必須進行大量的基礎性研究工作。
至少你要在統(tǒng)計學和計量經濟學方面有廣泛的背景,并利用如MATLAB、Python或R等編程語言進行實現的大量實操經驗。在更高頻的更復雜的策略中,所需技術可能還包括Linux內核修改,C語言/C++,其它語言和優(yōu)化網絡延遲等。
如果你有興趣嘗試搭建自己的算法交易策略,我的首要提議是善于編程。我個人偏好是盡可能多地去搭建自己的數據采集器,策略回測和執(zhí)行系統(tǒng)。如果你的資金要冒險投資,那么對系統(tǒng)進行過全面測試并了解其缺陷和特定問題后,你晚上睡覺才能安眠吧?將此外包給供應商,雖然短期內可以節(jié)省時間,但長期來看代價是昂貴的。
量化金融分析師(簡稱AQF,Analyst of Quantitative Finance)由量化金融標準委員會(Standard Committee of Quantitative Finance,SCQF)主考并頒證,是代表量化金融領域的專業(yè)水平證書。
.png)
課程適合人群:
金融工程/數學專業(yè)背景的同學/工作人士,希望進一步學習Python編程以及在量化投資的實戰(zhàn)應用;
非金融工程專業(yè)背景的同學/工作人士,希望迅速成為寬客;
金融相關人員,希望學習如何系統(tǒng)的做量化策略;
個人投資者,希望系統(tǒng)學習掌握量化投資相關的實務技能,從模型開發(fā),回測,策略改進,搭建穩(wěn)定的量化交易系統(tǒng)。
.jpg)
(點擊上圖了解課程詳情)
量化金融分析師AQF核心課程體系:
1、《量化投資基礎》
主要涵蓋了量化投資領域的必備知識,包括:基本面分析、技術分析、數量分析、固定收益、資產組合管理、權益、另類投資等內容。
2、《Python語言編程基礎》
包含了Python環(huán)境搭建、基礎語法、變量類型、基本函數、基本語句、第三方庫、金融財務實例等內容。旨在為金融財經人提供最需要的編程方法。
3、《基于Python的經典量化投資策略》
包含了最富盛名,最基本的量化交易思想和交易策略。例如:海龜交易模型、Logistics模型、配對交易模型、波動擴張模型、Alpha模型、機器學習(隨機森林模型、主成分分析)、深度學習(人工神經網絡)等內容。
4、《量化交易系統(tǒng)設計》
旨在學習量化交易系統(tǒng)的具體知識,包括過濾器,進入信號,退出信號,倉位管理等詳細內容,并指導學員設計涵蓋個人交易哲學的量化交易系統(tǒng)。
5、《量化實盤交易》
旨在為解決實際量化交易策略搭建過程中的一些問題提供較優(yōu)解決方案。
掌握Python及量化投資技能,我們能做什么?
1、熟悉中國主要金融市場及交易產品的交易機制;
2、熟知國內外期貨交易、股市交易的異同點和內在運行機制;
3、掌握經典量化交易策略細節(jié)及其背后的交易哲學;
4、掌握金融、編程和建模知識基礎,擁有量化交易實盤操作能力;
5、具備獨立自主地研發(fā)新量化交易策略的能力;
6、掌握量化交易模型設計的基本框架,以及風險管理和資產組合理論的實際運用;
7、掌握從策略思想——策略編寫——策略實現餓完整量化投資決策過程;具備量化投資實戰(zhàn)交易能力。
.png)
更多內容推薦閱讀:
咨詢電話:400-700-9596
AQF考友群:760229148
金融寬客交流群:801860357
微信公眾號:量化金融分析師
完善下表,48小時內查收aqf備考資料
(如果沒收到資料,可以點我咨詢)
.png)




