mcpField
D
derivatives-trading-options

derivatives-trading-options

github.com/binance其他1.1k1.2k 次安装2 天前更新
代码仓库

关于 derivatives-trading-options

Binance Derivatives-trading-options 技能面向管理 Binance 期权的交易者,提供市场数据、账户与持仓查询及订单操作。它还涵盖大宗交易、批量订单和市场做市保护设置。

主要功能

  1. 01查询期权账户与持仓
  2. 02获取期权行情、深度及 K 线
  3. 03创建、查询和取消期权订单
  4. 04管理大宗交易订单
  5. 05批量提交或取消订单
  6. 06设置市场做市保护与自动撤单

适用场景

  1. 01查看期权持仓和保证金账户
  2. 02获取期权标记价格与交易数据
  3. 03管理期权订单及大宗交易
  4. 04配置市场做市保护或自动撤单

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/binance/binance-skills-hub --skill derivatives-trading-options

安装后在 Claude Code 中输入/derivatives-trading-options确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
LICENSE.md
references/
authentication.md

详细介绍

Binance 衍生品交易选项 Skill

使用经过身份验证的 API 端点在 Binance 上请求衍生品交易选项。某些端点需要 API 密钥和密钥。以 JSON 格式返回结果。

快速参考

端点描述必需可选身份验证
/eapi/v1/bill (GET)账户资金流水 (USER_DATA)currencyrecordId, startTime, endTime, limit, recvWindow是
/eapi/v1/marginAccount (GET)期权保证金账户信息 (USER_DATA)无recvWindow是
/eapi/v1/block/order/execute (POST)接受大宗交易订单 (TRADE)blockOrderMatchingKeyrecvWindow是
/eapi/v1/block/order/execute (GET)查询大宗交易详情 (USER_DATA)blockOrderMatchingKeyrecvWindow是
/eapi/v1/block/user-trades (GET)账户大宗交易列表 (USER_DATA)无endTime, startTime, underlying, recvWindow是
/eapi/v1/block/order/create (DELETE)取消大宗交易订单 (TRADE)blockOrderMatchingKeyrecvWindow是
/eapi/v1/block/order/create (PUT)延长大宗交易订单有效期 (TRADE)blockOrderMatchingKeyrecvWindow是
/eapi/v1/block/order/create (POST)创建大宗交易订单 (TRADE)liquidity, legsrecvWindow是
/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, intervalstartTime, endTime, limit否
/eapi/v1/openInterest (GET)未平仓合约量underlyingAsset, expiration无否
/eapi/v1/mark (GET)期权标记价格无symbol否
/eapi/v1/depth (GET)订单簿symbollimit否
/eapi/v1/blockTrades (GET)最近大宗交易列表无symbol, limit否
/eapi/v1/trades (GET)最近交易列表symbollimit否
/eapi/v1/index (GET)指数价格underlying无否
/eapi/v1/ping (GET)测试连接无无否
/eapi/v1/countdownCancelAllHeartBeat (POST)自动取消所有未结订单(熔断开关)心跳 (TRADE)underlyingsrecvWindow是
/eapi/v1/countdownCancelAll (GET)获取自动取消所有未结订单(熔断开关)配置 (TRADE)无underlying, recvWindow是
/eapi/v1/countdownCancelAll (POST)设置自动取消所有未结订单(熔断开关)配置 (TRADE)underlying, countdownTimerecvWindow是
/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)underlyingrecvWindow是
/eapi/v1/batchOrders (DELETE)取消多个期权订单 (TRADE)symbolorderIds, clientOrderIds, recvWindow是
/eapi/v1/batchOrders (POST)下多个订单 (TRADE)ordersrecvWindow是
/eapi/v1/order (DELETE)取消期权订单 (TRADE)symbolorderId, clientOrderId, recvWindow是
/eapi/v1/order (POST)新建订单 (TRADE)symbol, side, type, quantityprice, timeInForce, reduceOnly, postOnly, newOrderRespType, clientOrderId, isMmp, recvWindow是
/eapi/v1/order (GET)查询单个订单 (TRADE)symbolorderId, clientOrderId, recvWindow是
/eapi/v1/allOpenOrders (DELETE)取消指定交易对的所有期权订单 (TRADE)symbolrecvWindow是
/eapi/v1/position (GET)期权持仓信息 (USER_DATA)无symbol, recvWindow是
/eapi/v1/openOrders (GET)查询当前未结期权订单 (USER_DATA)无symbol, orderId, startTime, endTime, recvWindow是
/eapi/v1/historyOrders (GET)查询期权订单历史 (TRADE)symbolorderId, startTime, endTime, limit, recvWindow是
/eapi/v1/commission (GET)用户手续费 (USER_DATA)无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:Taker 或 Maker
  • 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,000 表示 1 秒)。设为 0 可禁用计时器。不接受负值(例如,-10000)。最小可接受值为 5,000
  • windowTimeInMilliseconds:MMP 间隔,单位为毫秒;范围为 (0,5000]
  • frozenTimeInMilliseconds:MMP 冻结时间,单位为毫秒;如果设为 0,则需要手动重置
  • qtyLimit:数量限制(例如,1.0)
  • deltaLimit:净 Delta 限制(例如,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:

安全性

共享凭据

用户可以通过不同方式提供 Binance API 凭据。Agent 会先尝试通过前两种方式自动获取凭据,但用户也可以明确告知 Agent 凭据已设置或存储在 .env 文件中,此时 Agent 应重新读取该文件。Agent 也可以通过前两种方式发送 HTTP 请求,无需用户确认。

  1. 环境变量

仅搜索以下指定变量(绝不转储完整环境变量):

已授权的环境变量

  • 主网:BINANCE_API_KEY 和 BINANCE_SECRET_KEY
  • 测试网:BINANCE_TESTNET_API_KEY 和 BINANCE_TESTNET_SECRET_KEY

在单次 exec 调用中读取并使用,避免原始密钥进入 Agent 的上下文:

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
  • 绝不对 env 文件运行未限定到特定密钥的 grep(必须使用 '^VARNAME=')
  • 绝不将密钥文件载入 shell 环境(source .env 或 . .env)
  • 仅读取当前任务明确需要的凭据
  • 绝不在输出或回复中回显或记录原始凭据
  • 如果 TOOLS.md 中包含真实凭据,绝不将其提交到版本控制;请将其添加到 .gitignore
绝不泄露 API 密钥和密钥文件

绝不泄露 API 密钥和密钥文件的位置。

绝不将 API 密钥和 Secret 发送到主网和测试网以外的任何网站。

绝不显示完整密钥

向用户显示凭据时:

  • API 密钥: 显示前 5 位和后 4 位:su1Qc...8akf
  • Secret Key: 始终屏蔽,仅显示最后 5 位:***...aws1

询问凭据时的回复示例: 账户:main API 密钥:su1Qc...8akf Secret:***...aws1 环境:主网

列出账户

列出账户时,仅显示名称和环境,绝不显示密钥: Binance 账户:

  • main(主网/测试网)
  • testnet-dev(测试网)
  • futures-keys(主网)
主网交易

在主网执行交易前,始终先请用户输入“CONFIRM”确认。


Binance 账户

main
  • API 密钥:your_mainnet_api_key
  • Secret:your_mainnet_secret
  • 测试网:false
testnet-dev
  • API 密钥:your_testnet_api_key
  • Secret:your_testnet_secret
  • 测试网: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

Agent 行为

  1. 请求凭据:屏蔽密钥(仅显示最后 5 位)
  2. 列出账户:显示名称和环境,绝不显示密钥
  3. 选择账户:如有歧义则询问,默认选择 main
  4. 在主网执行交易时,先请用户输入“CONFIRM”确认
  5. 新凭据:询问名称、环境和签名模式
  6. 当请求需要签名时,如果该请求不是订单,且 API 密钥未注明为 mainnet 或 testnet 密钥,则尝试向不同的基础 URL 发送请求并查看是否成功,无需询问用户。如果成功,则将密钥存储为对应的环境。

添加新账户

用户通过内联文件或消息提供新凭据时:

  • 询问账户名称
  • 询问:主网、测试网
  • 将其存储在 TOOLS.md 中,并确认时屏蔽凭据

请求签名

对于需要签名的交易端点:

  1. 先检测密钥类型,在签名前检查密钥格式。
  2. 构建包含所有参数的查询字符串,包括时间戳(Unix 毫秒)。
  3. 根据 RFC 3986,使用 UTF-8 对参数进行百分号编码。
  4. 根据账户配置,使用 secretKey 通过 HMAC SHA256、RSA 或 Ed25519 对查询字符串进行签名。
  5. 将签名追加到查询字符串。
  6. 添加 X-MBX-APIKEY 请求头。

否则,不要执行步骤 4–6。

User Agent 请求头

添加 User-Agent 请求头,其值为:binance-derivatives-trading-options/1.1.0 (Skill)

有关实现详情,请参阅 references/authentication.md。

评论

支持 Markdown