mcpField
O
okx-cex-portfolio

okx-cex-portfolio

github.com/okx其他19710.2k 次安装今天更新
代码仓库

关于 okx-cex-portfolio

okx-cex-portfolio 是用于查看和管理 OKX 账户资产的 CLI 技能,适合需要检查余额、持仓及账务记录的用户。它汇总交易与资金账户估值,并支持账户间划转等操作;需要 API 凭据。

主要功能

  1. 01汇总余额与账户估值
  2. 02查看持仓、已实现盈亏和账单
  3. 03查询手续费等级及账户设置
  4. 04计算可用或最大下单规模
  5. 05在账户间划转资金

适用场景

  1. 01核对交易账户和资金账户的余额
  2. 02查看当前持仓或已平仓盈亏
  3. 03检查手续费、可用下单规模或提现额度
  4. 04在资金账户与交易账户间转账

安装

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

$npx skills add https://github.com/okx/agent-skills --skill okx-cex-portfolio

安装后在 Claude Code 中输入/okx-cex-portfolio确认已加载。

详细介绍

OKX CEX 投资组合与账户 CLI

在 OKX 交易所查询账户余额、持仓、盈亏、账单和费用,以及转账。需要 API 凭证。

预检

运行任何命令之前,请遵循 ../_shared/preflight.md。 使用此文件 frontmatter 中的 metadata.version 作为步骤 2 的参考。

前置条件

  1. 安装 okx CLI:
    npm install -g @okx_ai/okx-trade-cli
    
  2. 配置凭证:
    okx config init   # select site -> follow browser OAuth flow
    
  3. 使用演示模式测试(模拟交易,不使用真实资金):
    okx --demo account balance
    

安全提示:绝不要在聊天中接收凭证。引导用户使用 okx config init 进行设置。

凭证与配置文件检查

在执行任何需要身份验证的命令之前,先运行此检查。 身份验证方式会在预检步骤 2 中检测,并在本次会话中记住。

步骤 A — 验证凭证

检查两个来源(决策表请参阅预检步骤 2)。仅运行 okx auth status --json 并不足够——其 apiKey 字段始终为 false,且不会反映 TOML 配置。

okx config show --json      # authoritative for API-key presence
okx auth status --json      # authoritative for OAuth session state

按以下顺序判断——匹配第一项后即停止:

  • config show 中有任何配置文件的 api_key 非空——API Key 模式。继续步骤 B。
  • 没有 API Key 配置文件,且 auth status 返回 "status": "logged_in"——OAuth 模式。继续步骤 B。
  • 没有 API Key 配置文件,且 auth status 返回 "status": "pending"——登录正在进行,请等待。
  • 没有 API Key 配置文件,且 auth status 返回 "status": "not_logged_in"——停止所有操作,加载 okx-cex-auth 技能并按照登录步骤操作,然后等待完成。
步骤 B — 确认交易模式

选择规则:

  1. 当前消息意图明确(例如,“real”/“实盘”/“live” → live;“test”/“模拟”/“demo” → demo)→ 使用该模式并告知用户
  2. 当前消息未明确说明 → 检查对话上下文中此前是否有选择:
    • 找到 → 沿用该选择,并告知用户
    • 未找到 → 询问:"Live (实盘) or Demo (模拟盘)?"——等待用户回答后再继续

根据身份验证方式(在步骤 A 中检测)应用模式:

身份验证方式Live(实盘)Demo(模拟盘)
API Key--profile <live-profile>--profile <demo-profile>
OAuth(无需标志,默认使用 live)--demo
  • API Key 用户:运行 okx config show --json 查看可用的配置文件名称及其 demo 设置。使用 --profile <name> 选择正确的配置文件。
  • OAuth 用户:实盘交易时不添加标志;模拟交易时添加 --demo。切换模式时不要使用 --profile。
处理身份验证错误

身份验证错误(错误信息中包含“401”、“Session expired”或“Run okx auth login first”):

  1. 立即停止——不要重试相同命令
  2. 告知用户:“身份验证失败。您的会话可能已过期。”
  3. 加载 okx-cex-auth 技能并按照重新进行身份验证的步骤操作
  4. 重新进行身份验证成功后,重试原命令

演示模式与实盘模式

模式资金API Key 参数OAuth 参数
实盘 (live)真实资金--profile <live-profile>(默认,无需标志)
模拟盘 (demo)模拟资金--profile <demo-profile>--demo
# API Key user
okx --profile okx-prod  account balance     # 实盘
okx --profile okx-demo  account balance     # 模拟盘

# OAuth user
okx account balance                          # 实盘 (default)
okx --demo account balance                   # 模拟盘

规则:

  • 读取命令(余额、持仓、账单等):始终说明使用的模式
  • 写入命令(transfer、set-position-mode):执行前必须确认模式(参阅“凭证与配置文件检查”步骤 B);尤其是转账——模式错误意味着账户错误
  • 每次命令执行后的回复都必须附加:[mode: live] 或 [mode: demo]

技能路由

  • 查询市场数据(价格、图表、深度、资金费率)→ 使用 okx-cex-market
  • 查询账户余额、盈亏、持仓、费用和转账 → 使用 okx-cex-portfolio(此技能)
  • 下达常规现货/永续/期货/算法订单 → 使用 okx-cex-trade
  • 使用网格和 DCA 交易机器人 → 使用 okx-cex-bot

快速入门

# One-shot full asset snapshot (recommended first command)
okx account balance-all
okx account balance-all --no-valuation
okx account balance-all --valuationCcy BTC

# Trading account balance (all currencies with balance > 0)
okx account balance

# Check USDT balance only
okx account balance USDT

# Funding account balance
okx account asset-balance

# All open positions, every product
okx account positions

# Positions for one product only — always narrow when the user named a product
okx account positions --instType SWAP     # SWAP | FUTURES | OPTION | MARGIN | EVENTS

# Closed position history with realized PnL
okx account positions-history

# Recent account bills (last 100)
okx account bills

# My trading fee tier
okx account fees --instType SPOT

# Transfer 100 USDT from funding (6) to trading (18)
okx account transfer --ccy USDT --amt 100 --from 6 --to 18

命令索引

读取命令
#命令类型描述
1okx account balance-all [ccy]读取一次性快照:一次调用即可查看交易账户 + 资金账户(+ 估值)
2okx account balance [ccy]读取交易账户权益、可用余额、冻结余额
3aokx account asset-balance [ccy]读取资金账户余额(按币种列出)
3bokx account asset-balance [ccy] --valuation [--valuationCcy <ccy>]读取同上 + 交易账户/资金账户/赚币的资产总估值;计价币种默认为 USDT,可通过 --valuationCcy BTC 覆盖
4okx account positions [--instType <type>] [--instId <id>]读取未平仓合约/永续合约仓位。当用户指定产品时(“我的永续合约仓位”“期货仓位”“期权仓位”),传入 --instType <type>(SWAP | FUTURES | OPTION | MARGIN | EVENTS)——或者使用该产品专属命令(okx swap positions、okx futures positions、okx option positions)。只有当用户确实想查看所有仓位时才省略筛选条件:不加筛选的列表内容更多,且需要模型自行筛选产品,因此更容易出错
5okx account positions-history读取已平仓仓位 + 已实现盈亏
6okx account bills读取账户账本(存款、提款、交易)
7okx account fees --instType <type>读取我的交易费率等级(挂单/吃单)
8okx account config读取账户等级、持仓模式、UID
9okx account max-size --instId <id> --tdMode <mode>读取当前价格下的最大买入/卖出数量
10okx account max-avail-size --instId <id> --tdMode <mode>读取下一笔订单的可用数量
11okx account max-withdrawal [ccy]读取每种币种的最大可提金额
写入命令
#命令类型描述
12okx account set-position-mode <mode>写入切换单向/双向持仓模式
13okx account transfer写入在账户之间划转资金

跨技能工作流

交易前检查余额

用户:“我想买入 0.1 BTC——我的 USDT 够吗?”

1. okx-cex-portfolio okx account balance-all                 → one-shot trading + funding + valuation snapshot
   → check trading.details (available in trading account)
   → if trading balance < needed: check funding.details — may need to transfer
2. okx-cex-market    okx market ticker BTC-USDT              → check current price
        ↓ user approves
3. okx-cex-trade     okx spot place --instId BTC-USDT --side buy --ordType market --sz 0.1
启动机器人前检查余额

用户:“我想用 1000 USDT 启动 BTC 网格机器人”

1. okx-cex-portfolio okx account balance-all                 → one-shot trading + funding + valuation snapshot
   → check trading.details ≥ 1000 (funds must be in trading account for grid bot)
   → if funding.details has the USDT instead: use account transfer first
2. okx-cex-market    okx market candles BTC-USDT --bar 4H --limit 50  → determine price range
        ↓ user approves
3. okx-cex-bot       okx bot grid create --instId BTC-USDT --algoOrdType grid \
                       --minPx 90000 --maxPx 100000 --gridNum 10 --quoteSz 1000
快速查看净资产

用户:“我的总余额是多少?”/“总资产多少?”

1. okx-cex-portfolio okx account balance-all                 → returns {trading, funding, valuation, meta}
   → valuation.totalBal = total net worth in USDT
   → trading.totalEq = trading account equity
   → funding.details = per-currency funding balances
   → meta.partialFailure = true if any section failed (still returns available data)
查看未平仓仓位和盈亏

用户:“显示我当前的仓位以及它们的表现”

1. okx-cex-portfolio okx account positions                  → open positions with UPL
2. okx-cex-portfolio okx account positions-history          → recently closed positions
3. okx-cex-market    okx market ticker BTC-USDT-SWAP        → check current price vs entry
划转并交易

用户:“从我的资金账户划转 500 USDT 来交易 BTC”

1. okx-cex-portfolio okx account asset-balance USDT         → confirm funding balance ≥ 500
        ↓ user approves
2. okx-cex-portfolio okx account transfer --ccy USDT --amt 500 --from 6 --to 18
3. okx-cex-portfolio okx account balance USDT               → confirm trading balance updated
        ↓ ready to trade
4. okx-cex-trade     okx spot place ...
入场前检查最大仓位规模

用户:“使用全仓保证金时,我最多能买多少 BTC?”

1. okx-cex-portfolio okx account balance                    → total equity
2. okx-cex-portfolio okx account max-size --instId BTC-USDT-SWAP --tdMode cross  → max buy/sell size
3. okx-cex-market    okx market ticker BTC-USDT-SWAP        → current price reference

操作流程

步骤 0 — 凭证和配置检查

执行任何需要身份验证的命令之前:请参阅凭证和配置检查。执行前确定身份验证方式和交易模式。

**每次命令返回结果后:**在回复末尾附加 [mode: live] 或 [mode: demo]

步骤 1:识别账户操作
  • 一次性检查所有余额 → okx account balance-all(一次调用即可查看交易账户 + 资金账户 + 估值;建议用于“总资产 / 净资产 / 所有余额”)
  • 检查余额 → okx account balance(仅交易账户权益)、okx account asset-balance(资金账户余额)或 okx account asset-balance --valuation(所有账户的 USDT 总估值)
  • 查看未平仓仓位 → okx account positions
  • 查看已平仓仓位 + 盈亏 → okx account positions-history
  • 查看交易历史 → okx account bills
  • 检查费率等级 → okx account fees
  • 检查账户设置 → okx account config
  • 计算订单数量 → okx account max-size 或 okx account max-avail-size
  • 检查提款限额 → okx account max-withdrawal
  • 划转资金 → okx account transfer
  • 更改持仓模式 → okx account set-position-mode
步骤 2:立即运行读取命令——确认个人资料(步骤 0)后再写入

读取命令(1–10):立即运行,无需确认。

  • ccy 筛选:使用货币符号,例如 USDT、BTC、ETH
  • 费用/持仓使用 --instType:SPOT、SWAP、FUTURES、OPTION
  • 账单使用 --archive:访问默认时间范围以外的较早记录
  • 最大规模使用 --tdMode:cash(现货)、cross 或 isolated

写入命令(11–12):执行前确认一次。

  • set-position-mode:确认模式(net = 单向,long_short_mode = 对冲模式);切换可能影响未平仓头寸
  • transfer:确认 --ccy、--amt、--from、--to(账户类型:6=资金账户,18=交易账户);先核实来源账户余额
步骤 3:写入后验证
  • 执行 set-position-mode 后:运行 okx account config,确认 posMode 已更新
  • 执行 transfer 后:运行 okx account balance 和 okx account asset-balance,确认余额已更新

CLI 命令参考

总余额——一次性汇总快照
okx account balance-all [ccy] [--accounts trading,funding] [--no-valuation] [--no-aggregate] [--valuationCcy <ccy>] [--json]
参数必填默认值描述
ccy否-按货币筛选(逗号分隔)。仅应用于交易账户和资金账户查询。
--accounts否trading,funding要查询的账户,逗号分隔
--no-valuation否-跳过跨账户估值(默认包含估值)
--no-aggregate否-强制使用直接并行路径,而非服务端汇总。需要查看各账户估值明细,或使用非 USD 的 --valuationCcy 时使用(汇总路径以 USD 为估值单位)。
--valuationCcy否USDT估值计价货币

此命令会先调用服务端汇总端点;若该端点不可用,则自动回退到直接并行查询;两种方式的输出契约相同。

返回 { trading, funding, valuation, meta }。每个部分都包含 available: boolean:

  • trading:totalEq、adjEq、details[](按货币列出)
  • funding:details[](按货币列出 ccy、bal、availBal、frozenBal)
  • valuation:valuationCcy、totalBal、details[](各账户明细仅在并行路径中填充;使用 --no-aggregate 强制启用)
  • meta:requestedAt(ISO 8601)、elapsedMs、partialFailure、source(aggregate 或 fallback)、site

未设置 --json 时:如果 meta.partialFailure=true,会打印 [PARTIAL] 标记,随后依次显示三个部分(交易账户 / 资金账户 / 估值),最后打印 [source: ...] 页脚,指出数据来源路径。失败的部分会显示 [ERROR: <msg>]。


账户余额——交易账户
okx account balance [ccy] [--json]
参数必填默认值描述
ccy否-筛选单一货币(例如 USDT)

返回表格:currency、equity、available、frozen。仅显示余额大于 0 的货币。


资产余额——资金账户
okx account asset-balance [ccy] [--valuation] [--valuationCcy <ccy>] [--json]
参数必填默认值描述
ccy否-按指定货币筛选(例如 USDT);不影响估值计价货币
--valuation否false同时显示所有账户类型(交易账户/资金账户/赚币)的总资产估值
--valuationCcy否USDT总资产估值的计价货币(例如 USDT、BTC)。仅在设置 --valuation 时使用。

返回:ccy、bal、availBal、frozenBal。仅显示余额大于 0 的货币。

使用 --valuation 时:还会打印估值摘要表,其中包含 totalBal 和按账户类型划分的明细(classic/earn/funding/trading)。数值以 --valuationCcy 计价(默认 USDT)。

重要提示:ccy(余额筛选)和 --valuationCcy(估值计价货币)是相互独立的参数——ccy=BTC 会将余额列表筛选为 BTC 行,但不会更改估值货币;如需以 BTC 计价的总额,请明确设置 --valuationCcy BTC。


持仓 — 未平仓持仓
okx account positions [--instType <type>] [--instId <id>] [--json]
参数必填默认值描述
--instType否-筛选:SWAP、FUTURES、OPTION
--instId否-筛选特定交易品种

返回:instId、instType、side(posSide)、pos、avgPx、upl(未实现盈亏)、lever。仅显示持仓量 ≠ 0 的持仓。


持仓历史 — 已平仓持仓
okx account positions-history [--instType <type>] [--instId <id>] [--limit <n>] [--json]

返回:instId、direction、openAvgPx、closeAvgPx、realizedPnl、uTime。


账单 — 账户账本
okx account bills [--archive] [--instType <type>] [--ccy <ccy>] [--limit <n>] [--json]
参数必填默认值描述
--archive否false访问较早的记录(归档端点)
--instType否-按交易品种类型筛选
--ccy否-按币种筛选
--limit否100记录数量

返回:billId、instId、type、ccy、balChg、bal、ts。


手续费 — 交易费率等级
okx account fees --instType <type> [--instId <id>] [--json]
参数必填默认值描述
--instType是-SPOT、SWAP、FUTURES、OPTION
--instId否-特定交易品种(可选)

返回:level、maker、taker、makerU、takerU、ts。


配置 — 账户配置
okx account config [--json]

返回:uid、acctLv(账户等级)、posMode(net/long_short_mode)、autoLoan、greeksType、level、levelTmp。


最大数量 — 最大下单数量
okx account max-size --instId <id> --tdMode <mode> [--px <price>] [--json]
参数必填默认值描述
--instId是-交易品种 ID
--tdMode是-cash(现货)、cross 或 isolated
--px否-参考价格(省略时使用标记价格)

返回:instId、maxBuy、maxSell。


最大可用数量
okx account max-avail-size --instId <id> --tdMode <mode> [--json]

返回:instId、availBuy、availSell — 下一笔订单可立即使用的数量。


最大可提现金额
okx account max-withdrawal [ccy] [--json]

返回表格:ccy、maxWd、maxWdEx(含借款)。未设置筛选条件时显示所有币种。


设置持仓模式
okx account set-position-mode <net|long_short_mode> [--json]
值行为
net单向模式(默认)— 多头和空头持仓会相互抵消
long_short_mode对冲模式 — 多头和空头持仓可以同时存在

警告:持仓未平仓时切换模式可能导致意外行为。请先检查 okx account positions。


转账
okx account transfer --ccy <ccy> --amt <n> --from <acctType> --to <acctType> \
  [--transferType <type>] [--subAcct <name>] [--json]
参数必填默认值描述
--ccy是-要转账的币种(例如,USDT)
--amt是-转账金额
--from是-来源账户类型:6=资金账户,18=交易账户
--to是-目标账户类型:6=资金账户,18=交易账户
--transferType否00=账户内转账,1=转至子账户,2=从子账户转出
--subAcct否-子账户名称(子账户转账时必填)

返回:transId、ccy、amt。


MCP 工具参考

工具描述
account_get_balance_all一次性获取交易账户 + 资金账户余额(以及估值)快照,由服务端聚合接口提供,并在必要时自动回退到并行查询。使用 showValuation=true(默认值)以包含跨账户总额;valuationCcy='USDT' 为默认值。设置 preferParallel=true 可强制使用并行查询路径(按账户显示估值明细/非美元估值)。建议优先使用此工具,而不是分别调用 account_get_balance 和 account_get_asset_balance。
account_get_balance交易账户余额
account_get_asset_balance资金账户余额。使用 showValuation=true 可包含交易/资金/赚币账户的资产总估值。使用 valuationCcy(默认值为 "USDT")设置估值总额的计价币种,例如 valuationCcy="BTC" 会以 BTC 返回总额。
account_get_positions未平仓仓位
account_get_positions_history已平仓仓位历史
account_get_bills账户账单(近期)
account_get_bills_archive账户账单(归档)
account_get_trade_fee交易费率等级
account_get_config账户配置
account_get_max_size最大下单数量
account_get_max_avail_size最大可用数量
account_get_max_withdrawal最大可提现金额
account_set_position_mode设置持仓模式
account_transfer在账户之间划转

输入/输出示例

“我有多少 USDT?”

okx account balance USDT
# → currency: USDT | equity: 5000.00 | available: 4500.00 | frozen: 500.00

“显示我所有未平仓的仓位”

okx account positions
# → table: instId, instType, side, pos, avgPx, upl, lever

“我的交易历史和已实现盈亏是多少?”

okx account positions-history
# → table: instId, direction, openAvgPx, closeAvgPx, realizedPnl, uTime

“显示我近期的账户活动”

okx account bills --limit 20
# → table: billId, instId, type, ccy, balChg, bal, ts

“SWAP 的交易手续费是多少?”

okx account fees --instType SWAP
# → level: VIP1 | maker: -0.0001 | taker: 0.0005

“我在全仓保证金模式下最多可以买多少 BTC?”

okx account max-size --instId BTC-USDT-SWAP --tdMode cross
# → instId: BTC-USDT-SWAP | maxBuy: 12.5 | maxSell: 12.5

“将 200 USDT 从资金账户划转到交易账户”

okx account transfer --ccy USDT --amt 200 --from 6 --to 18
# → Transfer: TXN123456 (USDT 200)

“查看我的账户配置”

okx account config
# → uid: 123456789 | acctLv: 2 | posMode: net | autoLoan: false

资金可能存放在哪里?

OKX 会将资产分散到多个子账户中。--valuation 的明细与各账户直接对应:

账户类型details 键用途查看方式
交易(统一账户)trading现货、保证金、永续、交割、期权okx account balance 或 --valuation 中的 details.trading
资金funding充值/提现、闲置资金okx account asset-balance 或 --valuation 中的 details.funding
赚币earn简单赚币、质押、储蓄--valuation 中的 details.earn
经典classic经典账户(旧版,较少使用)--valuation 中的 details.classic

用户表示“我有 X USDT,但无法交易”时的典型流程:

  1. okx account asset-balance --valuation → 查看每个 details.* 字段
  2. 如果 details.funding 数额较大,而 details.trading 数额较小 → 资金在资金账户中
  3. 划转:okx account transfer --ccy USDT --amt <n> --from 6 --to 18
  4. 确认:okx account balance USDT → 账户权益应反映划转后的金额

边缘情况

  • 未显示余额:余额会筛选为大于 0 的项目;如果没有任何显示,则所有币种的余额均为 0
  • 持仓命令返回空结果:没有未平仓合约;此处不会显示现货持仓(请使用 account balance)
  • bills --archive:查询早于 7 天(默认时间范围)的交易时必须使用;可能会较慢
  • set-position-mode:如果同一交易品种同时有多仓和空仓,则无法切换到 net 模式
  • transfer --from/--to 代码:6=资金账户,18=交易账户;子账户划转还有其他取值
  • max-size 与 max-avail-size:max-size 是理论最大值;max-avail-size 会考虑现有订单和预留保证金
  • 模拟模式:okx --demo account balance(OAuth)或 okx --profile <demo-profile> account balance(API Key)会显示模拟余额,而非真实资金

全局说明

  • 所有写入命令都需要有效凭据(OAuth 会话或 ~/.okx/config.toml 中的 API 密钥)
  • 身份验证方式和交易模式由“凭据与配置检查”确定;参数规则请参阅该部分
  • 每条命令的结果都包含 [mode: live] 或 [mode: demo] 标签,供审计参考
  • 默认情况下,--json 会返回原始 OKX API v5 响应。添加 --env 可将输出包装为 {"env": "<live|demo>", "profile": "<name>", "data": <response>}
  • 账户端点的速率限制:每 2 秒 10 个请求
  • 显示的持仓属于统一交易账户;资金账户资产单独计算
  • 账户类型:6=资金账户(存款/取款),18=统一交易账户(现货 + 衍生品)

评论

支持 Markdown