2014年7月3日 星期四

利用「分筆數據」觀察美國ETF的買賣價差

如果只想知道如何控制買賣價差 (bid-ask spread) 帶來的交易成本,請直接看「評估並控制ETF的交易成本」即可,本文只是將準備該文時蒐集的價差資料做更全面的分享,並沒有提出什麼新的建議。但如果想進一步探究ETF的買賣價差變化,或有興趣自己動手研究的人,本文應該可以做個參考。
當初在搜尋交易價差的資訊時,意外發現網路上居然有免費的賣買價分筆數據(tick data),更有趣的是,這居然是一家挪威券商 NetFonds提供的。其實該公司並沒有開放一般人使用的介面,但有人提供了網址解析方法教我們如何取得並解讀資料 (詳見Finding Free Stock Data)。我根據該網站的內容,用Google試算表做了轉換工具和分布圖,如果有興趣自行研究交易價差可以參見本文結尾的說明。由於該網站也會更新當天盤中數據,所以也可評估當天價差分布狀況,決定是否需要另擇黃道吉日進場交易。
請注意:本文僅是隨手選用幾幅分布圖來說明一些買賣價差的特性,並未經過大量統計驗證其代表性,個別ETF的分布圖也沒有任何預測暗示,有些圖和一般說法不一樣,雖然不見得具有普遍性,但也有助於讓我們警覺到一般交易建議的侷限性。
交易量越大,價差越小,分布範圍也越狹窄
這是平均交易股數超過10000K的VWO,除了開盤頭幾秒以外,整個市場交易時段買賣價差一直維持在最低的$0.01/0.02%,幾乎沒有注意交易時間和價差變化的必要:

眼尖的朋友可能會注意到有一些0價差存在。美股的報價資料是整合許多交易所的報價提供的最佳報價 (NBBO),由於網路延遲或其他各種原因,可能出現短暫的零價差 (locked) 甚至負價差 (crossed),但這種報價無法據以交易,一般也不會出現在券商給我們的報價。
交易量2000K+股的VTI,正如一般建議開市後半個小時買賣價差才收窄,但之後偶仍有較大價差出現,不過影響交易的機會並不大,價格起伏不定時市價單可能也不失為方便的選擇:

交易量300K+股的VPL,交易價差收窄過程不明顯,且整個市場交易時段都一直不時有稍大的價差出現,務必用限價單鎖定買賣價差為妥:

收盤前買賣價差擴大?
一般都說收盤前半小時價差也會擴大,最好避免交易,但前述幾個圖都沒有看到此一現象。不過我在交易量300K+股的VB (Vanguard Small Cap ETF) 確實看到收盤前買賣價差擴大,整個買賣價差呈現明顯的U型分布。不過,其開盤時的價差擴大拖得很久,一直到11:00才縮小。

不過這種分布並非常態,同樣是VB,另換一天的買賣價差分布就不同了,買賣價差反而隨時間緩步下降,收盤是全日最小價差:

其實我前後弄了10幅圖來看,也只看到前一幅圖有明顯的U型分布。據我爬文結果推測,這種開盤收盤時價差較大的說法應該是出自對股票市場價差的研究,但一來這只是股票的結果不一定完全適用於ETF,二來原本的U型分布應該也只是一種統計趨勢而非常態。甚至在交易量600K+股的TIP還出現除了開盤頭一小時外都呈倒U型分布:
 
結論
交易量2000K股以上的ETF除了開盤頭半小時外,大多維持在$0.01的最小買賣價差,用市價單交易通常也很安全。交易量1000K以下的ETF價差分布變化比較大,似乎也沒有一定規律性。開盤買賣價擴大有時持續甚久,不一定半小時就會進入合理價差,而且盤中買賣價差仍時有起伏,所以還是需要以平均價差做參考,自行留意價差是否合理,且務必使用限價單。收盤時的價差擴大並不那麼確定,但還是可能出現,不妨還是依循最後半小時避免交易的建議,不過因為時差關係,這對我們影響也不大。
試算表使用說明
買賣價差試算表有三種版本,連結如下:
  1. 資料自動載入版:速度較慢,資料保存較麻煩;
  2. 手動複製資料版:雖然要手動貼數據,但速度相對快些,資料保存也便利;
  3. 當日數據自動更新版:源自自動載入版,但限定讀取當日資料定時自動更新,以便觀察當天變化。據初步觀察,當入數據的時間延遲大約是15分鐘。
這些試算表使用了很多Excel沒有的功能,只能在Chrome瀏覽器下配合Google雲端硬碟使用。使用時請先建立副本,才能輸入自己的資料。如無Google帳號的朋友,需先建立Google帳號才能在自己的Google雲端硬碟建立副本。
輸入資料:老規矩,淡綠色是使用者需要填入的部分,淡紅淡黃是公式不要隨意改。
  1. 代碼:輸入股票或ETF的Ticker Symbol,但不是全部代碼都有資料 (如WIP、VGIT就找不到)。
  2. 交易市場:ETF似乎都是設為AMEX才能查到。雖然沒有確實根據,但依我的觀察和推測,此網站所謂AMEX、NASDAQ、NYSE並非指掛牌上市的交易所,而是整合報價系統 (Consolidated Quotation System) 三大管道Tape A,  Tape B, Tape C的代表性交易所。我們熟知的許多ETF均於NYSE Arca掛牌,而其報價傳輸是屬於以AMEX (目前已改名為NYSE MKT) 為代表的Tape B (Network B)。
  3. 日期:預設為上班日當天或最近一個禮拜五 (紐約時間),不過只是以星期判斷。如果需要,可填入自己需要的日期,但只能查到最近20天的資料 (畢竟是免費的)。
  4. 更新間隔:只有當日數據版有此欄位,以分鐘為單位,預設是10分鐘。
自動載入版:速度比較慢,但只要輸入前述三項資料後就可以坐等資料自動下載、整理、計算、繪圖,等右上角進度條跑完就可以看到結果。但如果要保存資料,就要自行複製工作表,選取A~H欄,複製,選擇性貼上>僅貼上值,才能保存自動下載的資料,否則過了一陣子,超過最近20天範圍該資料就無法再次下載了。
手動複製版:建議先複製工作,在新工作表輸入前述三項資料,點擊URL即可打開資料網頁,然後全選 (Contraol-A)、複製、貼入空白「記事本」、全選 (Contraol-A)、複製、將數據貼入試算表A~G欄,之後的整理計算繪圖即可由試算表完成。如要載入新資料,回到最早的空白工作表,再複製新工作表使用即可。
當日數據自動更新版:僅輸入代碼即可定時更新當天資料。如需觀察不同ETF,則建立副本,填入代碼即可。此版本時區訂為EST,以正確輸入日期。
圖表調整:預設資料範圍僅包含交易時段內的10000筆資料 (平均每秒2.7筆),如圖表時間軸沒有顯示到16:00或當日更新資料,就表示資料數超過預設範圍,需要點選圖表,由右上方出現的下拉選單「進階編輯...」調整資料範圍。此外,由於左軸的價差只顯示0.15%以下部分,如果要顯示更大範圍的價差,就必須調整左軸設定。

最後還是要感謝Google公司提供這麼棒的免費工具,一行程式都不用寫就能自動完成這些工作。可惜的是說明文件太過簡陋,很多地方小地方要自己摸索或上網爬文。中文這方面資訊更少,如果有朋友有興趣學習Google試算表,也歡迎多多交流。

8 則留言 :

  1. Rib大,圖片都沒有出現喔!

    回覆刪除
    回覆
    1. 不好意思,權限設錯了,現在應該OK了吧?

      刪除
    2. 謝謝提醒和回報。

      先前由於自動登入,所以沒查覺權限的影響。不過表格網路發佈好像沒受權限限制,沒想到圖表會受限。說不定也有新舊版的差別...有空再測試看看,目前因為Google試算表新舊版功能的差別,表格都用舊版做發布,這次的圖表用到一些新功能,只好用新版發布

      刪除
  2. Rib大,還有一個問題
    試算表無法變更ETF的Ticker Symbol

    回覆刪除
    回覆
    1. 請建立副本,以取得編輯權限

      刪除
  3. Rib大,可否用mail請教您些私人問題呢?

    回覆刪除
    回覆
    1. 請留言註明私人問題即可 (咦?我們之前不是有通過信嗎?)

      刪除