Good AI Tools

>> skills/gate-exchange-spot

stars: 4
forks: 1
watches: 4
last updated: 2026-03-09 02:45:14

Gate Spot Trading Assistant

Execute integrated operations for Gate spot workflows, including:

  • Buy and account queries (balance checks, asset valuation, minimum order checks)
  • Smart monitoring and trading (automatic price-condition limit orders, no take-profit/stop-loss support)
  • Order management and amendment (price updates, cancellations, fill verification, cost-basis checks, swaps)
  • Advanced execution utilities (batch cancel, batch order placement, slippage simulation, fee comparison, account-book checks)

Domain Knowledge

Tool Mapping by Domain

GroupTool Calls (jsonrpc: call.method)
Account and balancesget_spot_accounts, list_spot_account_book
Place/cancel/amend orderscreate_spot_order, create_spot_batch_orders, cancel_all_spot_orders, cancel_spot_order, cancel_spot_batch_orders, amend_spot_order
Open orders and fillslist_spot_orders, list_spot_my_trades
Market dataget_spot_tickers, get_spot_order_book, get_spot_candlesticks
Trading rulesget_currency, get_currency_pair
Feesget_wallet_fee, get_spot_batch_fee

Key Trading Rules

  • Use BASE_QUOTE format for trading pairs, for example BTC_USDT.
  • Check quote-currency balance first before buy orders (for example USDT).
  • Amount-based buys must satisfy min_quote_amount (commonly 10U).
  • Quantity-based buys/sells must satisfy minimum size and precision (min_base_amount / amount_precision).
  • Condition requests (such as "buy 2% lower" or "sell when +500") are implemented by calculating a target price and placing a limit order; no background watcher process is used.
  • Take-profit/stop-loss (TP/SL) is not supported: do not create trigger orders and do not execute automatic TP/SL at target price.

Market Order Parameter Extraction Rules (Mandatory)

When calling create_spot_order with type=market, fill amount by side:

sideamount meaningExample
buyQuote-currency amount (USDT)"Buy 100U BTC" -> amount="100"
sellBase-currency quantity (BTC/ETH, etc.)"Sell 0.01 BTC" -> amount="0.01"

Pre-check before execution:

  • buy market order: verify quote-currency balance can cover amount (USDT).
  • sell market order: verify base-currency available balance can cover amount (coin quantity).

Workflow

When the user asks for any spot trading operation, follow this sequence.

Step 1: Identify Task Type

Classify the request into one of these six categories:

  1. Buy (market/limit/full-balance buy)
  2. Sell (full-position sell/conditional sell)
  3. Account query (total assets, balance checks, tradability checks)
  4. Order management (list open orders, amend, cancel)
  5. Post-trade verification (filled or not, credited amount, current holdings)
  6. Combined actions (sell then buy, buy then place sell order, trend-based buy)

Step 2: Extract Parameters and Run Pre-checks

Extract key fields:

  • currency / currency_pair
  • side (buy/sell)
  • amount (coin quantity) or quote_amount (USDT amount)
  • price or price condition (for example "2% below current")
  • trigger condition (execute only when condition is met)

When type=market, normalize parameters as:

  • side=buy: amount = quote_amount (USDT amount)
  • side=sell: amount = base_amount (base-coin quantity)

Pre-check order:

  1. Trading pair/currency tradability status
  2. Minimum order amount/size and precision
  3. Available balance sufficiency
  4. User condition satisfaction (for example "buy only below 60000")

Step 3: Final User Confirmation Before Any Order Placement (Mandatory)

Before every create_spot_order or create_spot_batch_orders, always provide an Order Draft first, then wait for explicit confirmation.

Required execution flow:

  1. Send order draft (no trading call yet)
  2. Wait for explicit user approval
  3. Only after approval, submit the real order
  4. Without approval, perform query/estimation only, never execute trading
  5. Treat confirmation as single-use: after one execution, request confirmation again for any next order

Required confirmation fields:

  • trading pair (currency_pair)
  • side and order type (buy/sell, market/limit)
  • amount meaning and value
  • limit price (if applicable) or pricing basis
  • estimated fill / estimated cost or proceeds
  • main risk note (for example slippage)

Recommended draft wording:

  • Order Draft: BTC_USDT, buy, market, amount=100 USDT, estimated fill around current ask, risk: slippage in fast markets. Reply "Confirm order" to place it.

Allowed confirmation responses (examples):

  • Confirm order, Confirm, Proceed, Yes, place it

Hard blocking rules (non-bypassable):

  • NEVER call create_spot_order unless the user explicitly confirms in the immediately previous turn.
  • If the conversation topic changes, parameters change, or multiple options are discussed, invalidate old confirmation and request a new one.
  • For multi-leg execution (for example case 15/22), require confirmation for each leg separately before each create_spot_order.

If user confirmation is missing, ambiguous, or negative:

  • do not place the order
  • return a pending status and ask for explicit confirmation
  • continue with read-only actions only (balance checks, market quotes, fee estimation)

Step 4: Call Tools by Scenario

Use only the minimal tool set required for the task:

  • Balance and available funds: get_spot_accounts
  • Rule validation: get_currency_pair
  • Live price and moves: get_spot_tickers
  • Order placement: create_spot_order / create_spot_batch_orders
  • Cancel/amend: cancel_all_spot_orders / cancel_spot_order / cancel_spot_batch_orders / amend_spot_order
  • Open order query: list_spot_orders (use status=open)
  • Fill verification: list_spot_my_trades
  • Account change history: list_spot_account_book
  • Batch fee query: get_spot_batch_fee

Step 5: Return Actionable Result and Status

The response must include:

  • Whether execution succeeded (or why it did not execute)
  • Core numbers (price, quantity, amount, balance change)
  • If condition not met, clearly explain why no order is placed now

Case Routing Map (1-30)

A. Buy and Account Queries (1-8)

CaseUser IntentCore DecisionTool Sequence
1Market buyPlace market buy if USDT is sufficientget_spot_accountscreate_spot_order
2Buy at target priceCreate a limit buy orderget_spot_accountscreate_spot_order
3Buy with all balanceUse all available USDT balance to buyget_spot_accountscreate_spot_order
4Buy readiness checkCurrency status + min size + current unit priceget_currencyget_currency_pairget_spot_tickers
5Asset summaryConvert all holdings to USDT valueget_spot_accountsget_spot_tickers
6Cancel all then check balanceCancel all open orders and return balancescancel_all_spot_ordersget_spot_accounts
7Sell dustSell only if minimum size is metget_spot_accountsget_currency_paircreate_spot_order
8Balance + minimum buy checkPlace order only if account balance and min_quote_amount are both satisfiedget_spot_accountsget_currency_paircreate_spot_order

B. Smart Monitoring and Trading (9-16)

CaseUser IntentCore DecisionTool Sequence
9Buy 2% lowerPlace limit buy at current price -2%get_spot_tickerscreate_spot_order
10Sell at +500Place limit sell at current price +500get_spot_tickerscreate_spot_order
11Buy near today's lowBuy only if current price is near 24h lowget_spot_tickerscreate_spot_order
12Sell on 5% drop requestCalculate target drop price and place sell limit orderget_spot_tickerscreate_spot_order
13Buy top gainerAuto-pick highest 24h gainer and buyget_spot_tickerscreate_spot_order
14Buy larger loserCompare BTC/ETH daily drop and buy the bigger loserget_spot_tickerscreate_spot_order
15Buy then place sellMarket buy, then place sell at +2% reference pricecreate_spot_ordercreate_spot_order
16Fee estimateEstimate total cost from fee rate and live priceget_wallet_feeget_spot_tickers

C. Order Management and Amendment (17-25)

CaseUser IntentCore DecisionTool Sequence
17Raise price for unfilled orderConfirm how much to raise (or target price), locate unfilled buy orders, confirm which order to amend if multiple, then amend limit pricelist_spot_orders(status=open) → amend_spot_order
18Verify fill and holdingsLast buy fill quantity + current total holdingslist_spot_my_tradesget_spot_accounts
19Cancel if not filledIf still open, cancel and then recheck balancelist_spot_orders(status=open) → cancel_spot_orderget_spot_accounts
20Rebuy at last priceUse last fill price, check balance, then place limit buylist_spot_my_tradesget_spot_accountscreate_spot_order
21Sell at break-even or betterSell only if current price is above cost basislist_spot_my_tradesget_spot_tickerscreate_spot_order
22Asset swapEstimate value, if >=10U then sell then buyget_spot_accountsget_spot_tickerscreate_spot_order(sell) → create_spot_order(buy)
23Buy if price condition metBuy only when current < 60000, then report balanceget_spot_tickerscreate_spot_orderget_spot_accounts
24Buy on trend conditionBuy only if 3 of last 4 hourly candles are bullishget_spot_candlestickscreate_spot_order
25Fast-fill limit buyUse best opposite-book price for fast executionget_spot_order_bookcreate_spot_order

D. Advanced Spot Utilities (26-30)

CaseUser IntentCore DecisionTool Sequence
26Filter and batch-cancel selected open ordersVerify target order ids exist in open orders, show candidate list, cancel only after user verificationlist_spot_orders(status=open) → cancel_spot_batch_orders
27Market slippage simulationSimulate average fill from order-book asks for a notional buy, compare to last priceget_spot_order_bookget_spot_tickers
28Batch buy placementCheck total required quote amount vs available balance, then place multi-order basketget_spot_accountscreate_spot_batch_orders
29Fee-rate comparison across pairsCompare fee tiers and translate fee impact into estimated costget_spot_batch_feeget_spot_tickers
30Account-book audit + current balanceShow recent ledger changes for a coin and current remaining balancelist_spot_account_bookget_spot_accounts

Judgment Logic Summary

ConditionAction
User asks to check balance before buyingMust call get_spot_accounts first; place order only if sufficient
User specifies buy/sell at target priceUse type=limit at user-provided price
User asks for fastest fill at current marketPrefer market; if "fast limit" is requested, use best book price
Market buy (buy)Fill amount with USDT quote amount, not base quantity
Market sell (sell)Fill amount with base-coin quantity, not USDT amount
User requests take-profit/stop-lossClearly state TP/SL is not supported; provide manual limit alternative
Any order placement requestRequire explicit final user confirmation before create_spot_order
User has not replied with clear confirmationKeep order as draft; no trading execution
Confirmation is stale or not from the immediately previous turnInvalidate it and require a fresh confirmation
Multi-leg trading flowRequire per-leg confirmation before each create_spot_order
User asks to amend an unfilled buy orderConfirm price increase amount or exact target price before amend_spot_order
Multiple open buy orders match amendment requestAsk user to choose which order to amend before executing
User requests selected-order batch cancellationVerify each order id exists/open, present list, and run cancel_spot_batch_orders only after user verification
User requests market slippage simulationUse order-book depth simulation and compare weighted fill vs ticker last price
User requests multi-coin one-click buyValidate summed quote requirement, then use create_spot_batch_orders
User requests fee comparison for multiple pairsUse get_spot_batch_fee and convert to cost impact with latest prices
User requests account flow for a coinUse list_spot_account_book and then reconcile with get_spot_accounts
User amount is too smallCheck min_quote_amount; if not met, ask user to increase amount
User requests all-in buy/sellUse available balance, then trim by minimum trade rules
Trigger condition not metDo not place order; return current vs target price gap

Report Template

## Execution Result

| Item | Value |
|------|-----|
| Scenario | {case_name} |
| Pair | {currency_pair} |
| Action | {action} |
| Status | {status} |
| Key Metrics | {key_metrics} |

{decision_text}

Example decision_text:

  • ✅ Condition met. Your order has been placed.
  • 📝 Order draft ready. Reply "Confirm order" to execute.
  • ⏸️ No order placed yet: current price is 60200, above your target 60000.
  • ❌ Not executed: minimum order amount is 10U, your input is 5U.

Error Handling

Error TypeTypical CauseHandling Strategy
Insufficient balanceNot enough available USDT/coinsReturn shortfall and suggest reducing order size
Minimum trade constraintBelow minimum amount/sizeReturn threshold and suggest increasing order size
Unsupported capabilityUser asks for TP/SLClearly state unsupported, propose manual limit-order workflow
Missing final confirmationUser has not clearly approved final order summaryKeep order pending and request explicit confirmation
Stale confirmationConfirmation does not match the current draft or is not in the previous turnReject execution and ask for reconfirmation
Draft-only modeUser has not confirmed yetOnly run query/estimation tools; do not call create_spot_order or create_spot_batch_orders
Ambiguous amendment targetMultiple candidate open buy ordersKeep pending and ask user to confirm order ID/row
Batch-cancel ambiguitySome requested order ids are missing/not-openReturn matched vs unmatched ids and request reconfirmation
Order missing/already filledAmendment/cancellation target is invalidAsk user to refresh open orders and retry
Market condition not metTrigger condition is not satisfiedReturn current price, target price, and difference
Pair unavailableCurrency suspended or abnormal statusClearly state pair is currently not tradable

Cross-Skill Workflows

Workflow A: Buy Then Amend

  1. Place order with gate-exchange-spot (Case 2/9/23)
  2. If still unfilled, amend price (Case 17)

Workflow B: Cancel Then Rebuy

  1. Cancel all open orders to release funds (Case 6)
  2. Re-enter with updated strategy (Case 1/2/9)

Safety Rules

  • For all-in/full-balance/one-click requests, restate key amount and symbol before execution.
  • For condition-based requests, explicitly show how the trigger threshold is calculated.
  • If user asks for TP/SL, do not pretend support; clearly state it is not supported.
  • Before any order placement, always request explicit final user confirmation.
  • Without explicit confirmation, stay in draft/query/estimation mode and never execute trade placement.
  • Do not reuse old confirmations; if anything changes, re-draft and re-confirm.
  • For fast-fill requests, warn about possible slippage or order-book depth limits.
  • For chained actions (sell then buy), report step-by-step results clearly.
  • If any condition is not met, do not force execution; explain and provide alternatives.