MLbotで爆損するなかれ
こんにちは、日本爆損防止委員会です。
当会は、ここ数年でにわかに盛り上がりを見せる株・暗号資産・FX等の金融取引により、取り返しのつかない爆損をしてしまう人を無くすことを目的とし、発信活動をしています。
以前の記事で、auカブコム証券のkabuステーションAPIを使った自動売買の実装方法を解説しました。
この記事では、具体的なトレードロジックについて言及していませんでした。勝てるロジックに言及するのは投資アドバイスと取られるリスクがありますし…いやまぁそもそも筆者には勝てるロジックがワカリマセン
一方で、負けるロジックについては比較的よくわかります。日本爆損防止委員会の使命は爆損して人生を棒に振る人を減らすことですので、今回は自動売買 (bot / algo trading) におけるありがちな爆損について書きたいと思います。
今回取り上げるのは、MLbotです。
MLbotとは
MLbotのMLはMachine Learning、つまり機械学習です。MLbotとは、機械学習を使って売買判断に関わるシグナルを作成し、自動で売買を行うものを指します。
昨今はAI分野の進化が凄まじく、あらゆる分野に影響を与えています。当然のように、金融取引においてもAI・機械学習を活用しようという取り組みが行われています。
人間の脳が一定時間で処理できる情報の量と質には限界がある。しかし、AI・機械学習に大量のデータを学習させパターンを抽出させることで、将来の値動きが予測でき、簡単に儲けられるのではないか…!?
金融時系列データの難しさ
AI・機械学習で将来の値動きを予測しようとする場合、過去の金融市場に関わるデータを使って訓練を行うことになりますが、この金融時系列データというのが極めて曲者です。
Kaggleコンペの数々が示すように、AI・機械学習は、多くの構造化データ(テーブル形式のデータ)に対して優れたソリューションになり得ますし、画像や自然言語といった非構造化データに対しても人間を凌駕するレベルになってきています。
一方、数多くあるKaggleコンペの中でも突出して「運ゲー」になってしまっているのが、金融時系列コンペです。なぜ金融時系列では機械学習がうまくいかないのか…?
AIの時代ですから大規模言語モデル (Gemini 1.5 flashを使用) に聞いてみましょう。
以下の8つの理由が返ってきました。
このうちのいくつかには、解決策がないわけではありません(非定常な予測変数を使わない、定期的に再学習する、など)。ただし、どんなに気をつけても「(1)ノイズの多さ」にあるように予測不可能な要素は必ずあるので、ドローダウンは必ず付き纏います。
そんなときに、過学習を見過ごしていたり、バックテストにバグがあったりして強気でいると、市場に容赦なく爆損に追い込まれます。
厄介なのは、「(3)多変量性と高次元性」にあるように、往々にして実装者がMLbotのモデルが何をしているのか解釈できていない場合が多いために、「(7)概念ドリフト」のように市場のトレンドが変化しているのについていけてないのか、あるいは別のファクターの影響なのか、そもそも何が原因で爆損しているのかわからないことです。
これは、心理的に非常に不安な状態になります。
一般的な裁量トレードの場合、爆損しても原因が明らかなケースが多いです。例えばDOGEをショートして爆損したとき、「うあああイーロンマスクぅうううぅ」
一方、MLbotはどういうbotなのかにもよりますが、よく分からない銘柄をよく分からない理由でショートしていて、よく分からないけどその銘柄は爆上げしていてなんか爆損している…ということがままあります。
以下の記事でtomoさんが書かれている通り、MLbotはリバーサルと小型株効果が現れやすいことがわかっており、この辺りを意識的に対策していないと特に爆損しやすいです。
金融でAI・機械学習を使って儲けることはできないのか
少なくとも、「APIでデータをポォン!機械学習にインヌ!成行注文でゴー!」という軽いノリでは市場の養分になるだけです。
APIで取れるデータということはその時点でデータにエッジはないわけですし
機械学習もlightgbmなどをそのまま使うだけであればそこにもエッジはなく
成行注文も何も工夫していなければ執行にもエッジがない
時間軸はわかりませんが必ずや爆損へ収束していくでしょう。
さて、世の中には多くの爆損の民がいる一方、彼らから消えたお金をまんまと回収している一握りの勝ち組がいます。そのうちのさらに一握りはXで関連する投稿しています。それを見ていきましょう。
日本株
Pegionさんとbotter_01さんは、日本株のシステムトレードをしていそうです。お二人ともJQuants APIを使用していることを明言していますね。面白いのは機械学習を使って(いそう)ではあるものの、それ自体を売買シグナルとするのではなく、あくまで分析の足掛かりとして使って(いそう)であるところです。
このアプローチは「(3)多変量性と高次元性」、「(5)過学習」を避けることができますね。「(1)ノイズの多さ」「(2)非定常性」といった金融時系列データ自体の難しさはあるのでかなりの分析力は問われますが、そこがクリアできればお二人のように利益を出すことができるようです。
Numerai
kotaさんはNumeraiをやっているようです。Numeraiはクオンツヘッジファンドですが、売買シグナルをクラウドソーシングで集めているところが特徴です。理念としては、世界中の優秀なデータサイエンティストから機械学習モデルの予測値を集めるものなのですが、kotaさんの成績は異常に良いですね。良すぎるので多分MLbotじゃないと思います。
MLbotは、数多の爆損を挟みつつ勝率5割~6割くらいでなんとか全体でプラス…みたいな損益になるのが「上手くいっている」botのイメージです。これ以上だとarbitrageか、別のゲームをしていないと厳しいかなと。
(後日訂正)MLbotだそうです。強い!!!
https://x.com/dal6393/status/1861583618784796779
暗号資産
morioさんは暗号資産でMLbotをやっている気がします(違かったらすみません)。ご本人は時折、爆損の民に寄り添った投稿をされていますが、
公開されている通算損益を見ると明らかなように爆益です。勝率や損益のボラも含め、MLbot実運用の成功例として、MLbotをやりたい人には特に参考になるでしょう。
先物
JGB366さんは投資運用会社の代表をされている方です。ガチプロですね。ご自身の会社の投資ストラクチャーを公開されているのですが、ご本人もポスト内で言及されているように感動的に機械学習の使い方が上手いです。
金融時系列データにおける機械学習は、最初に述べた1 - 8の理由の通り、また、多くの金融kaggleコンペが運ゲーだったように、難しい…というかク⚫️ゲーです。ギャンブルにしかならない場合がほとんどなわけです。
だからといって、金融市場から利益を得るのに機械学習が使えないわけではなくて、ディーラーのパフォーマンス予測という、ロバストな問題に取り組まれているのですね。これは値動きを予測するというク⚫️ゲーとは一線を画す秀逸な問題設計だと思われます。実際に、インデックスを超過するリターンが得られているようで、金融 x 機械学習の非常に優れた成功例だと思います。
終わりに
日本株も暗号資産も、APIで手軽にデータが取れる時代になりました。
AI・機械学習のライブラリも充実しており、データを分析しモデルを作ることがかつてなく容易になっています。
じゃあMLbotだっ!……と飛びつきたくなりますが、現実はそんなに簡単ではないですね。Kaggleでも金融コンペは相変わらず出てきていますし、「APIでデータ取得 x 機械学習」が流行りやすい時代ではありますが、本当に勝っている人は独自のエッジをお持ちですね。