mcpField
A
algo

algo

github.com/binanceその他1.1k1.2k 回インストール2 日前に更新
リポジトリ

algo について

Binance の algo スキルは、Binance API でアルゴ注文を管理するトレーダー向けです。現物・先物の TWAP、先物の VP 注文、注文照会に対応し、認証が必要な操作では API 認証情報を使います。

主な機能

  1. 01現物・先物の TWAP 注文
  2. 02先物の VP 注文
  3. 03アルゴ注文の現状・履歴照会
  4. 04サブ注文の照会とキャンセル
  5. 05API 認証情報による認証

活用シーン

  1. 01Binance で TWAP 注文を出す
  2. 02緊急度を指定して先物 VP 注文を出す
  3. 03アルゴ注文とサブ注文の状態確認

インストール

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

$npx skills add https://github.com/binance/binance-skills-hub --skill algo

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

同梱ファイル

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

CHANGELOG.md
LICENSE.md
references/
authentication.md

詳細

Binance アルゴリズム取引スキル

認証済み API エンドポイントを使用して、Binance でアルゴリズム取引のリクエストを実行します。一部のエンドポイントでは API キーとシークレットキーが必要です。結果は JSON 形式で返されます。

クイックリファレンス

エンドポイント説明必須任意認証
/sapi/v1/algo/futures/order (DELETE)アルゴ注文のキャンセル(TRADE)algoIdrecvWindowはい
/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)algoIdpage, pageSize, recvWindowはい
/sapi/v1/algo/futures/newOrderTwap (POST)時間加重平均価格(Twap)の新規注文(TRADE)symbol, side, quantity, durationpositionSide, clientAlgoId, reduceOnly, limitPrice, recvWindowはい
/sapi/v1/algo/futures/newOrderVp (POST)出来高参加率(VP)の新規注文(TRADE)symbol, side, quantity, urgencypositionSide, clientAlgoId, reduceOnly, limitPrice, recvWindowはい
/sapi/v1/algo/spot/order (DELETE)アルゴ注文のキャンセル(TRADE)algoIdrecvWindowはい
/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)algoIdpage, pageSize, recvWindowはい
/sapi/v1/algo/spot/newOrderTwap (POST)時間加重平均価格(Twap)の新規注文(TRADE)symbol, side, quantity, durationclientAlgoId, 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:

セキュリティ

認証情報の共有

ユーザーは、さまざまな方法で Binance API の認証情報を提供できます。エージェントは最初の 2 つの方法を使って認証情報を自動的に取得しますが、認証情報を設定済み、または .env ファイルに保存済みであることをエージェントに明示的に伝えることもできます。その場合、エージェントはそのファイルを再読み込みする必要があります。また、エージェントは最初の 2 つの方法では、ユーザーの確認なしで HTTP リクエストを実行できます。

  1. 環境変数

次の特定の変数のみを検索してください(環境変数全体を出力してはいけません)。

使用を許可された環境変数

  • 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 を参照)。

  1. シークレットファイル(.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 ファイルに保存済みだと伝えた場合は、そのファイルを再読み込みしてください。

  1. インラインファイル

内容が次の形式のファイルを送信します。

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

エージェントの動作

  1. 認証情報を求められた場合:シークレットをマスクします(末尾 5 文字のみ表示)
  2. アカウントの一覧表示:名前と環境を表示し、キーは絶対に表示しません
  3. アカウントの選択:曖昧な場合は確認し、デフォルトで main を使用します
  4. Mainnet でトランザクションを実行する場合:続行する前に「CONFIRM」と入力するようユーザーに求め、確認を取ります
  5. 新しい認証情報:名前、環境、署名モードを尋ねます

新しいアカウントの追加

ユーザーがインラインファイルまたはメッセージで新しい認証情報を提供した場合:

  • アカウント名を尋ねます
  • マスクした表示を確認として示し、TOOLS.md に保存します

リクエストの署名

署名が必要な取引エンドポイントの場合:

  1. まずキーの種類を検出します。 署名する前にシークレットキーの形式を確認してください。
  2. タイムスタンプ(Unix ミリ秒)を含むすべてのパラメーターを使用して、クエリ文字列を作成します。
  3. RFC 3986 に従って、パラメーターを UTF-8 でパーセントエンコードします。
  4. アカウントの設定に応じて、シークレットキーを使用し、HMAC SHA256、RSA、または Ed25519 でクエリ文字列に署名します。
  5. クエリ文字列に署名を追加します。
  6. X-MBX-APIKEY ヘッダーを含めます。

それ以外の場合は、手順 4~6 を実行しないでください。

ユーザーエージェントヘッダー

次の文字列を含むUser-Agentヘッダーを指定してください:binance-algo/1.1.0 (Skill)

実装の詳細については、references/authentication.mdを参照してください。

コメント