大家好!我是貓大,本週專欄將為讀者介紹,採礦貓團隊究竟是如何結合資料挖礦在高頻交易領域,在設計一個高頻交易系統時,需要考量哪些重要概念,貓大將一一帶讀者了解。
速度、速度,喵!
就如同上一篇專欄中貓大所說,在高頻交易的世界裡,最重要的一個特徵之一,就是速度。除了增快連線速度,比別人更快的拿到分析資料外;加快策略分析速度,更快的算出市場趨勢,更是重中之重。如果分析趨勢的速度太慢,等到分析完成,下單的時間點都過了,還談什麼獲利呢?沒有速度,即便策略判斷準確、百發百中,也是枉然。因為根本趕不上高頻交易世界中有如閃電般的趨勢變化。
然而,高頻交易不但每秒的資料吞吐量極大,分析時間的要求又極為嚴苛,究竟該如何在短至數十秒的時間裡,從紛亂龐雜的資料中找出不斷改變的市場趨勢呢?
分散式運算技術及In-Memory DB
為了解決高頻交易中對於速度的苛刻要求,我們設計了一套分散式處理系統,將資料分散到多個節點進行前置運算。運用分散式處理系統的優勢,解決了高頻交易要求的一部份「速度」問題。
分散處理的好處在於可以將大量的資料分配給多部機器同時處理,增加策略運算效率。至於將資料分散儲存在各節點上,則有助於降低自硬碟讀取資料的時間。因為分散式儲存系統的優勢除了可彈性增加儲存節點、較容易擴充儲存容量外,藉助於多個節點同時讀取,亦可更快獲取所需的資料。
使用分散式運算技術,或許可以借助多台電腦共同分擔高頻交易的大量運算量,但是,這並不足以解決高頻交易的「高速」需求。我們還需要借助In-Memory Database的幫助。
In-Memory DB是相對於傳統資料庫而言,不將資料儲存於硬碟上,而是儲存在記憶體中,如此資料存取都不必通過硬碟讀取,只需在記憶體中操作即可。由於去除了磁碟I/O的拖累,使用In-Memory DB可以大幅提升運算速度。
讓電腦幫我們「想」策略
解決了速度問題,接下來就是準確度的問題了。這讓貓大想到上個禮拜正好有個貓朋友咪咪,是個對程式交易小有研究的OL。咪咪想要寫一支程式輔助投資,於是她花費了幾天到幾個禮拜的時間,設計一支自己的策略。這支策略融合了咪咪畢生絕學,將她研究了好幾年市場走勢的心得融入,並精心挑選了幾個技術指標,才融會貫通出一個策略。咪咪興沖沖的擺上這支策略,於是在某一個時間點,這支策略說:「時候到了,買吧」咪咪立馬按下下單鍵,進行下單。
聽咪咪說,這支程式幫她賺了一點錢(讓她買了好幾條魚加菜),而且不必時常盯著走勢,著實讓她省了不少時間。
的確,在以往,這種方式似乎無往不利:只要使用一支可靠縝密的策略,我們便可坐收長期穩定的獲利。然而,現在換到高頻交易上,一樣都是下單決策,同樣一套難道不能照搬過去嗎?
很可惜,這種方式在高頻交易上是行不通的。
為什麼?因為市場變動得太快了。
在高頻交易中,由於時間刻度被拉得很小,只要外部的一個小事件發生,對電腦來說可能就會偵測到另一段截然不同的趨勢,這段趨勢延續一段時間之後,再發生一個事件,可能又會立即改變這個趨勢。換句話說,高頻交易可供預測的趨勢是非常短的,短到什麼程度則視事件的延續時間而定,一般短到數分鐘內都有可能。市場一旦改變趨勢,策略就會立即失靈,進而導致巨大損失,後果是非常嚴重的。
在這種情況下,當然不能一直使用同一個策略進行下單決策。我們必須要因應時局,不斷更新策略,以跟上「趨勢」變化的速度。然而,在超短時間中,人腦已經跟不上這麼快的趨勢變化。因此,我們需要依賴電腦來幫我們「想」策略,也就是運用「資料挖礦」技術啦!
規劃與交易
「規劃」與「交易」剛好對應了高頻交易中的兩個階段:根據市場趨勢建置策略,以及驗證策略是否能夠獲利。在使用人工智慧演算法,即時依據當下的市場趨勢,規劃出適當的策略之後,再將該策略放到交易室中,驗證這個策略是否符合當下的趨勢,即「是否能夠獲利」。每一個產生出來的策略,由於時效不長,因此一旦策略「過期」,就需要再度進行規劃。此時,規劃出來的策略究竟符不符合市場趨勢就非常重要,必須透過交易室進行驗證,確保它是一個可行的策略。透過規劃和交易的共同合作,可以保證策略能夠緊緊跟隨市場趨勢,並且能夠因應小事件的亂流,靈活應變。
採礦貓
採礦貓過去在許多金控公司當過顧問,看到很多台灣散戶投資者被國外的投資公司坑殺,因而希望能提供散戶強大的投資工具與武器以提升獲利率、避免走上被坑殺的道路。
0 意見:
張貼留言