Receber por email
← Voltar para o catálogo

gate-exchange-futures

The USDT perpetual futures trading function of Gate Exchange: open position, close position, cancel order, amend order. Trigger phrases: open position, close position, cancel order, amend order, reverse, close all.

367estrelas
Atualizado há 4 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add aiskillstore/marketplace

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/gate-exchange-futures/svg)](https://www.skillteca.com.br/skills/gate-exchange-futures)

Skills relacionadas

Ver todas de Segurança →

Alerta por categoria

Receba novas skills de Segurança toda segunda

1 email curto, só com as skills novas de Segurança. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Gate Futures Trading Suite

This skill is the single entry for Gate USDT perpetual futures. It supports four operations only: open position, close position, cancel order, amend order. User intent is routed to the matching workflow.

Module overview

| Module | Description | Trigger keywords | |--------|-------------|------------------| | Open | Limit/market open long or short, cross/isolated mode | long, short, buy, sell, open | | Close | Full close, partial close, reverse position | close, close all, reverse | | Cancel | Cancel one or many orders | cancel, revoke | | Amend | Change order price or size | amend, modify |

Routing rules

| Intent | Example phrases | Route to | |--------|-----------------|----------| | Open position | "BTC long 1 contract", "market short ETH", "10x leverage long" | Read references/open-position.md | | Close position | "close all BTC", "close half", "reverse to short", "close everything" | Read references/close-position.md | | Cancel orders | "cancel that buy order", "cancel all orders", "list my orders" | Read references/cancel-order.md | | Amend order | "change price to 60000", "change order size" | Read references/amend-order.md | | Unclear | "help with futures", "show my position" | Clarify: query position/orders, then guide user |

Execution workflow

1. Intent and parameters

  • Determine module (Open/Close/Cancel/Amend).
  • Extract: contract, side, size, price, leverage.
  • Missing: if required params missing (e.g. size), ask user (clarify mode).

2. Pre-flight checks

  • Contract: call get_futures_contract to ensure contract exists and is tradeable.
  • Account: check balance and conflicting positions (e.g. when switching margin mode).
  • Risk: do not pre-calculate valid limit price from order_price_deviate (actual deviation limit depends on risk_limit_tier). On PRICE_TOO_DEVIATED, show the valid range from the error message.
  • Margin mode vs position mode (only when user explicitly requested a margin mode and it differs from current): call get_futures_accounts(settle) to get position mode. From response position_mode: single = single position mode, dual = dual (hedge) position mode. Margin mode from position: use position query per dual/single above → pos_margin_mode (cross/isolated). If user did not specify margin mode, do not switch; place order in current mode.
  • Single position (position_mode === "single"): do not interrupt. Prompt user: "You already have a {currency} position; switching margin mode will apply to this position too. Continue?" (e.g. currency from contract: BTC_USDT → BTC). Wait for user confirmation, then continue.
  • Dual position (position_mode === "dual"): interrupt flow. Tell user: "Please close the position first, then open a new one."
  • Dual mode vs single mode (API choice): call get_futures_accounts(settle) first. If position_mode === "dual" (or in_dual_mode === true):
  • Position / leverage query: use list_futures_positions(settle, holding=true) or get_futures_dual_mode_position(settle, contract). Do not use get_futures_position in dual mode (API returns an array and causes parse error).
  • Margin mode switch: use update_futures_dual_comp_position_cross_mode(settle, contract, mode) (do not use update_futures_position_cross_mode in dual mode).
  • Leverage: use update_futures_dual_mode_position_leverage(settle, contract, leverage) (do not use update_futures_position_leverage in dual mode; it returns array and causes parse error).

If single mode: use get_futures_position(settle, contract) for position; update_futures_dual_comp_position_cross_mode for mode switch; update_futures_position_leverage for leverage.

3. Module logic

Module A: Open position

  1. Unit conversion: if user does not specify size in contracts, get mark_price, quanto_multiplier from get_futures_contract, then convert:
  2. U (USDT notional): contracts = u ÷ mark_price ÷ quanto_multiplier (no leverage); with leverage: contracts = u × leverage ÷ mark_price ÷ quanto_multiplier
  3. Base (e.g. BTC, ETH): contracts = base_amount ÷ quanto_multiplier
  4. Round/truncate to order_size_min and size precision.
  5. Mode: Switch margin mode only when the user explicitly requests it: switch to isolated only when user explicitly asks for isolated (e.g. "isolated", "逐仓"); switch to cross only when user explicitly asks for cross (e.g. "cross", "全仓"). If the user does not specify margin mode, do not switch — place the order in the current margin mode (from position pos_margin_mode). If user explicitly wants isolated, check leverage.
  6. Mode switch: only when user explicitly requested a margin mode and it differs from current (current from position: pos_margin_mode), then before calling update_futures_dual_comp_position_cross_mode: get position mode via get_futures_accounts(settle) → position_mode (single/dual); if position_mode === "single", show prompt "You already have a {currency} position; switching margin mode will apply to this position too. Continue?" and continue only after user confirms; if position_mode === "dual", do not switch—interrupt and tell user "Please close the position first, then open a new one."
  7. Mode switch (no conflict): only when user explicitly requested cross or isolated and that target differs from current: if no position, or single position and user confirmed, call update_futures_dual_comp_position_cross_mode(settle, contract, mode) with mode "CROSS" or "ISOLATED". Do not switch if the user did not explicitly request a margin mode.
  8. Leverage: if user specified leverage and it differs from current (from position query per dual/single above), call update_futures_dual_mode_position_leverage in dual mode or update_futures_position_leverage in single mode first, then proceed.
  9. Pre-order confirmation: get current leverage from position query (dual: list_futures_positions or get_futures_dual_mode_position; single: get_futures_position) for contract + side. Show final order summary (contract, side, size, price or market, mode, leverage, estimated margin/liq price). Ask user to confirm (e.g. "Reply 'confirm' to place the order."). Only after user confirms, place order.
  10. Place order: call create_futures_order (market: tif=ioc, price=0).
  11. Verify: confirm position via position query (dual: list_futures_positions(holding=true) or get_futures_dual_mode_position; single: get_futures_position).

Module B: Close position

  1. Position: get current size and side via position query (dual: list_futures_positions(settle, holding=true) or get_futures_dual_mode_position(settle, contract); single: get_futures_position(settle, contract)).
  2. Branch: full close (query then close with reduce_only); partial (compute size, create_futures_order reduce_only); reverse (close then open opposite in two steps).
  3. Verify: confirm remaining position via same position query as step 1.

Module C: Cancel order

  1. Locate: by order_id, or list_futures_orders and let user choose.
  2. Cancel: single cancel_futures_order only (no batch cancel).
  3. Verify: finish_as == cancelled.

Module D: Amend order

  1. Check: order status must be open.
  2. Precision: validate new price/size against contract.
  3. Amend: call amend_futures_order to update price or size.

Report template

After each operation, output a short standardized result.

Safety rules

Confirmation

  • Open: show final order summary (contract, side, size, price/market, mode, leverage, estimated liq/margin), then ask for confir
Compartilhar X LinkedIn