Communityコーディング&開発github.com

リスクゲート(MPUガンドリング版)

CEX(Bybit V5)またはDEX(Hyperliquid)で注文を送信する前に使用します。オーナーから書面による制限を聞き出し、アカウントからリアルタイムでチケットをサイジングし、PASSまたはFAILを返します。注文は一切送信しません。

リスクゲート(MPUガンドリング版) とは?

このスキルは、取引ボットが注文を送信する前にリスクチェックを強制するゲートウェイです。CEX(Bybit V5)とDEX(Hyperliquid)の両方をサポートし、オーナーとのインタビューを通じてリスク制限(最大損失率、レバレッジ上限、許可市場など)を`risk-limits.md`に書き込みます。各チケットごとに、ライブアカウント残高、ポジション、オーダーブックを読み取り、ストレス損失を計算して制限内か検証します。条件に違反する場合はFAILとして拒否し、問題なければPASSとして詳細をファイルに記録します。このスキルは決して注文を送信せず、資産も移動しません。秘密鍵は環境変数またはプラットフォームのシークレットストアにのみ保存され、チャットやリポジトリには決して貼り付けられません。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aabrur/trading-agent-mpu-gandring/tree/HEAD/skills/risk-gate

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

リスクゲート

リスクのサイジングと拒否権。リスクは注文の送信、変更、キャンセルを決して行いません。注文を送信するのは実行シートのみで、PASSの後に一度だけ行われます。

1. セットアップインタビュー(一度に一つの質問をする)

すべての回答がワーキングフォルダ内の risk-limits.md に書き込まれるまで、いかなるチケットにも署名しないでください。

  1. 取引所:CEX(Bybit linear USDT perps)それとも DEX(Hyperliquid perps)? テストネットが先か、メインネットか?
  2. 読み取りアクセス:残高、ポジション、オープンオーダーを読み取れるアカウントはどれですか? 読み取りスコープのみ必要です。トレードできるキーは実行シートに属し、環境変数から読み取られます。チャットに貼り付けたり、リポジトリにコミットしたりしないでください。
  3. チケットあたりの最大損失:ストップがヒットした場合のエクイティに対する割合。推奨デフォルトは1%。5%を超える場合は、1回の警告と書面による確認が必要です。
  4. 全ポジションにわたる最大オープンリスク:推奨デフォルトは3%。
  5. 最大ポジション数:推奨デフォルトは2。
  6. 最大レバレッジ:推奨デフォルトは3倍。
  7. 許可市場(正確なシンボル。例:Bybitの場合はETHUSDT、SOLUSDT、Hyperliquidの場合はETH、SOL)。
  8. デイリー損失ストップ:当日開始時のエクイティに対する割合。推奨デフォルトは5%。ヒットすると、自動取引はオーナーが書面でリセットするまで一時停止されます。
  9. 送信時の最大スリッページ:推奨デフォルトは10ベーシスポイント。

承認モード(各チケットを承認するか、すべてのPASSを自動送信するか)は order-execution で一度尋ねられます。ここでは尋ねません。自動モードでは、ステップ8のデイリー損失ストップが先に書き込まれている必要があります。

回答、日付、取引所を risk-limits.md に書き込んでください。新しい制限が古いものを置き換えます。決して混在させないでください。

2. すべてのチケット

チケットには、市場、サイド、エントリータイプと価格、ストップ価格、サイズまたはリスク予算、およびそれが属する戦略サイドとそのバーのクローズ時間を記載する必要があります。

サイジングの直前に、ライブで以下を読み取ってください:

  • アカウント:エクイティ、利用可能証拠金、オープンポジション、オープンオーダー。
    • Bybit:GET /v5/account/wallet-balance、GET /v5/position/list?category=linear、GET /v5/order/realtime?category=linear。
    • Hyperliquid:POST /info に clearinghouseState と openOrders をアカウントアドレスと共に。
  • 銘柄:最小数量、数量ステップ、ティックサイズ、最小想定元本、最大レバレッジ。
    • Bybit:GET /v5/market/instruments-info?category=linear&symbol=...。
    • Hyperliquid:POST /info に meta(szDecimals、maxLeverage)を。
  • 板情報:最良気配値(bid/ask)。60秒以上経過している場合は拒否。

サイジング:

stressed_loss = qty * |entry - stop| + qty * entry * taker_fee * 2 + qty * entry * slippage
qty = floor_to_step(max_loss_usd / per_unit_stressed_loss)

取引所の実際のテイカーフィーを使用してください(Bybit linearデフォルト0.00055、Hyperliquidは自分のフィーティアに従う)。

以下のいずれかに該当する場合はFAIL:

  • ストップがない、またはストップがエントリーの逆側にある。
  • 市場が許可リストにない。
  • 丸め後の数量が取引所の最小値を下回る、または損失上限を超えずに最小想定元本を満たせない。上限に合わせるために切り上げないでください。
  • 選択したレバレッジでの証拠金が必要証拠金を超える。
  • レバレッジが上限を超えている、ポジション数が上限を超える、または総オープンリスクが上限を超える。
  • デイリー損失ストップが既にヒットしている。
  • 戦略サイドがライブ板でキャンセルされている(価格が無効化範囲を超えた)。
  • アカウントまたは板情報の読み取りに失敗した、または古い。古いデータは決して使用されません。

PASSの場合、risk/<UTC time>-<symbol>-<side>-pass.md というファイルに以下の内容を書き込みます:入力値、ライブ読み取り値とそのUTC時刻、数量、ストップ、レバレッジ、USDおよびエクイティに対する割合でのストレス損失、チケットID。FAILの場合は、同じ内容に理由を追加して書き込みます。

3. 決して変わらないルール

  • 注文を決して送信しない。資金を決して移動しない。秘密鍵を要求したり表示したりしない。
  • 利益の約束はしない。未実現損益は利益ではありません。入金は利益ではありません。
  • ボット間の合意は証拠になりません。遊休キャッシュは取引の理由になりません。
  • 送信結果が不明な場合、取引所の記録が読み取られるまで再送信しません。
  • 秘密情報は環境変数またはプラットフォームのシークレットストアにのみ存在し、リポジトリには決して保存されません。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

関連スキル