【量化干貨】給初學者的一些量化建議

ZodiacTrader
Feb 23, 2021

--

量化交易初學者指南

在本文中,我將向初學者們介紹端到端量化交易系統附帶的一些基本概念。這篇文章主要是寫給兩種類型的讀者:首先將是想以量化交易者的身份在金融機構以及基金尋找工作的個人。第二種則是希望嘗試建立自己的自營量化算法交易業務的個人。

量化交易是量化金融的極為複雜的領域要獲得必要的知識以通過面試或構建自己的交易策略,可能需要花費大量時間。不僅如此,它還需要廣泛的編程專業知識,至少需要使用MATLAB,R或Python之類的語言。但是,隨著策略交易頻率的增加,技術方面變得越來越重要。因此,熟悉C / C ++將至關重要。

定量交易系統包括四個主要部分:

1. 策略識別-查找策略,利用優勢並確定交易頻率

2. 策略回測-獲取數據,分析策略績效並消除偏見

3. 執行系統-鏈接到經紀人,自動化交易並最小化交易成本

4. 風險管理-最佳資本配置,“賭注大小” /凱利標準和交易心理

我們將從研究如何確定交易策略來學習如何搭建量化策略的框架。

策略識別

所有量化交易模型的搭建都始於做好研究。然而在研究過程包括找到有效可行的交易策略,查看該策略是否適合您可能正在運行的其他策略的組合,獲取測試該策略所需的任何數據以及嘗試針對更高的回報和/或更低的風險來優化該策略。如果將策略作為自營量化交易策略運行,則需要考慮自己的資金需求,以及在中間發生的所有交易成本將如何影響策略的盈利。

事實上我們可以通過閱讀大量的量化交易研究Paper來獲取學者的交易思路。因為這些學者將定期發布理論交易結果。同時讀者也可以去量化金融博客閱讀更多的策略和交易思路。

說到這裡,有些讀者可能會質疑,既然策略賺錢,為什麼公開?

而為什麼個人和公司熱衷於討論其有利可圖的策略,尤其是當他們知道其他“擁擠的交易”可能會使該策略無法長期發揮作用時,他們還會免費提到他們的交易思路呢?

關鍵在於交易策略模型的建立以及持續的優化。這步大家都是不會說的。

原因在於他們不會經常討論他們執行的確切參數和調整方法。這些優化是將相對平庸的策略轉變為高利潤策略的關鍵。實際上,創建自己的獨特策略的最佳方法之一是找到相似的方法,然後執行自己的優化過程。

以下是一小部分開始尋找交易思路以及相應策略資源的地方:

1.www.ssrn.com

2.arxiv.org/archive/q-fin

3.Alpha-www.seekingalpha.com

4.www.elitetrader.com

5 www.nuclearphynance.com

6. quantumivity.wordpress.com

而量化交易的初學者將要研究的許多策略都屬於均值回歸和趨勢跟踪/動量類別。均值回复策略是一種嘗試利用以下事實的交易方式:存在“價格序列”上的長期均值(例如兩個相關資產之間的價差),並且與該均值的短期背離最終會恢復。動量策略通過“搭順風向”市場趨勢來嘗試利用投資者的心理和大型基金結構,該趨勢可以沿一個方向聚集動量,並跟隨趨勢直至其反轉。

量化交易的另一個極其重要的方面是交易策略的頻率。低頻交易(LFT)通常指持有資產超過交易日的任何策略。相應地,高頻交易(HFT)通常是指一種在日內持有資產的策略。超高頻交易(UHFT)是指以幾秒鐘和幾毫秒為單位持有資產的策略。作為零售從業者,HFT和UHFT當然是可能的,但只有對交易“技術棧”和訂單動態有詳細了解。在這篇介紹性文章中,我們不會在很大程度上討論這些方面。

一旦確定了一個或一組策略,就需要對歷史數據進行盈利能力測試。那就是回測的領域。

對套利的策略進行回測

回測的目的是提供證據,證明通過上述過程確定的策略在應用於歷史數據和样本外數據時都是有利可圖的。這設定了該策略在“現實世界”中的執行方式的期望。但是,出於各種原因,回測不是成功的保證。這可能是量化交易中最微妙的領域,因為它涉及許多偏見,必須仔細考慮並消除它們。我們將討論常見的偏差類型,包括前瞻偏差,生存偏差和優化偏差(也稱為“數據監聽”偏差)。回溯測試中的其他重要領域包括歷史數據的可用性和整潔度,考慮實際交易成本並確定可靠的回溯平台。

我們將在下面的“執行系統”部分中進一步討論交易成本。

歷史數據的主要問題包括準確性/整潔度,生存偏差以及對公司行動(如股息和股票分割)的調整:

1. 準確性與數據的整體質量有關-數據是否包含任何錯誤。有時可能易於識別錯誤,例如使用尖峰過濾器,它將在時間序列數據中找出不正確的“尖峰”並進行糾正。在其他時候,很難發現它們。通常需要有兩個或多個提供程序,然後相互檢查它們的所有數據。

2. 生存偏差通常是免費或廉價數據集的“特徵”。具有生存偏差的數據集意味著它不包含不再交易的資產。對於股票,這意味著退市/破產股票。這種偏見意味著,在這種數據集上測試的任何股票交易策略都可能會比在“現實世界”中表現更好,因為已經預先選擇了歷史“贏家”。

3. 企業的股票回購動作:包括公司執行的股票回購或是收購等資本運作,這些活動通常會導致原始價格發生巨大變化,因此不應計入價格回報中。股息和股票分割的調整是常見的罪魁禍首。這些動作中的每一個都必須執行一個稱為反向調整的過程。必須非常小心,不要將股票分割與真實的收益調整相混淆。許多交易員被公司的運作和股價的巨大波動所吸引!

為了執行回測程序,必須使用軟件平台。我們可以選擇專用的回測軟件(例如Tradestation),數字平台(例如Excel或MATLAB)或使用編程語言(例如Python或C ++)的完全自定義實現。

我不會過多地停留在Tradestation(或類似產品),Excel或MATLAB上,因為我相信創建完整的內部技術棧(出於下面概述的原因)。這樣做的好處之一是,即使使用極其先進的統計策略,回測軟件和執行系統也可以緊密集成。特別是對於HFT策略,必須使用自定義實現。

對系統進行回測時,我們需要能夠量化策略本身的績效。量化策略的“行業標準”指標是最大回撤和夏普比率。最大回撤是在特定時間段(通常是每年)內帳戶淨值曲線中最大的峰谷下降特徵這通常以百分比形式引用。由於許多統計因素,LFT策略比HFT策略具有更大的虧損。歷史回測將顯示過去的最大跌幅,這是該策略未來跌幅表現的良好指南。第二種度量是夏普比率,根據經驗將其定義為超額收益的平均值除以這些超額收益的標準差。在這裡,超額收益是指該策略的收益高於預定基準,例如S&P500或3個月的美國國庫券。請注意,年化收益率不是通常採用的衡量標準,因為它沒有考慮到策略的波動性(與夏普比率不同)。

一旦我們對交易策略進行了回測,並認為該策略沒有太大的誤差和問題,同時具有良好的Sharpe(夏普比率以及投資回報比)和最大程度地減少了延期,那麼我們就可以根據這個交易策略來構建執行系統。

訂單執行系統

執行系統是由經紀人發送和執行由策略生成的交易清單的手段。儘管貿易產生可以是半自動化或什至是全自動的,但執行機制可以是手動,半手動(即“一鍵式”)或全自動的。對於LFT策略,手動和半手動技術很普遍。對於HFT策略,有必要創建一個完全自動化的執行機制,該機制通常與交易產生者緊密結合(由於策略和技術的相互依賴)。

創建執行系統時的主要考慮因素是與經紀人的接口,最小化交易成本(包括佣金,滑點和價差)以及實時系統的性能與回測性能之間的差異。

與經紀人接口的方法有很多。從電話呼叫經紀人到全自動的高性能應用程序編程接口(API),一應俱全。理想情況下,您要盡可能自動執行交易。這使您可以騰出時間專注於進一步的研究,並允許您運行多種策略甚至更高頻率的策略(實際上,如果沒有自動執行,HFT本質上是不可能的)。上面概述的通用回測軟件,例如MATLAB,Excel和Tradestation,對於較低頻率,更簡單的策略非常有用。

但是,有必要構建以高性能語言(例如C ++)編寫的內部執行系統,以執行任何實際的HFT。作為一個軼事,在我以前任職的基金中,我們有一個10分鐘的“交易循環”,在該循環中,我們每10分鐘下載一次新的市場數據,然後在相同的時間範圍內根據該信息進行交易。這是使用優化的Python腳本。對於接近分鐘或第二頻率數據的任何事物,我相信C / C ++作為編程語言會更為理想。

在大型基金中,優化執行的程序實現通常不是量化交易者的首要職責。但是,在較小的自營基金或高頻交易HFT公司中,交易者本身也是執行者,因此通常需要更廣泛的技能。如果讀者想被基金僱用,請記住這一點。編程技能將比統計和計量經濟學才能更重要!

在執行交易策略的另一個主要問題是交易成本的最小化。交易成本通常包括三個組成部分:佣金(或稅金),即經紀,交易所和SEC(或類似的政府監管機構)收取的費用;滑點,這是您希望執行的訂單與實際執行的訂單之間的差;點差,即交易證券的買/賣價之間的差。請注意,點差不是恆定的,並且取決於市場上當前的流動性(即買/賣定單的可用性)。

交易成本可能會在具有良好Sharpe比率的極有利可圖的策略與在Sharpe比率極差的極其無利可圖的策略之間產生區別。從回測中正確預測交易成本可能是一個挑戰。

根據策略的頻率,我們將需要訪問歷史交易數據,其中包括買/賣價的報價數據。由於這些原因,整個量化團隊致力於優化大型基金的訂單執行能力。考慮一種情況,其中一個基金需要賣出大量的股份或是頭寸)。而這些基金通過在短期內將這麼多股票“傾銷”到市場上,巨大的賣壓將迅速壓低價格,並且可能無法獲得最佳的訂單執行價格,從而造成巨大損失。因此,存在“滴灌”定單到市場上的算法,儘管那時該基金存在滑點的風險。除此之外,其他策略也會“掠奪”這些必需品,並且可以利用這些低效之處。這是基金結構套利的領域。

執行系統的最後一個主要問題涉及策略性能與回測性能之間的差異。發生這種情況可能有多種原因。在考慮回測時,我們已經討論了深度的前瞻性偏差和優化偏差。但是,某些策略並不容易在部署之前測試這些偏差。這主要發生在HFT中。執行系統和交易策略本身中可能存在一些錯誤,這些錯誤不會在回測中顯示,但會在實時交易中顯示。在您部署策略之後,市場可能會發生體制變化。新的監管環境,不斷變化的投資者情緒和宏觀經濟現像都可能導致市場行為以及策略盈利能力的差異。

風險管理

量化交易難題的最後一部分是風險管理過程。 “風險”包括我們已經討論過的所有先前的偏見。它包括技術風險,例如位於同一地點的服務器突然發展為硬盤故障。它包括經紀人風險,例如你的經紀人(broker)破產(鑑於MF Global最近的恐慌,聽起來並不瘋狂)。簡而言之,它涵蓋了幾乎所有可能影響交易執行的內容,其中有許多宏觀的風險來源。

風險管理還包括所謂的最佳資本分配,這是投資組合理論的一個分支。這是將資本分配給一系列不同策略以及這些策略中的交易的方式。這是一個複雜的領域,依賴於一些非平凡的數學。與最佳資本分配和策略槓桿相關聯的行業標準稱為凱利標準(kelly formula)。由於這是一篇介紹性文章,因此我將不再贅述。凱利準則對收益的統計性質做出了一些假設,這些假設在金融市場中並不經常成立,因此交易者在執行時通常會比較保守。

風險管理的另一個關鍵組成部分是處理自己的心理狀況。有許多認知偏見會蔓延到交易中。儘管如果單獨使用該策略,這無疑對於算法交易的問題較小!一個常見的偏見是虧損厭惡,由於必須實現虧損的痛苦,虧損頭寸不會被平倉。同樣,可以太早獲取利潤,因為擔心失去已經獲得的利潤可能太大。另一個常見的偏見稱為新近度偏見。當交易者過分強調近期事件而不是長期來看時,這就會體現出來。然後當然會有經典的情感偏見-恐懼和貪婪。這些通常會導致槓桿不足或過度槓桿化,從而導致賬戶blow up爆炸(即帳戶淨值趨向於零甚至更糟!)或利潤巨額減少。

總結

在申請進入量化基金交易工作之前,我們必須有很好的編程能力以及研究能力。至少我們將需要具有廣泛的統計和計量經濟學背景,並具有通過MATLAB,Python或R等編程語言進行實施的豐富經驗。對於更高頻率端的更複雜策略,

--

--

ZodiacTrader
ZodiacTrader

No responses yet