mcpField
L
lp-agent

lp-agent

github.com/hummingbotその他32411 回インストール21 週間前に更新
リポジトリ

lp-agent について

lp-agentは、Hummingbot APIを通じてMeteora DLMMプールの自動流動性提供戦略を設定・管理するスキルです。インフラ、ウォレット、プール選択、戦略運用、パフォーマンス分析を案内します。

主な機能

  1. 01Hummingbot APIとGatewayの設定案内
  2. 02Solanaウォレットの追加と確認
  3. 03Meteora DLMMプールの探索
  4. 04LP ExecutorまたはRebalancer Controllerの選択
  5. 05LP戦略の実行と監視
  6. 06PnL、手数料、ポジション履歴の確認

活用シーン

  1. 01Meteoraで流動性提供を行う環境の準備
  2. 02プールのAPR、取引量、TVLの比較
  3. 03LP戦略のデプロイや監視
  4. 04戦略の実績と手数料の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hummingbot/skills --skill lp-agent

インストール後、Claude Code で/lp-agentを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
lp_executor_guide.md
lp_rebalancer_guide.md
scripts/
add_wallet.py
check_api.sh
check_gateway.sh
deploy_hummingbot_api.sh
export_lp_executor.py
export_lp_positions.py
get_meteora_pool.py
list_meteora_pools.py
manage_controller.py
manage_executor.py
manage_gateway.py
README.md
setup_gateway.sh
visualize_lp_executor.py
visualize_lp_positions.py

詳細

lp-agent

このスキルは、Hummingbot API を使用して集中流動性(CLMM)DEX 上で自動流動性供給戦略を実行するのに役立ちます。

コマンド(/lp-agent <command> として実行):

コマンド説明
startオンボーディングウィザード — セットアップ状況を確認して開始します
deploy-hummingbot-apiHummingbot API トレーディングインフラストラクチャをデプロイします
setup-gatewayGateway を起動し、ネットワーク RPC エンドポイントを設定します
add-walletSolana ウォレットを追加またはインポートします
explore-poolsMeteora DLMM プールを検索して探索します
select-strategyLP Executor または Rebalancer Controller を選択します
run-strategyLP 戦略を実行、監視、管理します
analyze-performanceLP ポジションのパフォーマンスを可視化します

初めての方へ /lp-agent start を実行してセットアップを確認し、ガイド付きのウォークスルーを受けましょう。

典型的なワークフロー: start → deploy-hummingbot-api → setup-gateway → add-wallet → explore-pools → select-strategy → run-strategy → analyze-performance


コマンド: start

ユーザーを歓迎し、セットアップをガイドします。これは会話形式のオンボーディングウィザードです — インフラストラクチャの状態を確認し、結果を解釈し、各ステップを案内します。

ステップ 1: 歓迎と説明

自己紹介し、lp-agent が何をするかを説明します:

私はあなたの LP エージェントです — Meteora DLMM プール(Solana)上で自動流動性供給戦略を実行するお手伝いをします。できることは:

  • インフラストラクチャのデプロイ — DEX トレーディング用の Hummingbot API + Gateway
  • ウォレットの管理 — Solana ウォレットの追加、残高の確認
  • プールの探索 — Meteora DLMM プールの検索、APR/出来高/TVL の比較
  • 戦略の実行 — 自動リバランス LP コントローラーまたは単一ポジション実行者
  • パフォーマンスの分析 — PnL、手数料、ポジション履歴を含むダッシュボード
ステップ 2: インフラストラクチャの状態を確認

以下のスクリプトを実行し、JSON 出力を解釈します:

bash scripts/check_api.sh --json      # Is Hummingbot API running?
bash scripts/check_gateway.sh --json  # Is Gateway running?
python scripts/add_wallet.py list     # Any wallets connected?

結果の解釈:

スクリプト成功時の出力失敗時の出力
check_api.sh --json{"running": true, "url": "http://localhost:8000", ...}{"running": false, ...} または接続エラー
check_gateway.sh --json{"running": true, ...}{"running": false, ...}
add_wallet.py list[solana] ABC123... のようなウォレットアドレスを表示No wallets found. または空のリスト []
ステップ 3: 進捗を表示

スクリプトの出力に基づいて、完了した項目と残っている項目を示すチェックリストを提示します:

Setup Progress:
  [x] Hummingbot API    — Running at http://localhost:8000
  [x] Gateway           — Running
  [ ] Wallet            — No wallet connected

Next step: Add a Solana wallet so you can start trading.

チェックリストは実際の状態に合わせて調整してください。すべてが未チェックの場合は、最初から始めてください。すべてがチェック済みの場合は、LP ライフサイクルの概要に進んでください。

ステップ 4: 次のアクションをガイド

最初の未チェック項目に基づいて、支援を提案します:

不足しているもの伝える内容
Hummingbot API「まず API をデプロイしましょう — これはトレーディングのバックエンドです。Docker がインストールされている必要があります。インストーラーを実行しましょうか?」→ /lp-agent deploy-hummingbot-api
Gateway「API は動作しています!次に DEX 接続のために Gateway が必要です。起動しましょうか?」→ /lp-agent setup-gateway
ウォレット以下のウォレットの追加を参照してください
すべて準備完了ステップ 5 に進みます

ウォレットの追加:

ウォレットが次のステップである場合、ユーザーに伝えます:

インフラストラクチャの準備ができました。トランザクション手数料(LP ポジションあたり約 0.06 SOL)用の SOL を持つ Solana ウォレットが必要です。

ウォレットを追加するには、次を実行してください:

python scripts/add_wallet.py add

秘密鍵を貼り付けるよう求められます(安全で、シェル履歴には保存されません)。

add_wallet.py の出力の解釈:

出力意味
✓ Wallet added successfully + アドレス成功 — ウォレットが接続されました
Enter private key (base58): の後に ✓ Wallet addedプロンプト後に成功
Error: HTTP 400 または検証エラー無効な秘密鍵の形式
Error: Cannot connect to APIAPI が動作していません — 先に check_api.sh を実行してください

ウォレットが追加されたら、python scripts/add_wallet.py list で確認してください — 新しいアドレスが表示されるはずです。

ステップ 5: LP ライフサイクルの概要

インフラストラクチャの準備が整ったら(または、ユーザーが先にフローを理解したい場合)、LP ライフサイクルについて説明します。

LP 戦略の仕組み:

  1. プールを探す (/lp-agent explore-pools) — Meteora DLMM プールを見つけます。出来高、APR、手数料/TVL 比率を確認して、適切なものを選びます。

  2. 戦略を選択する (/lp-agent select-strategy) — 以下から選択します:

    • Rebalancer Controller(推奨) — 価格がレンジ外に動いたときに自動的にポジションを再配置します。設定したらそのまま放置できます。
    • LP Executor — 単一の固定ポジション。クローズ/再オープンのタイミングは自分で制御します。テストや指値注文スタイルの LP に適しています。
  3. 戦略を実行する (/lp-agent run-strategy) — パラメータ(金額、幅、価格制限)を設定してデプロイします。ステータスを監視し、完了したら停止します。

  4. 分析する (/lp-agent analyze-performance) — PnL ダッシュボード、獲得した手数料、ポジション履歴を表示します。実行中および停止済みの両方の戦略で機能します。

始めるにあたって、いくつかのプールを探してみますか?


コマンド: deploy-hummingbot-api

Hummingbot API トレーディングインフラストラクチャをデプロイします。これは、LP 機能を使用する前の最初のステップです。

インストールされるもの

Hummingbot API — トレーディング、マーケットデータ、および CEX と DEX 全体にわたるボット戦略のデプロイのための REST API を公開するパーソナルトレーディングサーバーです。

使用方法
# Check if already installed
bash scripts/deploy_hummingbot_api.sh status

# Install (interactive, prompts for credentials)
bash scripts/deploy_hummingbot_api.sh install

# Install with defaults (non-interactive: admin/admin)
bash scripts/deploy_hummingbot_api.sh install --defaults

# Upgrade existing installation
bash scripts/deploy_hummingbot_api.sh upgrade

# View container logs
bash scripts/deploy_hummingbot_api.sh logs

# Reset (stop and remove everything)
bash scripts/deploy_hummingbot_api.sh reset
前提条件
  • Docker および Docker Compose
  • Git
出力の解釈
出力意味次のステップ
✓ Hummingbot API deployed successfully成功setup-gateway に進む
✓ Already installed and runningセットアップ済みsetup-gateway に進む
Error: Docker not foundDocker がインストールされていないまず Docker をインストールする
Error: Port 8000 already in useポートで別のサービスが動作中競合するサービスを停止するか、別のポートを使用する
インストール後

API が実行されたら:

  1. Swagger UI は http://localhost:8000/docs にあります
  2. デフォルトの認証情報: admin/admin
  3. setup-gateway に進んで DEX トレーディングを有効にします

コマンド: setup-gateway

Gateway サービスを起動し、ステータスを確認し、RPC ノード URL などの主要なネットワークパラメータを設定します。Gateway は、DEX 上のすべての LP 操作に必要です。

前提条件: Hummingbot API が実行されている必要があります(deploy-hummingbot-api)。スクリプトはこれを自動的にチェックします。

⚠️ カスタム RPC は必須です — オプションではありません。 パブリック Solana RPC はレート制限があり、「Insufficient funds」や「Transaction simulation failed」のように見えるトランザクション失敗を引き起こします。ボットをデプロイする前に、必ずカスタム RPC を設定してください。https://helius.dev で無料のキーを取得できます。

使用方法
# Check Gateway status
bash scripts/setup_gateway.sh --status

# Start Gateway with defaults
bash scripts/setup_gateway.sh

# Start Gateway with custom image (e.g., development build)
bash scripts/setup_gateway.sh --image hummingbot/gateway:development

# Start with custom Solana RPC (recommended to avoid rate limits)
bash scripts/setup_gateway.sh --rpc-url https://your-rpc-endpoint.com

# Configure RPC for a different network
bash scripts/setup_gateway.sh --network ethereum-mainnet --rpc-url https://your-eth-rpc.com

# Start with custom passphrase and port
bash scripts/setup_gateway.sh --passphrase mypassword --port 15888
オプション
オプションデフォルト説明
--statusGateway のステータスのみを確認する(起動しない)
--image IMAGEhummingbot/gateway:development使用する Docker イメージ
--passphrase TEXThummingbotGateway のパスフレーズ
--rpc-url URL--network 用のカスタム RPC エンドポイント
--network IDsolana-mainnet-betaRPC を設定するネットワーク
--port PORT15888Gateway のポート
応用: manage_gateway.py

より細かい制御(停止、再起動、ログ、ネットワークごとの設定)には、manage_gateway.py を使用します:

python scripts/manage_gateway.py status                    # Check status
python scripts/manage_gateway.py start                     # Start Gateway
python scripts/manage_gateway.py stop                      # Stop Gateway
python scripts/manage_gateway.py restart                   # Restart Gateway
python scripts/manage_gateway.py logs                      # View logs
python scripts/manage_gateway.py networks                  # List all networks
python scripts/manage_gateway.py network solana-mainnet-beta                          # Get network config
python scripts/manage_gateway.py network solana-mainnet-beta --node-url https://...   # Set RPC node
出力の解釈
出力意味次のステップ
✓ Gateway is running または ✓ Gateway started成功add-wallet に進む
✓ Gateway is already runningセットアップ済みadd-wallet に進む
✗ Cannot connect to Hummingbot APIAPI が実行されていないまず /lp-agent deploy-hummingbot-api を実行する
✗ Failed to start GatewayDocker の問題Docker が実行中であることを確認し、ログを確認する
✓ RPC configured + ✓ Gateway restartedカスタム RPC 設定済み使用可能
カスタム RPC ノード

Gateway はデフォルトでパブリック RPC ノードを使用するため、レート制限に達する可能性があります。これを避けるには、ネットワークごとにカスタムの nodeUrl を設定してください。

人気の Solana RPC プロバイダー:


コマンド: add-wallet

取引用の Solana ウォレットを追加します。

必要条件: 先に deploy-hummingbot-api と setup-gateway を完了している必要があります。

ウォレットの追加
python scripts/add_wallet.py add

秘密鍵 (base58 形式) を貼り付けるよう求められます。鍵は安全に入力され、シェル履歴には残りません。

出力の解釈:

出力意味次のステップ
✓ Wallet added successfully + Address: ABC...成功list コマンドで確認
Error: HTTP 400 - Bad Request秘密鍵の形式が無効鍵が base58 でエンコードされているか確認
Error: HTTP 503Gateway が利用不可bash scripts/check_gateway.sh を実行
Error: Cannot connect to APIAPI が実行されていない/lp-agent deploy-hummingbot-api を実行
ウォレットの一覧表示
python scripts/add_wallet.py list

出力の解釈:

出力意味
[solana] ABC123...XYZSolana でウォレットが接続されている
No wallets found.まだウォレットが追加されていない
空のリスト [] (--json 指定時)まだウォレットが追加されていない
残高の確認
# Check all balances
python scripts/add_wallet.py balances

# Filter by account
python scripts/add_wallet.py balances --account master_account

# Show zero balances too
python scripts/add_wallet.py balances --all
Gateway へのカスタムトークンの追加

非標準のトークン (例: ミームコイン) を使用する場合は、まず Gateway に追加してください:

# Use exact symbol from the pool (check with get_meteora_pool.py)
python scripts/add_wallet.py add-token \
  --symbol Percolator \
  --address 8PzFWyLpCVEmbZmVJcaRTU5r69XKJx1rd7YGpWvnpump \
  --decimals 6

⚠️ シンボルはプールと完全に一致する必要があります。 get_meteora_pool.py を使用して正確なトークンシンボルを確認してください。プールに Percolator と表示されている場合は、Percolator を使用してください — PRCLT やその他の略称は使用しないでください。一致しない場合、ボットが価格データを取得しようとすると「No CLMM pool found」エラーが発生します。

その後、トークンが認識されるように Gateway を再起動してください。

要件
  • 手数料用の SOL: ウォレットにはトランザクション手数料用の SOL が必要です (LP ポジションごとに rent として約 0.06 SOL)
  • デプロイ前に実際の残高を確認: balances コマンドを使用してください — SPL トークンアカウントで利用可能な額は、オンチェーンの合計と異なる場合があります (複数アカウント、ステーキングなど)
  • デフォルトチェーン: Solana mainnet-beta

コマンド: explore-pools

LP ポジションを作成する前に、Meteora DLMM プールを検索して調査します。

注意: プール一覧 (list_meteora_pools.py) は前提条件なしで動作します — Meteora API に直接クエリを実行します。プール詳細 (get_meteora_pool.py) は、リアルタイムの価格と流動性チャートのためにオプションで Gateway を使用します。

プールの一覧表示

名前、トークン、またはアドレスでプールを検索して一覧表示します:

# Top pools by 24h volume
python scripts/list_meteora_pools.py

# Search by token symbol
python scripts/list_meteora_pools.py --query SOL
python scripts/list_meteora_pools.py --query USDC

# Search by pool name
python scripts/list_meteora_pools.py --query SOL-USDC

# Sort by different metrics
python scripts/list_meteora_pools.py --query SOL --sort tvl
python scripts/list_meteora_pools.py --query SOL --sort apr
python scripts/list_meteora_pools.py --query SOL --sort fees

# Pagination
python scripts/list_meteora_pools.py --query SOL --limit 50 --page 2

出力列:

  • Pool: 取引ペア名
  • Pool Address: プールのコントラクトアドレス (短縮表示、完全なアドレスは get_meteora_pool.py を使用)
  • Base (mint): ベーストークンのシンボルと短縮された mint アドレス
  • Quote (mint): クォートトークンのシンボルと短縮された mint アドレス
  • TVL: ロックされた資産の総額
  • Vol 24h: 24 時間の取引量
  • Fees 24h: 過去 24 時間で獲得した手数料
  • APR: 年間利率
  • Fee: 基本手数料率
  • Bin: ビンステップ (ポジションの最大幅に影響)

注意: トークンの mint は、複数のトークンが同じ名前を共有している場合 (例: 複数の「PERCOLATOR」トークン) に正しいトークンを識別するのに役立ちます。

プール詳細の取得

特定のプールに関する詳細情報を取得します。Meteora API (履歴データ) と Gateway (リアルタイムデータ) の両方から取得します:

python scripts/get_meteora_pool.py <pool_address>

# Example
python scripts/get_meteora_pool.py ATrBUW2reZiyftzMQA1hEo8b7w7o8ZLrhPd7M7sPMSms

# Output as JSON for programmatic use
python scripts/get_meteora_pool.py ATrBUW2reZiyftzMQA1hEo8b7w7o8ZLrhPd7M7sPMSms --json

# Skip Gateway (faster, no bin distribution)
python scripts/get_meteora_pool.py ATrBUW2reZiyftzMQA1hEo8b7w7o8ZLrhPd7M7sPMSms --no-gateway

データソース:

  • Meteora API: 履歴の取引量、手数料、APR、トークン情報、時価総額
  • Gateway (Gateway の実行が必要): リアルタイムの価格、ビンごとの流動性分布

表示される詳細:

  • トークン情報 (シンボル、mint、小数桁、価格)
  • プール設定 (ビンステップ、手数料、最大レンジ幅)
  • Gateway からのリアルタイム価格 (SOL/トークン比率)
  • 現在価格周辺のビンを示す流動性分布チャート
  • 流動性とリザーブ
  • 時間枠ごとの取引量 (30m、1h、4h、12h、24h)
  • 時間枠ごとの獲得手数料
  • 利回り (APR、APY、ファーム報酬)
  • 手数料/TVL 比率 (収益性の指標)
プールの選択

プールを選ぶ際は、次の点を検討してください。

  1. TVL: TVL が高い = より安定しているが、その分競争も激しい
  2. 出来高: 出来高が多い = 手数料を得る機会が増える
  3. 手数料/TVL 比率: 高い = 流動性 1 ドルあたりの収益性が高い
  4. Bin Step: ポジションの最大幅を決定します
    • bin_step=1 → 最大約 0.69% の幅(狭いレンジ)
    • bin_step=10 → 最大約 6.9% の幅(中程度のレンジ)
    • bin_step=100 → 最大約 69% の幅(広いレンジ)

コマンド: select-strategy

ユーザーが適切な LP 戦略を選ぶのを支援します。詳細なガイドについては references/ を参照してください。

LP Rebalancer Controller(推奨)

参照: references/lp_rebalancer_guide.md

リバランスロジックを用いて LP ポジションを自動管理するコントローラーです。

機能説明
自動リバランス価格がレンジを外れたときにポジションをクローズして再オープンします
価格リミットアンカーポイントで BUY/SELL ゾーンを設定できます
KEEP ロジック最適なポジションにあるときは不要なリバランスを回避します
手放し運用設定したらそのまま - コントローラーがすべてを管理します

最適な用途: 長期的な LP 戦略、レンジ相場、自動での手数料回収。

LP Executor(単一ポジション)

参照: references/lp_executor_guide.md

固定した価格範囲で 1 つの流動性ポジションを作成します。自動リバランスは行いません。

機能説明
固定範囲ポジションは設定した価格レンジに留まります
手動コントロールクローズ/再オープンのタイミングはユーザーが判断します
指値注文価格がレンジを外れたときに自動クローズできます(指値注文のように)
シンプル単一ポジションを直接コントロールできます

最適な用途: 短期ポジション、指値注文スタイルの LP、手動管理、テスト。

簡単な比較
項目Rebalancer ControllerLP Executor
リバランス自動手動
ポジション数一度に 1 つ、自動管理1 つ、固定
価格リミットあり(アンカーポイント)なし(ただし自動クローズあり)
複雑さ高い(設定項目が多い)低い(よりシンプル)
用途設定したらそのまま精密なコントロール

コマンド: run-strategy

LP 戦略を実行、監視、管理します。

必要条件: 先に deploy-hummingbot-api、setup-gateway、add-wallet を完了している必要があります。

LP リバランサーコントローラー(推奨)

参照: 完全な設定の詳細、リバランスロジック、KEEP と REBALANCE のシナリオについては、references/lp_rebalancer_guide.md を参照してください。

価格が範囲外に動いたときにポジションを自動でリバランスします。手放しでの LP 管理に最適です。

主要な概念:

  • --amount(total_amount_quote)= クオート資産(ペアの 2 番目のトークン)での金額。Percolator-SOL → SOL。SOL-USDC → USDC。サイドに関係なく、常にクオートです。
  • すべての *_pct パラメータはすでにパーセント単位です。position_width_pct: 10 = 幅 10%。小数(0.10 など)を渡さないでください。
  • 価格制限(--buy-min/max、--sell-min/max)のデフォルトは null = 制限なし。ストップゾーンを設定したい場合にのみ指定してください。
# 1. Create LP Rebalancer config (pool and pair are required)
python scripts/manage_controller.py create-config my_lp_config \
    --pool <pool_address> \
    --pair SOL-USDC \
    --amount 10 \       # 10 USDC (quote asset for SOL-USDC)
    --side 0 \          # 0=BOTH, 1=BUY (quote only), 2=SELL (base only)
    --width 10 \        # 10% range around current price
    --offset 1 \        # center range 1% from current price
    --rebalance-seconds 300 \
    --rebalance-threshold 1

# Side=2 example: deploy base token only (e.g. 110k PRCLT ≈ 1.33 SOL)
python scripts/manage_controller.py create-config percolator_sell \
    --pool ATrBUW2reZiyftzMQA1hEo8b7w7o8ZLrhPd7M7sPMSms \
    --pair Percolator-SOL \
    --amount 1.33 \     # 1.33 SOL worth (quote for Percolator-SOL pair)
    --side 2

# 2. Deploy bot with the config
python scripts/manage_controller.py deploy my_lp_bot --configs my_lp_config

# 3. Monitor status
python scripts/manage_controller.py status

主要パラメータ:

パラメータフィールドデフォルト説明
--amounttotal_amount_quote必須クオート資産(2 番目のトークン)での金額。X-SOL ペアなら SOL、X-USDC ペアなら USDC。
--sideside00=BOTH、1=BUY(クオートのみ)、2=SELL(ベースのみ)
--widthposition_width_pct10範囲幅(%)(例: 10 = 価格を中心に ±10%)。すでに % 単位 — 小数は使用しないでください。
--offsetposition_offset_pct0.1現在価格からの中心オフセット(%)。すでに % 単位。
--rebalance-secondsrebalance_seconds300クローズして再度オープンするまでの範囲外秒数
--rebalance-thresholdrebalance_threshold_pct1リバランスをトリガーする最小価格変動(%)。すでに % 単位。
--sell-max/--sell-minsell_price_max/minnullSELL サイドの価格制限(null = 制限なし)
--buy-max/--buy-minbuy_price_max/minnullBUY サイドの価格制限(null = 制限なし)
--strategy-typestrategy_type0Meteora シェイプ: 0=Spot(均等)、1=Curve(中央重視)、2=Bid-Ask(端重視)
単一 LP エグゼキューター(代替)

参照: ステートマシン、片側/両側ポジション、指値範囲注文については、references/lp_executor_guide.md を参照してください。

固定された境界で 1 つのポジションを作成します。自動リバランスは行いません。

python scripts/manage_executor.py create \
    --pool <pool_address> \
    --pair SOL-USDC \
    --quote-amount 100 \
    --lower 180 \
    --upper 185 \
    --side 1

主要パラメータ:

パラメータ説明
--connector/clmm サフィックスを含める必要があります(デフォルト: meteora/clmm)
--lower/--upperポジションの価格境界
--base-amount/--quote-amountトークン量(片側にする場合はいずれかを 0 に設定)
--side0=BOTH、1=BUY、2=SELL
--auto-close-above価格が範囲を上回ったときに自動クローズ(指値注文用)
--auto-close-below価格が範囲を下回ったときに自動クローズ(指値注文用)
監視と管理

ステータスの確認:

# Bot status
python scripts/manage_controller.py status

# Executor list
python scripts/manage_executor.py list --type lp_executor

# Executor details
python scripts/manage_executor.py get <executor_id>

# Executor summary
python scripts/manage_executor.py summary

エグゼキューターの状態:

  • OPENING - オンチェーンでポジションを作成中
  • IN_RANGE - ポジションが有効で、手数料を獲得中
  • OUT_OF_RANGE - 価格がポジションの境界外
  • CLOSING - ポジションを削除中
  • FAILED - トランザクションが失敗

停止:

# Stop bot (stops all its controllers)
python scripts/manage_controller.py stop my_lp_bot

# Stop individual executor (closes position)
python scripts/manage_executor.py stop <executor_id>

# Stop executor but keep position on-chain
python scripts/manage_executor.py stop <executor_id> --keep-position
停止後 — 結果の分析

ユーザーが LP エグゼキューターを実行した場合(manage_executor.py create または直接 API 経由)、すぐに分析を提案してください:

エグゼキューターが停止されました。パフォーマンスダッシュボードを生成しましょうか?

次に実行します:

python scripts/visualize_lp_executor.py --id <executor_id>

エグゼキューター ID はエグゼキューターの作成時に返されます(Executor ID: <id> として出力されます)。ユーザーが手元に持っていない場合は、API から取得します:

curl -s -u admin:admin -X POST http://localhost:8000/executors/search \
  -H "Content-Type: application/json" \
  -d '{"type":"lp_executor"}' | python3 -c "
import json,sys
data=json.load(sys.stdin)
items=data.get('data',data) if isinstance(data,dict) else data
for ex in (items if isinstance(items,list) else [items]):
    print(ex.get('executor_id') or ex.get('id'), ex.get('trading_pair'), ex.get('status'))
"

生データを CSV にもエクスポートするには:

python scripts/export_lp_executor.py --id <executor_id>

ユーザーがリバランサーコントローラーボットを実行した場合、データは SQLite ファイルに保存されています — 代わりに SQLite ベースのスクリプトで analyze-performance を使用してください。


コマンド: analyze-performance

LP ポジションのイベントからデータをエクスポートし、ビジュアルダッシュボードを生成します。スクリプトはこのスキルの scripts/ ディレクトリにあります。

どのスクリプトを使うべきか?

常に自問してください:このポジションは LP Executor(manage_executor.py または直接 API 経由)としてデプロイされたのか、それとも Rebalancer Controller ボット経由でデプロイされたのか?

デプロイ方法使用するスクリプト
LP Executor — manage_executor.py create または直接 POST /executors/ APIvisualize_lp_executor.py --id <executor_id> ✅
Rebalancer Controller — manage_controller.py deploy(ボットコンテナ、SQLite)visualize_lp_positions.py --pair <pair>
わからない場合curl -s -u admin:admin -X POST http://localhost:8000/executors/search -H "Content-Type: application/json" -d '{"type":"lp_executor"}' を実行 — executor ID が表示されたら、executor スクリプトを使用してください

ユーザーがこのセッションで LP Executor を実行している場合(executor ID がコンテキストからわかる場合)、質問をスキップして直接次に進んでください:

python scripts/visualize_lp_executor.py --id <executor_id>
利用可能なスクリプト
スクリプト目的
scripts/export_lp_positions.pyLP ポジションイベントを CSV にエクスポート(SQLite/ボットコンテナベース)
scripts/visualize_lp_positions.pyポジションイベントから HTML ダッシュボードを生成(SQLite/ボットコンテナベース)
scripts/export_lp_executor.py--id で単一の LP executor を CSV にエクスポート(REST API、SQLite 不使用)
scripts/visualize_lp_executor.py--id で単一の LP executor の HTML ダッシュボードを生成(REST API)
LP ポジションの可視化

ブロックチェーンからのポジション ADD/REMOVE イベントを表示します。実行中および停止中の両方のボットで機能します。

# Basic usage (auto-detects database in data/)
python scripts/visualize_lp_positions.py --pair SOL-USDC

# Specify database explicitly
python scripts/visualize_lp_positions.py --db data/my_bot.sqlite --pair SOL-USDC

# Filter by connector
python scripts/visualize_lp_positions.py --pair SOL-USDC --connector meteora/clmm

# Last 24 hours only
python scripts/visualize_lp_positions.py --pair SOL-USDC --hours 24

ダッシュボードの機能:

  • KPI カード(合計 PnL、手数料、IL、勝敗数)
  • 累積 PnL と手数料のチャート
  • LP レンジ境界を含むオープン/クローズ時の価格
  • ポジションごとの PnL 棒グラフ
  • 保有期間と PnL の散布図
  • Solscan リンク付きのソート可能なポジションテーブル
CSV へのエクスポート
# Export all position events
python scripts/export_lp_positions.py --db data/my_bot.sqlite

# Filter by trading pair
python scripts/export_lp_positions.py --pair SOL-USDC --output exports/positions.csv

# Show summary without exporting
python scripts/export_lp_positions.py --summary
Executor パフォーマンス(API ベース)

これらのスクリプトは Hummingbot REST API から直接動作します — SQLite データベースは不要です。 executor が API 経由で直接デプロイされた場合(例:manage_executor.py 経由)に使用してください。 そのような場合、ボットコンテナのように常に SQLite レコードが生成されるとは限らないためです。

単一の LP executor を CSV にエクスポート:

python scripts/export_lp_executor.py --id <executor_id>
python scripts/export_lp_executor.py --id <executor_id> --output exports/my_run.csv
python scripts/export_lp_executor.py --id <executor_id> --print   # JSON to stdout

CSV の列(LP executor スキーマ):

  • 識別情報: id, account_name, controller_id, connector_name, trading_pair
  • 状態: status, close_type, is_active, is_trading, error_count
  • タイミング: created_at, closed_at, close_timestamp, duration_seconds
  • PnL: net_pnl_quote, net_pnl_pct, cum_fees_quote, filled_amount_quote
  • 設定(デプロイ): pool_address, lower_price, upper_price, base_amount_config, quote_amount_config, side, position_offset_pct, auto_close_above_range_seconds, auto_close_below_range_seconds, keep_position
  • custom_info(ライブ/最終): state, position_address, current_price, lower_price_actual, upper_price_actual, base_amount_current, quote_amount_current, base_fee, quote_fee, fees_earned_quote, total_value_quote, unrealized_pnl_quote, position_rent, position_rent_refunded, tx_fee, out_of_range_seconds, max_retries_reached, initial_base_amount, initial_quote_amount

単一の LP executor を可視化(HTML ダッシュボード):

python scripts/visualize_lp_executor.py --id <executor_id>
python scripts/visualize_lp_executor.py --id <executor_id> --output report.html
python scripts/visualize_lp_executor.py --id <executor_id> --no-open

ダッシュボードのパネル:

  • KPI カード:ステータス、純 PnL、獲得手数料、保有期間、LP レンジ
  • LP の下限/上限境界とオープン/クローズマーカー付きの価格チャート(5 分足 KuCoin ローソク足、エキゾチックペアでは自動スキップ)
  • トークン残高バー:初期と最終の base + quote 量
  • PnL 内訳:獲得手数料と IL/価格インパクトと純 PnL
  • プールおよびポジションアドレスの Solscan リンク付きの完全なポジションサマリーテーブル
  • ダークテーマ(#0d1117 / #161b27)、レスポンシブレイアウト、CDN からの Chart.js
  • 認証は .env または ~/.hummingbot/.env または ~/.env から自動ロード(キー:HUMMINGBOT_API_URL、API_USER、API_PASS)

クイックリファレンス

一般的なワークフロー

完全なセットアップ(初回):

# 1. Deploy API
bash scripts/deploy_hummingbot_api.sh install

# 2. Start Gateway
bash scripts/setup_gateway.sh --rpc-url https://your-rpc-endpoint.com

# 3. Add wallet
python scripts/add_wallet.py add

# 4. Find pool
python scripts/list_meteora_pools.py --query SOL-USDC

# 5. Check bin_step
python scripts/get_meteora_pool.py <pool_address>

# 6. Create config and deploy
python scripts/manage_controller.py create-config my_lp --pool <pool_address> --pair SOL-USDC --amount 100
python scripts/manage_controller.py deploy my_bot --configs my_lp

# 7. Verify
python scripts/manage_controller.py status

LP ポジションの分析:

# Visualize
python scripts/visualize_lp_positions.py --pair SOL-USDC

# Export CSV
python scripts/export_lp_positions.py --pair SOL-USDC
前提条件の確認

API または Gateway を必要とするコマンドを実行する前に、それらが実行中であることを確認してください:

bash scripts/check_api.sh       # Is Hummingbot API running?
bash scripts/check_gateway.sh   # Is Gateway running? (also checks API)

どちらも --json 出力をサポートしています。これらのスクリプトは setup_gateway.sh によって内部的にも使用されており、他のシェルスクリプトからも source できます。

スクリプトリファレンス
スクリプト目的
check_api.shHummingbot API が実行中かどうかを確認する(共有)
check_gateway.shGateway が実行中かどうかを確認する(共有)
deploy_hummingbot_api.shHummingbot API のインストール/アップグレード/管理
setup_gateway.shGateway の起動と RPC の設定
add_wallet.pyウォレットの追加と残高の確認
manage_gateway.py高度な Gateway 管理
list_meteora_pools.pyプールの検索と一覧表示
get_meteora_pool.py流動性チャート付きでプールの詳細を取得
manage_executor.pyLP エグゼキューターの作成、一覧表示、停止
manage_controller.py設定の作成、ボットのデプロイ、ステータスの取得
export_lp_positions.pyポジションイベントを CSV にエクスポート(SQLite/bot-container)
visualize_lp_positions.pyHTML ダッシュボードを生成(SQLite/bot-container)
export_lp_executor.py--id で単一の LP エグゼキューターを CSV にエクスポート(REST API)
visualize_lp_executor.py--id で単一の LP エグゼキューター用の HTML ダッシュボード(REST API)
エラーのトラブルシューティング
エラー原因解決策
"InvalidRealloc"ポジション範囲が広すぎる--width を減らす(bin_step の制限を確認)
状態が "OPENING" のまま固まるトランザクションが失敗したエグゼキューターを停止し、範囲を縮小して再試行
"Insufficient funds"(ウォレットに資金がある)RPC のレート制限、または金額の単位が誤っているカスタム RPC キーを追加する。--amount がクオート資産単位であることを確認する
"Transaction simulation failed"RPC のレート制限がシミュレーション失敗として現れているカスタム RPC キーを追加する(Helius/QuickNode)
'meteora/clmm' KeyErrorGateway コネクターがまだ登録されていないhummingbot-api PR #120+(feat/lp-executor ブランチ)を使用する
"No CLMM pool found for X-Y"トークンシンボルの不一致プールの正確なシンボルを使用する(例:PRCLT ではなく Percolator)
"meteora/clmm is not ready"ボットが Gateway に到達できないGateway を --network host 付きの Docker コンテナとして実行する。macOS 上の開発モード Gateway はコンテナから到達できない
"Failed to load strategy" / パスワードエラーボットの conf に .password_verification がないbots/credentials/master_account/.password_verification から bots/bots/instances/<bot>/conf/ にコピーする
candles_config / markets extra inputs古いスクリプト設定フォーマット最小限の設定を使用する:controllers_config と script_file_name のみ
ボットが API では "stopped" と表示されるが Docker では実行中MQTT が接続されていないボットは実行中だが、API が MQTT 経由で認識できていない。ボットのログを直接確認する

重要な注意点

これらは本番環境で実際に混乱を引き起こしました — デプロイ前に必ず読んでください。

1. total_amount_quote は常にクオート資産単位です

クオート資産は取引ペアの2番目のトークンです:

ペアクオート資産例:約 $100 相当の 100k ベーストークンをデプロイ
Percolator-SOLSOL--amount 1.33(1.33 SOL ≈ $108)
SOL-USDCUSDC--amount 108(108 USDC)
RAY-SOLSOL--amount 2.5(2.5 SOL)

--side 2(SELL/ベースのみ)の場合でも、価値はクオート単位で表現します。換算:base_tokens × price_in_quote = total_amount_quote。

2. すべての *_pct パラメータはすでにパーセント単位です
パラメータ正しい誤り
position_width_pct: 1010% の範囲0.10
position_offset_pct: 11% のオフセット0.01
rebalance_threshold_pct: 11% のしきい値0.01
3. トークンシンボルはプールと完全に一致させる必要があります

Gateway にトークンを追加して --pair を設定する際は、プールの正確なシンボル(get_meteora_pool.py または Meteora UI から取得)を使用してください:

# Check pool token symbols first
python scripts/get_meteora_pool.py <pool_address>
# Look at "Symbol" column — use that exact string in --pair and when adding token to Gateway

例:Percolator トークンのシンボルは Percolator です(PRCLT ではありません)。--pair Percolator-SOL を使用してください。

4. デプロイ前にカスタム RPC が必須です(任意ではありません)

公開 Solana RPC(api.mainnet-beta.solana.com)はボットに対してレート制限をかけ、以下の問題が発生します:

  • 「残高不足」エラー(ウォレットに資金がある場合でも)
  • 「トランザクションシミュレーション失敗」
  • 10 回のリトライ後にポジションのオープンが失敗

デプロイ前に必ずカスタム RPC を設定してください:

# Edit Gateway conf
GATEWAY_DIR=~/.openclaw/workspace/hummingbot-gateway  # or your gateway dir
nano "$GATEWAY_DIR/conf/chains/solana/mainnet-beta.yml"
# Set: nodeURL: https://mainnet.helius-rpc.com/?api-key=YOUR_KEY

https://helius.dev で無料のキーを取得できます。その後、Gateway を再起動してください。

5. macOS では Gateway を Docker(開発モードではなく)で実行する必要があります

macOS では、Docker コンテナはホスト上で実行されているプロセスに到達できません(--network host を使用しても同様です)。ボットコンテナは、開発モード(pnpm start)で実行されている Gateway に接続できません。

必ず Gateway を Docker として実行してください:

docker run -d --name gateway \
  --network host \
  -e GATEWAY_PASSPHRASE=hummingbot \
  -v ~/.openclaw/workspace/hummingbot-gateway/conf:/home/gateway/conf \
  -v ~/.openclaw/workspace/hummingbot-gateway/certs:/home/gateway/certs \
  hummingbot/gateway:development

その後、ボットの conf_client.yml で:gateway_api_host: localhost(macOS の Docker 内では、gateway も host ネットワークを使用する Docker である場合、ホストネットワーキングが正しく解決されます)。

6. latest ではなく hummingbot:development イメージを使用してください

latest イメージには LP エグゼキューターのサポートが含まれていない可能性があります。必ず以下でデプロイしてください:

python scripts/manage_controller.py deploy my_bot --configs my_config
# manage_controller.py defaults to hummingbot/hummingbot:development
7. --amount を計算する前にウォレット残高を確認してください
python scripts/add_wallet.py balances

どのトークンアカウントに資金があるかを確認してください — ウォレットには複数の SPL トークンアカウントがあり、残高が想定と異なる場合があります。特定のトークンアカウントの利用可能残高のみがデプロイできます。

8. ポジションのクローズ

プール上のすべてのポジションをクローズするには:

# List open positions
curl -s "http://localhost:15888/connectors/meteora/clmm/positions-owned?network=mainnet-beta&walletAddress=<WALLET>" 

# Close each position
curl -s -X POST http://localhost:15888/connectors/meteora/clmm/close-position \
  -H "Content-Type: application/json" \
  -d '{"network":"mainnet-beta","address":"<WALLET>","positionAddress":"<POSITION>"}'

注意:Gateway にアクセスできる必要があります。macOS で Gateway が host ネットワーキングを使用する Docker 内にある場合は、docker run --rm --network host alpine/curl ... を使用してください。 | 「残高不足」 | トークンが足りない | ウォレットにトークン + レント用の 0.06 SOL があるか確認してください |

コメント