---
# System prepended metadata

title: Using machine learning for cryptocurrency trading
tags: [NKUST, Paper, cryptocurrency, machine learning]

---

# Using machine learning for cryptocurrency trading

<i class="fa fa-book fa-fw"></i> **Jifeng Sun; Yi Zhou; Jianwu Lin**

**Date of Conference: 6-9 May 2019**

**Publisher: IEEE**

[:link: Link](https://ieeexplore.ieee.org/abstract/document/8780358)

摘要
---
- 透過**Random Forest** 預測幾種加密貨幣的價格，通過[Alpha101](https://arxiv.org/ftp/arxiv/papers/1601/1601.00991.pdf)（**量化交易公式**） 部分因子表示 Binance 和 Bitfinex 上加密貨幣市場的歷史特徵。
- 結果表明此策略與Alpha101 的部分因素在加密貨幣交易中是有效的。

    
簡介
---
- 加密貨幣：
    - 2009年BTC為第一個去中心化貨幣。
    - 自2017以來加密貨幣市場蓬勃發展。（年初1,000鎂; 年底13,000鎂）
    - 2017已有30種市值超過10億鎂之加密貨幣。
- 研究透過傳統交易策略預測分析高波動之加密貨幣市場可行性。
- 使用機器學習對BTC與ETH進行預測。


交易策略
---
- 基本策略：
    - 投資者透過基本面及技術面進行評估， 選擇高成長潛力之加密貨幣。
    - 與傳統側重於：
        - 利潤
        - 收入
        - 增長率
        - 市場份額
        - 企業戰略 不同
    - **技術社區活躍度**為加密貨幣市場一重要因素。
- 多因素策略：
    - 找出與資產收益率最相關之因素（因素與產量之間的相關性），構建投資組合。
        - 市場數據
        - 社交媒體數據
- 趨勢追蹤（動量交易策略）：
    - 買入過去幾個月回報率高之金融產品; 賣出同期回報率低之金融產品。
    - 亦廣泛應用於：
        - 股票
        - 期貨
        - 外匯 市場
- 套利：
    - 利用價格與收益率暫時不一致獲取收益之策略。
        - 跨幣種套利
        - 跨平台套利
        - 期貨合約套利

相關工作
---
- 因子分析：
    - 因子透過組合後，可獲得更高的風險調整收益：
        - 動量因子
        - 價值因子
        - 套利因子 
- 使用機器學習和深度學習預測價格趨勢：
    - 準確性的重要：
        - Random Forest 優於廣義線性模型。
    - 社交媒體數據於預測加密貨幣發揮重要作用。
![](https://i.imgur.com/6uvUdFv.png =500x)

     
數據及方法
---
- 數據收集：
    - 來源：
        - [x] [Bincentive](https://github.com/Bincentive/TradingData) （free）
        - [ ] [tushare](https://tushare.pro)（free）
        - [ ] [bitcoincharts](http://api.bitcoincharts.com)（free）
        - [ ] [kaiko](https://www.kaiko.com/pages/historical-data)（free）
    - 數據：
        - Binance 及Bitfinex兩間交易所（2017/8-2018/12）：
            - ETC-USDT
            - IOTA-USDT
            - LTC-USDT
            - NEO-USDT
            - TRX-USDT
            - XLM-USDT
            - XRP-USDT
            - ETH-USDT
            - ADA-USDT
            - BCH-USDT
            - BNB-USDT
            - BTC-USDT
- 資料預處理：
    - 計算準確率：
        - 市場高點應高於開盤價; 市場低點應低於收盤價; 市場高點應高於市場低點。
        ![](https://i.imgur.com/YIJFfks.png =200x)
        - κ 為數據的正確率
        - α 與β 為中間變量
        - l 為數據集長度 
        - x 為開-高-低-收數據
        ![](https://i.imgur.com/b2bYF9p.png =500x)
        - 124筆資料中刪除其中3筆錯誤資料。
    - 遺漏值處理：
        - 選擇忽略短缺失範圍數據並使用多項式插值處理長缺失範圍數據，如：
            - 拉格朗日插值
            - 牛頓插值
    - 異常值處理：
        - 去除高度異常的異常值（超過三個標準差）。 丟棄產生nan與INF之因素，以0代替。
    - 資料標準化：
        - 最小-最大歸一化：
        ![](https://i.imgur.com/fs1eTEd.png =200x)
        - 零均值歸一化：
        ![](https://i.imgur.com/P8ljeC4.png =150x)
            - μ 為平均值。
            - σ 為標準差。
        - 小數標度歸一化：
        ![](https://i.imgur.com/Ha327Ub.png =100x)
    - 以9:1比例將數據分為訓練集與測試集。
- 特徵選擇：
    - 選擇Alpha101 中的16個因子。
    - 根據單因子序列選擇目標投資組合，一次重複幾個循環的方法，計算資產組合的收益。
    - 由於Random Forest的結構（每棵樹使用隨機之因子），可以獲得所有因素的重要性權重。
- 分類方法選擇：
    - 因Random Forest 於BTC數據上表現較好，故選擇此算法。
- 模型性能：
    ![](https://i.imgur.com/uQ51n81.png =400x)
     - 數據預處理引入的標籤時，不同時間間隔的數據集平均準確率。
     -  這表示該模型在預測更遠的未來方面更為準確。 並且隨著時間間隔的增加，準確率增加並趨於穩定。
    ![](https://i.imgur.com/P8k81l4.png =400x)
    -  alpha24 與alpha32 在實驗中表現出重要程度的可預測性。 市場數據，例如高點、收盤價、開盤價也在模型中發揮重要作用。 
    -  表示alpha101 這樣的因素對於預測加密貨幣的未來價格變化很有用。

回測結果分析
---
- 選取BTC與ETH歷史數據，5分鐘進行一次回測，根據預測結果下達不同類型的交易訂單。
![](https://i.imgur.com/J49l61G.png =500x)
![](https://i.imgur.com/NWLcLw8.png =500x)
    - 圖一為總資本曲線。
    - 圖二為當日收盤價，綠點為進場價，紅點為出場價。
    - 圖三為每筆交易之資金。
    - 圖四為最大回撤（跌幅）。
    - 圖五為頭寸（收入與支出）。
- 該策略可以捕捉到BTC、ETH的走勢變化，但是當BTC價格出現較大價格反轉時，就會出現較大的回撤。
- 故還需設置合理止損、更多價格波動分類以完善此策略及控制風險。
    

結論
---
- 部分因素在預測價格走勢中起重要作用，並在模型中可在更長的時間間隔內做出更準確的預測。
- BTC與ETH的回測結果也支持這個結論。
- 未來嘗試更多參數調整以提高準確率。
- 未來嘗試以深度學習算法進行預測，同時加入：
    - 加密貨幣社區活躍度
    - 社交媒體討論
    - 加密貨幣本身狀態 等因素。

###### tags: `NKUST` `Paper` `cryptocurrency` `machine learning`

 


