SunPerp Perpetual Futures Trading by bofai/skills
npx skills add https://github.com/bofai/skills --skill 'SunPerp Perpetual Futures Trading'此技能使 AI 代理能够在 SunPerp(TRON 区块链上的永续期货 DEX)上交易 USDT 保证金永续期货。它提供以下脚本:
所有脚本均与位于 https://api.sunx.io 的 SunPerp REST API 通信。
从技能目录安装 Node.js 依赖项:
cd sunperp-skill
npm install
用户必须在 https://www.sunperp.com/futures/api-manage/ 创建 API 密钥,并将其设置为环境变量:
export SUNPERP_ACCESS_KEY="your_access_key"
export SUNPERP_SECRET_KEY="your_secret_key"
[!CAUTION] 切勿在命令或文件中硬编码 API 密钥。始终从环境变量中读取。如果未设置环境变量,请提示用户先进行设置。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
运行一个公共端点以验证连接性(无需 API 密钥):
node scripts/market.js ticker contract_code=BTC-USDT
然后验证身份验证访问:
node scripts/account.js balance
SunPerp 合约遵循以下命名模式:
| 类型 | 格式 | 示例 |
|---|---|---|
| 永续合约 | {SYMBOL}-USDT | BTC-USDT |
| 当周合约 | {SYMBOL}-USDT-CW | BTC-USDT-CW |
| 次周合约 | {SYMBOL}-USDT-NW | BTC-USDT-NW |
| 当季合约 | {SYMBOL}-USDT-CQ | BTC-USDT-CQ |
| 次季合约 | {SYMBOL}-USDT-NQ | BTC-USDT-NQ |
热门永续合约:BTC-USDT, ETH-USDT, TRX-USDT, SOL-USDT, SUN-USDT, DOGE-USDT, XRP-USDT。
SunPerp 支持两种持仓模式:
position_side=both。side 字段决定方向。position_side=long 或 position_side=short。允许同时持有多头和空头仓位。交易前请检查当前模式:
node scripts/position.js get_mode
API 使用全仓保证金(margin_mode=cross)作为标准模式。所有订单和仓位脚本默认使用全仓保证金。
所有脚本都位于 scripts/ 目录中,并按以下方式调用:
node scripts/<script>.js <command> [key=value ...]
市场数据无需身份验证。
node scripts/market.js ticker contract_code=BTC-USDT
返回:开盘价、收盘价、最高价、最低价、成交量、最佳买卖价。
node scripts/market.js depth contract_code=BTC-USDT type=step0
type 值:step0(未合并,150 档)到 step5;step6(未合并,20 档)到 step13。
node scripts/market.js kline contract_code=BTC-USDT period=60min size=50
period 值:1min, 5min, 15min, 30min, 60min, 60min, 4hour, 1day, 1mon。
node scripts/market.js bbo contract_code=BTC-USDT
node scripts/market.js trade contract_code=BTC-USDT
node scripts/market.js trades contract_code=BTC-USDT size=20
node scripts/market.js funding contract_code=BTC-USDT
node scripts/market.js index contract_code=BTC-USDT
node scripts/market.js contracts
node scripts/market.js price_limit contract_code=BTC-USDT
需要身份验证(API 密钥)。
node scripts/account.js balance
返回:权益、可用保证金、未实现盈亏、维持保证金率。
node scripts/account.js fee contract_code=BTC-USDT
node scripts/account.js bills mar_acct=USDT
可选:contract=BTC-USDT, start_time=<ms>, end_time=<ms>。
需要具有交易权限的身份验证。
开多仓(买入):
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1
开空仓(卖出):
node scripts/order.js place contract_code=BTC-USDT side=sell type=market volume=1
node scripts/order.js place contract_code=BTC-USDT side=buy type=limit volume=1 price=95000
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1 tp_trigger_price=100000 sl_trigger_price=90000
node scripts/order.js place contract_code=BTC-USDT side=buy type=post_only volume=1 price=94000
当 position_mode=dual_side 时,必须指定 position_side:
# 开多仓
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1 position_side=long
# 平多仓
node scripts/order.js place contract_code=BTC-USDT side=sell type=market volume=1 position_side=long
# 开空仓
node scripts/order.js place contract_code=BTC-USDT side=sell type=market volume=1 position_side=short
# 平空仓
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1 position_side=short
node scripts/order.js cancel contract_code=BTC-USDT order_id=123456789
或通过客户端订单 ID:
node scripts/order.js cancel contract_code=BTC-USDT client_order_id=my_order_1
node scripts/order.js cancel_all
可选过滤:contract_code=BTC-USDT, side=buy, position_side=long。
node scripts/order.js close contract_code=BTC-USDT position_side=both
在对冲模式下使用 position_side=long 或 position_side=short。
node scripts/order.js close_all
node scripts/order.js open_orders contract_code=BTC-USDT
node scripts/order.js info contract_code=BTC-USDT order_id=123456789
node scripts/order.js history contract_code=BTC-USDT
可选:state=filled, start_time=<ms>, end_time=<ms>, limit=50。
node scripts/order.js details contract_code=BTC-USDT order_id=123456789
需要身份验证。
node scripts/position.js list
或针对特定合约:
node scripts/position.js list contract_code=BTC-USDT
返回:开仓均价、数量、强平价格、未实现盈亏、保证金率、杠杆、ADL 风险。
node scripts/position.js get_leverage contract_code=BTC-USDT
node scripts/position.js set_leverage contract_code=BTC-USDT lever_rate=20
[!WARNING] 增加杠杆会增加强平风险。在设置杠杆前,务必与用户确认所需的杠杆倍数。
node scripts/position.js get_mode
node scripts/position.js set_mode position_mode=single_side
[!NOTE] 持仓模式只能在没有未平仓位或订单时更改。
node scripts/position.js risk_limit contract_code=BTC-USDT
node scripts/position.js position_limit contract_code=BTC-USDT
需要具有提现权限的身份验证。同时需要 TRON_PRIVATE_KEY 环境变量来签署提现确认。
export TRON_PRIVATE_KEY="your_hex_private_key"
执行完整的两步提现流程:申请 → 签名 → 确认。
node scripts/wallet.js withdraw address=TXxxxxxxxxxxxxxxxxxxxxxxxxxxxx amount=10
可选:currency=usdt(默认), chain=trc20usdt(默认), fee=0(默认)。
返回用于手动签名的 nonce 和内容:
node scripts/wallet.js apply address=TXxxxxxxxxxxxxxxxxxxxxxxxxxxxx amount=10
使用预先计算好的签名确认先前申请的提现:
node scripts/wallet.js confirm nonce=<nonce_from_apply> signature=<hex_signature>
node scripts/wallet.js records type=deposit
node scripts/wallet.js records type=withdraw
可选:currency=usdt, size=50, direct=next, from=<id>。
[!CAUTION] 提现将资金移出平台且不可逆。在执行前,务必与用户确认目标地址和金额。
User: "以市价买入 5 张 BTC-USDT 合约"
Agent steps:
1. 检查当前价格:
node scripts/market.js ticker contract_code=BTC-USDT
2. 检查账户余额:
node scripts/account.js balance
3. 与用户确认:"BTC-USDT 当前价格为 $96,500。您有 $10,000 可用保证金。
将以市价买入 5 张合约。是否继续?"
4. 用户确认后,下单:
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=5
5. 验证仓位已开:
node scripts/position.js list contract_code=BTC-USDT
6. 报告:"已开多仓:5 张 BTC-USDT 合约,平均开仓价 $96,502。
强平价格:$48,251。当前未实现盈亏:$0。"
User: "将 ETH-USDT 的杠杆设置为 20 倍,并在 $3,200 挂限价买单,数量 10 张合约"
Agent steps:
1. 设置杠杆:
node scripts/position.js set_leverage contract_code=ETH-USDT lever_rate=20
2. 检查当前价格以了解情况:
node scripts/market.js ticker contract_code=ETH-USDT
3. 与用户确认:"杠杆已设置为 20 倍。ETH-USDT 当前价格为 $3,350。
将在 $3,200 挂限价买单,数量 10 张合约。是否继续?"
4. 用户确认后,下单:
node scripts/order.js place contract_code=ETH-USDT side=buy type=limit volume=10 price=3200
5. 验证订单已挂出:
node scripts/order.js open_orders contract_code=ETH-USDT
6. 报告:"限价买单已挂出:10 张 ETH-USDT 合约,价格 $3,200。订单 ID:987654321。状态:未成交。"
User: "平掉我的 BTC-USDT 仓位"
Agent steps:
1. 检查现有仓位:
node scripts/position.js list contract_code=BTC-USDT
2. 报告仓位详情并确认:
"您有一个 BTC-USDT 多仓,数量 5 张合约。开仓价:$96,502,当前价:$97,100。
未实现盈亏:+$2.99。是否以市价平仓?是否继续?"
3. 用户确认后,平仓:
node scripts/order.js close contract_code=BTC-USDT position_side=both
4. 验证:
node scripts/position.js list contract_code=BTC-USDT
5. 报告:"仓位已平。扣除手续费后,已实现盈亏:+$2.95。"
User: "TRX-USDT 的资金费率是多少?"
Agent steps:
1. 获取资金费率:
node scripts/market.js funding contract_code=TRX-USDT
2. 报告:"TRX-USDT 资金费率:0.01%(下次资金费率结算在 2 小时 15 分钟后)。
正费率意味着多头支付给空头。"
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 缺少环境变量 | 未设置 SUNPERP_ACCESS_KEY / SUNPERP_SECRET_KEY | 要求用户设置 API 密钥 |
HTTP 401 | API 密钥无效或已过期 | 要求用户检查/重新生成密钥 |
HTTP 403 | 权限不足 | API 密钥需要交易权限才能下单 |
| 时间戳错误 | 系统时钟偏差 > 5 分钟 | 检查系统时间同步 |
| 保证金不足 | 订单可用保证金不足 | 显示余额,建议减少数量或杠杆 |
| 持仓模式冲突 | 试图在有未平仓位时设置模式 | 先平仓,再切换模式 |
| 订单被拒绝 | 价格超出限制或数量太小 | 检查 price_limit 和合约信息中的最小/最大值 |
当脚本返回错误时:
code、message 或 error-msg 字段)在脚本级别强制执行两个强制性的安全机制,以防止灾难性损失。两者均在 resources/sunperp_config.json 文件的 safety 键下配置。
| 参数 | 默认值 | 描述 |
|---|---|---|
safety.max_leverage | 20 | 代理允许使用的最大杠杆倍数 |
上限在两个地方强制执行:
position.js set_leverage — 在调用 API 之前拒绝任何超过上限的 lever_rate。order.js place — 如果内联传递了 lever_rate,则在提交订单前进行验证。如果代理试图超过上限,脚本将以明确的错误退出:
ERROR: Leverage 50x exceeds the agent safety cap of 20x.
Adjust max_leverage in sunperp_config.json to raise this limit.
要更改上限,请编辑配置文件中的 safety.max_leverage。这是一个操作员级别的设置——代理无法在运行时更改它。
| 参数 | 默认值 | 描述 |
|---|---|---|
safety.stop_loss.required | true | 每个开仓订单是否必须设置止损 |
safety.stop_loss.default_percent | 5 | 当省略 sl_trigger_price 时自动计算的止损距离(百分比) |
safety.stop_loss.max_percent | 25 | 允许的最大止损距离——拒绝更宽的止损 |
当 required 为 true 时,每个开仓订单(即非 reduce_only)必须包含止损:
sl_trigger_price:验证其与参考价格的距离在 max_percent 范围内。default_percent 的位置。sl_trigger_price。示例 — 限价多单的自动止损:
# 在 $95,000 的限价买单 — 止损自动设置为 $90,250(低于 5%)
node scripts/order.js place contract_code=BTC-USDT side=buy type=limit volume=1 price=95000
示例 — 显式止损:
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1 sl_trigger_price=90000
示例 — 被拒绝(止损过宽):
# 30% 的距离超过了 25% 的 max_percent
node scripts/order.js place contract_code=BTC-USDT side=buy type=limit volume=1 price=95000 sl_trigger_price=66500
[!NOTE]
reduce_only标志(平仓订单)免于止损要求,因为这些订单已经在降低风险。
[!CAUTION] 私钥和 API 密钥:切勿记录、显示或存储 API 密钥。仅从环境变量中读取。
[!WARNING] 交易确认:在执行任何交易之前,务必与用户确认以下信息:
- 合约代码和方向(多/空)
- 订单类型(市价/限价)和数量
- 价格(限价单)
- 当前杠杆设置
- 预估保证金要求
safety.max_leverage 上限交易前确认:
📋 订单摘要:
合约:{contract_code}
方向:{side} ({long/short})
类型:{type}
数量:{volume} 张合约
价格:{price 或 "市价"}
杠杆:{lever_rate}x (上限:{max_leverage}x)
止损:${sl_trigger_price}
预估保证金:~${margin}
是否继续?(是/否)
交易后报告:
✅ 订单已执行:
订单 ID:{order_id}
平均成交价:${trade_avg_price}
手续费:${fee}
仓位摘要:
📊 仓位:{contract_code} {direction}
数量:{volume} 张合约
开仓价:${open_avg_price}
标记价格:${mark_price}
强平价格:${liquidation_price}
未实现盈亏:${profit_unreal} ({profit_rate}%)
杠杆:{lever_rate}x
版本 1.0.0 — 由 M2M Agent Registry 为 Bank of AI 创建
每周安装次数
–
代码仓库
GitHub 星标数
2
首次出现时间
–
安全审计
This skill enables AI agents to trade USDT-margined perpetual futures on SunPerp, the perpetual futures DEX on the TRON blockchain. It provides scripts for:
All scripts communicate with the SunPerp REST API at https://api.sunx.io.
Install Node.js dependencies from the skill directory:
cd sunperp-skill
npm install
The user must create API keys at https://www.sunperp.com/futures/api-manage/ and set them as environment variables:
export SUNPERP_ACCESS_KEY="your_access_key"
export SUNPERP_SECRET_KEY="your_secret_key"
[!CAUTION] Never hardcode API keys in commands or files. Always read them from environment variables. If the environment variables are not set, prompt the user to set them before proceeding.
Run a public endpoint to verify connectivity (no API key needed):
node scripts/market.js ticker contract_code=BTC-USDT
Then verify authenticated access:
node scripts/account.js balance
SunPerp contracts follow these naming patterns:
| Type | Format | Example |
|---|---|---|
| Perpetual swap | {SYMBOL}-USDT | BTC-USDT |
| Current week | {SYMBOL}-USDT-CW | BTC-USDT-CW |
| Next week | {SYMBOL}-USDT-NW | BTC-USDT-NW |
| Current quarter | {SYMBOL}-USDT-CQ |
Popular perpetual contracts: BTC-USDT, ETH-USDT, TRX-USDT, SOL-USDT, SUN-USDT, DOGE-USDT, XRP-USDT.
SunPerp supports two position modes:
position_side=both for all orders. The side field determines direction.position_side=long or position_side=short. Allows simultaneous long and short positions.Check the current mode before trading:
node scripts/position.js get_mode
The API uses cross margin (margin_mode=cross) as the standard mode. All order and position scripts default to cross margin.
All scripts are located in the scripts/ directory and invoked as:
node scripts/<script>.js <command> [key=value ...]
No authentication required for market data.
node scripts/market.js ticker contract_code=BTC-USDT
Returns: open, close, high, low, volume, best bid/ask.
node scripts/market.js depth contract_code=BTC-USDT type=step0
type values: step0 (unmerged, 150 levels) through step5; step6 (unmerged, 20 levels) through step13.
node scripts/market.js kline contract_code=BTC-USDT period=60min size=50
period values: 1min, 5min, 15min, 30min, 60min, 60min, 4hour, 1day, 1mon.
node scripts/market.js bbo contract_code=BTC-USDT
node scripts/market.js trade contract_code=BTC-USDT
node scripts/market.js trades contract_code=BTC-USDT size=20
node scripts/market.js funding contract_code=BTC-USDT
node scripts/market.js index contract_code=BTC-USDT
node scripts/market.js contracts
node scripts/market.js price_limit contract_code=BTC-USDT
Requires authentication (API keys).
node scripts/account.js balance
Returns: equity, available margin, unrealized PnL, maintenance margin rate.
node scripts/account.js fee contract_code=BTC-USDT
node scripts/account.js bills mar_acct=USDT
Optional: contract=BTC-USDT, start_time=<ms>, end_time=<ms>.
Requires authentication with Trade permission.
Open a long position (buy):
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1
Open a short position (sell):
node scripts/order.js place contract_code=BTC-USDT side=sell type=market volume=1
node scripts/order.js place contract_code=BTC-USDT side=buy type=limit volume=1 price=95000
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1 tp_trigger_price=100000 sl_trigger_price=90000
node scripts/order.js place contract_code=BTC-USDT side=buy type=post_only volume=1 price=94000
When position_mode=dual_side, you must specify position_side:
# Open long
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1 position_side=long
# Close long
node scripts/order.js place contract_code=BTC-USDT side=sell type=market volume=1 position_side=long
# Open short
node scripts/order.js place contract_code=BTC-USDT side=sell type=market volume=1 position_side=short
# Close short
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1 position_side=short
node scripts/order.js cancel contract_code=BTC-USDT order_id=123456789
Or by client order ID:
node scripts/order.js cancel contract_code=BTC-USDT client_order_id=my_order_1
node scripts/order.js cancel_all
Optionally filter: contract_code=BTC-USDT, side=buy, position_side=long.
node scripts/order.js close contract_code=BTC-USDT position_side=both
In hedge mode use position_side=long or position_side=short.
node scripts/order.js close_all
node scripts/order.js open_orders contract_code=BTC-USDT
node scripts/order.js info contract_code=BTC-USDT order_id=123456789
node scripts/order.js history contract_code=BTC-USDT
Optional: state=filled, start_time=<ms>, end_time=<ms>, limit=50.
node scripts/order.js details contract_code=BTC-USDT order_id=123456789
Requires authentication.
node scripts/position.js list
Or for a specific contract:
node scripts/position.js list contract_code=BTC-USDT
Returns: entry price, volume, liquidation price, unrealized PnL, margin rate, leverage, ADL risk.
node scripts/position.js get_leverage contract_code=BTC-USDT
node scripts/position.js set_leverage contract_code=BTC-USDT lever_rate=20
[!WARNING] Increasing leverage increases liquidation risk. Always confirm the desired leverage with the user before setting it.
node scripts/position.js get_mode
node scripts/position.js set_mode position_mode=single_side
[!NOTE] Position mode can only be changed when there are no open positions or orders.
node scripts/position.js risk_limit contract_code=BTC-USDT
node scripts/position.js position_limit contract_code=BTC-USDT
Requires authentication with Withdraw permission. Also requires TRON_PRIVATE_KEY env var for signing withdrawal confirmations.
export TRON_PRIVATE_KEY="your_hex_private_key"
Performs the complete two-step withdraw: apply → sign → confirm.
node scripts/wallet.js withdraw address=TXxxxxxxxxxxxxxxxxxxxxxxxxxxxx amount=10
Optional: currency=usdt (default), chain=trc20usdt (default), fee=0 (default).
Returns nonce and content for manual signing:
node scripts/wallet.js apply address=TXxxxxxxxxxxxxxxxxxxxxxxxxxxxx amount=10
Confirm a previously applied withdrawal with a pre-computed signature:
node scripts/wallet.js confirm nonce=<nonce_from_apply> signature=<hex_signature>
node scripts/wallet.js records type=deposit
node scripts/wallet.js records type=withdraw
Optional: currency=usdt, size=50, direct=next, from=<id>.
[!CAUTION] Withdrawals move funds off-platform and are irreversible. Always confirm the destination address and amount with the user before executing.
User: "Buy 5 contracts of BTC-USDT at market price"
Agent steps:
1. Check the current price:
node scripts/market.js ticker contract_code=BTC-USDT
2. Check account balance:
node scripts/account.js balance
3. Confirm with user: "BTC-USDT is currently at $96,500. You have $10,000 available margin.
Placing a market buy for 5 contracts. Proceed?"
4. After user confirms, place the order:
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=5
5. Verify the position was opened:
node scripts/position.js list contract_code=BTC-USDT
6. Report: "Opened long position: 5 BTC-USDT contracts at $96,502 avg entry.
Liquidation price: $48,251. Current unrealized PnL: $0."
User: "Set leverage to 20x on ETH-USDT and place a limit buy at $3,200 for 10 contracts"
Agent steps:
1. Set leverage:
node scripts/position.js set_leverage contract_code=ETH-USDT lever_rate=20
2. Check current price for context:
node scripts/market.js ticker contract_code=ETH-USDT
3. Confirm with user: "Leverage set to 20x. ETH-USDT is at $3,350.
Placing limit buy for 10 contracts at $3,200. Proceed?"
4. After user confirms, place the order:
node scripts/order.js place contract_code=ETH-USDT side=buy type=limit volume=10 price=3200
5. Verify the order was placed:
node scripts/order.js open_orders contract_code=ETH-USDT
6. Report: "Limit buy order placed: 10 ETH-USDT at $3,200. Order ID: 987654321. Status: open."
User: "Close my BTC-USDT position"
Agent steps:
1. Check existing position:
node scripts/position.js list contract_code=BTC-USDT
2. Report position details and confirm:
"You have a long position of 5 BTC-USDT contracts. Entry: $96,502, Current: $97,100.
Unrealized PnL: +$2.99. Close at market? Proceed?"
3. After user confirms, close:
node scripts/order.js close contract_code=BTC-USDT position_side=both
4. Verify:
node scripts/position.js list contract_code=BTC-USDT
5. Report: "Position closed. Realized PnL: +$2.95 after fees."
User: "What's the funding rate for TRX-USDT?"
Agent steps:
1. Get funding rate:
node scripts/market.js funding contract_code=TRX-USDT
2. Report: "TRX-USDT funding rate: 0.01% (next funding in 2h 15m).
Positive rate means longs pay shorts."
| Error | Cause | Resolution |
|---|---|---|
| Missing env vars | SUNPERP_ACCESS_KEY / SUNPERP_SECRET_KEY not set | Ask user to set API keys |
HTTP 401 | Invalid or expired API keys | Ask user to check/regenerate keys |
HTTP 403 | Insufficient permissions | API key needs Trade permission for orders |
| Timestamp error | System clock skew > 5 minutes | Check system time synchronization |
| Insufficient margin | Not enough available margin for the order | Show balance, suggest reducing volume or leverage |
When a script returns an error:
code, message, or error-msg fields)Two mandatory safety mechanisms are enforced at the script level to prevent catastrophic losses. Both are configured in resources/sunperp_config.json under the safety key.
| Parameter | Default | Description |
|---|---|---|
safety.max_leverage | 20 | Maximum leverage the agent is allowed to use |
The cap is enforced in two places:
position.js set_leverage — rejects any lever_rate above the cap before calling the API.order.js place — if lever_rate is passed inline, it is validated before the order is submitted.If the agent attempts to exceed the cap, the script exits with a clear error:
ERROR: Leverage 50x exceeds the agent safety cap of 20x.
Adjust max_leverage in sunperp_config.json to raise this limit.
To change the cap, edit safety.max_leverage in the config file. This is an operator-level setting — the agent cannot change it at runtime.
| Parameter | Default | Description |
|---|---|---|
safety.stop_loss.required | true | Whether every position-opening order must have a stop-loss |
safety.stop_loss.default_percent | 5 | Auto-calculated SL distance when sl_trigger_price is omitted |
safety.stop_loss.max_percent | 25 |
When required is true, every position-opening order (i.e., not reduce_only) must include a stop-loss:
sl_trigger_price is provided: validated to be within max_percent of the reference price.default_percent below entry (long) or above entry (short).sl_trigger_price explicitly.Example — auto stop-loss on a limit long:
# Limit buy at $95,000 — SL auto-set to $90,250 (5% below)
node scripts/order.js place contract_code=BTC-USDT side=buy type=limit volume=1 price=95000
Example — explicit stop-loss:
node scripts/order.js place contract_code=BTC-USDT side=buy type=market volume=1 sl_trigger_price=90000
Example — rejected (SL too wide):
# 30% distance exceeds max_percent of 25%
node scripts/order.js place contract_code=BTC-USDT side=buy type=limit volume=1 price=95000 sl_trigger_price=66500
[!NOTE] The
reduce_onlyflag (close-position orders) is exempt from the stop-loss requirement since those orders are already reducing risk.
[!CAUTION] Private Keys & API Secrets: Never log, display, or store API secret keys. Read them exclusively from environment variables.
[!WARNING] Trade Confirmation : Always confirm the following with the user BEFORE executing any trade:
- Contract code and direction (long/short)
- Order type (market/limit) and volume
- Price (for limit orders)
- Current leverage setting
- Estimated margin requirement
safety.max_leverage capPre-trade confirmation:
📋 Order Summary:
Contract: {contract_code}
Side: {side} ({long/short})
Type: {type}
Volume: {volume} contracts
Price: {price or "market"}
Leverage: {lever_rate}x (cap: {max_leverage}x)
Stop-loss: ${sl_trigger_price}
Est. margin: ~${margin}
Proceed? (yes/no)
Post-trade report:
✅ Order executed:
Order ID: {order_id}
Avg. fill price: ${trade_avg_price}
Fee: ${fee}
Position summary:
📊 Position: {contract_code} {direction}
Volume: {volume} contracts
Entry: ${open_avg_price}
Mark: ${mark_price}
Liq. price: ${liquidation_price}
Unrealized PnL: ${profit_unreal} ({profit_rate}%)
Leverage: {lever_rate}x
Version 1.0.0 — Created byM2M Agent Registry for Bank of AI
Weekly Installs
–
Repository
GitHub Stars
2
First Seen
–
Security Audits
通过 LiteLLM 代理让 Claude Code 对接 GitHub Copilot 运行 | 高级变通方案指南
31,600 周安装
BTC-USDT-CQ |
| Next quarter | {SYMBOL}-USDT-NQ | BTC-USDT-NQ |
| Position mode conflict | Trying to set mode while positions are open | Close positions first, then switch mode |
| Order rejected | Price outside limits or volume too small | Check price_limit and contract info for min/max |
| Maximum allowed SL distance — rejects wider stop-losses |