okx-cex-bot

Manage Grid bots (spot/contract/coin-margined) and DCA Martingale bots (Spot DCA 现货马丁 / Contract DCA 合约马丁) on OKX. Covers create, stop, amend, monitor P&L, TP/SL, margin/investment adjustment, and AI-recommended parameters. Requires API credentials. Not for regular orders (okx-cex-trade), market dat

By okx · 9,212 installs

npx skills add okx/agent-skills --skill okx-cex-bot

Source repository · Upstream listing

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 ](../ shared/preflight.md). Use metadata.version from this file's frontmatter as the reference for Step 2. Prerequisites Security : NEVER accept credentials in chat. Guide users to okx config init for setup. Credential & Profile Check Run before every authenticated command. The auth method is detected during [preflight](../ shared/preflight.md) Step 2 and remembered for the session. Step A — Verify credentials Run both commands — the apiKey field from okx auth status json is the auth binary's internal state and is always false regardless of whether ~/.okx/config.toml has an API key profile. okx config show json is the only authoritative source for API key presence. Apply in this order — first match wins: config show json has any profile with a non empty api key field → API Key mode . Proceed to Step B. No API key profile AND auth status json returns "status":"logged in" → OAuth mode . Proceed to Step B. No API key profile AND "status":"pending" — login is in progress, wait for it to complete. No API key profile AND "status":"not logged in" — stop, load okx cex auth skill and follow login steps, wait for completion. Step B — Confirm trading mode Resolution: 1. User intent is clear ("real"/"实盘"/"live" → live; "test"/"模拟"/"demo" → demo) → use it, inform user 2. No explicit declaration → check conversation context for previous choice → reuse if found 3. Nothing found → ask: "Live (实盘) or Demo (模拟盘)?" — wait before proceeding How to apply the mode depends on auth method (detected in Step A): Auth method Live (实盘) Demo (模拟盘) API Key profile <live profile profile <demo profile OAuth (no flag needed, live is default) demo API Key users : run okx config show json to discover available profile names and their demo settings. OAuth users : omit flags for live; add demo for simulated trading. After every command : append [mode: live] or [mode: demo] Handling 401 Errors Authentication error (error contains "401", "Session expired", or "Run okx auth login first"): 1. Stop immediately 2. Load okx cex auth skill and follow re authentication steps 3. Retry original command 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 amend WRITE Amend price range, grid count, or TP/SL of a running grid bot 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, amend, stop): confirm key parameters with user once before executing. Step 3 — Verify after writes After create → run the corresponding orders command to confirm active After amend → run bot grid details to confirm updated config After stop → run orders history to 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. algoId is the bot's algo order ID (from create or list output). It is NOT a normal ordId . Never fabricate — always obtain from a prior command. algoOrdType for grid must match the bot's actual type. Always use the value from bot grid orders — do not infer from user description alone. Mismatch causes error 50016 . When operating on existing bots, always list first to get correct IDs, unless the user provides them explicitly. TP/SL constraints : tpTriggerPx / tpRatio and slTriggerPx / slRatio are mutually exclusive pairs. CLI Command Reference Grid Bot — Create 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 — Amend Supports two modes that can be combined in one call: Price range mode — triggered when maxPx is provided: Param Required Description algoId Yes Grid bot algo order ID maxPx Yes New upper price boundary minPx Yes (with maxPx) New lower price boundary gridNum Yes (with maxPx) New grid count (integer) topUpAmt No Extra margin to add (contract grid only; omit to auto use minimum required) TP/SL mode — triggered when at least one TP/SL param is provided; instId is also required: Param Required Description instId Yes Instrument ID (e.g., BTC USDT ) tpTriggerPx No Take profit trigger price (absolute). Pass 1 to clear slTriggerPx No Stop loss trigger price (absolute). Pass 1 to clear tpRatio No Take profit ratio (e.g., 0.1 = 10%). Contract grid only. Pass 1 to clear slRatio No Stop loss ratio (e.g., 0.1 = 10%). Contract grid only. Pass 1 to clear topUpAmt No Extra margin to add (contract grid only) Note : tpTriggerPx / tpRatio are mutually exclusive. Same for slTriggerPx / slRatio . Grid Bot — Stop algoId and algoOrdType must come from bot grid orders output. The algoOrdType must 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 Grid Bot — List Orders 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 Returns: bot config, current PnL ( pnlRatio ), grid range, number of grids, state, position info. Grid Bot — Sub Orders Flag Effect (default) Filled sub orders (executed grid trades) live Pending grid orders currently on the book DCA Bot — Create (Spot & Contract) 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 pxSteps Cond. Initial price deviation [0.001, 0.5], e.g., 0.03 = 3%. Required when maxSafetyOrds 0 pxStepsMult Cond. 1 Price step multiplier (e.g., 1.2 ). Required when maxSafetyOrds 0 volMult Cond. 1 Safety order size multiplier (e.g., 1.5 ). Required when maxSafetyOrds 0 tpPct Yes Take profit ratio: long [0.001, 10], short [0.001, 0.9999] (e.g., 0.03 = 3%) slPct No Stop loss ratio, must exceed MPD (e.g., 0.05 = 5%). Must be used with slMode slMode No market Stop loss type: limit or market . Must be used with slPct allowReinvest No true Reinvest profit into the next DCA cycle triggerStrategy No instant contract dca: instant , price , rsi ; spot dca: instant , rsi triggerPx No Trigger price — required when triggerStrategy=price (contract dca only) triggerCond No cross up or cross down — required when triggerStrategy=rsi , optional when triggerStrategy=price thold No RSI threshold (e.g. 30 ) — required when triggerStrategy=rsi timeframe No RSI timeframe (e.g. 15m ) — required when triggerStrategy=rsi timePeriod No 14 RSI period — optional when triggerStrategy=rsi algoClOrdId No Client defined strategy order ID (1 32 alphanumeric) reserveFunds No true true or false — whether to reserve funds tradeQuoteCcy No Trade quote currency Conditional required logic: Always required: algoOrdType , instId , direction , initOrdAmt , maxSafetyOrds , tpPct When algoOrdType=contract dca : also required lever When maxSafetyOrds 0 : also required safetyOrdAmt , pxSteps , pxStepsMult , volMult slPct and slMode must be both set or both omitted DCA Bot — Stop Param Required Default Description algoOrdType Yes spot dca or contract dca algoId Yes DCA bot algo order ID (from create or list output). NOT a normal trade order ID stopType Cond. 1 (contract dca) Required for spot dca : 1 =sell all tokens, 2 =keep tokens. contract dca always uses 1 (close position) DCA Bot — List Orders Param Required Default Description algoOrdType No contract dca Filter by strategy type algoId No Filter by DCA bot algo order ID instId No