從《QUANTITATIVE TRADING》讀書心得 學量化交易入門

作者:睿富者   |   2016 / 03 / 24

文章來源:Trading Valley   |   圖片來源:Joseph Wang


「量化交易」是一門匯集數學知識與程式語言的學問,一般人或許會認為那是相關領域專家才能勝任的工作。但此書作者告訴我們並不盡然,這是他身為這領域專家,在歷經數次成功與失敗的實務操作後所下的結論。在從事量化交易前,需要先釐清一非常重要的觀念,那就是這不是能一夕致富的行業,不然到頭來只會落得血本無歸的下場。積極謹慎的個性與耐心,是做這行業人最普遍具有的特質。

QUANTITATIVE TRADING 讀書報告匯整-01

隨著網路資源搜索的盛行,我們不難在許多學術文章(SSRN)或是相關網頁論壇(Yahoo Finance, Elite Trader)裡,找尋到許多適合自己偏好取向的交易策略。因此我們關心的是如何分辨這些交易策略的好壞,以及避免在這過程中犯下一些常見的錯誤,例如存活偏誤 (survivorship bias)、前視偏誤 (look-ahead bias)、資料窺探偏誤(Data-snooping bias)以及對交易成本的考量等,以下一一為大家介紹。

下圖為計量交易的流程.首先,交易者會從歷史資料或過去經驗中得到對於市場的知識,將知識量化後發展出交易策略,並使用策略對過去歷史資料做回測,產生對此策略的評估報告.這樣做的好處是,可以確保執行者對策略完全了解,另一方面,若在回測中發現不夠好的部分,也可以及時修正與改進.最後,此策略就可以進入實際操作的階段.而從發展策略到回測產生評估報告的過程,就是傳統投資方式與量化交易最大的差異處。

QUANTITATIVE TRADING 讀書報告匯整-02

關於回測的各種知識

首先,是進行回測的平台,以下介紹幾個常用的回測平台:

  • 第一個常用的回測平台是Excel
    資料的輸入、輸出都可在同一張表格上完成,交易人可以輕易地做比較與判讀,但Excel的缺點就是只適合用來處理較簡單的模型。
  • 第二個常見的交易平台為Matlab
    Matlab的優點如以下這張圖所示,可以輕易的從外部的資料庫匯入資料,並有豐富的數學及統計工具幫助投資者建立較複雜的策略和處理大量資料,但Matlab的缺點是測試完策略後,至少到目前在一些的情形下,必須從另外的交易平台做下單。

QUANTITATIVE TRADING 讀書報告匯整-03
註:與Matlab較為相似的平台,如「R」、「Python」也是一般常見的使用工具,各有其優缺點。

  • 第三個是在國內較為常見的交易平台Multicharts
    除了適用多種標的資產的交易如股票、期貨、外匯等項目外,簡易的操作方式與其所具備的許多服務功能,像是圖表交易、下單匣、交易追蹤視窗、市場深度視窗、自動化進場/出場與商品代碼轉換等特色所著稱。

另外,在國外更常被使用的交易平台為Quantopian、Quantconnect、Portfolio123,此三個平台各自擁有相當多使用者,裡面有許多社群分享的交易策略,資源十分豐富。許多量化交易的前置作業,如選定標的資產,下載歷史資料等都能在這些平台上輕鬆完成,各網站的資料匯整連接的都十分完善,使用者只需專注在策略上的設計即可。

選定交易平台後,接著是尋找及使用歷史資料

交易人可以在網路上尋找到大量的免費資料來源,如yahoo finance、CSI、Chicago Booth的CRSP、qanda.com等,但在使用上述資料時,必須注意幾個要點,避免錯誤觸發交易信號。

1.標的是否有股票分割以及發股利的情況

以(IGE) ETF做個例子,下表為2005/6/7-10的資料,在8-9間,該ETF做了一次2 :1的股票分割,表格中可以發現兩天的收盤價差將近一倍,這時就需對分割前的收盤價做調整。也就是必須將收盤價除以二

QUANTITATIVE TRADING 讀書報告匯整-04

而下面表格則是2005-07年發放股利的狀況,必須針對每一次股利發放計算調整的乘數。乘數計算方式為 ( Prev. Close – Dividend ) / Prev. Close。

QUANTITATIVE TRADING 讀書報告匯整-05

根據上述的調整方式,得到下表為調整完股票分割和股利發放後的收盤價,以此收盤價進行回測,才能得到正確的報酬。

QUANTITATIVE TRADING 讀書報告匯整-06

2.標的的存活偏誤(Survivorship Bias)

做回測的時候,可能會面臨一個情況是部分標的已經下市無法得到資料,而未將這些資料放進歷史資料中,而得到有所偏差的報酬。舉個虛擬的交易策略為例,買進當年表現最差股票並持有一年。

QUANTITATIVE TRADING-07

由上面的兩個例子,可以得知交易人在進行回測使用歷史資料時必須非常小心,以免產生有所偏差的結果。

而如何公平比較不同的策略和不同交易人的結果,Sharpe Ratio是一個公認較為適合的指標,Sharpe Ratio衡量的是承擔每單位風險所得到的超額報酬。

3.前視偏誤(Look-ahead bias

我們使用交易完成之後的資訊會導致前視偏誤,比如以在「當日最低價的1%之內買入股票」的策略就有前視偏誤,因為在收盤之前是無法得知當日股票的最低價格,使用有落後期數的歷史數據可以避免這一偏誤的產生。我們能依下列方式檢驗是否存在前視偏誤:

  • 第一步驟是使用標的物的所有歷史數據運行程式,將推薦買賣倉位存入一個文件A;
  • 第二步驟是移除最近N天(10天或100天)的歷史數據後,再次運行程式,將推薦買賣的倉位存入另一個文件B;
  • 第三步驟是不考慮文件A的最後N行,比對文件A和文件B的買賣倉位是否相同?如果倉位不一致,則說明移除的N天數據參與了文件A的運算,故回測程式有前視偏誤的存在。

QUANTITATIVE TRADING 讀書報告匯整-09

4.數據窺探偏誤(Data-snooping Bias)

數據窺探偏誤指的是我們過度優化參數而誇大了回測績效,可分為參數優化和非參數優化兩種。參數優化是指像進出場門檻值,持有期限和回測期限等非參數優化是指利用開盤價或是收盤價來交易,是否持有過夜,交易標的為大股或是小股等。這些類型的選擇往往可以優化回測績效,但對未來績效並不能保證會有好的結果。有三種方法來降低這種偏差

  • 第一種最常見的方法是增加我們的樣本量
  • 第二種是樣本外回測,樣本外回測指的是將歷史數據分成兩部分,用第一部分來優化參數,我們稱為訓練集(training set),用第二部分來做樣本外測,我們稱為測集(test set)。

QUANTITATIVE TRADING 讀書報告匯整-08

從測集的損益圖可以看出策略的績效很好,這個配對交易策略在訓練集和測集上的Sharpe ratio都很高,因此,可認為此策略存在數據窺探偏誤如果把進場門檻值改為1倍標準差,出場門檻值改為0.5倍標準差,即在組合價值向下跌破1倍標準差時,購買該價差組合,當組合價值上升超過0.5倍標準差時,做空該價差組合。在訓練集上的Sharpe ratio會上升至2.9,測集的Sharpe ratio會上升至2.1。顯然,後面這組門檻值更好但並不是所有訓練集上的參數優化都會提高測集上的績效。這時應該選擇使得訓練集和測集上的績效都較好(很可能不是最好)的參數。最後還要檢測是否存在前視偏誤

  • 第三種降低數據窺探偏誤的方法為敏感度分析敏感度分析是指我們在模型參數優化、通過測集的檢驗之後,透過改變這些參數,來觀察模型在訓練集和測試集上的績效變化。如果績效變化很大,或者說在參數取任何其它值時績效都不佳,模型很可能具有數據窺探

5.交易成本考量

例2:考慮交易成本的均值回歸模型

一個簡單的交易策略:以1995年到2006年這段期間,我們以收盤價買入前一交易日日收益最差的股票,賣空前一交易日日收益最好的股票。不考慮交易成本,策略的Sharpe ratio等於0.2510,而考慮交易成本的Sharpe ratio等於-3.1884。因此這個策略是無利可圖的。

策略的改進

首先我們需要注意的是所有策略的改進都要有經濟學原理或者市場的現象作支撐,而不是亂套入些反覆試驗的方法,否則會產生數據遷就偏差。

例3:對例2策略的微小改動

對策略進行如下改動:在市場開盤而非收盤時進行交易,不考慮交易成本的Sharpe ratio會增加到4.43;而考慮交易成本的Sharpe ratio會變為0.78,可以發現這個策略仍有利可圖。

小結:這篇文章主要是以Quantitative Trading這本書前三章內容為主,再加上與時下較為常見的交易平台作介紹,希望能讓讀書能對計量交易有初步的了解與認知,後續章節的部份會再陸續與大家分享。

延伸閱讀:
● 配對交易策略之期現套利
● 通過 P/C ratio 漲幅預測市場次日下跌行情
● 歷史不斷重演─型態學
● IPO沒抽到,何時進場才好?
● 全球領先的Python演算法交易平台─Quantopian

喜歡這篇文章?加入你的S夾!

睿富者

Trading ValleyFugle

睿富者(QFFERS) 由一群熱愛財務金融與產業科技的同好組成,以計(數)量方法為主軸,關注理論面、操作面與政策面等議題。
睿富者的最新文章
More

社群熱門分享排行榜
本週
本月
追蹤股感的社群