前面介紹了幾種基於規則的策略
https://vocus.cc/article/685d463dfd89780001f3d7fd
並驗證了它們在比特幣上的表現其實多數都是虧錢的
這一章開始用隨機森林來測試機器學習有沒有幫助
一樣沿用之前的

定義一個隨機森林策略




準備資料
注意機器學習模型如果用單純的價格當作輸入
會發生一種情況就是當價格破歷史新高 模型就失靈了 會一直想要賣
因為機器學習模型本質就是擬合數據根據歷史數據他會發現這已經是高點了
接下來跌的機率比較大,因為他單純是擬合歷史數據而已
所以要考慮丟入機器學習的特徵必須是尺度無關的
什麼尺度無關
就是今天價格怎麼變 範圍都在一個範圍變動的指標
例如RSI總是在0~100就是一個其他還有

這裡我拿一年的數據2023到2024做測試
用yfinance取得資料
用ta套件計算技術指標
整理成這樣一個表格

之後我就可以將資料丟給模型訓練

回測函數也是引用之前的
https://vocus.cc/article/685d463dfd89780001f3d7fd
直接套用即可


誇張的報酬率 不過這就是overfitting啦
因為其實前面在處理資料的時候

train_data跟pred_data本質上是一樣的
然後我再訓練模型的時候

其實他fit的是train_data
但是pred_data跟train_data本質上是一樣的
所以只是在考他在看過答案的考卷上預測股票漲跌
才會出現投資報酬率2163%這種奇怪的結果
新的資料

為了合理評估模型表現
我引入新的資料也就是說原本2023~2024的資料被模型拿去訓練了
這裡2024到2025就是模型沒看過的資料

然後模型就直接載入之前訓練好的模型
不能再訓練了單純用來推論而已

從圖上可以看到策略一開始跟著大盤走勢
到後面大盤大跌的時候策略沒有抱著不放
而是知道何時買何時賣
報酬率還是往上升
這就是機器學習的優勢啦
完整代碼:
https://github.com/skywalker0803r/AlphaCoin/blob/main/%E5%BE%9E%E9%9B%B6%E9%96%8B%E5%A7%8B%E7%8D%A8%E8%87%AA%E7%A0%94%E7%99%BC%E7%82%92%E5%B9%A3%E7%A8%8B%E5%BC%8F%E7%AC%AC%E5%9B%9B%E7%AB%A0.ipynb
















