algo について
Binance の algo スキルは、Binance API でアルゴ注文を管理するトレーダー向けです。現物・先物の TWAP、先物の VP 注文、注文照会に対応し、認証が必要な操作では API 認証情報を使います。
主な機能
- 01現物・先物の TWAP 注文
- 02先物の VP 注文
- 03アルゴ注文の現状・履歴照会
- 04サブ注文の照会とキャンセル
- 05API 認証情報による認証
活用シーン
- 01Binance で TWAP 注文を出す
- 02緊急度を指定して先物 VP 注文を出す
- 03アルゴ注文とサブ注文の状態確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ binance/ binance-skills-hub --skill algoインストール後、Claude Code で/algoを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdLICENSE.mdreferences/authentication.md詳細
Binance アルゴリズム取引スキル
認証済み API エンドポイントを使用して、Binance でアルゴリズム取引のリクエストを実行します。一部のエンドポイントでは API キーとシークレットキーが必要です。結果は JSON 形式で返されます。
クイックリファレンス
| エンドポイント | 説明 | 必須 | 任意 | 認証 |
|---|---|---|---|---|
/sapi/v1/algo/futures/order (DELETE) | アルゴ注文のキャンセル(TRADE) | algoId | recvWindow | はい |
/sapi/v1/algo/futures/openOrders (GET) | 現在のアルゴ未約定注文を照会(USER_DATA) | なし | recvWindow | はい |
/sapi/v1/algo/futures/historicalOrders (GET) | アルゴ注文履歴を照会(USER_DATA) | なし | symbol, side, startTime, endTime, page, pageSize, recvWindow | はい |
/sapi/v1/algo/futures/subOrders (GET) | サブ注文を照会(USER_DATA) | algoId | page, pageSize, recvWindow | はい |
/sapi/v1/algo/futures/newOrderTwap (POST) | 時間加重平均価格(Twap)の新規注文(TRADE) | symbol, side, quantity, duration | positionSide, clientAlgoId, reduceOnly, limitPrice, recvWindow | はい |
/sapi/v1/algo/futures/newOrderVp (POST) | 出来高参加率(VP)の新規注文(TRADE) | symbol, side, quantity, urgency | positionSide, clientAlgoId, reduceOnly, limitPrice, recvWindow | はい |
/sapi/v1/algo/spot/order (DELETE) | アルゴ注文のキャンセル(TRADE) | algoId | recvWindow | はい |
/sapi/v1/algo/spot/openOrders (GET) | 現在のアルゴ未約定注文を照会(USER_DATA) | なし | recvWindow | はい |
/sapi/v1/algo/spot/historicalOrders (GET) | アルゴ注文履歴を照会(USER_DATA) | なし | symbol, side, startTime, endTime, page, pageSize, recvWindow | はい |
/sapi/v1/algo/spot/subOrders (GET) | サブ注文を照会(USER_DATA) | algoId | page, pageSize, recvWindow | はい |
/sapi/v1/algo/spot/newOrderTwap (POST) | 時間加重平均価格(Twap)の新規注文(TRADE) | symbol, side, quantity, duration | clientAlgoId, limitPrice | はい |
パラメーター
共通パラメーター
- algoId:例:14511(例:1)
- recvWindow:(例:5000)
- symbol:取引シンボル。例:BTCUSDT(例:BTCUSDT)
- side:BUY または SELL(例:BUY)
- startTime:ミリ秒単位。例:1641522717552(例:1623319461670)
- endTime:ミリ秒単位。例:1641522526562(例:1641782889000)
- page:デフォルトは 1(例:1)
- pageSize:最小 1、最大 100。デフォルトは 100(例:100)
- symbol:取引シンボル。例:BTCUSDT(例:BTCUSDT)
- side:取引サイド(BUY または SELL)(例:BUY)
- positionSide:片方向モードではデフォルトは
BOTH、ヘッジモードではLONGまたはSHORTです。ヘッジモードでは必ず送信してください。(例:BOTH) - quantity:基軸資産の数量。注文ごとの最大想定元本は、シンボルに応じて 200k、2mm、または 10mm です。注文が注文ごとの最大想定元本を超える場合は、注文サイズを小さくしてください。(例:1.0)
- duration:TWAP 注文の継続時間(秒)。[300, 86400](例:5000)
- clientAlgoId:アルゴ注文間で一意の ID(長さは 32 文字である必要があります)。送信されない場合は、デフォルト値が設定されます。(例:1)
- reduceOnly:「true」または「false」。デフォルトは「false」です。ヘッジモードでは送信できません。ポジションを建てる際も送信できません。
- limitPrice:注文の指値価格。送信されない場合、デフォルトで成行価格で注文します。(例:1.0)
- urgency:現在の執行速度の相対的な速さを表します。列挙値:LOW、MEDIUM、HIGH(例:LOW)
認証
認証が必要なエンドポイントでは、Binance API 認証情報を指定する必要があります。 必要な認証情報:
- apiKey:Binance API キー(ヘッダー用)
- secretKey:Binance API シークレット(署名用)
ベース URL:
- メインネット:https://api.binance.com
セキュリティ
認証情報の共有
ユーザーは、さまざまな方法で Binance API の認証情報を提供できます。エージェントは最初の 2 つの方法を使って認証情報を自動的に取得しますが、認証情報を設定済み、または .env ファイルに保存済みであることをエージェントに明示的に伝えることもできます。その場合、エージェントはそのファイルを再読み込みする必要があります。また、エージェントは最初の 2 つの方法では、ユーザーの確認なしで HTTP リクエストを実行できます。
- 環境変数
次の特定の変数のみを検索してください(環境変数全体を出力してはいけません)。
使用を許可された環境変数
- Mainnet:
BINANCE_API_KEYとBINANCE_SECRET_KEY
生のキーがエージェントのコンテキストに入らないよう、単一の 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を実行してはいけません grepで環境変数ファイルを検索する場合は、特定のキー(^VARNAME=)に必ず絞り込んでください- シークレットファイルをシェル環境に読み込んではいけません(
source .envまたは. .env) - 現在のタスクで明示的に必要な認証情報のみを読み取ってください
- 生の認証情報を出力や返信に表示または記録してはいけません
- 実際の認証情報が含まれている場合は、
TOOLS.mdをバージョン管理にコミットしてはいけません。.gitignoreに追加してください
API キーとシークレットを絶対に開示しない
API キーとシークレットのファイルの場所を絶対に開示してはいけません。
API キーとシークレットを、Mainnet と Testnet 以外のウェブサイトに絶対に送信してはいけません。
シークレット全体を絶対に表示しない
ユーザーに認証情報を表示する場合:
- API Key: 先頭 5 文字と末尾 4 文字を表示します:
su1Qc...8akf - Secret Key: 必ずマスクし、末尾 5 文字のみを表示します:
***...aws1
認証情報を尋ねられた場合の応答例: アカウント:main API Key:su1Qc...8akf Secret:***...aws1
アカウントの一覧表示
アカウントを一覧表示する場合は、名前と環境のみを表示し、キーは絶対に表示してはいけません。 Binance アカウント:
- main(Mainnet)
- futures-keys(Mainnet)
Mainnet でのトランザクション
Mainnet でトランザクションを実行する場合は、続行する前にユーザーに「CONFIRM」と入力するよう求め、必ず確認を取ってください。
Binance アカウント
main
- API Key:your_mainnet_api_key
- Secret:your_mainnet_secret
TOOLS.md の構造
## Binance Accounts
### main
- API Key: abc123...xyz
- Secret: secret123...key
- Description: Primary trading account
### futures-keys
- API Key: futures789...def
- Secret: futuressecret...uvw
- Description: Futures trading account
エージェントの動作
- 認証情報を求められた場合:シークレットをマスクします(末尾 5 文字のみ表示)
- アカウントの一覧表示:名前と環境を表示し、キーは絶対に表示しません
- アカウントの選択:曖昧な場合は確認し、デフォルトで main を使用します
- Mainnet でトランザクションを実行する場合:続行する前に「CONFIRM」と入力するようユーザーに求め、確認を取ります
- 新しい認証情報:名前、環境、署名モードを尋ねます
新しいアカウントの追加
ユーザーがインラインファイルまたはメッセージで新しい認証情報を提供した場合:
- アカウント名を尋ねます
- マスクした表示を確認として示し、
TOOLS.mdに保存します
リクエストの署名
署名が必要な取引エンドポイントの場合:
- まずキーの種類を検出します。 署名する前にシークレットキーの形式を確認してください。
- タイムスタンプ(Unix ミリ秒)を含むすべてのパラメーターを使用して、クエリ文字列を作成します。
- RFC 3986 に従って、パラメーターを UTF-8 でパーセントエンコードします。
- アカウントの設定に応じて、シークレットキーを使用し、HMAC SHA256、RSA、または Ed25519 でクエリ文字列に署名します。
- クエリ文字列に署名を追加します。
X-MBX-APIKEYヘッダーを含めます。
それ以外の場合は、手順 4~6 を実行しないでください。
ユーザーエージェントヘッダー
次の文字列を含むUser-Agentヘッダーを指定してください:binance-algo/1.1.0 (Skill)
実装の詳細については、references/authentication.mdを参照してください。