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
| Command |
Type |
Description |
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] |
READ |
List bot orders with optional filters and pagination |
pionex-trade-cli bot futures_grid get --bu-order-id <id> |
READ |
Query one futures grid bot order |
pionex-trade-cli bot futures_grid create --base BTC --quote USDT --bu-order-data-json '<json>' [--dry-run] |
WRITE |
Create futures grid bot |
pionex-trade-cli bot futures_grid check_params --base <BASE> --quote <QUOTE> --bu-order-data-json '<json>' |
READ |
Validate 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] |
WRITE |
Add investment / modify range / trigger invest-in |
pionex-trade-cli bot futures_grid reduce --body-json '<json>' [--dry-run] |
WRITE |
Reduce 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> |
READ |
Query one spot grid bot order |
pionex-trade-cli bot spot_grid get_ai_strategy --base <BASE> --quote <QUOTE> |
READ |
Fetch 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] |
WRITE |
Create a new spot grid bot |
pionex-trade-cli bot spot_grid check_params --base <BASE> --quote <QUOTE> --bu-order-data-json '<json>' |
READ |
Validate 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] |
WRITE |
Modify grid price range |
pionex-trade-cli bot spot_grid invest_in --body-json '<json>' [--dry-run] |
WRITE |
Add funds to a running spot grid bot |
pionex-trade-cli bot spot_grid cancel --bu-order-id <id> [--dry-run] |
WRITE |
Cancel and close spot grid bot |
pionex-trade-cli bot spot_grid profit --body-json '<json>' [--dry-run] |
WRITE |
Extract accumulated grid profits |
pionex-trade-cli bot smart_copy get --bu-order-id <id> |
READ |
Query 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>] |
READ |
Validate 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] |
WRITE |
Create 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] |
WRITE |
Cancel 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] |
WRITE |
Push a trading signal to Pionex signal platform (signal provider role) |
pionex-trade-cli bot signal user_signal_list [--page-token <token>] |
READ |
List user-defined signals (paginated) |
pionex-trade-cli bot signal user_signal_get --signal-type <uuid> |
READ |
Get detail of a user-defined signal (webhookUrl, TradingView template) |
pionex-trade-cli bot signal user_signal_create --title <title> [--description <desc>] [--dry-run] |
WRITE |
Create 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] |
WRITE |
Edit title or description of a user-defined signal |
pionex-trade-cli bot signal user_signal_delete --signal-type <uuid> [--dry-run] |
WRITE |
Delete a user-defined signal (fails if unclosed orders exist) |
Safety Rules
- Confirm write intent for create/adjust/reduce/cancel before running without
--dry-run.
- 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.
- Never infer
buOrderId, leverage, range, or amount; require explicit user values.
- If API rejects params, surface exact error and propose a corrected payload.
Spot Grid Specific
- Call
get_ai_strategy before create when the user has not provided explicit price range and row count.
- Never add
leverage, trend, or extraMargin fields to spot grid payloads — spot grid is leverage-free.
- Verify account has sufficient base + quote balance before creating or adding investment.
invest_in and profit are standalone commands — do not confuse with adjust_params.
Smart Copy Specific
portfolio array in buOrderData must not be empty; each entry requires base, signal_type (UUID), and leverage (integer).
- Never infer
signal_type UUIDs; require explicit user values.
--copy-from <id> in create copies parameters from an existing smart copy order — use only when the user explicitly requests it.
--convert-into-earn-coin in cancel converts holdings into Earn products — confirm with user before using.
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
bot signal listener pushes a trading signal to the Pionex signal platform as a signal provider — it is NOT a consumer subscription command.
- 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.
user_signal_create/edit/delete are write operations — confirm intent before running without --dry-run.
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.
- 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
1---2name: pionex-bot3description: Use when the user asks to create, query, list, adjust, reduce, or cancel Pionex bot orders (Futures Grid, Spot Grid, Smart Copy), or to manage user-defined signals (list, get, create, edit, delete). Includes listing/paginating through bot orders in bulk. Requires API credentials and bot permissions. Do NOT use for market data only (pionex-market), balance only (pionex-portfolio), or spot order placement/cancel (pionex-trade).4license: MIT5---67# Pionex Bot Skill89Use 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.1011## Routing1213- Bot lifecycle (futures grid) -> **pionex-bot** (this skill)14- Bot lifecycle (spot grid) -> **pionex-bot** (this skill)15- Bot lifecycle (smart copy) -> **pionex-bot** (this skill)16- User-defined signal management (list/get/create/edit/delete) -> **pionex-bot** (this skill)17- Push trading signal to signal platform (signal provider role) -> **pionex-bot** (this skill)18- Market data -> **pionex-market**19- Spot balance -> **pionex-portfolio**20- Spot order placement/cancel -> **pionex-trade**2122## Commands2324| Command | Type | Description |25|---------|------|-------------|26| `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]` | READ | List bot orders with optional filters and pagination |27| `pionex-trade-cli bot futures_grid get --bu-order-id <id>` | READ | Query one futures grid bot order |28| `pionex-trade-cli bot futures_grid create --base BTC --quote USDT --bu-order-data-json '<json>' [--dry-run]` | WRITE | Create futures grid bot |29| `pionex-trade-cli bot futures_grid check_params --base <BASE> --quote <QUOTE> --bu-order-data-json '<json>'` | READ | Validate futures grid params before create. On FailedWithData, surfaces `min_investment` / `max_investment` / `slippage`. |30| `pionex-trade-cli bot futures_grid adjust_params --body-json '<json>' [--dry-run]` | WRITE | Add investment / modify range / trigger invest-in |31| `pionex-trade-cli bot futures_grid reduce --body-json '<json>' [--dry-run]` | WRITE | Reduce bot position |32| `pionex-trade-cli bot futures_grid cancel --bu-order-id <id> [--close-sell-model TO_QUOTE\\|TO_USDT] [--dry-run]` | WRITE | Cancel and close bot |33| `pionex-trade-cli bot spot_grid get --bu-order-id <id>` | READ | Query one spot grid bot order |34| `pionex-trade-cli bot spot_grid get_ai_strategy --base <BASE> --quote <QUOTE>` | READ | Fetch AI-recommended grid parameters for a pair |35| `pionex-trade-cli bot spot_grid create --base <BASE> --quote <QUOTE> --bu-order-data-json '<json>' [--dry-run]` | WRITE | Create a new spot grid bot |36| `pionex-trade-cli bot spot_grid check_params --base <BASE> --quote <QUOTE> --bu-order-data-json '<json>'` | READ | Validate spot grid params before create. On FailedWithData, surfaces `min_investment` / `max_investment` / `slippage`. |37| `pionex-trade-cli bot spot_grid adjust_params --body-json '<json>' [--dry-run]` | WRITE | Modify grid price range |38| `pionex-trade-cli bot spot_grid invest_in --body-json '<json>' [--dry-run]` | WRITE | Add funds to a running spot grid bot |39| `pionex-trade-cli bot spot_grid cancel --bu-order-id <id> [--dry-run]` | WRITE | Cancel and close spot grid bot |40| `pionex-trade-cli bot spot_grid profit --body-json '<json>' [--dry-run]` | WRITE | Extract accumulated grid profits |41| `pionex-trade-cli bot smart_copy get --bu-order-id <id>` | READ | Query one smart copy bot order |42| `pionex-trade-cli bot smart_copy check_params --base <BASE> --quote <QUOTE> --leverage <n> --quote-investment <amount> [--signal-type <uuid>] [--signal-param <json>]` | READ | Validate smart copy params. Use `--quote-investment 0` to get investment range only. On FailedWithData, surfaces constraints. |43| `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]` | WRITE | Create a smart copy bot (portfolio model) |44| `pionex-trade-cli bot smart_copy cancel --bu-order-id <id> [--close-note <note>] [--convert-into-earn-coin] [--dry-run]` | WRITE | Cancel and close smart copy bot |45| `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]` | WRITE | Push a trading signal to Pionex signal platform (signal provider role) |46| `pionex-trade-cli bot signal user_signal_list [--page-token <token>]` | READ | List user-defined signals (paginated) |47| `pionex-trade-cli bot signal user_signal_get --signal-type <uuid>` | READ | Get detail of a user-defined signal (webhookUrl, TradingView template) |48| `pionex-trade-cli bot signal user_signal_create --title <title> [--description <desc>] [--dry-run]` | WRITE | Create a new user-defined signal (max 100 per user) |49| `pionex-trade-cli bot signal user_signal_edit --signal-type <uuid> --title <title> \| --description <desc> [--dry-run]` | WRITE | Edit title or description of a user-defined signal |50| `pionex-trade-cli bot signal user_signal_delete --signal-type <uuid> [--dry-run]` | WRITE | Delete a user-defined signal (fails if unclosed orders exist) |5152## Safety Rules53541. Confirm write intent for create/adjust/reduce/cancel before running without `--dry-run`.552. 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.563. Never infer `buOrderId`, leverage, range, or amount; require explicit user values.574. If API rejects params, surface exact error and propose a corrected payload.5859### Spot Grid Specific60615. Call `get_ai_strategy` before `create` when the user has not provided explicit price range and row count.626. Never add `leverage`, `trend`, or `extraMargin` fields to spot grid payloads — spot grid is leverage-free.637. Verify account has sufficient base + quote balance before creating or adding investment.648. `invest_in` and `profit` are standalone commands — do not confuse with `adjust_params`.6566### Smart Copy Specific67689. `portfolio` array in `buOrderData` must not be empty; each entry requires `base`, `signal_type` (UUID), and `leverage` (integer).6910. Never infer `signal_type` UUIDs; require explicit user values.7011. `--copy-from <id>` in `create` copies parameters from an existing smart copy order — use only when the user explicitly requests it.7112. `--convert-into-earn-coin` in `cancel` converts holdings into Earn products — confirm with user before using.7213. `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.7374### Signal Specific757614. `bot signal listener` **pushes** a trading signal to the Pionex signal platform as a signal provider — it is NOT a consumer subscription command.7715. 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.7816. `user_signal_create/edit/delete` are write operations — confirm intent before running without `--dry-run`.7917. `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.8018. For `user_signal_edit`, at least one of `--title` or `--description` must be provided.8182## Examples8384```bash85# --- Futures Grid ---8687# List running futures grid bot orders88pionex-trade-cli bot order_list --status running --bu-order-types futures_grid8990# List all running bot orders across all types91pionex-trade-cli bot order_list --status running9293# Filter by symbol94pionex-trade-cli bot order_list --base BTC --quote USDT9596# Paginate to next page97pionex-trade-cli bot order_list --status finished --page-token <nextPageToken>9899# Read one bot status100pionex-trade-cli bot futures_grid get --bu-order-id 123456789101102# Validate futures grid params before creating103# extraMargin=false (manual mode): quoteInvestment is trading capital only;104# min_investment/max_investment represent trading capital range.105pionex-trade-cli bot futures_grid check_params \106 --base BTC \107 --quote USDT \108 --bu-order-data-json '{"top":"110000","bottom":"90000","row":100,"grid_type":"arithmetic","trend":"long","leverage":5,"extraMargin":false,"quoteInvestment":"100"}'109110# extraMargin=true (auto-split mode): quoteInvestment is total input (trading capital + safety buffer);111# min_investment/max_investment represent total input range. System splits automatically.112pionex-trade-cli bot futures_grid check_params \113 --base BTC \114 --quote USDT \115 --bu-order-data-json '{"top":"110000","bottom":"90000","row":100,"grid_type":"arithmetic","trend":"long","leverage":5,"extraMargin":true,"quoteInvestment":"100"}'116117# Dry-run create118pionex-trade-cli bot futures_grid create \119 --base BTC \120 --quote USDT \121 --bu-order-data-json '{"top":"110000","bottom":"90000","row":100,"grid_type":"arithmetic","trend":"long","leverage":5,"extraMargin":false,"quoteInvestment":"100"}' \122 --dry-run123124# Dry-run adjust125pionex-trade-cli bot futures_grid adjust_params --body-json '{"buOrderId":"123456789","type":"invest_in","quoteInvestment":50,"extraMargin":false}' --dry-run126127# --- Spot Grid ---128129# Get AI-recommended parameters for BTC/USDT spot grid130pionex-trade-cli bot spot_grid get_ai_strategy --base BTC --quote USDT131132# Validate spot grid params before creating133pionex-trade-cli bot spot_grid check_params \134 --base BTC \135 --quote USDT \136 --bu-order-data-json '{"top":"110000","bottom":"90000","row":50,"grid_type":"arithmetic","quoteInvestment":"200"}'137138# Dry-run create spot grid (using AI-recommended or user-specified params)139pionex-trade-cli bot spot_grid create \140 --base BTC \141 --quote USDT \142 --bu-order-data-json '{"top":"110000","bottom":"90000","row":50,"grid_type":"arithmetic","quoteInvestment":"200"}' \143 --dry-run144145# Query spot grid bot status146pionex-trade-cli bot spot_grid get --bu-order-id 987654321147148# Add investment to running spot grid bot149pionex-trade-cli bot spot_grid invest_in \150 --body-json '{"buOrderId":"987654321","quoteInvestment":"100"}' \151 --dry-run152153# Extract accumulated grid profits154pionex-trade-cli bot spot_grid profit \155 --body-json '{"buOrderId":"987654321"}' \156 --dry-run157158# Cancel spot grid bot159pionex-trade-cli bot spot_grid cancel --bu-order-id 987654321 --dry-run160161# List running spot grid bots162pionex-trade-cli bot order_list --status running --bu-order-types spot_grid163164# --- Smart Copy ---165166# Step 1: Get investment range for a signal (quote-investment 0 = range query only)167pionex-trade-cli bot smart_copy check_params \168 --base BTC \169 --quote USDT \170 --leverage 5 \171 --quote-investment 0172173# Step 1b: Validate a specific investment amount174pionex-trade-cli bot smart_copy check_params \175 --base BTC \176 --quote USDT \177 --leverage 5 \178 --quote-investment 100179180# Step 2: Dry-run create (single signal, leverage 5)181pionex-trade-cli bot smart_copy create \182 --base BTC \183 --quote USDT \184 --bu-order-data-json '{"quote_total_investment":"100","portfolio":[{"base":"BTC","signal_type":"<signal-uuid>","leverage":5}]}' \185 --dry-run186187# Dry-run create with stop-loss/take-profit and multi-signal portfolio188pionex-trade-cli bot smart_copy create \189 --base BTC \190 --quote USDT \191 --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"}]}' \192 --dry-run193194# Query smart copy bot status195pionex-trade-cli bot smart_copy get --bu-order-id 111222333196197# Cancel smart copy bot198pionex-trade-cli bot smart_copy cancel \199 --bu-order-id 111222333 \200 --dry-run201202# Cancel and convert holdings into Earn products203pionex-trade-cli bot smart_copy cancel \204 --bu-order-id 111222333 \205 --convert-into-earn-coin \206 --dry-run207208# Push a trading signal to the Pionex signal platform (signal provider role)209pionex-trade-cli bot signal listener \210 --signal-type <uuid> \211 --signal-param '{}' \212 --base BTC \213 --quote USDT \214 --time "2026-04-15T10:00:00Z" \215 --price 85000 \216 --action buy \217 --position-size 1 \218 --contracts 1 \219 --dry-run220221# List running smart copy bots222pionex-trade-cli bot order_list --status running --bu-order-types smart_copy223224# --- User-defined Signal CRUD ---225226# List all user-defined signals227pionex-trade-cli bot signal user_signal_list228229# Get detail of a signal (includes webhookUrl and TradingView message template)230pionex-trade-cli bot signal user_signal_get --signal-type <uuid>231232# Dry-run create a new signal233pionex-trade-cli bot signal user_signal_create \234 --title "My TradingView Signal" \235 --description "RSI crossover strategy" \236 --dry-run237238# Dry-run edit signal title239pionex-trade-cli bot signal user_signal_edit \240 --signal-type <uuid> \241 --title "Updated Signal Name" \242 --dry-run243244# Dry-run delete a signal (fails if unclosed orders exist)245pionex-trade-cli bot signal user_signal_delete \246 --signal-type <uuid> \247 --dry-run248```