search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

一個人工智慧應用的實驗:前一交易日內漲停數變化與第二日開盤漲跌的關係(上)

本文嘗試了一個人工智慧在交易策略研發中的應用。

理論:市場在短時間內是受情緒驅動的。在同一個交易日日內,宏觀經濟、法令政策、公司基本面都不會有變化(或者說可以忽略不計)。投資者做出日內買賣決策的依據大部分來自於對日內價量行情變化的反應。換句話說,日內行情的發展可能有固定模式可循?

提取交易日內不同時段的漲停家數作為特徵,使用機器學習演算法,在歷史數據上訓練,來預測第二日開盤的漲跌。舉例:取交易日內的十個時間節點(例如每半小時一次,含開盤、收盤)的漲停家數特徵值分別為 X = [3,4,5,6,4,5,6,8,10,15],對應的Y是第二天開盤的漲跌0或1。用1000個交易日的歷史數據進行擬合X和Y的關係。

為什麼取10個採樣時點(每半小時)呢?假設人類是對行情變化的反應時間是半小時。在現實中,10:00、10:30、14:00、14:30可能是變盤的時間。如果再細緻一點,我們可以每15分鐘採樣一次,一直到3秒採樣一次。簡便起見本文我們先設定為半點鐘一次。

因為不清楚X和Y兩者之間存在什麼樣的關係,是線性的還是高階,或者其他的關係模式。我們分別使用線性回歸模型及多層神經網路模型進行擬合(線性回歸模型作為一個基本的模型,而多層神經網路能夠較好得反映出數據之間的非線性關係),並通過簡單的模擬交易來測試模型的表現。

一、數據處理:

對從2010年1月到2016年12月的每一個交易日,全市場範圍,10個時間點進行漲停統計,一共為1200多個交易日,統計出1200 * 10個時間點漲停的數量。這10個時間點分別為9:32分、9:56分、10:31分、11:01分、11:29分、13:29分、14:01、14:31、14:51、14:59。下圖為處理之後的部分數據表格,其中「明開-今收」代表明日大盤開盤點數減去今日大盤收盤點數,「明開-今收/今收「表示第二天開盤的漲跌幅度。」

圖1 時間點及當時漲停的數目的數據片段

二、探尋關係:

數據處理好之後,我們開始探尋日內10個時間漲停數目和第二天大盤開盤漲跌的關係。分別用線性回歸及神經網路來進行處理。其中的1000個交易日進行模型訓練,餘下的數據進行模型驗證。

1、利用線性回歸來探尋兩者關係

假設數據之間的關係是線性的,那麼平常的線性回歸方法就可以很好地闡述輸入和輸出數據的關係,模型為y = a0+a1*x1+a2*x2….an*xn

表1-1 通過線性回歸得出的每個時間點的對應參數

進行線性回歸有一個關鍵的數據為R-squared,此參數如果為1,說明數據的擬合程度好,為線性關係;參數數值越小,說明擬合的效果越不理想。在我們的線性回歸中,此參數為0.02,說明擬合的效果不理想。再通過其他的視角看看預測的效果。

表1-2 通過線性回歸進行預測,截取隨機的數據片段

從表1-2可以看出,不但預測的數值不夠準確,連漲跌的預測方向也是時對時錯,可見預測的結果不理想。

表1-3基本數據的統計表

從表1-3可以看出,實際數據和預測的數據無論從最大值、最小值、還是均值,都存在比較大的差異。

最後,我們統計了漲跌方向預測的成功率為46.6%,比扔硬幣的概率還低。從上面一系列簡單的對比可以看出,用線性回歸的方法來闡釋兩者的關係是不合適的。

圖4 多層神經網路的示意圖

我們訓練的是2層Hidden Layers的MLP,neuron數量分別為6,3,最大循環次數為500000,足以使cost function降到平緩的最低區域。得出訓練模型后,進行預測並驗證。hidden layer的數目以及每層中neuron的數量是可以不斷調試的,直到發現更好的配比。

表2-1 通過神經網路進行預測的結果,截取隨機數據片段

表2-2基本數據的統計表

我們統計了漲跌方向預測的成功率為57.04%,成功率相比之前提高了一些。同時,從表2-1和表2-2可以看出,MLP模型不但提高了預測漲跌方向的正確性,而且提高了預測漲跌幅度的正確性。

三、簡單的模擬交易

我們擬定一個簡單的交易模式,如果MLP模型預測第二天開盤是漲,則當天尾盤買入滬深300ETF指數基金,第二天早盤開盤不管高開低開都立馬賣掉;如果預測第二天開盤是跌,則不採取任何行動。模擬交易結果的總結,總交易次數為135次,賺取的指數點數一共為681點。

結果是令人失望的:

圖3-2 模擬交易結果的時間走勢圖

黃線表示大盤的走勢,藍線表示策略的盈虧,可見雖然策略是盈利的,但是跑輸大盤很多。

四、小結:

我們利用線性回歸和多層神經網路模型探索了前一交易日漲停家數與第二日早盤開盤的關係,結論是線性回歸不適合對此數據進行擬合;MLP模型相比線性回歸,效果相對更好,但是預測的效果也不理想。

五、問題和改進空間

- 漲停數統計方式有問題:應該統計自然漲停數,去掉開盤漲停數;

- 應該加入跌停數的特徵,10個時點取20個特徵值;

- 由於市場掛牌數量是變化的,漲跌停數量應該統一去除這個因素;

- 提高採樣頻率,比如每10分鐘採樣一次,全天25個時點;

- 對輸出值Y細化,而不是簡單的輸出漲和跌。可以同樣把Y的值分成十個區間作為輸出來訓練。

- 對應Y值落在不同的區間,使用不同的倉位進行交易;

- 使用精確的分類器比如SVM等;



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦