はじめに
以前こういうポストをしました。ちょっとしたメモ程度ですが、これについて整理します。
https://x.com/pip_pip_pip_p/status/1756614320786743712
ようは目的変数の分布が時期によって変わるとモデルが機能しないというだけ話です。
ただ、ルールベースで既に右上がりだと爆益に目が眩み、相場が変わる懸念を忘れてしまいがちです。
そこで、ここではMLフィルターがうまくいく条件を考えてみようと思います。
あくまで素人が考えることなので、温かい目でみていただけると助かります。
mlbotチュートリアルはこれのことです
https://note.com/btcml/n/nc5c63a9f5aa2
ルールベース戦略
まず例としてmlbotチュートリアルで使われるルールベース戦略の良い点と改善したい点を見ます
詳しくは上のnoteをご参照ください
良い点:サンプルを豊富に取れる
たとえば伝統的なロジックのチャンネルブレイクアウトをMLでメタラベリングすることを考え、訓練データとして「直近N期間高値をブレイクしたときのローソク足」を集めるとします。これだと学習に十分なサンプルが集まりません。一方、mlbotチュートリアルのロジックはローソク足の数だけサンプルが取れます。
良い点:単純で強力
単純なので実装が楽。
単純なロジックなので、執行ロジックだけならフィッティングしている心配が少ない。
ML使わなくてもパラメータを数個調整するだけでバブル相場なら右肩上がりになる。
改善したい点:時期によって強さが異なる
2021年のバブル相場なら右肩上がりで、それ以外だと右肩下がりになります。
binance BTCUSDTでルールベースだけの損益はこんな感じです。2021年は上向きですが、それ以降はよくないです。上昇相場の2024年11月12月でも右肩下がりです。MLフィルターで上向きにしようとしても自分のような素人ではなかなか難しいです。
mlbotチュートリアルでは特徴量の分布が時間で変化しないことをチェックしていますが、似たようなことを目的変数に対して行うといいかもしれません。
ML用ルールベース戦略にあると嬉しい性質
MLでメタラベリングする用のルールベース戦略に嬉しい性質をまとめてみます
以下のような性質があると嬉しいのではないでしょうか。
①サンプルが豊富
②目的変数がどの時期でも分布が同じ
③単純
④強力
①は必須の性質。他はあると嬉しいというかんじ。
嬉しさは②>>>③>④という感じで、③④は全然なくていいでしょう
手前味噌ですが、私が動かしているbotの一つがルールベース+MLフィルターのmlbotで、ルールベースだけだと2021年含めてほとんどの期間右肩下がりです。が、これでもMLフィルターかませばだいたい右肩上がりになります。②の性質のおかげだと考えています。
どうやって探す?
じゃあどうやって①と②の性質を持つルールベース戦略を考えればええねんという話ですが、ファイナンス機械学習で紹介されたトリプルバリア法など参考になるのではと思います。トリプルバリア法は少なくとも①をみたします
上であげたグラフの2022年以降はずっと右肩下がりなのでこの期間だけ学習すればもしやうまくいく!?と思って試しても、あまりに右肩下がりなのでどうしようもないです。Profit Factorが1に近いならよいかも
みんなもやってみてね!