RustでBybit上場戦botを作った話
おはこんばんにちは。
わいぶろっくちぇーんです。
今回はRustでBybitの上場戦botを作った話をしたいと思います。
どこの上場戦?
今回挑んだペアについてですが、時期的にnotcoinを選択しました。
自分はこのトークンをそこまで理解していないのですが、binanceやokx, bitget等取引所に同時上場するということを知り、その要素だけで参加しました。
一応telegram系のボタンぽちぽちしてるだけでエアドロがあったトークンらしく、売り圧懸念だけ片隅にありました。
ただ、結局は上場戦なのでポジを持っても10分もない。
そう思い、別にそこまでネガティブに捉えてなかったです。
あと、肝心な開発期間についてですが、書き始めたのが5/9でロジ自体は12日あたりに完成してました。
Rust自体マジの初学者でしたが、HTTPリクエストとsignature生成辺りはAI駆使したり色んなリポジトリ見れば気合いでいけます。
そこまで使いずらい事はないですが、オーダー形式によっては数値調整用の関数を自力実装しないと失敗するので、そこは53でしたね。
とりあえず結果。
単刀直入に言えば、ロジ的には失敗で結果的にはプラスでした。
順を追って説明します。
まず、ロジ的に失敗というのは、成行注文連打を上場時刻の数秒前からリクエストし続けていたのですが、その時点で下記のようなログが出てました。
まあ調べていなかった自分が悪いのですが普通にやらかしました。。
(調べたところ、同様に条件付き注文で逆指値も無理らしい)
そして、5分後に購入処理が行われたのですが、タイミングよく売りが入ってて若干底値で拾えました。
『あとは指定価格まで待つだけや!!!』
と、思っていた矢先、予め指定させたセール価格(今回はpre-market)が上場価格とのギャップが激しいことに気づきました
およそ10倍ほど。。笑
どちらにせよロジは想定から外れていた為、ちょいプラで終わらせました。(サイトにアクセスできなくて、API叩いて売りました)
Rustで書くメリデメ
正直、RustとPython等のスクリプト言語を比較したところで、体感スピード一緒説が自分の中で提唱されてます。
ただ、やってみないとわからないので、単発の発注処理を比較します。
Python
Rust
うん!変わらん!
ってか冷静に考えて単純な処理なら言語の優劣どうこうより、通信速度が求められますよね。(何の比較やねん)
自分はローカル環境下で動かしている為、実際にサーバーサイドで稼働させて複雑な処理(注文発注を非同期処理でループさせたり、並列処理させたり等)を行う場合は、本領発揮しそうです。
ただ、Rust慣れしている方は良いかと思いますが、Bybit公式のRust用ライブラリは存在してないので、入門者はPythonやNodeJsで書いた方が良いかと思います。
一応、rsbitという日本人が作ってるRust用のbybitライブラリがあるっぽい
今後の改修点
とりあえず成行注文連打はできないとのことなので、指値ならいけんじゃねという逆張り発想で組み直します。
そして、セール価格の調整に関しては自分のケアレスミスなので反省しまs。
他にもbinance, bitget, okx辺りの有名なtier1取引所のlaunchpoolのROIを調査してやっていきたいと思ったりしてます。
(兄がドバイ法人を持っている為、binance, okx辺りも開けられそう)
ってことで、そんな感じでした。
よかったらXフォローしてくれるとありがたいです。
近いうちにdiscord鯖立てるかもなので、情報共有がてら、bot経験のある有識者様と繋がれたら嬉しいです。。!