見出し画像

強化学習を使った bitFlyer bot で B 級 botter (月次 10 万)達成しました

B 級ぐらいではしゃいで……という気もしますが、個人的には大白星なので浮かれて記事書いちゃいます。

達成したこと

bitFlyer で bot で月次 10 万を達成しました。実は bot の長時間稼働を開始したのは 1/25(月) だったので、一週間で達成したことになります。一応、期間中は日次全勝です。

取り組み開始から今まで

去年の 3 月頃に、コロナ禍でリモートワークが始まり外出も減り少し時間に余裕が出来た際、仮想通貨 bot に興味を持ち取り組み始めました。なかなか成果が出ず、高頻度からスイングに浮気したり、Numerai をやってみたりしつつ、最終的には最初に興味を持った bitFlyer に戻ってきて高頻度 bot で少し成果を出すことが出来ました。

正直、とても辛い 1 年でした。未だにそんなにセンスないかもとか、自分でも思いますが、それでも、ゆっくりでも意味の有る積み重ねが出来ていたかなと思うと、やっぱり嬉しいです。今後もコツコツやっていきたいと思います。

強化学習 bot のアプローチ

今動かしている bot は指値によるドテントレードを頻度高く行うものです。注文は API を使い切るぐらい出しますが、ポジションは長いと数分〜数十分持つことも有るようです(高頻度って言うと違和感持つ方も居るかも?)。

指値を出す価格の決定に強化学習を使っています。10 程度の特徴量を入力とする小さい MLP を使った深層強化学習で、モデルとしては平凡ですが、モデルの出力からどう指値価格を決めるかや、学習時のロス関数の設計といった部分には、試行錯誤の末にたどり着いたオリジナリティの高いノウハウがあるつもりです。この部分のノウハウは、時間軸や手数料体系に依らないので、今後も活動の軸にしていきたいと思っています。

勝てるようになった決め手は?

まず、実際のところ、決め手は強化学習ではなく、強い特徴量を見つけられたことが99%だと思っています。使ってる特徴量のいくつかは、恐らく単体でルールベースの bot を作っても勝てるんじゃないかと思います。……というか、実際にルールベースの bot を少し試験運用した期間もありました。

S/N 比の悪さや市場が絶えず変化することからして、end-to-end な強化学習のアプローチはデータが不十分であり非現実的だと考えています。となると、個人的には、強化学習を使うにせよ使わないにせよ、人手での市場の理解に取り組み何らかの帰納的バイアスとして組み込む必要があるかと。なので「勝てる bot を作りたい」という目的であれば、どちらにせよそこに重点的に時間を使うことをお勧めします。

役に立った情報源を並べるとこんな感じでしょうか:自分での試行錯誤 > 有料 note / 有料 bot / discord > 強 botter 達の Twitter >>>> 論文, 書籍

有料/無料問わず、情報を発信してくれている強 botter 達には感謝の気持ちで一杯です。名前を挙げるとキリがないですが、BANE さんの note & 購入者 discord は本当に勉強になりました。後はやはり、去年の bybit 大会での「有限会社 botterの矜持」チームに入れてもらい強 botter 達の生の discord での議論を拝見出来たのも非常に大きな転機でした。本当に感謝で一杯です。

おわりに

「個人の仮想通貨 botter にとっての機械学習・強化学習」というテーマについて、考えていることは一杯有るのですが、長くなりそうなので、もっと勝てるようになってから語っていきたいと思います。

夢は大きく、次は A 級を目指して活動していきたいと思ってます。よろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?