Install
openclaw skills install okx-pro完整 OKX 交易所集成,U本位/币本位合约,杠杆交易,止盈止损,仓位管理
openclaw skills install okx-pro专业 OKX 交易所交易技能 - 全球领先的加密货币合约交易所。
Save to ~/.openclaw/credentials/okx.json:
{
"apiKey": "YOUR_API_KEY",
"secretKey": "YOUR_SECRET_KEY",
"passphrase": "YOUR_PASSPHRASE"
}
export OKX_API_KEY="your_api_key"
export OKX_SECRET="your_secret_key"
export OKX_PASSPHRASE="your_passphrase"
OKX Pro 是一个完整的 OKX 交易所集成技能,支持:
本技能使用 OKX V5 API:
https://www.okx.com| 交易对 | 说明 |
|---|---|
| BTC-USDT | BTC 现货 |
| ETH-USDT | ETH 现货 |
| BTC-USDT-SWAP | BTC U本位永续合约 |
| ETH-USDT-SWAP | ETH U本位永续合约 |
| BTC-USD-SWAP | BTC 币本位永续合约 |
| 参数 | 说明 | 示例 |
|---|---|---|
| instId | 交易对ID | BTC-USDT-SWAP |
| tdMode | 仓位模式 | cross(全仓) / isolated(逐仓) |
| side | 交易方向 | buy / sell |
| ordType | 订单类型 | market / limit / conditional |
| sz | 数量 | 0.001 |
| px | 价格 | 50000 |
| SL | 止损 | slTriggerPx |
| TP | 止盈 | tpTriggerPx |
立即以市场价成交
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"market","sz":"0.001"}
指定价格成交
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","sz":"0.001","px":"50000"}
止盈止损订单
{
"instId": "BTC-USDT-SWAP",
"tdMode": "cross",
"side": "sell",
"ordType": "conditional",
"sz": "0.001",
"slTriggerPx": "45000",
"slOrdPx": "-1"
}
slTriggerPx: 止损触发价格slOrdPx: 止损订单价格 (-1 = 市价)tpTriggerPx: 止盈触发价格tpOrdPx: 止盈订单价格| 操作 | API |
|---|---|
| 查询仓位 | GET /api/v5/position/positions |
| 设置杠杆 | POST /api/v5/account/set-leverage |
| 追加保证金 | POST /api/v5/account/increase-margin |
| 减少保证金 | POST /api/v5/account/decrease-margin |
⚠️ 安全规则:
OKX Pro provides complete OKX exchange integration:
Uses OKX V5 API:
https://www.okx.com| Pair | Description |
|---|---|
| BTC-USDT | BTC Spot |
| ETH-USDT | ETH Spot |
| BTC-USDT-SWAP | BTC USDT-Margin Perpetual |
| ETH-USDT-SWAP | ETH USDT-Margin Perpetual |
| Parameter | Description | Example |
|---|---|---|
| instId | Instrument ID | BTC-USDT-SWAP |
| tdMode | Trade Mode | cross / isolated |
| side | Order Side | buy / sell |
| ordType | Order Type | market / limit / conditional |
| sz | Size | 0.001 |
| px | Price | 50000 |
Execute immediately at market price
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"market","sz":"0.001"}
Execute at specified price
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","sz":"0.001","px":"50000"}
Stop loss / Take profit orders
{
"instId": "BTC-USDT-SWAP",
"tdMode": "cross",
"side": "sell",
"ordType": "conditional",
"sz": "0.001",
"slTriggerPx": "45000",
"slOrdPx": "-1"
}
slTriggerPx: Stop loss trigger priceslOrdPx: Stop loss order price (-1 = market)tpTriggerPx: Take profit trigger pricetpOrdPx: Take profit order price| Operation | API |
|---|---|
| Get Positions | GET /api/v5/position/positions |
| Set Leverage | POST /api/v5/account/set-leverage |
| Increase Margin | POST /api/v5/account/increase-margin |
| Decrease Margin | POST /api/v5/account/decrease-margin |
⚠️ Safety Rules:
# 生成 OKX 签名的函数
okx_sign() {
local method="$1"
local request_path="$2"
local body="$3"
local timestamp=$(date -u +"%Y-%m-%dT%H:%M:%S.000Z")
local message="${timestamp}${method}${request_path}${body}"
local signature=$(echo -n "$message" | openssl dgst -sha256 -hmac "$OKX_SECRET" | cut -d' ' -f2)
echo "$signature"
}
okx_request() {
local method="$1"
local endpoint="$2"
local body="$3"
local timestamp=$(date -u +"%Y-%m-%dT%H:%M:%S.000Z")
local signature=$(okx_sign "$method" "$endpoint" "$body")
curl -s -X "$method" "https://www.okx.com$endpoint" \
-H "Content-Type: application/json" \
-H "OKX-ACCESS-KEY: $OKX_API_KEY" \
-H "OKX-ACCESS-SIGN: $signature" \
-H "OKX-ACCESS-TIMESTAMP: $timestamp" \
-H "OKX-ACCESS-PASSPHRASE: $OKX_PASSPHRASE" \
-d "$body"
}
okx_request "GET" "/api/v5/account/balance" ''
curl -s "https://www.okx.com/api/v5/market/ticker?instId=BTC-USDT" | jq '.data[0]'
okx_request "GET" "/api/v5/position/positions" ''
INST_ID="BTC-USDT-SWAP"
SZ="0.001"
TD_MODE="cross"
okx_request "POST" "/api/v5/trade/order" "{\"instId\":\"$INST_ID\",\"tdMode\":\"$TD_MODE\",\"side\":\"buy\",\"ordType\":\"market\",\"sz\":\"$SZ\"}"
INST_ID="BTC-USDT-SWAP"
SZ="0.001"
TD_MODE="cross"
okx_request "POST" "/api/v5/trade/order" "{\"instId\":\"$INST_ID\",\"tdMode\":\"$TD_MODE\",\"side\":\"sell\",\"ordType\":\"market\",\"sz\":\"$SZ\"}"
INST_ID="BTC-USDT-SWAP"
SZ="0.001"
STOP_PRICE="75000"
TD_MODE="cross"
okx_request "POST" "/api/v5/trade/order" "{\"instId\":\"$INST_ID\",\"tdMode\":\"$TD_MODE\",\"side\":\"sell\",\"ordType\":\"conditional\",\"sz\":\"$SZ\",\"slTriggerPx\":\"$STOP_PRICE\",\"slOrdPx\":\"-1\"}"
INST_ID="BTC-USDT-SWAP"
SZ="0.001"
TP_PRICE="85000"
TD_MODE="cross"
okx_request "POST" "/api/v5/trade/order" "{\"instId\":\"$INST_ID\",\"tdMode\":\"$TD_MODE\",\"side\":\"sell\",\"ordType\":\"conditional\",\"sz\":\"$SZ\",\"tpTriggerPx\":\"$TP_PRICE\",\"tpOrdPx\":\"-1\"}"
INST_ID="BTC-USDT-SWAP"
SZ="0.001"
TD_MODE="cross"
okx_request "POST" "/api/v5/trade/close-position" "{\"instId\":\"$INST_ID\",\"mgnMode\":\"cross\",\"posSide\":\"long\"}"
INST_ID="BTC-USDT-SWAP"
LEVERAGE="10"
TD_MODE="cross"
okx_request "POST" "/api/v5/account/set-leverage" "{\"instId\":\"$INST_ID\",\"lever\":\"$LEVERAGE\",\"mgnMode\":\"$TD_MODE\"}"
INST_ID="BTC-USDT"
SZ="0.001"
okx_request "POST" "/api/v5/trade/order" "{\"instId\":\"$INST_ID\",\"tdMode\":\"cash\",\"side\":\"buy\",\"ordType\":\"market\",\"sz\":\"$SZ\"}"
INST_ID="BTC-USDT"
SZ="0.001"
okx_request "POST" "/api/v5/trade/order" "{\"instId\":\"$INST_ID\",\"tdMode\":\"cash\",\"side\":\"sell\",\"ordType\":\"market\",\"sz\":\"$SZ\"}"
okx_request "GET" "/api/v5/trade/orders-pending" ''
INST_ID="BTC-USDT-SWAP"
ORD_ID="123456789"
okx_request "POST" "/api/v5/trade/cancel-order" "{\"instId\":\"$INST_ID\",\"ordId\":\"$ORD_ID\"}"
okx_request "GET" "/api/v5/trade/fills" ''
| InstID | Description |
|---|---|
| BTC-USDT | Bitcoin U本位合约 |
| ETH-USDT | Ethereum U本位合约 |
| SOL-USDT | Solana U本位合约 |
| XRP-USDT | XRP U本位合约 |
| DOGE-USDT | Dogecoin U本位合约 |
| BTC-USDT-SWAP | 永续合约 |
| ETH-USDT-SWAP | ETH 永续合约 |