关于 derivatives-trading-options
Binance Derivatives-trading-options 技能面向管理 Binance 期权的交易者,提供市场数据、账户与持仓查询及订单操作。它还涵盖大宗交易、批量订单和市场做市保护设置。
主要功能
- 01查询期权账户与持仓
- 02获取期权行情、深度及 K 线
- 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 衍生品交易选项 Skill
使用经过身份验证的 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) | 用户手续费 (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 请求,无需用户确认。
- 环境变量
仅搜索以下指定变量(绝不转储完整环境变量):
已授权的环境变量
- 主网:
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)。
- 密钥文件(.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=') - 绝不将密钥文件载入 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 行为
- 请求凭据:屏蔽密钥(仅显示最后 5 位)
- 列出账户:显示名称和环境,绝不显示密钥
- 选择账户:如有歧义则询问,默认选择 main
- 在主网执行交易时,先请用户输入“CONFIRM”确认
- 新凭据:询问名称、环境和签名模式
- 当请求需要签名时,如果该请求不是订单,且 API 密钥未注明为
mainnet或testnet密钥,则尝试向不同的基础 URL 发送请求并查看是否成功,无需询问用户。如果成功,则将密钥存储为对应的环境。
添加新账户
用户通过内联文件或消息提供新凭据时:
- 询问账户名称
- 询问:主网、测试网
- 将其存储在
TOOLS.md中,并确认时屏蔽凭据
请求签名
对于需要签名的交易端点:
- 先检测密钥类型,在签名前检查密钥格式。
- 构建包含所有参数的查询字符串,包括时间戳(Unix 毫秒)。
- 根据 RFC 3986,使用 UTF-8 对参数进行百分号编码。
- 根据账户配置,使用 secretKey 通过 HMAC SHA256、RSA 或 Ed25519 对查询字符串进行签名。
- 将签名追加到查询字符串。
- 添加
X-MBX-APIKEY请求头。
否则,不要执行步骤 4–6。
User Agent 请求头
添加 User-Agent 请求头,其值为:binance-derivatives-trading-options/1.1.0 (Skill)
有关实现详情,请参阅 references/authentication.md。