比如做商品CTA的中低頻策略,持倉3、5天,用到5分鐘或15分鐘的K線。一般第三方平臺的K線資料都是高開低收,其實這不大好回測,因為並不知道價格是買價還是賣價,對於一些跳點很大的品種,這影響會非常大。

最新價有可能是買價或者賣價,這是50%的機率,而如果有精確的bid和ask,則可以在ask上買在bid上賣,最新價的期望一般是買賣的平均價,因此,如果用最新價,總體而言這樣會比用bid或ask好半跳。一般很多人用第三方平臺回測商品策略,是用最新價加兩個滑點,相當於對手價+1。5個價差,其實這樣也可以。

這對於那些對手價成交的搶單策略還是可以的,國內大分策略也是這個模樣,但對於掛單策略,則顯得有點力不從心。這裡的掛單,還不是那種高頻交易模擬排隊撮合成交,哪怕是最簡單的掛單成交的,高開低收也不能回測。

舉個例子,很多做震盪、反轉的策略是掛單成交的。比如現在行情處於一定的區間,可以在區間下沿掛買單,如果這根K線不成交就撤單。這種策略在國內程式化交易平臺比較少見的。如果只有最低價,其實也難以回測。如果最低價低於這個掛單價,那麼當然知道這個掛單可以成交。但如果最低價等於這個掛單價,則沒法知道了,因為很可能這個時候bid價等於我們的掛單價,而此時我們的單子排隊並沒有排到,價格就反彈了。但如果我們儲存了最低價的bid和ask,並且如果最低價的bid小於我們的掛單價,我們就知道自己的單子已經成交了,否則的話,可以預設不成交。這樣回測下來的策略對滑點不大敏感,雖然說進出場都這麼回測還是會損失一個滑點,但這是實盤最大值;而那種搶單的策略,表面上最優價進出場也是損失一個滑點,但那是實盤滑點的最小值。

因此,要較為精確地回測這種掛單成交的策略,則需要儲存更多的盤口資訊,比如高開低收的買賣價。這類策略或許在震盪行情比較賺錢,事先設好止盈止損,要麼止盈要麼止損,程式還是比較好寫的。比如掛單買成交,這理論上是逆勢交易,因為別人在主動賣自己的買單才能成交,也類似於低頻的做市商。在目前國內CTA中低頻普遍搶單抓趨勢成交的大背景下,或許配置一些這類策略,可以起到很好的作用。做的熟練了,可以逐步過渡到高頻策略,

如果對高頻策略感興趣,可以參考我的知乎live:

在中國做期貨高頻交易的日子

目前已經結束,但裡面內容還是很豐富的,當時講了一個多小時,然後又答疑了一個多小時,是一般知乎live的兩倍時間,加上前面也有很多問答。