見出し画像

SERUM DEX で MMBOT 動かす

こんにちは。仮想通貨でシステムトレード、いわゆるBOTを運用しているさぼりーまんパパ(@akihitot1)と言います。

昨今DeFiブームですね。
先日ツイッターで「Serum Dex のmmbotのnote書くかな」と呟いたところ、想像していた以上の反響がありました。

基本面倒臭がりでやること遅いので、ビビってたのですが、とりあえず解説とかなしでソースだけ公開してみることにしました。

儲かるロジックでは無いです。サンプルソース程度に捉えて下さい。

基本は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しか経験の無い方、ご注意ください。

詳しい版をもしかしたら公開するかもしれませんが、あまり期待しないで下さい笑

ライセンスなど確認はしましたが、問題ある場合はツイッターでご連絡ください。

ヘッダー画像 Pikisuperstar - jp.freepik.com によって作成された city ベクトル

ここから先は

4,271字

¥ 500

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