ChatGPTに仮想通貨トレードしてもらって5000兆円欲しい〜〜〜!!!
はじめに
こんにちは。shun👀です。
ChatGPTがリリースされてしばらく経ちましたが、皆様いかがお過ごしでしょうか。
ChatGPTが熱い!みたいなのはもはや言うまでもありませんが、仮想通貨界隈でも何人か使ってらっしゃる方がおられるのを見ています。
先行事例
ある方はニュースサイトを運営していたり、ある方は株式投資に応用できないか考察したりされていましたね👀 この辺の記事はこの記事よりも遥かに読む価値が高いので、読んでない方はこっちから読んだほうが有意義です。
https://twitter.com/cryptoo_bear/status/1644128188187164674?s=20
個人的にはLINEに繋ぎ込んで月額料金取ってる人がいるのを指咥えて見てましたが、いろんな稼ぎ方が合って素晴らしいなと思うばかりです。
折角こんな世界を変えるプロダクトが出てきたのですから、私も1エンジニアとして触らないわけにはいきません。月次報告でも触れている通り、開発のヘルプ等に早速利用していますが、自分の開発力が強化されているのをひしひしと感じております。楽しいですね。
ChatGPTの仮想通貨トレード応用
さて、表題にある通り、この記事ではChatGPTを仮想通貨トレードに応用することを考えます。応用する方法としては次の3つの形があるのかなと思います。
パートナー:bot開発のサポートやアイデアを考える際の壁打ち
インジケーター:ニュース等から投資の判断材料の抽出
トレーダー:ニュース等の投資から直接トレードを行う
以下ではそれぞれの使い方について順番に考察します。
パートナー:bot開発のサポートやアイデアを考える際の壁打ち
bot作成への利用
一般的な利用方法のほとんどはこれだと思います。特に私のようないわゆる「一発屋」型の仮想通貨botterは新しい銘柄が出るたびにbotを作成する必要があり、ChatGPTはその補助として非常に役に立ちます。
ChatGPTの強みとして、バグを与えたときの解決策の提示、及び、複数のプログラム言語を扱える点が非常に優秀で、これによりpythonしか書けないbotterとnodejsしか書けないbotterの共同開発が可能になったり、trading viewのpineスクリプトで書かれたインジケータの転用等が非常に容易になりました。
個人的に使っていて思うのは、何かしようと思ったときの心理的ハードルが下がると言う点が非常にでかいと思っていて、めんどくさいから後回しにしてた開発にとりあえず手をつけてみるとか、そういった面では非常に効果があると思います。
一方で、参入障壁が減るので、さらなるbotterの増加が懸念されるところです。また、完全プログラミング初学者に対しては逆に使うのが難しいかもしれません。たまにエラーfixがうまくいかないことがあり、結局はコードを読む必要があったり、環境構築のそのものが障壁になる可能性があるからです。結局、基礎は大事。
アイデア創発への利用
また、何人かのアルファツイッタラーがアイデア創発にChatGPTを利用できるのではないかと提案しており、アイデア創発用のプロンプトを提案しているのを見かけます。
自分が手元で試したところ、世界を破壊する革新的なbotのアイデアは残念ながら創発されませんでしたが、今後versionが上がってより賢くなっていった場合に、「どうやってトレードしたら儲かると思う?」「そのトレードを実現するプログラムを書いて」みたいなことを入れるだけでトレードロジックを提案してくれる可能性があると思います。(みんなが試せるからエッジがあるかは一旦おいておくとしても、それだけで利益が出たらすごいよね。)
インジケーター:ニュース等から投資の判断材料の抽出
次に思いつくのがインジケーターや情報抽出機としての利用です。前書きで例に挙げたニュースサイト運営時のニュース影響度の推定や膨大な資料の要約はこれにあたります。
現代はニュースというか情報がありふれているので、時間効率を考えて、重要情報だけをかいつまんで読むことが求められます。そんなとき、このインジケータとしての利用はすごく価値があると思います。
最近では論文を読み込ませて要約させて最新論文の要旨を通知するbotを作ってらっしゃる方なども現れており、情報圧縮の重要さを感じるばかりです。
また、これは私の主観ですが、ChatGPTは情報を展開するより圧縮する方が得意な傾向があると思っています。どう言うことかというと、例えば論文を執筆させたり記事を書かせたりする生成機として使ってしまうと、現状のバージョンではどうしても「ない文献」を参考文献として挙げてきたり、若干嘘が混じっていたりする可能性が出てきます。一方でブログ記事の要約など、情報を圧縮する方面については嘘をつく確率が比較的低く、生成に比べては安定して利用できる可能性があります。
これらで抽出した情報をインジケータとして利用し投資を行えば、調査にかかる時間を短くすることができ、より効率的な情報収集が可能になるといえます。また、文章全体に関するネガティブポジティブ判定を行うことでよりインジケーターに近い振る舞いをさせることも可能だと考えられます。
トレーダー:ニュース等の投資から直接トレードを行う
※この利用方法は推奨されていないと思われるため、注意が必要です。BANされたり、投資の結果が大幅に悪くても責任を負うことはできません。また、推奨もしません。
SNS情報のネガポジ判定を使ったトレード
上のインジケーターと重なる部分も多いのですが、インジケーターとして出した結果を使って直接トレードを行うことも考えらえると思います。
そのための例として、今回は逆神と噂されているある架空のYoutuberを使って直接トレードさせた場合どうなるのかを検証したいと思います。
※Youtuberは架空なので実在する団体とは関係ありません。
このYoutuberはタイトルのネガティブポジティブと逆方向にBTCUSDをポジると利益が出ると噂されていました。ほぼ毎日投稿されており、頻度も高いので、もしうまくいけばコツコツ利益を積み上げられそうです。
まず、Youtube APIを使って、タイトルと投稿日時の一覧を取得します。取得時のコードも全てchatGPT作です。
次に、ChatGPT APIを使って、取得してきたタイトルがポジティブな内容なのかネガティブな内容なのかニュートラルな内容なのかをラベリングします。過去のものはタイトルがはっきりしているので別にChatGPTじゃなくても判定できると思うのですが、現在に近づくについれてタイトルが短くなっており、既存のライブラリだとうまく判定できませんでした。
ラベリングの際、ChatGPT APIに入れる際には複数タイトルを常に一緒に入れるようにしました。そうしないとなぜか判定精度がかなり悪くなりました。理由はわかりません。20タイトルずつ一緒に入れて結果をパースするようにした場合は、人から見た時にある程度妥当なラベルが振られていることを確認できました。
最後にネガティブな場合は1日分BTCUSDをロング、ポジティブな場合には1日分ショートするようにし、過去の価格を使ってバックテストを行いました。価格取得にはccxt、バックテストにはbacktesting.pyを利用しました。
結果
結果は以下のようになりました。2023年2月からトレードした場合の年利は305%で、WinRateは58.8%でした。確かに噂通り利益は出ていそうです。聖杯か?
Start 2023-02-15 09:00:00
End 2023-04-11 07:00:00
Duration 54 days 22:00:00
Exposure Time [%] 91.357089
Equity Final [$] 1239667.5
Equity Peak [$] 1252485.5
Return [%] 23.96675
Buy & Hold Return [%] 35.887315
Return (Ann.) [%] 305.648679
Volatility (Ann.) [%] 226.863787
Sharpe Ratio 1.347278
Sortino Ratio 10.873809
Calmar Ratio 17.470839
Max. Drawdown [%] -17.494791
Avg. Drawdown [%] -2.80503
Max. Drawdown Duration 21 days 06:00:00
Avg. Drawdown Duration 2 days 08:00:00
# Trades 34
Win Rate [%] 58.823529
Best Trade [%] 12.231726
Worst Trade [%] -8.546831
Avg. Trade [%] 0.648266
Max. Trade Duration 3 days 23:00:00
Avg. Trade Duration 1 days 12:00:00
Profit Factor 1.844997
Expectancy [%] 0.712778
SQN 1.101704
期間を伸ばして再検証したところ、結果は以下のようになりました。2022年4月からトレードした場合の年利は12.9%です。さすがに大幅に下がりましたね。バックテストを使い始めたのが最近なのでわからない数値も多いのですが、ガチホしていた場合の-32%に比べるとはるかにいい数値になっていそうですが。
Start 2022-04-01 05:00:00
End 2023-04-11 09:00:00
Duration 375 days 04:00:00
Exposure Time [%] 86.551916
Equity Final [$] 1133825.0
Equity Peak [$] 1147196.5
Return [%] 13.3825
Buy & Hold Return [%] -32.641152
Return (Ann.) [%] 12.966654
Volatility (Ann.) [%] 71.129835
Sharpe Ratio 0.182296
Sortino Ratio 0.311357
Calmar Ratio 0.321801
Max. Drawdown [%] -40.293969
Avg. Drawdown [%] -7.592769
Max. Drawdown Duration 306 days 22:00:00
Avg. Drawdown Duration 28 days 18:00:00
# Trades 471
Win Rate [%] 52.441614
Best Trade [%] 12.231726
Worst Trade [%] -10.135765
Avg. Trade [%] 0.025814
Max. Trade Duration 3 days 16:00:00
Avg. Trade Duration 0 days 17:00:00
Profit Factor 1.072929
Expectancy [%] 0.061742
SQN 0.277431
一方で、試しに順張りしてみた場合はのリターンは-43%となっていました。初日に買ってガチホしていた場合よりも悪いスコアですね。
補足
ちなみに架空のYoutuberの名誉のために補足しておくと、仮想通貨以外の投資コンテンツに触れていることがほとんどなので、BTCの価格を直接予想しているわけではありません。(ので、本来は相関がないはず。)
また、ニュースを多く動画で取り上げている都合上、どうしてもネガティブの割合が潜在的に多く、その逆ポジを取っていることから基本的にはBUY Bitcoin的な思想のbotになっていると言えます。
もちろんこのYoutuberは架空なので、実際に運用することはできませんが、同じフローでニュースを元にしてポジションを取ったり、データソースを変えることで広く使える枠組みなのではないかと思っています。
個人的にはTwitterを参照したいのですが、APIの大幅な改悪と過去データの遡りに制限があることから現在は断念しています。
また、今回行ったように、一般的にはニュースから情報を抽出する方法として重要度やネガティブポジティブ判定はよく行われていると思いますが、プロンプトによっては関連銘柄もある程度抽出できると言うことを書いておきます。
つまり、ニュースを拾ってくる→重要度を判定→重要だった場合は銘柄を抽出→銘柄に対してポジションをとると言う一連の流れを自動化できる可能性があります(性能は未検証)。
仮想通貨ではニュースによる急騰急落が起こりやすいので、このようなbotにはもしかしたらエッジがあるのかもしれません。実際には複数ニュースサイトを横断した場合に起きるニュースの重複や、重要度の判別精度が限定されていることから、利益が出るかどうかは怪しいと思いますが。
さらに、今後ChatGPTにはpdfを直接文字起こしできるレベルの画像入力がつくとのことなので、イーロンのdoge煽りを画像からしっかりと認識したり、価格チャートの画像を直接入力して「このチャートの時、上がると思う?」と聞いたりすることで直接トレードさせることが可能になると思います。
そうなったら全部トレードを任せて5000兆円稼げる時代が…。来るといいですね。
おわりに
以上、大まかに3点ほどChatGPTの仮想通貨トレード応用について書いて見ました。
ただこれはあくまで現時点の自分目線での発想で、実はこのプロンプトを入れると天才トレーダーとして使えるんだ!とか、そもそも仮想通貨なんてトレードしなくてもミニマムプロダクトを作ってエグジットした方が早いじゃん!とか色々あると思うので、そう言う情報があれば是非是非教えてください。5000兆円をみんなで生み出しましょう。
ちなみにこの記事は人力です。
それではまた。