機器學習於量化交易的挑戰與解法 - 韓承佑

歡迎來到 MOPCON 2019 共筆

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

共筆入口:https://hackmd.io/@mopcon/2019
手機版請點選上方 按鈕展開議程列表。

會場 wifi-SSID: mopcon-2019
會場 wifi-PASSWD: mopcon-2019

[TOC]

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

投資:長期經營
錢換來的價值= 「時間」

時間帶來的好處:

  • 為社會帶來更多的影響

一個人能不能好死取決於有沒有把資產的 70% 花在投資上。

  • 有投資: 年老後資產繼續增長
  • 沒投資: 年老後沒錢

Finlab

https://www.finlab.tw/mopcon.html
講者投影片: https://www.finlab.tw/slide_mopcon.pdf

Machine Learning

  • AI 的 papers 數量不斷提升,平均每天需讀10篇以上才可完全跟上最新技術

Supervised Machine Learning 兩步驟

  • Training (訓練)
    • features
    • labels 預測種類
  • Testing (確認)
    • 從 features 預測出 labels

不給答案(label),能做預測嗎?

Financial Data(features)

  • Fundamental data
    Focusing in creating a portrait of a company

  • Trading Data

如何查看公司價值:

  1. 財報:公司價值、獲利
  2. 價量(股價)

機器學習可透過股價來判斷後續發展獲利

Creating Technical indicators

原始資料是"股價" Price historical data
利用原始資料計算出各種指標作為特徵,如:

  • RSI(是可看出 股價相對強弱 的指標,Relative Strength Index)
  • KD值

指標有什麼用?做預測股票上漲或下跌

使用講者提供的程式碼:

Labeling

探討時間和漲跌的關係

Challenging of Labeling the data

fixed time horizon
標記方式:一段時間內(w):

  • 如果上升,標記為 +1
  • 如果沒變動,標記為 0
  • 如果下降,標記為 -1

問題: 必須持有一段時間(w),才能賣出股票(風險承擔性較大)

Label Generation Methods

  • tripel barriers
    • 1, 0 ,-1(漲, 不漲, 跌)
  • Continuous trading signals (Dash 2016)
    • 連續的區間(利用內差公式來得到區間內的位置)
    • 愈接近1: 上漲
    • 愈接近0: 下跌
  • Trading Point decision
    • 看整個時間序列去做判斷
    • 找出 local minimun 和 maximun 點
    • 利用這些點,對原始股價訊號進行切割,以直線來趨近原始訊號

概念上透過機器學習達到,低價買入、高價賣出的近似訊號。

Demo

問題:講者提供的label對於股票預測有何影響?

講者:買賣股票的方式有很多種,可以產生很多種策略

  • 例如「趨勢」跟「逆勢」,趨勢型的策略勝率低,但是單筆獲利較多,而逆勢型則是勝率高,但單筆虧損較嚴重,而不論是「趨勢」或「逆勢」交易,都是有機會可以獲利的
  • 還有不同的交易頻率(每分鐘、每小時、每天、每月),也都可以產生出不同的訊號,頻率高採樣多,所以交易獲利比較穩定,但是手續費昂貴。交易頻率低則剛好相反,各有優劣
    所以根據不同的 label ,就可以用同樣的模型 創造出各種不同的策略喔!
    假如您有很多種不同的labeling方式,都可以產生獲利模型,分散風險,會是不錯的選擇!

Neural Network (神經網路)

  • 用數學來模擬神經,突觸、軸突等構造

Deep Neural Network (深度神經網路)

  • 神經網路有很多層
    • 透過多層的權重(Weight)將輸入訊號(input)映射到答案(label)
    • 利用 Cost Function 來計算誤差,用以調整Weight
    • Cost愈大,代表誤差愈大
    • 調整 Weight,讓Cost盡可能降低(類似走在山坡上,盡量要往低處走)

Long Short Term Memory Neural Network ( LSTM )

  • 有記憶的效應 (利用Forget Gate, Input Gate, Output Gate 等結構)
  • LSTM 可以解決梯度爆炸(Gradient Expoding)、梯度消失(Gradient Vanishing)的問題
  • 有真正的記憶體
  • 用額外的神經網路來達到記憶的效果

Convolutional Neural Network(CNN)

  • 經常用於電腦視覺 (Image)
  • 讓節點只處理不分區部分的分析不需要每一個像素都處理
  • 優點:
    • 避免過度擬和 (Overfitting)

視覺網路 vs 交易

Time series to Image conversion Approach

Backtest (回測)

  • 需注意的:
    • 生存者偏差,可能是很爛的策略意外剛好對了
    • 可能會正確找到一張過去開獎過的樂透,但其實對未來預測幫助不大
  • 解法:
    • Develop model for entire asset or classes
    • 使用 Bootstrap aggregating
    • 紀錄每次回測
    • Resist the temptation of reusing a failed strategy

序列資料切 Validation 遇到的問題

由於是序列化資料,訓練資料很容易包含測試資料。

day1 day2 day3 day4 day5
training x1 x2

y

training x1

x2

y

testing

x1

x2

y
p.s 如果測試越多,可產生的預測將越準確
tags: MOPCON 2019
Select a repo