![見出し画像](https://assets.st-note.com/production/uploads/images/53905830/rectangle_large_type_2_b644b595dffa0f68149000dccbae4845.jpg?width=1200)
SERUM DEX で MMBOT 動かす
こんにちは。仮想通貨でシステムトレード、いわゆるBOTを運用しているさぼりーまんパパ(@akihitot1)と言います。
昨今DeFiブームですね。
先日ツイッターで「Serum Dex のmmbotのnote書くかな」と呟いたところ、想像していた以上の反響がありました。
serumのmmbotのnote書くかな
— さぼりーまんパパ@botter (@akihirot1) June 2, 2021
全く儲からなかったけど
基本面倒臭がりでやること遅いので、ビビってたのですが、とりあえず解説とかなしでソースだけ公開してみることにしました。
儲かるロジックでは無いです。サンプルソース程度に捉えて下さい。
基本はserum-tsのUsageのコピペです。
「自分でやって見たけど良くわからん。。。」と言う人が対象です。
逆に言うと無料で手に入る情報以上のものはありません。
動作仕様
・SERUM DEX の STEPUSDC が対象マーケット
・BestAsk,BestBidの0.0001ドル内側に、0.01 STEPで指値注文を行う。
・オーダーのキャンセルを行う。
・Settleを行う。
・「キャンセル、Settle、オーダー、10秒の待機」を繰り返す。
キャンセルタイミング
動作中GUIで見ると、常にBUY,SELL2つずつのオーダーが乗っています(のように見えます)。本当はBUY,SELLの注文が1つずつある状態になれば良かったのですが、発注から自分のオーダー情報として取れてくるまでにタイムラグがあるのかな?調べてません。
エラーハンドリング
トランザクションのエラーが結構出ます。
すでに約定した注文のキャンセルなどはエラーとなりますが、トランザクションが時間かかった場合もエラーとなります。
基本エラーは握りつぶしてます。エラーとなっても次以降のターンで処理出来れば良いという考えです。
一応動作確認として、3時ごろから9時ごろまで動かして見ましたが、問題なかったです。
動作環境
TypeScriptです。ライブラリとしてserum-ts使ってます。
ConoHaのVPSで動かしてます。
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
$ nvm current
v16.0.0
$ npm -v
7.10.0
注意事項など
説明は以上です。
動作環境の構築や動かない時のサポートなど、一切ありません。
さらに言うと、package.jsonなども公開しません。
純粋にソースのみです。
Pythonしか経験の無い方、ご注意ください。
詳しい版をもしかしたら公開するかもしれませんが、あまり期待しないで下さい笑
ライセンスなど確認はしましたが、問題ある場合はツイッターでご連絡ください。
ここから先は
¥ 500
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?