用Machine learning 學習看技術指標

這篇文章是印度指數預測,2015年發表的就能有191個citation,算是很有名的paper之一,全文特點是只使用了技術指標,來預測大盤每天漲跌,提出了一個有效的優化方式。

這篇paper的作者非常的認真,總共訓練四種不同的模型:Artificial Neural Network (ANN), support vector machine (SVM), random forest (RF) 和 Naive-Bayes (NB)。

這邊假如看不懂沒有關係,可以想像「模型」就是「電腦的大腦」,負責學習每種指標怎麼對應到未來的漲跌。之後有空或有時間在來慢慢介紹這些不同的「大腦」背後的數學原理。

此論文主要建構製作兩組traning data:

  • 包含十種技術指標
  • 為這十種技術指標的看漲看跌
    前者為 float (被normalize成-1~1)
    而後者為 boolean (也就是只有輸入True和False)。

究竟這些排列組合會迸出什麼樣的火花呢?

選擇模型

研究發現Random Forest的表現是最好的,而ANN差了一點,
這是滿正常的,畢竟data set還是太小,神經網路很難訓練的非常好。
至於傳統的NB則是最差的。

其實也可以考慮一下LSTM,說不定效果也不錯?
(但因為LSTM還是基於ANN,所以有可能遇到traning set太小的問題)

選擇traning data

如同上面所述,此篇論文總共先用了十種技術指標,以下是這十種常見的指標,為了讓文章不會太冗長,我就不一一解釋了,之後有空再來介紹每種指標的用法。


這篇paper會將這些技術指標的數值,每一項做normalize在-1~1之間,這樣的優化主要是為了ANN。以下是這個model的架構:


另外,全文的特點是使用了提出了 「Trend Deterministic Data Preparation」,看起來非常的厲害,簡單講就是將這些指標的數值究竟是「看漲」還是「看跌」拿來訓練,而不是續練指標本身的數值。

例如均線好了,與其拿均線的值來訓練,不如看「股價跟均線的關係」,假如股價在均線之上,就是「看漲」(True),反之則「看跌」(False)。其他指標都能以此類推!

以下就是新增了一層資料的修改的架構:


最後發現使用了「Trend Deterministic Data Preparation」
效果好很多!

結論

這篇文章中,可以大概知道每一種model對於技術性指標的數據的效果如何。並且了解了用「Trend Deterministic Data Preparation」來進行優化。經過了非常多參數的比對,發現使用RF model做出來的策略效果最好。然而這只限於頻率為「天」的股價,假如頻率不是「天」,則可能會不一樣~。

假如覺得文章不錯,那更不能錯過我們的影音課程喔!
或我們按個 鼓勵一下吧!