--- title: 202209_ML&FinTech_09 tags: 202209_ML&FinTech --- # 量化交易與機器學習濾網建置 ## 1. Motivation ![](https://i.imgur.com/XWIdArB.jpg) 隨著減碳議題逐漸被重視,台灣也預計在2040年禁售燃油機車,與國際攜手往2050零碳排的目標邁進,可知電動車產業成為未來發展的重點,另外**電動車產業彼此之間可以聯想到有高度的相關性(題材),因此我們想透過機器學習的技術對目標公司的股票進行股價預測**,希望進一步成為投資人的參考依據或指標。 本報告的核心價值在於**利用機器學習中不同的演算法**(ex: random forest、xgboost、Naive Bayes、ensemble learning algorithm)來比較及預測未來的股票走勢,再以模型訓練的結果來**修正原始交易策略**,使得Return、Mdd & CalmarRatio獲得明顯改善,以此建構出一套戰勝市場的交易策略。 ## 2. Data **預測標的: 2308 台達電**($y$) 我們想去<font color="blue">預測隔日股價上漲的機率</font>($y_{t+1}$),以下Table為模型$x_t$ |Notation|Description|Type| |--|--|---| | $x_{t,1}$|2360 致茂調整股價 at day $t$|Price & Return| | $x_{t,2}$|3665 貿聯KY調整股價 at day $t$|Price & Return| | $x_{t,3}$|1536 和大調整股價 at day $t$|Price & Return| | $x_{t,4}$|1503士電調整股價 at day $t$|Price & Return| | $x_{t,5}$|4721 美琪瑪調整股價 at day $t$|Price & Return| | $x_{t,6}$|2371 大同調整股價 at day $t$|Price & Return| | $x_{t,7}$|1537 廣隆調整股價 at day $t$|Price & Return| | $x_{t,8}$|1723 中碳調整股價 at day $t$|Price & Return| | $x_{t,9}$|6509 聚和調整股價 at day $t$|Price & Return| | $x_{t,10}$|8183 精星調整股價 at day $t$|Price & Return| | $x_{t,11}$|1533 車王電調整股價 at day $t$|Price & Return| | $x_{t,12}$|TWII 台股大盤加權指數 at day $t$|Price & Return| | $x_{t,13}$|S&P500 標準普爾指數 at day $t$|Price & Return| | $x_{t,14}$|法人買賣超幅度(外資) at day $t$|Volume| | $x_{t,15}$|法人買賣超幅度(投信) at day $t$|Volume| | $x_{t,16}$|法人買賣超幅度(自營) at day $t$|Volume| | $x_{t,17}$|台達電成交量 at day $t$|Volume| | $x_{t,18}$|MA20 at day $t$|Technical| | $x_{t,19}$|MA60 at day $t$|Technical| | $x_{t,20}$|KD(K) at day $t$|Technical| | $x_{t,21}$|KD(D) at day $t$|Technical| | $x_{t,22}$|MACD at day $t$|Technical| | $x_{t,23}$|RSI at day $t$|Technical| ### 資料起訖時間: | **類別** | **股價** | **報酬率** | | -------- | -------- | -------- | | 機器學習訓練+測試期 | 2011/7/18~2020/9/30 | 2011/7/19~2020/9/30 | | 交易策略期間 | 2020/10/5~2022/10/7 | 2020/10/5~2022/10/7| 附註: - MA為移動平均線,代表過去一段時間的平均成交價格,本報告使用20日及60日為例。 - MACD以慢速(n=26)、快速(n=12)兩條平滑移動平均線來測量中長期趨勢,透過計算「收盤時股價或指數變化的指數移動平均值(EMA)」之間的離差程度( DIF )而來。 (1)EMA: 依據不同天,時間較近的資料給予較高的權重,所計算出的移動平均線 (2)離差值DIF是利用短期與長期的EMA相減計算出來的 (3)計算出DIF後,再取DIF的移動平均,就是 MACD 線 - RSI是以某段時間,股價「平均漲幅」與「平均跌幅」所計算出來的數值,測量現在股價是強還是弱,數值介於0~100間,數字越大表示股價愈強,而本報告以14日做計算 RSI=(一段時間內)股票漲幅平均值/ --- ![](https://i.imgur.com/L8xvFDF.jpg) - KD指標是由K值跟D值所組成的兩條線圖,K值與D值都代表股價變化速度,差別在變化速度是快還是慢,但數值皆介於0~100之間。 (1)K值為「快速平均值」,又稱快線,對股價變化的反應較靈敏、快速 (2)D值為「慢速平均值」,又稱慢線,對股價變化的反應較不靈敏 ![](https://i.imgur.com/Jfj5Oel.png) ### :apple:EDA 在資料科學上,首先應執行資料探勘,運用視覺化或基本統計等工具,來對資料有個初步的認識,以利後續對資料進行複雜、嚴謹的分析,亦即所謂的三大步驟,**<font color="#f00">檢查資料、觀察特徵到構想模型</font>**,良好並有效率的資料探勘分析幫助我們釐清問題,並執行有意義的研究。 #### 一、熱力圖 股價: ![](https://i.imgur.com/HhOBvZ5.png) 從股價熱力圖可觀察到幾個現象,**一為台達電股價與各大類股皆有相當程度的關聯性**,探究原因乃為同類型、同樣相關行業的股票通常都會有齊漲齊跌的現象,乃為股票同質性。**二為移動平均與台達電或是各大類股也有一定程度的相關**,其實這也滿直覺的,移動平均是由台達電股價資料計算而成,而台達電股價又與類股走勢相關,因此移動平均也會與類股走勢相關。**三為技術指標與投信、外資的法人買賣超呈現普通程度的相關**,這反而就無法說明什麼特別的現象,而是說可能技術指標的計算方式剛好用到該指標,或是買賣超幅度剛好有可能有某一程度的力量來影響股票走勢,進一步帶動其相關性,不過技術指標間還是有不同程度的相關性,尤以MACD、RSI、KD值最為顯著。**四為台股大盤指數與標準普爾指數皆有顯著相關性**,推測大盤的變動有可能為我們準確預測的精隨之一,而與本報告欲預測的台達電也有頗高的線性相關。 報酬率: ![](https://i.imgur.com/bjVZtWS.png) 從報酬率熱力圖可觀察到幾個現象,**類股的股價資料在轉換為報酬率後,發現仍有輕度的線性相關現象**,唯與股價相比,程度可說是相差甚大,但仍可以說是類股之間具有關聯性。至於其他現象則與股價圖相符,在此不再贅述。 #### 二、結論 **1.從共變異數熱力圖可以發現,在<font color="#f00">相關電動車概念股中,彼此之間皆高度相關</font>,故在線性相關上,相關概念股在某種程度上可以解釋台達電股價,但股價之間相關並不代表在隨機性更高漲跌之間回具有顯著解釋力,故未來主要著重在非線性關係上準確率之良窳** **2.股價之外,<font color="#f00">技術指標(除了MA20、60)、三大法人買賣超並未與台達電有顯著線性相關</font>** #### 三、漲跌次數 1.**因變數資料中涵蓋不同規模資料,從股價、交易量、買賣超金額、技術指標,由於單位不同,最終可能導致模型學習收斂過於緩慢問題或資料變化度不一致問題(<font color="#f00">標準小至9.4,大至83</font>),故進行去單位化,除了減少電腦耗時,在某些情況也能減少模型迭代次數** 2.台達電漲跌次數分配 ![](https://i.imgur.com/y85Py5n.png) **漲跌次數分配<font color="#f00">並無不平衡現象</font>,故模型並不會學習到大量漲或跌的資料樣本,產生過度擬合現象** ## 3. Formulation $S_t$: 股票在時間點$t$的價格 $y_t=I_{\{S_t>S_{t-1}\}}$: 台達電之隔日股價上漲的機率 $x=(x_1,\ldots,x_{23})$, $p=23$. (此處已在Data的部分提及,故不再加以贅述) 本研究透過金融分析與 EDA 來揀選出合適的 $x$ 並預測 $y$,使用機器學習中分類樹、隨機森林、XGBoost、SVM等方法來進行預測,期望能藉由精準的估計漲跌機率,來進行後續交易策略的建置,期許能帶來低風險、高報酬的卓越績效。 ## 4. Analysis **<font color="#f00">特徵值只列出前10大權種</font>** ### 資料型態為return #### 分類樹模型 ##### 參數 | 調整參數 | 範圍 | 最適化參數 | | ----------------- |:------------- | ---------- | | max_depth | 隨機(2~128) | 16 | | min_samples_split | 隨機(2~128) | 59 | | max_leaf_nodes | 隨機(2~128) | 54 | | criterion | gini或entropy | gini | | min_samples_leaf | 隨機(2~128) | 4 | | random_state | 4 | | | n_trials | 1000 | | ##### 混淆矩陣 ![](https://i.imgur.com/MeV884i.png) | | 績效(未標準化) | | ----------------- |:----------------------- | | Accuracy | 0.56512 | | F1 Score | 0.56703 | | Recall | 0.56828 | | Precision | 0.56579 | ##### 特徵職權種 ![](https://i.imgur.com/7U9ZQ8Z.png) | 特徵值 | 百分比 | 低貢獻之特徵值 | 百分比 | | ------ |:------ | --- | --- | | 2308 vloume (thousand) | 11 | 1503 | 0 | | MA20 | 10 | | | | | slowk | 8 | | | | slowd | 6 | | | | SP500 | 6 | | | --- #### 隨機森林 ##### 參數 | 調整參數 | 範圍 | 最適化參數 | | ----------------- |:------------- | ---------- | | max_depth | 隨機(2~128) | 49 | | min_samples_split | 隨機(2~128) | 26 | | max_leaf_nodes | 隨機(2~128) | 117 | | criterion | gini或entropy | entropy | | min_samples_leaf | 隨機(2~128) | 3 | | max_features | auto或sqrt | sqrt | | bootstrap | True或False | False | | random_state | 10 | | | n_trials | 100 | | ##### 混淆矩陣 ![](https://i.imgur.com/0srCAiP.png) | | 績效(未標準化) | | ----------------- |:----------------------- | | Accuracy | 0.53642 | | F1 Score |0.31818 | | Recall | 0.21586 | | Precision |0.60494 | ##### 特徵值權重 ![](https://i.imgur.com/kXlSfBn.png) | 特徵值 | 百分比 | 低貢獻之特徵值 | 百分比 | | ------ |:------ | --- | --- | | 8183 | 6 | | | | slow| 5 | | | | | slowk | 5 | | | | 4721 | 5 | | | | 2308 investment credit (m) | 5 | | | --- #### XGboost ##### 參數 | 調整參數 | 範圍 | 最適化參數 | | ----------------- |:------------- | ---------- | | max_depth | 隨機(2~128) | 10 | | n_estimators | 隨機(10~200) | 99 | | gamma | 隨機(0~0.9) | 0.3412 | | learning_rate | 隨機(0.01~0.19) | 0.1899 | | random_state | 4 | | | n_trials | 300 | | ##### 混淆矩陣 ![](https://i.imgur.com/wUxbtKK.png) | | 績效(未標準化) | | ----------------- |:----------------------- | | Accuracy | 0.56954 | | F1 Score | 0.49871 | | Recall | 0.42731 | | Precision |0.59877 | ##### 特徵值權重 ![](https://i.imgur.com/VFELkGS.png) | 特徵值(排序) | 百分比 | 無貢獻之特徵值 | 百分比 | | ------ |:------ | --- | --- | | 4721 |5 | | | | MA20 | 5 | | | | slowk | 5 | | | | slowd | 5 | | | | SP500 | 5 | | | #### SVM(支持向量機) **由於SVM於使用非線性核函數時為映射到高維度空間中,故無法計算特徵值權重大小** ##### 參數 | 調整參數 | 範圍 | 最適化參數 | | ----------------- |:------------- | ---------- | | kernel | rbf或sigmoid | sigmoid | | C | 隨機(0.1~10) | 0.127 | | gamma | auto或scale | scale | | random_state | 4 | | | n_trials | 200 | | ##### 混淆矩陣 ![](https://i.imgur.com/4cUdJSA.png) | | 績效(未標準化) | | ----------------- |:----------------------- | | Accuracy | 0.49890 | | F1 Score | 0.53388 | | Recall | 0.61905 | | Precision |0.46931 | ### 總結 #### 模型比較 | 績效 | 分類樹 | 隨機森林 | XGboost |SVM | | ------ |:------ | --- | --- | --- | | Accuracy | 0.56512 | 0.53642 | **0.56954** |0.49890| | F1 Score | **0.56703** | 0.31818 | 0.49871 |0.53388| | Recall | 0.56828 |0.21586 | 0.42731 |**0.61905**| | Precision | 0.56579 | **0.60494** | 0.59877 |0.46931| ### 資料型態為price #### 分類樹 ##### 參數 | 調整參數 | 範圍 | 最適化參數 | | ----------------- |:------------- | ---------- | | max_depth | 隨機(2~128) | 107 | | min_samples_split | 隨機(2~128) | 37 | | max_leaf_nodes | 隨機(2~128) | 102 | | criterion | gini或entropy | gini | | min_samples_leaf | 隨機(2~128) | 13 | | random_state | 4 | | | n_trials | 1000 | | ##### 混淆矩陣 ![](https://i.imgur.com/tsH9Vz2.png) | | 績效 | | ----------------- |:----------------------- | | Accuracy | 0.53084| | F1 Score | 0.60038 | | Recall | 0.70485 | | Precision | 0.52288 | ##### 特徵職權種 ![](https://i.imgur.com/cVHZEA1.png) | 特徵值 | 百分比 | 低貢獻之特徵值 | 百分比 | | ------ |:------ | --- | --- | | 2308 dealer (m) | 11 | | | | slowk | 10 | | | | | 2360 | 9 | | | | 2308 investment credit (m) | 9 | | | | 2308 vloume (thousand) | 8 | | | #### 隨機森林 ##### 參數 | 調整參數 | 範圍 | 最適化參數 | | ----------------- |:------------- | ---------- | | max_depth | 隨機(2~128) | 24 | | min_samples_split | 隨機(2~128) | 72 | | max_leaf_nodes | 隨機(2~128) | 68 | | criterion | gini或entropy | gini | | min_samples_leaf | 隨機(2~128) | 2 | | max_features | auto或sqrt | sqrt | | bootstrap | True或False | False | | random_state | 10 | | | n_trials | 100 | | ##### 混淆矩陣 ![](https://i.imgur.com/waBVhmG.png) | | 績效 | | ----------------- |:----------------------- | | Accuracy | 0.52203 | | F1 Score |0.36735 | | Recall | 0.27753 | | Precision | 0.54310 | ##### 特徵值權重 ![](https://i.imgur.com/dpJo8Qr.png) | 特徵值 | 百分比 | 低貢獻之特徵值 | 百分比 | | ------ |:------ | --- | --- | | slowk | 9 | | | | 2308 dealer (m)| 6 | | | | | 2308 investment credit (m) | 6 | | | | 2308 vloume (thousand) | 6 | | | | 4721 | 5 | | | #### XGboost ##### 參數 | 調整參數 | 範圍 | 最適化參數 | | ----------------- |:------------- | ---------- | | max_depth | 隨機(2~128) | 41 | | n_estimators | 隨機(10~200) | 13 | | gamma | 隨機(0~0.9) | 0.4864 | | learning_rate | 隨機(0.01~0.19) | 0.0133 | | random_state | 4 | | | n_trials | 100 | | ##### 混淆矩陣 ![](https://i.imgur.com/blG40hU.png) | | 績效(未標準化) | | ----------------- |:----------------------- | | Accuracy | 0.52863 | | F1 Score | 0.50233 | | Recall | 0.47577 | | Precision |0.53202 | ##### 特徵值權重 ![](https://i.imgur.com/rbpLsN6.png) | 特徵值(排序) | 百分比 | 無貢獻之特徵值 | 百分比 | | ------ |:------ | --- | --- | | 1537 |5 | | | | MACD | 5 | | | | slowk | 5 | | | | 1723 | 5 | | | | 4721 | 5 | | | #### SVM(支持向量機) **由於SVM於使用非線性核函數時為映射到高維度空間中,故無法計算特徵值權重大小** ##### 參數 | 調整參數 | 範圍 | 最適化參數 | | ----------------- |:------------- | ---------- | | kernel | rbf或sigmoid | sigmoid | | C | 隨機(0.1~10) | 0.131 | | gamma | auto或scale | scale | | random_state | 4 | | | n_trials | 100 | | ##### 混淆矩陣 ![](https://i.imgur.com/lawP4IB.png) | | 績效(未標準化) | | ----------------- |:----------------------- | | Accuracy | 0.44273 | | F1 Score | 0.46285 | | Recall | 0.59890 | | Precision |0.37716 | #### 附註 ![](https://i.imgur.com/drjrMLM.png) **準確度(Accuracy) = (TP+TN)/(TP+FP+FN+TN)** **精確度(Precision) = TP/(TP+FP)** **召回率(Recall) = TP/(TP+FN)** ![](https://i.imgur.com/KvOxCrC.png) --- ## 績效比較 | 績效 | 分類樹 | 隨機森林 | XGboost | SVM | | ------ |:------ | --- | --- | --- | | Accuracy |**0.53084** | 0.52203 | 0.52863 | 0.44273 | | | F1 Score | **0.60038** | 0.36735 | 0.50233 | 0.46285 | | | Recall | **0.70485** | 0.27753 |0.47577 | 0.59890 | | | Precision | 0.52288 | **0.54310** | 0.53202 | 0.37716| ## 交易策略 ### :pencil: 主邏輯(原策略) **買進: RSI_12 > 50 + RSI_6 > RSI_12(黃金交叉) + close > MA 放空: RSI_12 < 50 + RSI_6 < RSI_12(死亡交叉) + + close < MA** **賣出: RSI_12 < 50 + close < MA 回補: RSI_12 > 50 + close > MA** **停損停利: 5%** **回測區間:** 2020/10/05~2022/10/07 **資金管理:** 設一開始持有本金$1000元,每一次交易都固定投入$100。 **手續費:** 0.1425% (進出各課一次) **證交稅:** 0.3% (平倉時課一次) RSI_12: 12天計算之RSI RSI_6: 6天計算之RSI MA: 110天日內移動平均線 ### 回測結果 **紅線**:未計算交易成本之損益曲線 **藍線**:有計算交易成本之損益曲線(<font color="#f00">手續費+稅</font>) ![](https://i.imgur.com/dFno445.png) ### Equity & Drawdown 透過dd可以觀察交易策略在回測下的曝險程度 **可發現在盤整區域與空頭區段出現dd擴大的情況(紅色區域)** ![](https://i.imgur.com/xHSX192.png) ### 交易落點分析 觀察交易策略的問題得以進一步優化策略 - 多單的勝率 = 63.16% - 空單的勝率 = 36.36% * **可知做空的點位差強人意,有許多改進的空間** ![](https://i.imgur.com/81XsMZJ.png) ### 績效評估 **可以將重點擺在 CalmarRatio = 年化報酬率 / 最大回落比例** (反映投資人面臨資產價格大幅波動時的心理痛苦程度) | 績效 | 基本策略 | | ------ |:------ | | Profit | $40.8 | | **Return** | 4.08% | |**Mdd** | 2.39% | | **Calmar Ratio** | 1.71 | | Trade Times | 41 | | Win Rate | 46.78% | | Profit Factor | 1.43 | | Win Loss Ratio | 1.5 | **Profit**: 累積獲利 **Return**: 累積報酬 **Mdd**: 權益最大回落程度(%) **Calmar Ratio**: Return / Mdd **Trade Times**: 總交易次數 **WinRate**: 交易獲利次數 / 總交易次數 **Profit Factor**: 總獲利 / 總損失 **WinLossRatio**: 平均獲利 / 平均損失 ### 參數最佳化 → K = 0.05, length(MA) = 110 ![](https://i.imgur.com/YCB8Kgv.png) --- ## 加入濾網策略與回測整體績效 ### **如何修正** 我們希望利用機器學習模型來<font color="#f00">**預測明日股價漲跌的機率**</font>,**藉由模型結果來輔助我們判斷做空進場的時機點,過濾掉因市場的雜訊所釋出的假訊號**,進而找出更加的空單進場點位,不只提高作空的勝率,也提升了整體績效。 **0.7為主觀認定**: 我們認為當模型預測明日下跌機率超過0.7時,可以更加確定空方力道,因此在滿足主策略與此條件時才會進行空單佈局。 買進: RSI_12 > 50 + RSI_6 > RSI_12(黃金交叉) + close > MA 放空: RSI_12 < 50 + RSI_6 < RSI_12(死亡交叉) + close < MA + <font color="#f00">**隔日下跌機率 > 0.7 </font>(機器學習)** (其於假設皆與之前一致,可至原策略回顧) --- ### 模型比較(price) **由於<font color="#f00">XGboost</font>與<font color="#f00">分類樹</font>有較佳預測的平均準確度,因此主要使用這兩種模型進行優化** ### XGboost 無交易成本獲利(red) : $63.46 有交易成本獲利(blue) : $52.63 ![](https://i.imgur.com/E89ayCA.png) ![](https://i.imgur.com/ht1l354.png) 多單勝率 : 66.67% **無放空交易**(皆不滿足明日下跌機率0.7的條件) ![](https://i.imgur.com/cNOZvSv.png) **在此模型中,確實有讓獲利持續創高,但因為XGboost(price)預測明日下跌機率皆沒有大於70%,搭配濾網的策略放棄了所有放空機會,只佈入多單,此結果已經違背濾網設置的初衷,且有交易次數過少的問題。** ### 分類樹 無交易成本獲利(red) : $49.34 有交易成本獲利(blue) : $30.40 ![](https://i.imgur.com/Z6yg6n6.png) ![](https://i.imgur.com/jTB9A68.png) 多單勝率 : 64.71% 空單勝率 : 40% ![](https://i.imgur.com/xwSraUW.png) **在此模型中,獲利沒有持續創高,且可看出若考慮交易成本,獲利甚至出現減少的趨勢,雖然空單勝率提高了,但卻影響到多單的勝率,這是因為策略採取單一部位進場,在加入濾網條件後,還影響到了多單進場的時機。** --- ### 模型比較(return) ### XGboost 無交易成本獲利(red) : $75.09 有交易成本獲利(blue) : $52.53 ![](https://i.imgur.com/4iAZDP6.png) ![](https://i.imgur.com/vTSkrMZ.png) 多單勝率 : 66.67% 空單勝率 : 40% ![](https://i.imgur.com/m0wZOXl.png) **在此模型中,獲利有持續性創高,但是考慮交易成本的損益與無考慮交易成本的損益差距越來越大,可知交易成本吃掉了很多獲利,仍有很多的優化空間。** ### 分類樹 無交易成本獲利(red) : $76.03 有交易成本獲利(blue) : $58.73 ![](https://i.imgur.com/zh5XvI6.png) ![](https://i.imgur.com/mFuOdmk.png) 多單勝率 : 66.67% 空單勝率 : 54.55% ![](https://i.imgur.com/ThNKZmv.png) **在此模型中,不只看出獲利有明顯創高,DD也有控制住,而交易成本也沒有吃掉太多利潤,可知用分類樹(return)模型來進行交易策略優化,有較好的效果。** ### 整體績效之比較 | 績效 | <font color="#f00">基本策略</font> |XGboost(price)|分類樹(price)|XGboost(return)|:trophy:分類樹(return)| | ------ |------|-----|------|------|------| | Profit | $40.8 |$52.63|$30.4|$52.53|$58.73| | Return | 4.08%|5.26%|3.04%|5.25%|5.87%| |**Mdd** | <font color="#f00">**2.39%**</font>|1.46% |2.51%|2.31%|**1.46%**| | **Calmar Ratio** | <font color="#f00">**1.71**</font>|3.61 |1.21|2.27|**4.03**| | Trade Times | 41|18| 32| 38 |29| | **Win Rate** | <font color="#f00">**46.78%**</font>|66.67% |53.12% | 52.63%|**62.07%**| | Profit Factor | 1.43|2.51|1.4 |1.66 |2.03| | Win Loss Ratio | 1.5|1.26| 1.23|1.5 |1.24| **與前述觀察結果一致,分類樹(return)優化結果表現最為亮眼,成功控制住Mdd,勝率從46%提高至62%,Calmar Ratio也提升至4倍以上,<font color="#f00">確實排除了不佳的做空點位</font>(雜訊)。** --- ## 5. Conclusion 透過資料探勘找出有用的變數來進行研究,推敲其可能具有的預測性質,爾後在機器學習多種模型的分析之下,預測出在不同模型之下,目標變數隔日漲跌的機率,再將其加入原本既有的交易策略,發現再加入新的濾網後,確實能帶來更卓越的績效,風險更低,報酬更高,結果證明透過機器學習建構新濾網,確實能為既有的交易策略優化,儼然為投資界點燃一盞明燈。 ### 機器學習 #### 資料形式為price - **<font color="#f00">分類樹</font>在預測股票漲跌中,F1 Score為0.60038,為所有模型中表現最佳,且在<font color="#f00">預測為漲的準確度</font>高達0.70485,為為資料形式price模型中看跌最佳表現** - **<font color="#f00">分類樹</font>平均準確率為0.53084,為資料形式price模型中最佳表現** - **<font color="#f00">隨機森林</font>在<font color="#f00">看跌預測中準確度</font>為0.76,為所有資料形式price模型中看跌最佳表現,但漲預測準確度低,故總準確度僅為0.52203** - **<font color="#f00">XGboost</font>平均準確度為0.52863,僅次於分類樹模型(資料形式price)** #### 資料形式為return - **<font color="#f00">分類樹</font>在預測股票漲跌中,F1 Score為0.56703,為所有資料形式return模型中表現最佳,且看漲與看跌機率差異不大(看跌:0.5545,看漲:0.56828),平均優於其他模型** - **<font color="#f00">SVM</font>在<font color="#f00">看漲預測準確度</font>為0.619為所有資料形式return看漲中有最好表現** - **<font color="#f00">隨機森林</font>在<font color="#f00">看跌預測準中準確度</font>為0.85,為所有資料形式return看跌預測中表現最佳,但漲預測準確度低,故總準確度僅為0.53642** - **<font color="#f00">XGboost</font>平均準確度為0.56954,為所有資料形式return模型中最佳表現** #### 總結 - **<font color="#f00">資料形式為return分類樹</font>在預測股票漲跌中有最佳預測表現** - **<font color="#f00">資料形式為return隨機森林</font>在看跌預測有最佳表現** - **<font color="#f00">資料形式為price分類樹</font>在看漲預測有最佳表現** - **不管資料形式price或return,<font color="#f00">分類樹與XGboost</font>皆有較佳平均準確度** ### :apple:交易策略 - **XGboost(price): 獲利有創高,但放棄所有放空機會,違背濾網設置的初衷。** - **分類樹(price): 獲利沒有創高,因為濾網影響到多單進場的時機,且交易成本吃掉許多獲利。** - **XGboost(return): 獲利有創高,但後期獲利逐漸無法負擔交易成本 (差距擴大)。** - **分類樹(return): 獲利不只持續創高,交易成本也有控制住,不影響多單進場時機,且符合濾網設置的目的,此模型完美消除了其他模型的缺陷,導致績效最為突出。** **總結: 以回測績效來說,分類樹(return)模型能夠最有效率的優化原本的交易策略,達到Calmar Ratio 超過4倍的佳績,獲得最高的風險報酬比。雖然我們並沒有進一步進行樣本外回測(檢驗策略的實際可行度),但此結果已<font color="#f00">反應出機器學習用於優化交易策略的可能性,我們認為這才是此專案最大的貢獻**</font>。