okx-cex-bot
Native OKX grid and DCA trading bot management with server-side execution.
Works with
0
total installs
0
this week
49
GitHub stars
0
upvotes
Install Skill
Run in your terminal
0
installs
0
this week
49
stars
What it does
Create and manage spot grid bots (price range, grid count, investment amount) and contract grid bots (long/short/neutral with leverage) — both run entirely on OKX servers
Contract DCA (Dollar Cost Averaging / Martingale) bots with configurable safety orders, price steps, volume multipliers, take-profit, and stop-loss
Monitor active bots, retrieve P&L, view individual fills and cycles, and stop bots with c
Installation Guide
How to use okx-cex-bot on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your machine
- ›Node.js 16+ with npm — verify with
node --version - ›Active project directory where you want to add
okx-cex-bot
Run the install command
Execute the skills CLI command in your project's root directory to begin installation:
Fetches okx-cex-bot from okx/agent-skills and configures it for Cursor.
Select Cursor when prompted
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate okx-cex-bot. Access via /okx-cex-bot in your agent's command palette.
Security Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Documentation
OKX CEX Bot Trading
Grid and DCA (Spot & Contract Martingale) bot management on OKX. All bots are native OKX server-side — they run on OKX and do not require a local process.
Preflight
Before running any command, follow ../_shared/preflight.md.
Use metadata.version from this file's frontmatter as the reference for Step 2.
Prerequisites
npm install -g @okx_ai/okx-trade-cli
Check credentials, then set up if missing:
okx config show # shows configured profiles (api_key shows last 4 chars)
okx config init # interactive wizard if not configured
Security: NEVER accept API credentials in chat. Guide users to
okx config initor edit~/.okx/config.tomldirectly.
Credential & Profile Check
Run before every authenticated command.
Step A — Verify credentials
okx config show
If no configuration → stop, guide user to okx config init, wait for completion.
Step B — Determine profile (required)
--profile |
Mode | Funds |
|---|---|---|
live |
实盘 | Real money |
demo |
模拟盘 | Simulated, safe for testing |
Resolution:
- User intent is clear ("real"/"实盘"/"live" →
live; "test"/"模拟"/"demo" →demo) → use it, inform user - No explicit declaration → check conversation context for previous profile → use it if found
- Nothing found → ask: "Live (实盘) or Demo (模拟盘)?" — wait before proceeding
After every command: append [profile: live] or [profile: demo]
Handling 401 Errors
Stop immediately. Guide user to update ~/.okx/config.toml with their editor. Verify with okx config show before retrying.
Skill Routing
| Need | Skill |
|---|---|
| Market data, prices, depth | okx-cex-market |
| Account balance, positions, fees | okx-cex-portfolio |
| Regular spot/swap/futures orders | okx-cex-trade |
| Grid / DCA bots | okx-cex-bot (this skill) |
Command Index
Grid Bot
| Command | Type | Description |
|---|---|---|
okx bot grid create |
WRITE | Create a grid bot (spot or contract) |
okx bot grid stop |
WRITE | Stop a grid bot |
okx bot grid orders |
READ | List active or history grid bots |
okx bot grid details |
READ | Grid bot details + PnL |
okx bot grid sub-orders |
READ | Individual grid fills or pending orders |
DCA Bot (Spot & Contract)
| Command | Type | Description |
|---|---|---|
okx bot dca create |
WRITE | Create a DCA (Martingale) bot (spot or contract) |
okx bot dca stop |
WRITE | Stop a DCA bot (spot or contract) |
okx bot dca orders |
READ | List active or history DCA bots (default: contract_dca) |
okx bot dca details |
READ | DCA bot details + PnL |
okx bot dca sub-orders |
READ | DCA cycles and orders within a cycle |
Operation Flow
Step 1 — Identify bot type and action
Parse user request → determine module (Grid / DCA) and action (create / stop / list / details).
Step 2 — Execute
READ commands (orders, details, sub-orders): run immediately after profile confirmation.
WRITE commands (create, stop): confirm key parameters with user once before executing.
Step 3 — Verify after writes
- After create → run the corresponding
orderscommand to confirm active - After stop → run
orders --historyto confirm stopped
Key Rules
- Never auto-transfer funds. If balance is insufficient for bot creation, report the shortfall (current available vs required) and ask the user how to proceed: (1) transfer funds manually, (2) reduce size, or (3) cancel.
algoIdis the bot's algo order ID (from create or list output). It is NOT a normalordId. Never fabricate — always obtain from a prior command.algoOrdTypefor grid must match the bot's actual type. Always use the value frombot grid orders— do not infer from user description alone. Mismatch causes error50016.- When operating on existing bots, always list first to get correct IDs, unless the user provides them explicitly.
- TP/SL constraints:
tpTriggerPx/tpRatioandslTriggerPx/slRatioare mutually exclusive pairs.
CLI Command Reference
Grid Bot — Create
okx bot grid create --instId <id> --algoOrdType <type> \
--maxPx <px> --minPx <px> --gridNum <n> \
[--runType <1|2>] \
[--quoteSz <n>] [--baseSz <n>] \
[--direction <long|short|neutral>] [--lever <n>] [--sz <n>] \
[--basePos] [--no-basePos] \
[--tpTriggerPx <px>] [--slTriggerPx <px>] [--tpRatio <ratio>] [--slRatio <ratio>] \
[--algoClOrdId <id>] [--json]
| Param | Required | Default | Description |
|---|---|---|---|
--instId |
Yes | - | Instrument (e.g., BTC-USDT for spot, BTC-USDT-SWAP for USDT-M contract, BTC-USD-SWAP for coin-M contract) |
--algoOrdType |
Yes | - | grid (spot grid) or contract_grid (contract grid, including coin-margined) |
--maxPx |
Yes | - | Upper price boundary |
--minPx |
Yes | - | Lower price boundary |
--gridNum |
Yes | - | Grid levels (2–100) |
--runType |
No | 1 |
1=arithmetic spacing, 2=geometric spacing |
--quoteSz |
Cond. | - | USDT investment — spot grid only (provide quoteSz or baseSz) |
--baseSz |
Cond. | - | Base currency investment — spot grid only |
--direction |
Cond. | - | long, short, or neutral — required for contract grid |
--lever |
Cond. | - | Leverage (e.g., 5) — contract grid only |
--sz |
Cond. | - | Investment margin in USDT (USDT-M) or coin (coin-M) — contract grid only |
--basePos / --no-basePos |
No | true |
Open a base position at creation — contract grid only (ignored for neutral). Use --no-basePos to disable |
--tpTriggerPx |
No | - | Take-profit trigger price (mutually exclusive with --tpRatio) |
--slTriggerPx |
No | - | Stop-loss trigger price (mutually exclusive with --slRatio) |
--tpRatio |
No | - | Take-profit ratio — contract grid only (mutually exclusive with --tpTriggerPx) |
--slRatio |
No | - | Stop-loss ratio — contract grid only (mutually exclusive with --slTriggerPx) |
--algoClOrdId |
No | - | Client-defined algo order ID (1-32 alphanumeric). Unique per user, enables idempotent creation |
Grid Bot — Stop
okx bot grid stop --algoId <id> --algoOrdType <type> --instId <id> \
[--stopType <1|2|3|5|6>] [--json]
--algoIdand--algoOrdTypemust come frombot grid ordersoutput. ThealgoOrdTypemust match the bot's actual type — do not guess.
--stopType |
Behavior |
|---|---|
1 |
Stop + sell/close all positions at market (default) |
2 |
Stop + keep current assets as-is |
3 |
Stop + close at limit prices |
5 |
Stop + partial close |
6 |
Stop without selling (smart arbitrage) |
Grid Bot — List Orders
okx bot grid orders --algoOrdType <type> [--instId <id>] [--algoId <id>] [--history] [--json]
| Param | Required | Default | Description |
|---|---|---|---|
--algoOrdType |
Yes | - | grid (spot), contract_grid (contract), or moon_grid (moon) |
--instId |
No | - | Filter by instrument |
--algoId |
No | - | Filter by algo order ID. NOT a normal trade order ID |
--history |
No | false | Show completed/stopped bots instead of active |
Grid Bot — Details
okx bot grid details --algoOrdType <type> --algoId <id> [--json]
Returns: bot config, current PnL (pnlRatio), grid range, number of grids, state, position info.
Grid Bot — Sub-Orders
okx bot grid sub-orders --algoOrdType <type> --algoId <id> [--live] [--json]
| Flag | Effect |
|---|---|
| (default) | Filled sub-orders (executed grid trades) |
--live |
Pending grid orders currently on the book |
DCA Bot — Create (Spot & Contract)
okx bot dca create --algoOrdType <spot_dca|contract_dca> --instId <id> --direction <long|short> \
--initOrdAmt <n> --maxSafetyOrds <n> --tpPct <ratio> \
[--lever <n>] [--safetyOrdAmt <n>] [--pxSteps <ratio>] [--pxStepsMult <mult>] [--volMult <mult>] \
[--slPct <ratio>] [--slMode <limit|market>] [--allowReinvest] \
[--triggerStrategy <instant|price|rsi>] [--triggerPx <price>] \
[--triggerCond <cross_up|cross_down>] [--thold <threshold>] [--timeframe <timeframe>] [--timePeriod <period>] \
[--algoClOrdId <id>] [--reserveFunds <true|false>] [--tradeQuoteCcy <ccy>] [--json]
| Param | Required | Default | Description |
|---|---|---|---|
--algoOrdType |
Yes | - | spot_dca (Spot DCA) or contract_dca (Contract DCA) |
--instId |
Yes | - | Instrument (e.g., BTC-USDT for spot, BTC-USDT-SWAP for contract) |
--lever |
Cond. | - | Leverage multiplier (e.g., 3). Required for contract_dca |
--direction |
Yes | - | long or short. spot_dca must be long |
--initOrdAmt |
Yes | - | Initial order amount (quote currency) |
--maxSafetyOrds |
Yes | - | Max safety orders, integer [0, 100] (e.g., 3; 0 = no DCA) |
--safetyOrdAmt |
Cond. | - | Safety order amount (quote currency). Required when maxSafetyOrds > 0 |
-- |