hyperliquid について
hyperliquid は、Hyperliquid の無期限先物や現物資産を照会・取引するスキルです。アカウント、マーケット、注文を扱うエージェント向けで、読み取りは Python 関数、取引は非同期クライアントで署名・送信します。
主な機能
- 01アカウント、ポジション、残高の照会
- 02損益、約定、資金移動履歴の分析
- 03価格、板、ファンディングの確認
- 04現物・無期限先物注文の発注
- 05レバレッジ、TP/SL、注文取消の管理
活用シーン
- 01ポジションと利用可能証拠金の確認
- 02ウォレットの過去の損益分析
- 03価格と注文板の厚さの確認
- 04取引の実行とリスク注文の管理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ starchild-ai-agent/ official-skills --skill hyperliquidインストール後、Claude Code で/hyperliquidを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
__init__.py_trade_report.pyclient.pyexports.pysigning.pytools.py詳細
Hyperliquid トレーディング
完全オンチェーンの分散型取引所である Hyperliquid で無期限先物とスポットトークンを取引します。注文はこのエージェントの EVM ウォレットを使用して署名され、Hyperliquid L1 に直接送信されます。
前提条件
取引の前に、ウォレットポリシーが有効になっている必要があります。wallet-policy スキルをロードし、標準のワイルドカードポリシー(キーエクスポートを拒否 + * を許可)を提案してください。これは、USDC の入金、EIP-712 による注文署名、出金など、すべての Hyperliquid 操作をカバーします。
ランタイムモデル: Hyperliquid の呼び出し方(まずこれを読んでください)
このスキルはスクリプト配信型です。hl_* エージェントツールは一切登録されません。
hl_deposit、hl_order、その他の hl_* 名をツールとして呼び出すと、常に
「not found in registry」で失敗します。これは設計によるものであり、バグやインストール漏れではありません。
動作するレーンはちょうど 2 つです。
レーン 1 — 読み取り専用クエリ(exports.py)
from core.skill_tools import hyperliquid
account = hyperliquid.hl_account()
mids = hyperliquid.hl_market()
candles = hyperliquid.hl_candles(coin="BTC", interval="1h", hours_back=24)
どのウォレットでも、自分のウォレットに限りません。 ユーザー単位のすべての関数は
省略可能な address を受け取ります。省略するとエージェント自身のウォレットになり、
0x アドレスを渡すと第三者を調査できます。これにより「このウォレットの Hyperliquid の
PnL を分析して」という質問に答えられます。Hyperliquid はオフチェーンのオーダーブックであるため、
DeBank のようなチェーンスキャンではその内容を一切見ることができません。
hyperliquid.hl_portfolio(address="0x1f16...") # PnL time series
hyperliquid.hl_account(address="0x1f16...") # their open positions
32 個の関数をグループ化すると次のようになります。
| グループ | 関数 |
|---|---|
| アカウント | hl_account hl_balances hl_total_balance hl_user_role hl_user_fees hl_rate_limit hl_sub_accounts hl_referral hl_extra_agents |
| PnL と履歴 | hl_portfolio hl_fills hl_fills_by_time hl_historical_orders hl_ledger hl_funding_payments hl_twap_fills hl_vault_equities |
| 注文 | hl_open_orders hl_open_orders_full hl_order_status |
| マーケット | hl_market hl_orderbook hl_candles hl_funding hl_predicted_funding hl_meta hl_meta_ctxs hl_spot_meta hl_spot_meta_ctxs hl_perp_dexs |
| ステーキング | hl_staking hl_staking_delegations hl_staking_rewards |
読み取り専用のみ — このレーンでは書き込みはできません。
「このウォレットの PnL はいくらか?」に答える
hl_portfolio は 8 つの期間 — day、week、month、allTime と
それに対応する perp* — を返し、それぞれに accountValueHistory と pnlHistory が
[epoch_ms, value] のペアとして含まれます。pnlHistory は各期間の開始時に 0 にリセットされるため、
生涯 PnL を確認するには allTime を参照してください。
pf = dict(hyperliquid.hl_portfolio(address=addr))
pnl = float(pf["allTime"]["pnlHistory"][-1][1])
取得原価の再構築には、3 つの情報源を組み合わせます: hl_ledger(資本の増減 — 入金、出金、ボールトの移動)、
hl_fills_by_time(約定ごとの実現 closedPnl、1 回の呼び出しで最大 2000 件 — 最後の約定の
time を次の start として渡すことでページングします)、そして hl_funding_payments(支払った/受け取ったファンディング)です。
まず hl_user_role を確認してください: ロールが "missing" の場合は、そのアドレスがここで一度も取引していないことを意味し、
「ポジションがない」とは異なります。
レーン 2 — 書き込み: 注文、キャンセル、送金、入金(client.py)
すべての書き込みは HyperliquidClient を通り、これが EIP-712 署名パイプラインを担います。
これは非同期クラスです — すべての呼び出しに await を付けてください。
from skills.hyperliquid.client import HyperliquidClient
client = HyperliquidClient()
# Deposit USDC to the Hyperliquid bridge (minimum 5 USDC)
res = await client.deposit_usdc(amount=500)
# Place an order
res = await client.place_order(
coin="BTC", is_buy=True, size=0.001, price=95000, order_type="limit",
)
# Cancel / leverage / transfer / withdraw
await client.cancel_all("BTC")
await client.update_leverage(coin="BTC", leverage=5, is_cross=True)
await client.transfer_usd(amount=100, to_perp=True)
await client.withdraw_from_bridge(amount=50)
レーン 2 の前提条件: ウォレットポリシーが有効になっている必要があります — wallet-policy スキルをロードし、
標準のワイルドカードポリシー(キーエクスポートを拒否 + * を許可)を提案してください。これは入金、EIP-712 による注文署名、出金をカバーします。
命名に関する注意: このドキュメントの以降の部分では、操作を歴史上の hl_* 名(例:「hl_deposit」)で参照します。
これらは操作のラベルであり、呼び出し可能なツールではありません — 常に上記のレーン 1 またはレーン 2 を経由してアクセスしてください。
利用可能なツール
アカウントとマーケット情報
| ツール | 機能 |
|---|---|
hl_total_balance | 取引に使える金額を確認します(残高確認にはこれを使用してください!) |
hl_account | 未決済ポジションと未実現 PnL |
hl_balances | トークン保有量(USDC、HYPE など) |
hl_portfolio | PnL とアカウント価値の推移 — day/week/month/allTime |
hl_ledger | 入金、出金、送金 — 資金の入出金記録 |
hl_fills_by_time | 指定期間内の約定、取得原価の計算用 |
hl_market | 暗号資産または株式の現在価格を取得 |
hl_meta_ctxs | マーケット全体のスキャン: 資産ごとの markPx、ファンディング、OI、出来高 |
hl_orderbook | オーダーブックの深度と流動性を確認 |
hl_fills | 直近の約定と執行価格を確認 |
hl_candles | 価格チャートを取得(1m、5m、1h、4h、1d) |
hl_funding | パーペチュアルのファンディングレートを確認 |
hl_open_orders | 未約定の注文を確認 |
hl_open_orders_full | ストップロス / テイクプロフィットの詳細付き未約定注文 |
上記はすべて address="0x..." を受け付け、エージェント自身だけでなく
任意のウォレットを検査できます。
取引
| ツール | 機能 |
|---|---|
hl_order | パーペチュアル(暗号資産/株式)を買付または売却 |
hl_spot_order | スポットトークンを買付または売却 |
hl_tpsl_order | ストップロスまたはテイクプロフィット注文を発注 |
hl_leverage | レバレッジを設定(1x から資産の最大値まで) |
hl_cancel | 特定の注文をキャンセル |
hl_cancel_all | すべての未約定注文をキャンセル |
hl_modify | 注文の価格または数量を変更 |
資金
| ツール | 機能 |
|---|---|
hl_deposit | Arbitrum から USDC を追加(最低 $5) |
hl_withdraw | Arbitrum へ USDC を送金(手数料 1 USDC、約 5 分) |
hl_transfer_usd | スポット/パーペチュアル間で USDC を移動(必要なことはほとんどありません) |
プラットフォーム
| ツール | 機能 |
|---|---|
hl_approve_builder | Starchild ビルダー手数料の徴収を承認(初回注文時に自動実行) |
hl_builder_status | ビルダー承認ステータスと徴収済み報酬を確認 |
クイックスタート
取引したい内容をエージェントに伝えるだけです - すべて自動で処理されます。
例:
User: "Buy $20 of Bitcoin with 5x leverage"
Agent: [checks balance → sets leverage → places order → reports fill]
Result: "✓ Bought 0.0002 BTC at $95,432 with 5x leverage. Position opened."
User: "Long NVIDIA with $50, 10x"
Agent: [auto-detects NVIDIA = xyz:NVDA → executes → verifies]
Result: "✓ Bought 0.25 NVDA at $198.50 with 10x leverage. Filled at $198.62."
User: "Sell my ETH position"
Agent: [checks position size → closes → reports PnL]
Result: "✓ Sold 0.5 ETH at $3,421. Realized PnL: +$12.50"
次のことは必要ありません:
- アカウントモードや資金移動を理解する
- 残高を手動で確認する(エージェントが行います)
- ポジションサイズを計算する(エージェントが行います)
- 約定を確認する(エージェントが行います)
希望を伝えるだけで、残りはエージェントが処理します。
エージェントの動作ガイドライン
🤖 エージェントとして、次のことは常に自動で実行してください(ユーザーに決して尋ねないでください):
- 利用可能資金を確認 - すべての取引の前に
hl_total_balanceを使い、利用可能な証拠金の合計を確認します - 資産タイプを判別 - ユーザーが暗号資産(BTC、ETH、SOL)を望んでいるのか、株式/RWA(NVIDIA→xyz:NVDA、TESLA→xyz:TSLA)を望んでいるのかを認識します
- レバレッジを設定 - 注文を発注する前に必ず
hl_leverageを呼び出します(ユーザーがしないよう指定した場合を除く) - 約定を確認 - あらゆる注文を発注した後、すぐに
hl_fillsを呼び出して約定したか確認します - 結果を報告 - 結果をユーザーに伝えます: 約定価格、数量、および PnL
- リスク管理を提案 - レバレッジポジションについては、ストップロスについてユーザーに注意を促すか、設定を提案します
🎯 ユーザーはこう言うだけ: 「X を買って」または「Y を売って」または「Z を $N でロングにして」
🔧 あなたが判断するもの:
- 現在の残高(hl_total_balance)
- 資産の解決(暗号資産か RWA か)
- レバレッジ設定(hl_leverage)
- 注文サイズ(ユーザーの $ 金額または数量から計算)
- 執行(hl_order)
- 検証(hl_fills)
- ユーザーへの最終報告
📊 残高確認の優先順位:
- ✅
hl_total_balanceを使用 - アカウントモードに関係なく、実際に利用可能な証拠金を表示します - ❌ 残高確認に
hl_accountを使用しない - 資金が利用可能でも $0 と表示されることがあります - ❌ 証拠金に
hl_balancesを使用しない - スポットトークンのみを表示します
🚀 受け身ではなく積極的に:
- ユーザーが「約定した?」と尋ねるのを待たない - 自動で確認します
- 「残高を確認しましょうか?」と尋ねない - ただ実行します
- アカウントモードを説明しない - ユーザーは気にしていない、ただ執行します
ツールの使用例
アカウント状態の確認
hl_account() # Default crypto perps account
hl_account(dex="xyz") # Builder dex (RWA/stock perps) account
marginSummary(accountValue、totalMarginUsed、withdrawable)と、各ポジションの coin、szi(符号付きサイズ)、entryPx、unrealizedPnl、leverage を含む assetPositions 配列を返します。
重要: ビルダー永続先物(xyz:NVDA、xyz:TSLA など)は別々のクリアリングハウスを持ちます。RWA/株式の永続先物を取引する際は、必ず正しい dex を確認してください。
スポット残高の確認
hl_balances()
USDC およびすべてのスポットトークンについて、coin、hold、total を含む balances 配列を返します。
市場価格の確認
hl_market() # All mid prices
hl_market(coin="BTC") # BTC price + metadata (maxLeverage, szDecimals)
side パラメータの規約(まずこれを読んでください)
すべての注文ツール(hl_order、hl_spot_order、hl_tpsl_order、hl_modify)は同じ side パラメータを使用します。"buy" または "sell" を使用してください — これらがドキュメントに記載された値であり、デフォルトとして使用すべきです。
安全性のため、これらのツールは以下のエイリアスも受け付けます。これにより、モデルの推測によってレバレッジ注文の方向が反転することを防ぎます。
- 買い系:
"buy"、"B"、"bid"、"long"、"L"、1、true - 売り系:
"sell"、"S"、"A"、"ask"、"short"、0、false
認識されない値は明確なエラーとともに呼び出しに失敗します — side が曖昧な場合、ツールがデフォルトで売り(または買い)になることは決してありません。これは意図的な仕様です。レバレッジポジションで方向を黙って反転させることは、最悪の失敗モードだからです。
注: Hyperliquid の L1 ワイヤプロトコルは内部的に "B" と "A" を使用しますが、ここでのツールインターフェースは buy/sell です。呼び出しでは buy/sell を使い続ければ、予期せぬ事態は起きません。
永続先物の指値注文を出す
hl_order(coin="BTC", side="buy", size=0.01, price=95000)
0.01 BTC を $95,000 で GTC 指値買い注文を出します。
永続先物の成行注文を出す
hl_order(coin="ETH", side="sell", size=0.1)
price を省略すると、中間価格 +/- 3% のスリッページで IoC 注文を送信します。
パラメータ形式の挙動:
- 推奨: 正しい JSON 型で渡す(
sizeは数値、reduce_onlyはブール値) - Hyperliquid ツールは、LLM でよくあるフォーマットミスに対する寛容な型変換を備えるようになりました:
"0.01"のような数値文字列 →0.01"true"/"false"のようなブール文字列 →true/false"5"/"5.0"のような整数文字列 →5
- 無効/空/非有限の値は、引き続き明示的な検証エラーで失敗します
Post-Only 注文を出す
hl_order(coin="BTC", side="buy", size=0.01, price=94000, order_type="alo")
ALO(Add Liquidity Only)= post-only。即座に約定する場合は拒否されます。
ボット向けの実用的なガードレール: ALO 価格が中間価格に近すぎる場合(流動性の高いペアでは多くの場合 ~0.1% 以内)、Hyperliquid が拒否することがあります。マーケットメイキング/グリッドボットでは、まず現在の中間価格を計算し、ノークロスバッファゾーン内に入るレベルはスキップまたはシフトしてください。
ストップロス注文を出す
hl_tpsl_order(coin="BTC", side="sell", size=0.01, trigger_px=90000, tpsl="sl")
価格が $90,000 まで下落した場合、自動的に 0.01 BTC を売却します。トリガー時には成行注文として執行されます。
トリガー時に成行ではなく指値注文にする場合:
hl_tpsl_order(coin="BTC", side="sell", size=0.01, trigger_px=90000, tpsl="sl", is_market=false, limit_px=89900)
テイクプロフィット注文を出す
hl_tpsl_order(coin="ETH", side="sell", size=0.5, trigger_px=3500, tpsl="tp")
価格が $3,500 まで上昇した場合、自動的に 0.5 ETH を売却します。トリガー時には成行注文として執行されます。
永続先物ポジションをクローズする
hl_order(coin="BTC", side="sell", size=0.01, reduce_only=true)
reduce_only=true を使用して、クローズのみを行い、新しいポジションを決して開かないようにします。
スポット注文を出す
hl_spot_order(coin="HYPE", side="buy", size=10, price=25.0)
スポット注文も同じインターフェースを使用します — トークン名を指定するだけです。
注文をキャンセルする
hl_cancel(coin="BTC", order_id=12345678)
order_id は hl_open_orders から取得します。
すべての注文をキャンセルする
hl_cancel_all() # Cancel everything
hl_cancel_all(coin="BTC") # Cancel only BTC orders
注文を変更する
hl_modify(order_id=12345678, coin="BTC", side="buy", size=0.02, price=94500)
レバレッジを設定する
hl_leverage(coin="BTC", leverage=10) # 10x cross margin
hl_leverage(coin="ETH", leverage=5, cross=false) # 5x isolated margin
USDC を転送する(ほとんど不要)
hl_transfer_usd(amount=1000, to_perp=true) # Spot → Perp
hl_transfer_usd(amount=500, to_perp=false) # Perp → Spot
注: 通常は不要です — 資金は自動的に共有されます。転送が必要というエラーが発生した場合にのみ使用してください。
USDC を Arbitrum に引き出す
hl_withdraw(amount=100) # Withdraw to own wallet
hl_withdraw(amount=50, destination="0xABC...") # Withdraw to specific address
手数料: Hyperliquid により 1 USDC が差し引かれます。処理には約 5 分かかります。
Arbitrum から USDC を入金する
hl_deposit(amount=500)
エージェントの Arbitrum ウォレットから Hyperliquid ブリッジコントラクトへ USDC を送信します。最小入金額: 5 USDC。Arbitrum 上の USDC 残高が必要です。
ローソク足を取得する
hl_candles(coin="BTC", interval="1h", lookback=48)
間隔: 1m、5m、15m、1h、4h、1d。ルックバックは時間単位です。
資金調達率を確認する
hl_funding() # All predicted fundings
hl_funding(coin="BTC") # BTC predicted + 24h history
最近の約定を取得する
hl_fills(limit=10)
コインと RWA の解決
ユーザーが特定のティッカーを取引したいと依頼した場合、それがネイティブ暗号資産の永続先物(プレーンな名前を使用)なのか、RWA/株式の永続先物(xyz:TICKER プレフィックスを使用)なのかを判断する必要があります。
判断ワークフロー
- 既知の暗号資産 → そのままの名前を使用します:
"BTC"、"ETH"、"SOL"、"DOGE"、"HYPE"など。 - 既知の株式・コモディティ・外国為替 →
xyz:プレフィックスを使用します:"xyz:NVDA"、"xyz:TSLA"、"xyz:GOLD"など。 - 不明な場合 → ツール呼び出しで解決します:
- まず
hl_market(coin="X")を試します — 価格が返れば、それは暗号資産の無期限先物です - 見つからない場合は、
hl_market(dex="xyz")を試してすべての RWA 市場を一覧表示し、結果を検索します - 一致するものが返った方を使用します
- まず
一般的な RWA カテゴリ(すべて xyz: プレフィックスを使用)
| カテゴリ | 例 |
|---|---|
| 米国株 | xyz:NVDA、xyz:TSLA、xyz:AAPL、xyz:MSFT、xyz:AMZN、xyz:GOOG、xyz:META、xyz:TSM |
| コモディティ — 金属 | xyz:GOLD、xyz:SILVER、xyz:COPPER、xyz:PLATINUM、xyz:PALLADIUM、xyz:ALUMINIUM |
| コモディティ — エネルギー | xyz:CL(WTI)、xyz:BRENTOIL、xyz:NATGAS、xyz:TTF(EU ガス) |
| コモディティ — 農産物 | xyz:CORN、xyz:WHEAT |
| コモディティ — その他 | xyz:URANIUM |
| 指数 | xyz:SPY |
| 外国為替 | xyz:EUR、xyz:GBP、xyz:JPY |
ユーザーが「NVDA を買う」または「GOLD を取引する」と言った場合は、
xyz:NVDA/xyz:GOLDを使用します。これらは暗号資産ではなく、現実世界の資産です。
⚠️ HIP-3 コモディティ価格の検索
13 のコモディティ市場はすべて HIP-3 ビルダーがデプロイした無期限先物です。 それらのシンボルは xyz: プレフィックスを使用し(例:xyz:GOLD、xyz:CL)、XAU、XAG、WTI のような標準形式ではありません。
コモディティの全リスト: GOLD、SILVER、COPPER、PLATINUM、PALLADIUM、ALUMINIUM、CL(WTI 原油)、BRENTOIL、NATGAS、TTF(EU ガス)、CORN、WHEAT、URANIUM。
重要な注意点: HIP-3 資産は allMids(標準の価格フィード)に含まれません。つまり:
hl_market(coin="xyz:GOLD")は 価格を返さないか、資産を見つけられない可能性がありますhl_market(dex="xyz")はすべてのビルダー市場を一覧表示しますが、中間価格を含まない可能性があります
コモディティ価格を取得する確実な方法は hl_candles です:
# Get latest gold price (use 1h candles, lookback=24 for 24h data)
hl_candles(coin="xyz:GOLD", interval="1h", lookback=24)
# Get latest copper price
hl_candles(coin="xyz:COPPER", interval="1h", lookback=24)
# Get latest silver price
hl_candles(coin="xyz:SILVER", interval="1h", lookback=24)
最新のローソク足の close フィールド = 現在価格。最も古いローソク足の open と最新の close の差から 24 時間の変動が得られます。
プレフィックス付きの名前 — 同じツール
既存のすべてのツールは xyz:TICKER で動作します — プレフィックス付きのコイン名を渡すだけです:
hl_market(coin="xyz:NVDA") # Check NVIDIA stock perp price
hl_market(dex="xyz") # List ALL available RWA/stock perps
hl_orderbook(coin="xyz:NVDA") # Check liquidity
hl_leverage(coin="xyz:NVDA", leverage=3) # Set leverage (auto-isolated)
hl_order(coin="xyz:NVDA", side="buy", size=0.5, price=188) # Limit buy 0.5 NVDA
hl_order(coin="xyz:TSM", side="buy", size=1) # Market buy 1 TSM
hl_cancel(coin="xyz:NVDA", order_id=12345678) # Cancel order
例:ユーザーが「NVIDIA を買う」と言った場合
- NVIDIA = 株式と認識 →
xyz:NVDAを使用 hl_market(coin="xyz:NVDA")— 現在価格、レバレッジ上限を確認hl_leverage(coin="xyz:NVDA", leverage=3)— レバレッジを設定(ビルダー無期限先物は分離マージンを使用)hl_order(coin="xyz:NVDA", side="buy", size=0.5, price=188)— 指値買い注文を出すhl_fills()— 約定したか確認
注意事項
- ビルダー無期限先物(HIP-3)は分離マージンのみを使用します —
hl_leverageがこれを自動的に処理します dexプレフィックス(例:xyz)は、どのビルダーがその無期限先物をデプロイしたかを識別します- すべてのツール(ローソク足、オーダーブック、ファンディングなど)は、プレフィックス付きの名前で同じように動作します
一般的なワークフロー
コモディティ価格の照会
ユーザー:「金価格はいくら?」または「コモディティ価格を見せて」または「原油価格は?」
名前 → シンボルのマッピング:
- 金属:GOLD→
xyz:GOLD、SILVER→xyz:SILVER、COPPER→xyz:COPPER、PLATINUM→xyz:PLATINUM、PALLADIUM→xyz:PALLADIUM、ALUMINIUM→xyz:ALUMINIUM - エネルギー:WTI/原油→
xyz:CL、ブレント→xyz:BRENTOIL、天然ガス→xyz:NATGAS、EU ガス→xyz:TTF - 農産物:トウモロコシ→
xyz:CORN、小麦→xyz:WHEAT - その他:ウラン→
xyz:URANIUM
手順:
- 上記の表を使用してコモディティ名 → HIP-3 シンボルにマッピングします
hl_candles(coin="xyz:GOLD", interval="1h", lookback=24)— 24 時間分の 1 時間足ローソク足を取得します- 現在価格 = 最後のローソク足の
close - 24 時間変動 =
(last_close - first_open) / first_open * 100 - 必要に応じて各コモディティについて繰り返します
コモディティに hl_market() を使用しないでください — HIP-3 資産は allMids に含まれていません。常に hl_candles を使用してください。
流動性に関する注意: CL(WTI)と BRENTOIL が最も取引量が多いです。ALUMINIUM、URANIUM、CORN、WHEAT、TTF は流動性がゼロまたは非常に低い可能性があります — これらを取引する前にユーザーに警告してください。
暗号資産の無期限先物取引(BTC、ETH、SOLなど)
ユーザー:「BTCを買って」または「ETHを5倍でロング」
エージェントのワークフロー:
hl_total_balance()→ 利用可能な資金を確認hl_leverage(coin="BTC", leverage=5)→ レバレッジを設定hl_order(...)→ 注文を発注hl_fills()→ 約定を確認し、結果を報告
株式/RWAの取引(NVIDIA、TESLA、GOLDなど)
ユーザー:「NVIDIAを買って」または「TESLAをショート」
エージェントのワークフロー:
- 資産タイプを検出 → 「NVIDIA」を「xyz:NVDA」に変換
hl_total_balance()→ 利用可能な資金を確認hl_leverage(coin="xyz:NVDA", leverage=10)→ レバレッジを設定hl_order(coin="xyz:NVDA", ...)→ 注文を発注hl_fills()→ 約定を確認し、結果を報告
ポジションの決済
ユーザー:「BTCのポジションを決済して」
エージェントのワークフロー:
hl_account()→ 現在のポジションサイズを取得hl_order(coin="BTC", side="sell", size=X, reduce_only=true)→ ポジションを決済hl_fills()→ 損益を報告
グリッド/マーケットメイキングボットのループ(サービスポートモード)
FastAPI/ワーカーサービス内で常時稼働するボット向け:
get_open_orders(address)で未約定注文を読み取るget_user_fills(address)で約定を読み取る- 「注文が約定した」イベントの信頼できる情報源として約定を使用する
- 約定時:
- 買いの約定 → 次のグリッドレベルで対になる売りを発注
- 売りの約定 → 前のグリッドレベルで対になる買いを発注
- 定期的な照合を維持する:ローカル状態と取引所の未約定注文
重要: 「未約定注文から注文が消えた」ことを約定済みとみなさないでください。キャンセル、拒否、期限切れを意味する場合もあります。必ず get_user_fills(必要に応じて get_order_status)で確認してください。
現物取引
ユーザー:「HYPEトークンを100枚買って」
エージェントのワークフロー:
hl_total_balance()→ 利用可能なUSDCを確認hl_spot_order(coin="HYPE", side="buy", size=100)→ トークンを購入hl_balances()→ 購入を確認
資金の入金/出金
入金:
ユーザー:「Hyperliquidに500 USDCを入金して」
エージェント:hl_deposit(amount=500) → 完了
出金:
ユーザー:「Arbitrumウォレットに100ドルを出金して」
エージェント:hl_withdraw(amount=100) → 完了(5分、手数料1 USDC)
注文タイプ
| タイプ | パラメータ | 動作 |
|---|---|---|
| 指値(GTC) | order_type="limit" | 約定またはキャンセルされるまで板に残る |
| 成行(IoC) | price を省略 | ミッド +/- 3%のスリッページで即時約定またはキャンセル |
| Post-Only(ALO) | order_type="alo" | スプレッドをクロスする場合は拒否される |
| Fill-or-Kill | order_type="ioc" + 明示的な価格 | 指定価格で即時に約定、またはキャンセル |
| ストップロス | tpsl="sl" を指定した hl_tpsl_order | 価格が下落したときに発動し、損失を限定 |
| テイクプロフィット | tpsl="tp" を指定した hl_tpsl_order | 価格が上昇したときに発動し、利益を確定 |
ストップロス注文とテイクプロフィット注文
ストップロス注文とテイクプロフィット注文は、市場が指定した価格レベルに達したときに自動的に執行されるトリガー注文です。これらを使用すると、24時間365日ポジションを監視することなく、リスクを管理し利益を確定できます。
仕組み
- 注文の発注:トリガー価格を指定して休眠中のトリガー注文を発注します
- 監視:注文は非アクティブのまま、市場価格を監視します
- トリガー:市場価格が
trigger_pxに達すると、注文が有効化されます - 執行:注文は即座に執行されます(成行注文または指値注文として)
ストップロス(SL)
ユースケース:価格が不利な方向に動いた場合に自動的に決済することで、ポジションの損失を限定します。
例:BTCを95,000ドルでロングしており、90,000ドルを下回ったら決済したい場合。
hl_tpsl_order(coin="BTC", side="sell", size=0.1, trigger_px=90000, tpsl="sl")
- trigger_px=90000:BTCが90kドルまで下落したときに有効化されます
- side="sell":ロングポジションを決済します
- tpsl="sl":これをストップロス注文としてマークします
- デフォルト:トリガー時に成行注文として執行されます(即時決済)
テイクプロフィット (TP)
ユースケース: 価格が利益目標に達したときに自動的に手仕舞うことで、利益を確定します。
例: ETH を $3,000 でロングしており、$3,500 でテイクプロフィットしたい場合。
hl_tpsl_order(coin="ETH", side="sell", size=1.0, trigger_px=3500, tpsl="tp")
- trigger_px=3500: ETH が $3,500 まで上昇すると発動します
- side="sell": ロングポジションを決済します
- tpsl="tp": これをテイクプロフィット注文としてマークします
- デフォルト: 発動時に成行注文として執行されます (即時決済)
成行と指値の執行
デフォルトでは、TP/SL 注文は発動時に成行注文として執行されます (即時約定、スリッページの可能性あり)。
より細かく制御するには、発動時に指値注文を使用します:
hl_tpsl_order(
coin="BTC",
side="sell",
size=0.1,
trigger_px=90000,
tpsl="sl",
is_market=false,
limit_px=89900
)
- trigger_px=90000: $90k で発動します
- is_market=false: 指値注文を使用します (成行ではなく)
- limit_px=89900: 発動時の指値価格 ($89,900)
トレードオフ: 指値注文はスリッページを回避できますが、値動きの速い市場では約定しない可能性があります。
ショートポジション
ショートポジションの場合は、side パラメータを逆にします:
ショートのストップロス (価格が上昇したら手仕舞う):
hl_tpsl_order(coin="BTC", side="buy", size=0.1, trigger_px=98000, tpsl="sl")
ショートのテイクプロフィット (価格が下落したら手仕舞う):
hl_tpsl_order(coin="BTC", side="buy", size=0.1, trigger_px=92000, tpsl="tp")
ベストプラクティス
- 常に
reduce_only=trueを使用する (デフォルト) - TP/SL がポジションを決済するだけで、新しいポジションを開かないことを保証します - サイズをポジションに合わせる - TP/SL のサイズはポジションサイズ以下にしてください
- TP と SL の両方を設定する - 上振れ (テイクプロフィット) と下振れ (ストップロス) の両方を保護します
- ボラティリティを考慮する - ストップを厳しく設定しすぎると、通常の価格変動で発動してしまいます
- 未約定注文を確認する -
hl_open_ordersを使用して、TP/SL 注文が有効であることを確認します
よくある間違い
| 間違い | 問題 | 解決策 |
|---|---|---|
| side が逆 | SL が売るのではなく買ってしまう | ロングポジション → SL/TP には side="sell" |
| サイズが大きすぎる | TP/SL が新しいポジションを開いてしまう | size ≤ ポジションサイズに設定し、reduce_only=true を使用する |
| トリガー = 指値 | 価格についての混乱 | trigger_px = 発動するタイミング、limit_px = 執行価格 |
| レバレッジで SL なし | 清算リスク | レバレッジポジションには常にストップロスを設定する |
パープスとスポット
| 項目 | パープス | スポット |
|---|---|---|
| ツール | hl_order | hl_spot_order |
| レバレッジ | あり (資産の上限まで) | なし |
| ファンディング | 毎時間支払い/受取り | なし |
| 空売り | あり (ネイティブ) | 売るにはトークンを保有している必要がある |
| ポジション確認 | hl_account | hl_balances |
リスク管理
- 取引前に常にアカウントの状態を確認する — 証拠金の使用状況と既存のポジションを把握しましょう
- 新しいポジションを開く前にレバレッジを明示的に設定する (デフォルトは異なる場合があります)
- 決済時は reduce_only を使用する — 誤って反対方向のポジションを開かないようにしましょう
- ファンディングレートを監視する — 高い正のファンディングは、ロングの保有コストが高いことを意味します
- 小さなサイズから始める — Hyperliquid には資産ごとの最小注文サイズがあります (szDecimals を確認してください)
- Post-only (ALO) 注文 は手数料を節約します (メイカーとテイカーのレート)
- 成行注文後に約定を確認する — IoC 注文は部分約定したり、まったく約定しない場合があります
ビルダーコード (プラットフォーム手数料)
Starchild は、このスキルを通じて発注されるすべてのパープおよびスポット注文に対して、2 bps (0.02%) のビルダー手数料を自動的に徴収します。この手数料はプラットフォームの運営を支えるものであり、Hyperliquid 自体の取引手数料とは別に発生します。
仕組み:
- ユーザーが初めて注文を発注する際、スキルは
ApproveBuilderFeeアクションを通じて Starchild のビルダーアドレスを自動承認します (ユーザーのメインウォレットによって署名されます) - 以降のすべての注文には
builderパラメータが含まれます:{"b": "0x2c5320F40305fFC933385c6DCec5493fbA7b98b8", "f": 20}(20 tenths-of-bps = 2 bps) - 手数料はクォート/担保資産 (USDC) で徴収され、ビルダーの紹介報酬として蓄積されます
- ユーザーは app.hyperliquid.xyz でいつでも承認を解除できます
ツール:
hl_approve_builder— Starchild ビルダーを手動で承認します (通常は初回注文時に自動で行われます)hl_builder_status— 承認ステータスを確認し、未請求のビルダー報酬を表示します
ビルダー承認が失敗した場合: 注文は builder パラメータなしで引き続き実行されます。エラーはログに記録されますが、取引はブロックされません。
よくあるエラー
| エラー | 対処法 |
|---|---|
| "Unknown perp asset" | コイン名を確認してください。暗号資産: "BTC"、"ETH"。株式: "xyz:NVDA"、"xyz:TSLA" |
| "Insufficient margin" | hl_total_balance で資金を確認してください。サイズを減らすか、USDC を追加してください |
| "Order must have minimum value of $10" | サイズを増やしてください。計算式: size × price ≥ $10 |
| "Size too small" | BTC の最小値は通常 0.001 です。資産の szDecimals を確認してください |
| "Order would cross" | ALO 注文が拒否されました。代わりに通常の指値注文を使用してください |
| "User or wallet does not exist" | まず hl_deposit(amount=500) で USDC を入金してください |
| "Minimum deposit is 5 USDC" | Hyperliquid では入金ごとに最低 $5 が必要です |
| "Policy violation" | wallet-policy スキルをロードし、ワイルドカードポリシーを提案してください |
| "Action disabled when unified account is active" | 統合モード (デフォルト) では送金がブロックされます。注文を直接発注してください |
| "'side' must be one of: buy/sell ..." | 認識されない方向を渡しました。"buy" または "sell" を使用してください。上記の Side パラメータの規約 を参照してください |