cryptofoundry

cryptofoundry へのお問い合わせ

構築または自動化したい内容をお聞かせください。

記事

マーケットメイキングのためのより明確なコマンドインターフェース:ADAMANT WebUI シナリオ A-3

ADAMANT Messenger鋳造所から ↗
マーケットメイキングのためのより明確なコマンドインターフェース:ADAMANT WebUI シナリオ A-3

マーケットメイキング基盤は技術的には強力でも、運用面では不透明になりがちです。ステータス確認用コマンド、パラメータ設定用コマンドが分断され、保護停止の理由がログの奥深くに埋もれてしまうことも珍しくありません。シナリオAの第3次MVPインクリメントとなる、プライベートなセルフホスト型「ADAMANT Market-Making WebUI」は、ブラウザを単なる孤立したコントロールの集合体から、日々トークンの流動性を管理する運用者のためのより明確な操作インターフェースへと進化させます。

新しいボットごとのダッシュボードがメインのランディングビューとなります。ここには、ペアと取引所のコンテキスト、ボットの /status API から取得したマーケットメイキングの状態、機能エディションバッジ、15分間のコンパクトな価格チャート、アクティブ/非アクティブなモジュール、読みやすいパラメータの概要、残高、および目的別にグループ化されたオープンオーダーが集約されています。エディションバッジ(BasicからFullまで)は、その瞬間に有効化されているモジュールではなく、ボットにインストールされている機能に基づいて決定されます。これにより、モジュールが一時的に無効化されている場合でも、運用者が管理対象のボットを誤認することを防ぎます。

マーケットメイキングのためのより明確なコマンドインターフェース:ADAMANT WebUI シナリオ A-3

「開始(Start)」アクションは、意図的に特定の戦略を押し付けない仕様に変更されました。マーケットメイキングを開始しても戦略のオーバーライドは送信されず、ボット自身にすでに設定されている現在のポリシーが維持されます。これにより、ユーザーインターフェース上のクリック操作によって、稼働中の戦略の動作モデルが意図せず変更されることを防ぎます。マーケットレベルでは、運用者はOHLCチャート上の形成中のローソク足、オーダーブックや直近の取引におけるボット注文マーカー、オープンオーダーのオーバーレイ、スプレッドの状況、残高、および注文入力画面を確認できます。注文のキャンセル時には正確な { id, market, side } リクエストが送信され、すでに消滅した注文については、警告を伴う誤った失敗ではなく、成功した結果として処理されます。これにより、実際の運用上の例外と、人間のクリック操作とすでに約定またはキャンセル済みの注文との間で発生する通常の競合(レースコンディション)とを明確に区別できます。

シナリオA-3では、安全経路がWebUIに統合されました。ボットが安全のためにマーケットメイキングを自動停止したり、ラダー(梯子)を一時停止したりすると、ブラウザはダイアログでボットの通知テキストを表示し、パラメータ画面に緊急状態を反映します。安全イベントはイベントボードにバッジ付きで表示され、中断されたラダーは該当するイベント行から再開可能です。イベントボードは、WebUIからのパラメータ変更とボット側のソースからの変更を記録し、マーケットメイキングの状態を表示するほか、アクション実行時の残高スナップショットやデルタを表示することも可能です。これにより、インシデント調査のための首尾一貫した監査証跡が作成されます。

マーケットメイキングのためのより明確なコマンドインターフェース:ADAMANT WebUI シナリオ A-3

パラメータ画面には、運用者のタイムゾーンに基づいた12時間のライブ状況ストリップが追加されました。ここでは、目的別の在庫価値とオープンオーダーの想定元本が要約されており、エクスポージャーと流動性の配置がどのように推移したかをコンパクトに把握できます。健全性の履歴は1時間単位のフレームで表示され、低下した時間は黄色、マーケットメイキングが停止していた時間は灰色で示されます。開始操作後、品質モデルには10分間の猶予期間が設けられており、新しく起動したボットが、まだデータを生成する時間がない段階で即座に評価されることはありません。可視性は不確実性を誠実に表現すべきであり、「稼働中(working)」、「低下(degraded)」、「停止(stopped)」といった表示は、常に緑色を表示し続けるダッシュボードよりも有用です。

マーケットメイキングのためのより明確なコマンドインターフェース:ADAMANT WebUI シナリオ A-3

管理者専用の新しい設定(Config)ビューでは、運用コンテキストが一元管理されます。ランタイム、ペア、および tradeParams_*.js 値のライブツリーが並んで表示され、その後に構造化された config.json の要約と生のJSONビューが続きます。設定のスナップショットはサニタイズされており、ボットが報告しないソケットフィールドは「Not included」と表示され、最小取引値が省略されている取引所は、誤解を招く「0」ではなく「Not provided」として表現されます。

マーケットメイキングのためのより明確なコマンドインターフェース:ADAMANT WebUI シナリオ A-3

複数のボットを運用する場合、タブを切り替えるたびに操作位置がリセットされると摩擦が生じます。シナリオA-3では、より明確なフリートシェルとレジストリが追加されました。各ボットには編集可能なラベルとアカウントが割り当てられ、ボットIDと設定から導出された便利なデフォルト値が設定されます。トランスポート、バージョン、ブランチ、ペア残高はフリートレベルで確認可能です。オフラインまたは不明な行はグレーアウトされ、接続されているが停止中のボットは読み取り可能な状態で維持されます。インターフェースの裏側では、キープアライブペインがボットやセクションの切り替え時にも垂直スクロールとページ内の状態を保持します。非表示のペインは空の状態に折りたたまれるのではなく、凍結されたReduxスナップショットを読み取るため、運用者はマーケットを比較したり設定を検査したりした後に、作業の文脈を失うことなく元の場所に戻ることができます。

WebUIは引き続きプライベートなセルフホスト型デプロイメントです。ボットの /api/v1 インターフェースとの通信には DirectHttpTransport を使用します。ブラウザおよびWebUIバックエンドは取引所に直接接続せず、取引所のAPIキーはWebUIに保存されません。必須の運用者2FAは、メール、ADAMANT、またはイーサリアムウォレットによる認証をサポートしています。スタックには Vite、React 18、Chakra UI、Fastify BFF、および SQLite イベントログを採用しています。この機能はアドオン形式であり、/status をまだ公開していない古いボット向けには、既存の /health ルートへのフォールバックが用意されています。「戦略を上書きせずに開始(Start-without-strategy)」動作には、対応する最新のボットビルドが必要です。

プライベートなセルフホスト型MVPであるシナリオAは、規定された範囲において機能が完結しています。次のデプロイメントモデルであるシナリオBは、アウトバウンドリレー、パブリックサブスクリプションWebUI、ライセンストークンスコープ、プッシュ型マーケットデータなどを含みますが、これらは今回のリリースには含まれません。WebUIは引き続きマーケットデータのためにREST APIをポーリングします。この分離により、信頼モデルを拡張する前に、既存のプライベート運用ワークフローがより明確かつ監査可能になります。トークンのマーケットメイキングボットを運用するチームにとって、その結果は基本的な運用ニーズに対するより穏やかな回答となります。すなわち、ライブ状態、コントロール、履歴、設定、安全コンテキストを接続しつつ、取引所の境界をボット内部に維持する単一の画面です。