最近は、ここ2年ほど開発していたビットコインの機械学習での予測が、やっと、うまく行ったこともありその調整の日々に明け暮れています。
機械学習のプログラムを作ってみてよくわかったのが、肝になるのが特徴量ということです。
特徴量を何にするかによって、その結果が大きく変わります。考察した内容について記事にまとめてみたいと思います。
現在のBTC機械学習の予測状況
以下のような感じで予測してます。matplotlibでグラフ化して、予測部分を別の色で表示してます。
誤差はあるものの、流れはだいたい合うようになりました。
機械学習で参考にした書籍
機械学習について参考にした書籍は以下の記事にまとめました。
いくつかの本を読めば誰でも機械学習のプログラムを作ることができると思いますが、書籍選びはかなり重要になります。
書き手は、知って当たり前という感じで書いている方が多いので、なかなか読解が難しいです。
youtubeでもまとめました
詳しくはこちらのこの YouTube の動画にまとめたので、興味のある方はご覧ください。
ビットコインでよく使う特徴量
特徴量については、主に以下のようなものが挙げられます。
- MACD
- 移動平均線20本
- 移動平均線25本
- 移動平均線40本
- 移動平均線75本
- 移動平均線200本
- ボリンジャーバンド
- RCI
- RSI
- ADX
- CCI
- ADXR
他にも沢山のテクニカルがありますが、特に移動平均線は重要かも。20本、40本、75本など、何を追加するかで、結果が大きく変わってきます。
テクニカル色々詰め込んでも、あまり結果に左右されなかったですね。誰もが使える内容だからだと思います。
ビットコイン機械学習でうまくいった特徴量
結構うまくいったのは、以下のような内容を特徴量とすること。どれも計算しないといけないものばかりで、簡単に設定できないものばかり。やっぱり手間かけないといけないっぽいです。
- 直近の高値安値
- 曜日
- 休日か否か(どこの国の?がポイント)
- 各種アノマリー
意外と侮れないのが曜日です。 ビットコインを特に土日、週明け月曜に大きく動くことが多いので、曜日を学習させることはかなりアリだと思います。
モデルスコアを高める
特徴量を、うまく組み合わせて、よりモデルスコアが高いものを選んでいく作業になります。モデルスコアの計算は、ライブラリ使えば楽勝です。
以下はモデルスコア0.98、つまり98%という正解率です。かなり高い数値になりました。
特徴量には、単に沢山入れ込めばよいというわけでなく、不要なものは削除すると、逆にモデルスコアが上がったりします。そうやって、あれこれ調整していきます。
トレード状況
現在は機械学習を使って、botと裁量、どちらでもやってる感じです。
裁量の方は、こんな感じでうまくいってます。一回のトレードで、3〜8万くらいの値幅です。
この投稿をInstagramで見る
これは、僕のYoutubeチャンネルで、日曜日に放送しているのですが、動きが明確な時は入ると、まずまずの勝率で値幅も取れている感じです。
課題はbot
botは、バックテストのシステム作って実験済みなんだけど、実稼働させると、微妙にズレてます。
調整ばかりやってます。
ご質問はコメント欄からお願いします