2013年9月13日 星期五

信任你所測試的歷史資料


對於實際交易美國商品期貨的朋友來說,其中一個很重要的課題是要找到正確的資料序列來作回測。因為在美國商品期貨的歷史裡面,最早的交易型態是由一堆交易員,在交易所裡面用人工喊價的方式來作價格的搓合的,那時候還沒有電子型態的交易,所以沒有電子盤的資料。所以對於歷史比較悠久的商品來說,比較久遠前的資料(以黃金為例,是約略在2002年以前)都是只有人工盤的資料。

後來等到約在2002年開始,美國交易所開始引進的電子搓合的交易方式,但是限制電子盤的交易時間只有在人工盤以外的時間才有,所以約略在2002年到2006年12月的這段時間,是屬於美國時間8:20am-1:30pm採人工盤交易,其餘時間採電子盤交易的型態。

等到2006年12月開始,電子盤的交易時間延長到包含到人工盤的交易時間了。所以從這時候開始,電子盤的成交量開始大增,雖然人工盤的交易還是存在,但是大家漸漸的把戰場移轉到了電子盤上面。

因為有這樣的歷史典故,所以美國期貨商品的歷史資料也有分為1.人工盤 2.電子盤的資料。

所以如果我們只用人工盤的資料來回測的話,雖然在2006年以前的資料很完整,但是在2006年以後的資料型態,其實跟現在市場的型態已經有很大的不同了(因為大家都跑來電子盤交易)。

而如果只用電子盤的資料來交易的話,那也只能適用於2006年12月以後的資料,這樣對於回測的時間長度來說,實在是太短了。因為在2006年12月以前的資料,會發現每天中間空了很大一塊(像黃色圓圈所示)。

那如果我們直接把電子盤和人工盤的資料拼在一起的話,是不是就可以代表完整的資料了呢?

其實這樣做也不行,因為在8:30am-1:30pm的這段時間,雖然人工盤和電子盤同時交易,理論上兩者的價格會相近(因為有人套利),但是實際上還是會有些許的差異。再加上如果我們的資料採用了back adjust的方式去調整的話,因為人工盤和電子盤每次換倉所調整的值,都會有一點點的差距。所以累積下來,就會發現如果直接把這兩種資料拼在一起的話,會有K線連不起來的情形(藍色圓圈所示)。

在Tradestation裡面,電子盤的資料就用@GC來表示(圖片裡最上面那一列的資料序列),人工盤的資料就用 @GC.P表示(第二列的資料序列)。把人工盤和電子盤用暴力法拼湊起來的資料則是第三列的資料序列。最後下方把人工盤和電子盤巧妙的連結在一起,不要產生莫名其妙的跳空or K線的話,就用 @GC.C來表示(第四列的資料序列)。

所以像黃金這樣狀況的商品,還包含了白銀,天然氣,原油,黃豆,玉米,小麥,大SP500,大道瓊,大Nasdaq等。在回測這些商品的時候,應該要用@GC.C , @CL.C , @SI.C, @S.C, @C.C, @W.C, @SP.C 這些符號才好。如果單純只用@GC來回測的話(沒有加上.C的話),會發現這個資料在2006年12月以前和以後的個性完全不一樣。如果有人是用IB的歷史資料,或是證券商的歷史資料的話,則需要先確定他們的資料是屬於哪一種。

但是至於e-mini S&P500的資料(),因為這個商品一開始就是直接用電子盤交易了,所以沒有@ES.P和@ES.C的問題,直接用@ES來測試就可以了。

以前我念計算機概論的時候,老師講電腦處理資料的特性是, Garbage In, Garbage Out。所以想要信任回測出來的績效,請先確認你所使用的資料是可以信任的。謝謝。


http://tw.myblog.yahoo.com/Blue-Speculator/article?mid=2727&prev=-1&next=2720

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...