mcpField
P
pionex-bot

pionex-bot

github.com/pionex-officialOther5131 installsUpdated 14w ago
Repository

About pionex-bot

pionex-bot is a skill for Pionex trading workflows, using pionex-trade-cli to manage grid and Smart Copy bots and user-defined signals. It includes parameter checks and safeguards for write operations.

Key features

  1. 01Manage futures grid bots
  2. 02Manage spot grid bots
  3. 03Manage Smart Copy bots
  4. 04Create and maintain user-defined signals
  5. 05Push trading signals
  6. 06Validate parameters and support dry runs

Use cases

  1. 01Inspect or adjust running grid bots
  2. 02Check investment parameters before bot creation
  3. 03Manage user-defined signals and details
  4. 04Push trading signals as a signal provider

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/pionex-official/pionex-skills --skill pionex-bot

After installing, type/pionex-botin Claude Code to confirm it loaded.

Details

From the project README

Pionex Bot Skill

Use this skill for Pionex bot lifecycle actions: Futures Grid (get, create, adjust, reduce, cancel), Spot Grid (get, get_ai_strategy, create, adjust_params, invest_in, cancel, profit), Smart Copy (get, create, check_params, cancel), and User-defined Signal CRUD (list, get, create, edit, delete). Also handles pushing trading signals to the Pionex signal platform.

Routing

  • Bot lifecycle (futures grid) -> pionex-bot (this skill)
  • Bot lifecycle (spot grid) -> pionex-bot (this skill)
  • Bot lifecycle (smart copy) -> pionex-bot (this skill)
  • User-defined signal management (list/get/create/edit/delete) -> pionex-bot (this skill)
  • Push trading signal to signal platform (signal provider role) -> pionex-bot (this skill)
  • Market data -> pionex-market
  • Spot balance -> pionex-portfolio
  • Spot order placement/cancel -> pionex-trade

Commands

CommandTypeDescription
pionex-trade-cli bot order_list [--status running|finished] [--base BTC] [--quote USDT] [--page-token <token>] [--bu-order-types futures_grid,spot_grid,smart_copy]READList bot orders with optional filters and pagination
pionex-trade-cli bot futures_grid get --bu-order-id <id>READQuery one futures grid bot order
pionex-trade-cli bot futures_grid create --base BTC --quote USDT --bu-order-data-json '<json>' [--dry-run]WRITECreate futures grid bot
pionex-trade-cli bot futures_grid check_params --base <BASE> --quote <QUOTE> --bu-order-data-json '<json>'READValidate futures grid params before create. On FailedWithData, surfaces min_investment / max_investment / slippage.
pionex-trade-cli bot futures_grid adjust_params --body-json '<json>' [--dry-run]WRITEAdd investment / modify range / trigger invest-in
pionex-trade-cli bot futures_grid reduce --body-json '<json>' [--dry-run]WRITEReduce bot position
`pionex-trade-cli bot futures_grid cancel --bu-order-id [--close-sell-model TO_QUOTE\TO_USDT] [--dry-run]`WRITE
pionex-trade-cli bot spot_grid get --bu-order-id <id>READQuery one spot grid bot order
pionex-trade-cli bot spot_grid get_ai_strategy --base <BASE> --quote <QUOTE>READFetch AI-recommended grid parameters for a pair
pionex-trade-cli bot spot_grid create --base <BASE> --quote <QUOTE> --bu-order-data-json '<json>' [--dry-run]WRITECreate a new spot grid bot
pionex-trade-cli bot spot_grid check_params --base <BASE> --quote <QUOTE> --bu-order-data-json '<json>'READValidate spot grid params before create. On FailedWithData, surfaces min_investment / max_investment / slippage.
pionex-trade-cli bot spot_grid adjust_params --body-json '<json>' [--dry-run]WRITEModify grid price range
pionex-trade-cli bot spot_grid invest_in --body-json '<json>' [--dry-run]WRITEAdd funds to a running spot grid bot
pionex-trade-cli bot spot_grid cancel --bu-order-id <id> [--dry-run]WRITECancel and close spot grid bot
pionex-trade-cli bot spot_grid profit --body-json '<json>' [--dry-run]WRITEExtract accumulated grid profits
pionex-trade-cli bot smart_copy get --bu-order-id <id>READQuery one smart copy bot order
pionex-trade-cli bot smart_copy check_params --base <BASE> --quote <QUOTE> --leverage <n> --quote-investment <amount> [--signal-type <uuid>] [--signal-param <json>]READValidate smart copy params. Use --quote-investment 0 to get investment range only. On FailedWithData, surfaces constraints.
pionex-trade-cli bot smart_copy create --base <BASE> --quote <QUOTE> --bu-order-data-json '<json>' [--copy-from <id>] [--copy-type <type>] [--note <note>] [--dry-run]WRITECreate a smart copy bot (portfolio model)
pionex-trade-cli bot smart_copy cancel --bu-order-id <id> [--close-note <note>] [--convert-into-earn-coin] [--dry-run]WRITECancel and close smart copy bot
pionex-trade-cli bot signal listener --signal-type <uuid> --signal-param <json> --base <BASE> --quote <QUOTE> --time <iso> --price <price> --action <buy|sell> --position-size <size> --contracts <n> [--direction <dir>] [--dry-run]WRITEPush a trading signal to Pionex signal platform (signal provider role)
pionex-trade-cli bot signal user_signal_list [--page-token <token>]READList user-defined signals (paginated)
pionex-trade-cli bot signal user_signal_get --signal-type <uuid>READGet detail of a user-defined signal (webhookUrl, TradingView template)
pionex-trade-cli bot signal user_signal_create --title <title> [--description <desc>] [--dry-run]WRITECreate a new user-defined signal (max 100 per user)
pionex-trade-cli bot signal user_signal_edit --signal-type <uuid> --title <title> | --description <desc> [--dry-run]WRITEEdit title or description of a user-defined signal
pionex-trade-cli bot signal user_signal_delete --signal-type <uuid> [--dry-run]WRITEDelete a user-defined signal (fails if unclosed orders exist)

Safety Rules

  1. Confirm write intent for create/adjust/reduce/cancel before running without --dry-run.
  2. Call check_params before create to validate parameters. If the response is FailedWithData, surface the returned min_investment, max_investment, and slippage values to the user before retrying. Note: when extraMargin=true (auto-split mode), min_investment/max_investment represent the total input range (trading capital + safety buffer); when extraMargin=false (manual mode), they represent trading capital only. Always tell the user which interpretation applies.
  3. Never infer buOrderId, leverage, range, or amount; require explicit user values.
  4. If API rejects params, surface exact error and propose a corrected payload.
Spot Grid Specific
  1. Call get_ai_strategy before create when the user has not provided explicit price range and row count.
  2. Never add leverage, trend, or extraMargin fields to spot grid payloads — spot grid is leverage-free.
  3. Verify account has sufficient base + quote balance before creating or adding investment.
  4. invest_in and profit are standalone commands — do not confuse with adjust_params.
Smart Copy Specific
  1. portfolio array in buOrderData must not be empty; each entry requires base, signal_type (UUID), and leverage (integer).
  2. Never infer signal_type UUIDs; require explicit user values.
  3. --copy-from <id> in create copies parameters from an existing smart copy order — use only when the user explicitly requests it.
  4. --convert-into-earn-coin in cancel converts holdings into Earn products — confirm with user before using.
  5. check_params takes flat flags (--leverage, --quote-investment), not --bu-order-data-json. Use --quote-investment 0 to query the investment range without validating a specific amount.
Signal Specific
  1. bot signal listener pushes a trading signal to the Pionex signal platform as a signal provider — it is NOT a consumer subscription command.
  2. All flags are required: --signal-type, --signal-param, --base, --quote, --time (RFC 3339), --price, --action, --position-size, --contracts. Never omit or infer any of them.
  3. user_signal_create/edit/delete are write operations — confirm intent before running without --dry-run.
  4. user_signal_delete will fail with SIGNAL_HAS_UNCLOSED_ORDERS if the signal has active orders. Surface the cnt value (number of open orders) to the user before retrying.
  5. For user_signal_edit, at least one of --title or --description must be provided.

Examples

# --- Futures Grid ---

# List running futures grid bot orders
pionex-trade-cli bot order_list --status running --bu-order-types futures_grid

# List all running bot orders across all types
pionex-trade-cli bot order_list --status running

# Filter by symbol
pionex-trade-cli bot order_list --base BTC --quote USDT

# Paginate to next page
pionex-trade-cli bot order_list --status finished --page-token <nextPageToken>

# Read one bot status
pionex-trade-cli bot futures_grid get --bu-order-id 123456789

# Validate futures grid params before creating
# extraMargin=false (manual mode): quoteInvestment is trading capital only;
#   min_investment/max_investment represent trading capital range.
pionex-trade-cli bot futures_grid check_params \
  --base BTC \
  --quote USDT \
  --bu-order-data-json '{"top":"110000","bottom":"90000","row":100,"grid_type":"arithmetic","trend":"long","leverage":5,"extraMargin":false,"quoteInvestment":"100"}'

# extraMargin=true (auto-split mode): quoteInvestment is total input (trading capital + safety buffer);
#   min_investment/max_investment represent total input range. System splits automatically.
pionex-trade-cli bot futures_grid check_params \
  --base BTC \
  --quote USDT \
  --bu-order-data-json '{"top":"110000","bottom":"90000","row":100,"grid_type":"arithmetic","trend":"long","leverage":5,"extraMargin":true,"quoteInvestment":"100"}'

# Dry-run create
pionex-trade-cli bot futures_grid create \
  --base BTC \
  --quote USDT \
  --bu-order-data-json '{"top":"110000","bottom":"90000","row":100,"grid_type":"arithmetic","trend":"long","leverage":5,"extraMargin":false,"quoteInvestment":"100"}' \
  --dry-run

# Dry-run adjust
pionex-trade-cli bot futures_grid adjust_params --body-json '{"buOrderId":"123456789","type":"invest_in","quoteInvestment":50,"extraMargin":false}' --dry-run

# --- Spot Grid ---

# Get AI-recommended parameters for BTC/USDT spot grid
pionex-trade-cli bot spot_grid get_ai_strategy --base BTC --quote USDT

# Validate spot grid params before creating
pionex-trade-cli bot spot_grid check_params \
  --base BTC \
  --quote USDT \
  --bu-order-data-json '{"top":"110000","bottom":"90000","row":50,"grid_type":"arithmetic","quoteInvestment":"200"}'

# Dry-run create spot grid (using AI-recommended or user-specified params)
pionex-trade-cli bot spot_grid create \
  --base BTC \
  --quote USDT \
  --bu-order-data-json '{"top":"110000","bottom":"90000","row":50,"grid_type":"arithmetic","quoteInvestment":"200"}' \
  --dry-run

# Query spot grid bot status
pionex-trade-cli bot spot_grid get --bu-order-id 987654321

# Add investment to running spot grid bot
pionex-trade-cli bot spot_grid invest_in \
  --body-json '{"buOrderId":"987654321","quoteInvestment":"100"}' \
  --dry-run

# Extract accumulated grid profits
pionex-trade-cli bot spot_grid profit \
  --body-json '{"buOrderId":"987654321"}' \
  --dry-run

# Cancel spot grid bot
pionex-trade-cli bot spot_grid cancel --bu-order-id 987654321 --dry-run

# List running spot grid bots
pionex-trade-cli bot order_list --status running --bu-order-types spot_grid

# --- Smart Copy ---

# Step 1: Get investment range for a signal (quote-investment 0 = range query only)
pionex-trade-cli bot smart_copy check_params \
  --base BTC \
  --quote USDT \
  --leverage 5 \
  --quote-investment 0

# Step 1b: Validate a specific investment amount
pionex-trade-cli bot smart_copy check_params \
  --base BTC \
  --quote USDT \
  --leverage 5 \
  --quote-investment 100

# Step 2: Dry-run create (single signal, leverage 5)
pionex-trade-cli bot smart_copy create \
  --base BTC \
  --quote USDT \
  --bu-order-data-json '{"quote_total_investment":"100","portfolio":[{"base":"BTC","signal_type":"<signal-uuid>","leverage":5}]}' \
  --dry-run

# Dry-run create with stop-loss/take-profit and multi-signal portfolio
pionex-trade-cli bot smart_copy create \
  --base BTC \
  --quote USDT \
  --bu-order-data-json '{"quote_total_investment":"200","portfolio":[{"base":"BTC","signal_type":"<uuid1>","leverage":5,"percent":"0.5","profit_stop_ratio":"0.3","loss_stop_ratio":"0.1"},{"base":"ETH","signal_type":"<uuid2>","leverage":3,"percent":"0.5"}]}' \
  --dry-run

# Query smart copy bot status
pionex-trade-cli bot smart_copy get --bu-order-id 111222333

# Cancel smart copy bot
pionex-trade-cli bot smart_copy cancel \
  --bu-order-id 111222333 \
  --dry-run

# Cancel and convert holdings into Earn products
pionex-trade-cli bot smart_copy cancel \
  --bu-order-id 111222333 \
  --convert-into-earn-coin \
  --dry-run

# Push a trading signal to the Pionex signal platform (signal provider role)
pionex-trade-cli bot signal listener \
  --signal-type <uuid> \
  --signal-param '{}' \
  --base BTC \
  --quote USDT \
  --time "2026-04-15T10:00:00Z" \
  --price 85000 \
  --action buy \
  --position-size 1 \
  --contracts 1 \
  --dry-run

# List running smart copy bots
pionex-trade-cli bot order_list --status running --bu-order-types smart_copy

# --- User-defined Signal CRUD ---

# List all user-defined signals
pionex-trade-cli bot signal user_signal_list

# Get detail of a signal (includes webhookUrl and TradingView message template)
pionex-trade-cli bot signal user_signal_get --signal-type <uuid>

# Dry-run create a new signal
pionex-trade-cli bot signal user_signal_create \
  --title "My TradingView Signal" \
  --description "RSI crossover strategy" \
  --dry-run

# Dry-run edit signal title
pionex-trade-cli bot signal user_signal_edit \
  --signal-type <uuid> \
  --title "Updated Signal Name" \
  --dry-run

# Dry-run delete a signal (fails if unclosed orders exist)
pionex-trade-cli bot signal user_signal_delete \
  --signal-type <uuid> \
  --dry-run

Comments

Markdown supported