見出し画像

応用編:Hyperliquid MMBotを本番稼働させる【環境構築・運用整備・可視化・強化】

基本編(Hyperliquid マーケットメイキングBotをPythonで作る【基本動作:WebSocket接続・発注・約定処理】)でBotの基本動作が完成した前提で進めます。

基本編のコードは動きますが、本番で稼働させるには以下の問題が残っています。

ローカルPCでは24時間稼働できない。PCの電源を切ればBotも止まります。マーケットメイキングは発注し続けることで収益を積み上げる戦略なので、稼働時間が短いほど機会損失になります。

パラメータの変更のたびに再起動が必要。基本編ではAPIキーや発注数量をコードにハードコードしているため、少し設定を変えるだけでも再起動が必要です。Botの運用は試行錯誤の連続になるため、少し設定値を変更しただけで毎回コード修正、再起動を行うのは煩わしです。iniファイルに設定を切り出してBotを動かしたまま変更できるようにします。またiniファイルに設定を切り出すことで、複数銘柄を同時に稼働させたり、同一銘柄で異なるパラメータを試すA/Bテストもできるようになります。

再起動するとポジションと損益がリセットされる。基本編ではポジション情報はメモリ上にしか存在しないため、プロセスが落ちると消えてしまいます。頻繁に再起動後にポジションが0として扱われると誤った発注判断をしてしまいます。約定のたびにファイルへ保存し、起動時に自動復旧する仕組みを実装します。

Botが正常に動いているか把握できない。ログファイルを毎回確認するのは現実的ではありません。損益・ポジション・価格の推移をリアルタイムでグラフ表示できる環境(InfluxDB + Grafana)を構築することで、稼働状況を一目で把握できるようになります。

発注数量・価格の丸め処理がない。基本編では order_lot = 0.001 のように固定値で発注しているため表面化していませんでしたが、USD金額ベースで数量を計算したり複数銘柄を扱うと、各銘柄のstep単位に合わない数値になりAPIエラーが発生します。銘柄情報を自動取得して正しく丸める処理を実装します。

価格急変時の保護がない。急落・急騰時に発注を止める仕組みがないと、不利なポジションを一気に積み上げてしまうリスクがあります。マーケット約定データをリアルタイムで監視して急変を検知し、発注停止・未決注文のキャンセルを自動で行う保護ロジックを追加します。

前述の問題を解決するために、AWSにサーバーを立ててBotを24時間稼働させ、コードの改修を行います。この記事ではそのサーバーの準備から各種コードの改修まで順を追って説明します。

全体の構成

【あなたのPC(macOS / Linux / Windows)】
  ├─ scp でBotファイルをサーバーにアップロード
  └─ ssh でサーバーに接続・操作
       ※ macOS / Linux はターミナルからそのまま実行できます
       ※ Windows の場合は PowerShell(Windows 10以降)またはWSLを使用します

【AWS EC2(Botサーバー)】
  ├─ hype_mm.py BTC  ─┐
  ├─ hype_mm.py ETH  ─┼─→ Hyperliquid API(発注・約定)
  └─ hype_mm.py SOL  ─┘
       ↓ 60秒ごとにデータを書き込み
【InfluxDB + Grafana(同一サーバーまたは別サーバー)】
  └─ ダッシュボードでBotの損益・ポジション・価格を可視化

最小構成はBotサーバー1台のみです。InfluxDB + GrafanaはBotと同じサーバーに同居させることもできます。

  1. AWSでの環境構築とデプロイ

  2. iniファイルによる設定管理・複数銘柄の並行稼働・自動復旧・ログ管理

  3. InfluxDB + Grafanaによるトレード情報の可視化

  4. 銘柄情報の自動取得とsize/price丸め処理

  5. マーケット約定情報の取得と急変保護ロジック


1. AWSでの環境構築とデプロイ

EC2インスタンスの作成

AWSにログイン後、以下の順で画面を操作します。

EC2 → インスタンス → インスタンスを起動

名前とタグ

「Hyperliquid」など、用途がわかりやすい名前をつけます。複数のEC2インスタンスを立ち上げた場合に管理しやすくなります。

アプリケーションおよびOSイメージ(Amazon マシンイメージ)

デフォルトの Amazon Linux のままで大丈夫です。

インスタンスタイプ

デフォルトの t3.micro で十分です。10銘柄程度の並行稼働であればメモリ不足になることはありません(後述のスワップ設定を行う前提)。

月次の運用費用の目安

t3.micro($0.0116/時)× 24時間 × 30日 + EBSストレージ(8GiB)で、合計 月額約1,500円 が最小構成の目安です。(後述のInfluxDB + GrafanaをBotと同一サーバーに同居させる場合。別サーバーに分ける場合はもう1台分費用は追加になります。)

キーペア

ここから先は

25,114字 / 19画像

¥ 7,000

Amazon Payで支払うと最大2%還元のチャンス! 9/30まで

この記事が気に入ったらチップで応援してみませんか?