derivatives-trading-options について
Binance Derivatives-trading-options は、Binance のオプションを管理するトレーダー向けのスキルです。市場データ、口座・ポジション照会、注文操作に加え、ブロック取引やマーケットメイカー保護設定にも対応します。
主な機能
- 01オプション口座とポジションの照会
- 02価格、板、ローソク足の取得
- 03オプション注文の作成・照会・キャンセル
- 04ブロック取引注文の管理
- 05注文の一括発注・一括キャンセル
- 06マーケットメイカー保護と自動キャンセルの設定
活用シーン
- 01オプションポジションと証拠金口座の確認
- 02オプションのマーク価格と取引データを取得
- 03オプション注文とブロック取引を管理
- 04マーケットメイカー保護や自動キャンセルを設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ binance/ binance-skills-hub --skill derivatives-trading-optionsインストール後、Claude Code で/derivatives-trading-optionsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdLICENSE.mdreferences/authentication.md詳細
Binance デリバティブ取引オプションスキル
認証済み API エンドポイントを使用して Binance でデリバティブ取引オプションのリクエストを行います。一部のエンドポイントでは API キーとシークレットキーが必要です。結果は JSON 形式で返します。
クイックリファレンス
| エンドポイント | 説明 | 必須 | 任意 | 認証 |
|---|---|---|---|---|
/eapi/v1/bill (GET) | 資金入金フロー(USER_DATA) | currency | recordId, startTime, endTime, limit, recvWindow | はい |
/eapi/v1/marginAccount (GET) | オプション証拠金アカウント情報(USER_DATA) | なし | recvWindow | はい |
/eapi/v1/block/order/execute (POST) | ブロック取引注文の承認(TRADE) | blockOrderMatchingKey | recvWindow | はい |
/eapi/v1/block/order/execute (GET) | ブロック取引の詳細を照会(USER_DATA) | blockOrderMatchingKey | recvWindow | はい |
/eapi/v1/block/user-trades (GET) | アカウントのブロック取引一覧(USER_DATA) | なし | endTime, startTime, underlying, recvWindow | はい |
/eapi/v1/block/order/create (DELETE) | ブロック取引注文のキャンセル(TRADE) | blockOrderMatchingKey | recvWindow | はい |
/eapi/v1/block/order/create (PUT) | ブロック取引注文の有効期限を延長(TRADE) | blockOrderMatchingKey | recvWindow | はい |
/eapi/v1/block/order/create (POST) | 新規ブロック取引注文(TRADE) | liquidity, legs | recvWindow | はい |
/eapi/v1/block/order/orders (GET) | ブロック取引注文を照会(TRADE) | なし | blockOrderMatchingKey, endTime, startTime, underlying, recvWindow | はい |
/eapi/v1/ticker (GET) | 24時間のティッカー価格変動統計 | なし | symbol | いいえ |
/eapi/v1/time (GET) | サーバー時刻を確認 | なし | なし | いいえ |
/eapi/v1/exchangeInfo (GET) | 取引所情報 | なし | なし | いいえ |
/eapi/v1/exerciseHistory (GET) | 過去の権利行使記録 | なし | underlying, startTime, endTime, limit | いいえ |
/eapi/v1/klines (GET) | Kライン/ローソク足データ | symbol, interval | startTime, endTime, limit | いいえ |
/eapi/v1/openInterest (GET) | 未決済建玉 | underlyingAsset, expiration | なし | いいえ |
/eapi/v1/mark (GET) | オプションのマーク価格 | なし | symbol | いいえ |
/eapi/v1/depth (GET) | オーダーブック | symbol | limit | いいえ |
/eapi/v1/blockTrades (GET) | 直近のブロック取引一覧 | なし | symbol, limit | いいえ |
/eapi/v1/trades (GET) | 直近の取引一覧 | symbol | limit | いいえ |
/eapi/v1/index (GET) | インデックス価格 | underlying | なし | いいえ |
/eapi/v1/ping (GET) | 接続テスト | なし | なし | いいえ |
/eapi/v1/countdownCancelAllHeartBeat (POST) | すべての未約定注文の自動キャンセル(キルスイッチ)ハートビート(TRADE) | underlyings | recvWindow | はい |
/eapi/v1/countdownCancelAll (GET) | すべての未約定注文の自動キャンセル(キルスイッチ)設定を取得(TRADE) | なし | underlying, recvWindow | はい |
/eapi/v1/countdownCancelAll (POST) | すべての未約定注文の自動キャンセル(キルスイッチ)設定を指定(TRADE) | underlying, countdownTime | recvWindow | はい |
/eapi/v1/mmp (GET) | マーケットメイカー保護設定を取得(TRADE) | なし | underlying, recvWindow | はい |
/eapi/v1/mmpReset (POST) | マーケットメイカー保護設定をリセット(TRADE) | なし | underlying, recvWindow | はい |
/eapi/v1/mmpSet (POST) | マーケットメイカー保護設定を指定(TRADE) | なし | underlying, windowTimeInMilliseconds, frozenTimeInMilliseconds, qtyLimit, deltaLimit, recvWindow | はい |
/eapi/v1/userTrades (GET) | アカウントの取引一覧(USER_DATA) | なし | symbol, fromId, startTime, endTime, limit, recvWindow | はい |
/eapi/v1/allOpenOrdersByUnderlying (DELETE) | 原資産ごとのすべてのオプション注文をキャンセル(TRADE) | underlying | recvWindow | はい |
/eapi/v1/batchOrders (DELETE) | 複数のオプション注文をキャンセル(TRADE) | symbol | orderIds, clientOrderIds, recvWindow | はい |
/eapi/v1/batchOrders (POST) | 複数の注文を発注(TRADE) | orders | recvWindow | はい |
/eapi/v1/order (DELETE) | オプション注文をキャンセル(TRADE) | symbol | orderId, clientOrderId, recvWindow | はい |
/eapi/v1/order (POST) | 新規注文(TRADE) | symbol, side, type, quantity | price, timeInForce, reduceOnly, postOnly, newOrderRespType, clientOrderId, isMmp, recvWindow | はい |
/eapi/v1/order (GET) | 単一注文を照会(TRADE) | symbol | orderId, clientOrderId, recvWindow | はい |
/eapi/v1/allOpenOrders (DELETE) | 特定のシンボルのすべてのオプション注文をキャンセル(TRADE) | symbol | recvWindow | はい |
/eapi/v1/position (GET) | オプションのポジション情報(USER_DATA) | なし | symbol, recvWindow | はい |
/eapi/v1/openOrders (GET) | 現在の未約定オプション注文を照会(USER_DATA) | なし | symbol, orderId, startTime, endTime, recvWindow | はい |
/eapi/v1/historyOrders (GET) | オプション注文履歴を照会(TRADE) | symbol | orderId, startTime, endTime, limit, recvWindow | はい |
/eapi/v1/commission (GET) | ユーザーのコミッション | なし | recvWindow | はい |
/eapi/v1/exerciseRecord (GET) | ユーザーの権利行使記録(USER_DATA) | なし | symbol, startTime, endTime, limit, recvWindow | はい |
/eapi/v1/listenKey (DELETE) | ユーザーデータストリームを閉じる(USER_STREAM) | なし | なし | いいえ |
/eapi/v1/listenKey (PUT) | ユーザーデータストリームのキープアライブ(USER_STREAM) | なし | なし | いいえ |
/eapi/v1/listenKey (POST) | ユーザーデータストリームを開始(USER_STREAM) | なし | なし | いいえ |
パラメーター
共通パラメーター
- currency:資産の種類。現時点では USDT のみサポートしています
- recordId:指定した recordId 以降のデータを返します。デフォルトでは最新のデータを返します。例:100000(例:1)
- startTime:開始時刻。例:1593511200000(例:1623319461670)
- endTime:終了時刻。例:1593512200000(例:1641782889000)
- limit:返される結果セットの数。デフォルト:100、最大:1000(例:100)
- recvWindow:(例:5000)
- blockOrderMatchingKey:
- underlying:原資産。例:BTCUSDT
- liquidity:テイカーまたはメイカー
- legs:最大 1(単一レッグのみサポート)。JSON 形式のレッグパラメーターのリスト。例:eapi/v1/block/order/create?orders=[{"symbol":"BTC-210115-35000-C", "price":"100","quantity":"0.0002","side":"BUY","type":"LIMIT"}]
- blockOrderMatchingKey:指定すると、blockOrderMatchingKey に関連付けられた特定のブロック取引を返します
- symbol:オプション取引ペア。例:BTC-200730-9000-C
- symbol:オプション取引ペア。例:BTC-200730-9000-C
- interval:時間間隔
- underlyingAsset:原資産。例:ETH/BTC
- expiration:有効期限。例:221225
- underlying:オプションの原資産。例:BTCUSDT
- underlyings:オプションの原資産シンボル。例:BTCUSDT,ETHUSDT
- countdownTime:ミリ秒単位のカウントダウン時間(例:1 秒の場合は 1,000)。0 にするとタイマーが無効になります。負の値(例:-10000)は受け付けられません。最小値は 5,000 です
- windowTimeInMilliseconds:ミリ秒単位の MMP 間隔。範囲:(0,5000]
- frozenTimeInMilliseconds:ミリ秒単位の MMP 凍結時間。0 に設定した場合、手動でリセットする必要があります
- qtyLimit:数量の上限(例:1.0)
- deltaLimit:ネットデルタの上限(例:1.0)
- fromId:取得を開始する取引 ID。デフォルトでは最新の取引を取得します。例:4611875134427365376(例:1)
- orderIds:注文 ID。例:[4611875134427365377,4611875134427365378]
- clientOrderIds:ユーザー定義の注文 ID。例:["my_id_1","my_id_2"]
- orderId:注文 ID。例:4611875134427365377(例:1)
- clientOrderId:ユーザー定義の注文 ID。例:10000(例:1)
- quantity:注文数量(例:1.0)
- price:注文価格(例:1.0)
- reduceOnly:縮小のみ(デフォルト:false)(例:false))
- postOnly:ポストオンリー(デフォルト:false)(例:false))
- isMmp:マーケットメイカー保護注文かどうか。true/false
- orders:注文リスト。最大 10 件
列挙型
- side:BUY | SELL
- type:LIMIT
- timeInForce:GTC | IOC | FOK | GTX
- newOrderRespType:ACK | RESULT
認証
認証が必要なエンドポイントでは、Binance API の認証情報を指定する必要があります。 必要な認証情報:
- apiKey:Binance API キー(ヘッダー用)
- secretKey:Binance API シークレット(署名用)
ベース URL:
- Mainnet:https://eapi.binance.com
- Testnet:https://testnet.binancefuture.com
セキュリティ
認証情報の共有
ユーザーはさまざまな方法で Binance API の認証情報を提供できます。エージェントは最初の2つの方法で認証情報を自動的に取得しようとしますが、ユーザーは認証情報を設定したこと、または .env ファイルに保存したことをエージェントに明示的に伝えることもできます。その場合、エージェントはそのファイルを再読み込みします。エージェントは最初の2つの方法を使って、ユーザーの確認なしに HTTP リクエストを行うこともできます。
- 環境変数
次の特定の変数のみを検索します(環境変数全体を絶対に出力しないでください)。
許可されている環境変数
- Mainnet:
BINANCE_API_KEYおよびBINANCE_SECRET_KEY - Testnet:
BINANCE_TESTNET_API_KEYおよびBINANCE_TESTNET_SECRET_KEY
生のキーがエージェントのコンテキストに入らないよう、1回の exec 呼び出しで読み取り、使用します:
KEY="$BINANCE_API_KEY"
SECRET="$BINANCE_SECRET_KEY"
response=$(curl -s -X GET "$URL" \
-H "X-MBX-APIKEY: $KEY" \
--data-urlencode "param1=value1")
echo "$response"
環境変数は、OpenClaw の起動前に設定する必要があります。プロセスの起動時に継承されるため、実行中のインスタンスに注入することはできません。再起動せずに認証情報を追加または更新する必要がある場合は、シークレットファイルを使用してください(オプション2を参照)。
- シークレットファイル(.env)
~/.openclaw/secrets.env 、~/.env、またはワークスペース内の .env ファイルを確認します。個々のキーは grep で読み取り、ファイル全体を source しないでください:
# Try all credential locations in order
API_KEY=$(grep '^BINANCE_API_KEY=' ~/.openclaw/secrets.env 2>/dev/null | cut -d= -f2-)
SECRET_KEY=$(grep '^BINANCE_SECRET_KEY=' ~/.openclaw/secrets.env 2>/dev/null | cut -d= -f2-)
# Fallback: search .env in known directories (KEY=VALUE then raw line format)
for dir in ~/.openclaw ~; do
[ -n "$API_KEY" ] && break
env_file="$dir/.env"
[ -f "$env_file" ] || continue
# Read first two lines
line1=$(sed -n '1p' "$env_file")
line2=$(sed -n '2p' "$env_file")
# Check if lines contain '=' indicating KEY=VALUE format
if [[ "$line1" == *=* && "$line2" == *=* ]]; then
API_KEY=$(grep '^BINANCE_API_KEY=' "$env_file" 2>/dev/null | cut -d= -f2-)
SECRET_KEY=$(grep '^BINANCE_SECRET_KEY=' "$env_file" 2>/dev/null | cut -d= -f2-)
else
# Treat lines as raw values
API_KEY="$line1"
SECRET_KEY="$line2"
fi
done
このファイルは OpenClaw を再起動せずにいつでも更新でき、キーは呼び出しごとに最新の状態で読み取られます。ユーザーは、変数を設定した、または .env ファイルに保存したことを伝えることができます。その場合は、そのファイルを再読み込みします。
- インラインファイル
次の形式で内容を記述したファイルを送信します:
abc123...xyz
secret123...key
- 特定の変数名を指定せずに
printenv、env、export、またはsetを実行しないでください envファイルに対して、特定のキーにアンカーを設定せずにgrepを実行しないでください('^VARNAME=')- シェル環境にシークレットファイルを source しないでください(
source .envまたは. .env) - 現在のタスクに明示的に必要な認証情報のみを読み取ってください
- 出力や返信で生の認証情報を表示または記録しないでください
- 実際の認証情報が含まれている場合、
TOOLS.mdをバージョン管理にコミットしないでください。.gitignoreに追加してください
API キーとシークレットを絶対に開示しない
API キーとシークレットのファイルの場所を絶対に開示しないでください。
API キーとシークレットを Mainnet および Testnet 以外のウェブサイトに絶対に送信しないでください。
シークレット全体を絶対に表示しない
ユーザーに認証情報を表示する場合:
- API キー: 先頭5文字と末尾4文字を表示します:
su1Qc...8akf - シークレットキー: 常にマスクし、末尾5文字のみを表示します:
***...aws1
認証情報を尋ねられたときの応答例: アカウント:main API キー:su1Qc...8akf シークレット:***...aws1 環境:Mainnet
アカウントの一覧表示
アカウントを一覧表示する場合は、名前と環境のみを表示し、キーは絶対に表示しないでください: Binance アカウント:
- main(Mainnet/Testnet)
- testnet-dev(Testnet)
- futures-keys(Mainnet)
Mainnet でのトランザクション
Mainnet でトランザクションを実行する場合は、続行する前に「CONFIRM」と入力するようユーザーに求め、必ず確認を取ってください。
Binance アカウント
main
- API キー:your_mainnet_api_key
- シークレット:your_mainnet_secret
- Testnet:false
testnet-dev
- API キー:your_testnet_api_key
- シークレット:your_testnet_secret
- Testnet:true
TOOLS.md の構成
## Binance Accounts
### main
- API Key: abc123...xyz
- Secret: secret123...key
- Testnet: false
- Description: Primary trading account
### testnet-dev
- API Key: test456...abc
- Secret: testsecret...xyz
- Testnet: true
- Description: Development/testing
### futures-keys
- API Key: futures789...def
- Secret: futuressecret...uvw
- Testnet: false
- Description: Futures trading account
エージェントの動作
- 認証情報を求められた場合:シークレットをマスクします(末尾5文字のみ表示)
- アカウントを一覧表示する場合:名前と環境を表示し、キーは絶対に表示しません
- アカウントの選択:曖昧な場合は質問し、デフォルトで main を使用します
- Mainnet でトランザクションを行う場合は、「CONFIRM」と入力して続行するようユーザーに求め、事前に確認を取ります
- 新しい認証情報:名前、環境、署名モードを尋ねます
- リクエストに署名が必要で、そのリクエストが注文ではなく、API キーが
mainnetキーまたはtestnetキーとして説明されていない場合は、ユーザーに尋ねずに異なるベース URL へリクエストを試み、動作するか確認します。動作した場合は、対応する環境とともにキーを保存します。
新しいアカウントの追加
ユーザーがインラインファイルまたはメッセージで新しい認証情報を提供した場合:
- アカウント名を尋ねます
- Mainnet か Testnet かを尋ねます
- マスクした表示で確認しながら、
TOOLS.mdに保存します
リクエストの署名
署名が必要な取引エンドポイントでは、次の手順に従います。
- 最初にキーの種類を検出し、署名する前にシークレットキーの形式を確認します。
- タイムスタンプ(Unix ミリ秒)を含むすべてのパラメーターを使って、クエリー文字列を作成します。
- RFC 3986 に従い、パラメーターを UTF-8 でパーセントエンコードします。
- アカウント設定に応じて、シークレットキーを使い、HMAC SHA256、RSA、または Ed25519 でクエリー文字列に署名します。
- クエリー文字列に署名を追加します。
X-MBX-APIKEYヘッダーを含めます。
それ以外の場合は、手順 4~6 を実行しないでください。
User Agent ヘッダー
次の文字列を含む User-Agent ヘッダーを指定します。binance-derivatives-trading-options/1.1.0 (Skill)
実装の詳細については、references/authentication.md を参照してください。