用于获取用户的所有移动止盈止损任务
| Free | Plus | Pro | Enterprise | 积分消耗 |
|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | 0 |
URL
wss://api-bot-v1.dbotx.com/trade/ws/
说明
为保证WebSocket连接的可用性和稳定性,需要至少每1分钟(建议每30-55秒)进行一次心跳订阅,否则系统会自动断开超时链接
请求示例
{
"id": 1761291309, // 调用id,响应结果返回相同ID
"method": "listTrailingStopOrders", // 调用查询追踪止损订单列表方法
"params": {
"source": "swap_order", // "swap_order"表示来源于快速买卖,"follow_order"表示来源于跟单
"page": 0, // 页码 (0 / 1 / 2 ...)
"size": 10, // 每页数量 (10 / 20, 最大20)
"chain": "solana", // 链 (solana/ethereum/base/bsc/tron)
"state":"init", // 状态 (init/进行中, done/完成, expired/失效)
"token":"AgBPkSqL64uQ58kka9LqcxyuNk4erExTfM779YYJpump", // 代币地址
"sourceId":"mh4bis9l0017ts" // 来源ID
}
}响应数据
{
"method": "rpcResponse", // rpc响应
"id": 1761291309, // 调用id
"result": {
"err": false, // 是否发生错误
"res": [
{
"id": "mh4biuhj003mla", // 任务id
"accountId": "lz99kwxp0006q0", // 用户id
"enabled": true, // 任务启用状态,true/false
"chain": "solana", // 链 (solana/ethereum/base/bsc/tron)
"pairType": "pump_swap", // 来源于哪个DEX
"pairFee": null, // 代币交易手续费
"pair": "2MbUDEs8tpNW4gC2ijoWrSGWvfVvj3kYbic3uxkMLT7P", // 交易对合约地址
"token": "AgBPkSqL64uQ58kka9LqcxyuNk4erExTfM779YYJpump", // 代币地址
"tokenInfo": { // 代币信息
"contract": "AgBPkSqL64uQ58kka9LqcxyuNk4erExTfM779YYJpump",
"createAt": 1761147333609, // 创建时间 (毫秒时间戳)
"name": "Bullseus Maximus",
"symbol": "BULL",
"decimals": 6,
"totalSupply": "1000000000000000",
"icon": null,
"tokenProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"mintAuthority": null,
"freezeAuthority": null
},
"currency": "So11111111111111111111111111111111111111112",
"currencyInfo": { // 主币信息
"contract": "So11111111111111111111111111111111111111112",
"name": "Wrapped SOL",
"symbol": "SOL",
"decimals": 9,
"totalSupply": null,
"icon": "https://assets-cdn.trustwallet.com/blockchains/solana/assets/So11111111111111111111111111111111111111112/logo.png",
"createAt": null
},
"pairCurrency": null,
"pairCurrencyInfo": null,
"walletId": "mglqkeq5003dol", // 使用的钱包的id,可通过“钱包信息 API”获取
"tradeType": "sell", // 交易类型,值为buy和sell
"basePriceUsd": 0.0003948836497453323, // 代币的买入价格
"trailingDistancePercent": 0.22,
"triggerPriceUsd": 0.00030811728440592004, // 触发买入/卖出的价格(美元)
"highestPriceUsd": 0.0003950221594947693,
"lastPriceUpdateAt": 1761278220003,
"amountOrPercent": 0.99,
"expireAt": 1761710129623, // 任务过期时间 (毫秒时间戳)
"expireDelta": 432000000, // 任务有效时长,最大值为432000000 (毫秒)
"expireExecute": true,
"useMidPrice": true, // "true"表示启用防插针模式,将使用1秒内的中间价格作为触发价
"source": "swap_order", // "follow_order"表示此任务由跟单创建,"swap_order"表示此任务由快速买卖创建
"sourceId": "mh4bis9l0017ts", // 若任务由跟单创建,此参数为跟单任务id,若任务由快速买卖创建,此参数为快速买卖记录id
"sourceTradeId": "mh4bis9l0017ts", // 若任务由跟单创建,此参数为跟单记录id,若任务由快速买卖创建,此参数为快速买卖记录id
"sourceGroupIdx": 0, // 分段止盈止损任务编号 (从0开始)
"maxSlippage": 0.26, // 最大滑点(0.00-1.00),卖出时表示期望价格和实际成交价格之间的差距
"gasFeeDelta": 5, // 额外增加的gas (Gwei),对EVM链有效
"maxFeePerGas": 100, // 基础gas超过此值时将不进行交易 (Gwei),对EVM链有效
"priorityFee": 0.00001, // 优先费 (SOL),对Solana有效,空字符串表示使用自动优先费
"jitoEnabled": true, // "true"表示启用防夹模式 (Solana & Ethereum & Bsc)
"jitoTip": 0.00002, // 防夹模式使用的贿赂费 (Solana)
"customFeeAndTip": true, // "true"表示优先费 (priorityFee) 和贿赂费 (jitoTip) 两个字段均有效,"false"表示高速模式下只有优先费 (priorityFee) 有效,防夹模式下只有贿赂费 (jitoTip) 有效
"retries": 2, // 失败后的重试次数(0-10)
"concurrentNodes": 2, // 并发节点数(1-3)
"state": "init", // 订单状态,init:初始化,processing:进行中,done:已完成,fail:已失败,expired:已过期
"lastStateUpdateAt": 1761278129623,
"createAt": 1761278129623, // 创建时间 (毫秒时间戳)
"updateAt": 1761278129623,
"lastHighestPriceEventId": "mh4bkqul62l73x",
"errorCode": "", // 错误类型
"errorMessage": "", // 错误信息
"triggerPercent": -0.22, // 实际止盈止损比例
"links": { // 本次交易的相关链接
"etherscan": null,
"dexscreener": "https://dexscreener.com/solana/2MbUDEs8tpNW4gC2ijoWrSGWvfVvj3kYbic3uxkMLT7P",
"uniswap": "https://jup.ag/swap/So11111111111111111111111111111111111111112-AgBPkSqL64uQ58kka9LqcxyuNk4erExTfM779YYJpump"
},
"walletName": "222", // 钱包名称
"walletAddress": "6pNBhbgtWwWd6tnQHNoH1tqZW2hBvUfLPVtq5BwTQNZt", // 钱包地址
"walletType": "solana", // 钱包类型 (solana/evm)
"nonceCount": 4
}
]
}
}以NodeJS为例
const WebSocket = require('ws')
function main() {
const ws = new WebSocket('wss://api-data-v1.dbotx.com/trade/ws/', {
headers: {
'x-api-key': 'YOUR_API_KEY',
},
})
ws.on('open', () => {
ws.send(
JSON.stringify({
"id": 1761291309,
"method": "listTrailingStopOrders",
"params": {
"source": "swap_order",
"page": 0,
"size": 10,
"chain": "solana",
"state":"init",
"token":"AgBPkSqL64uQ58kka9LqcxyuNk4erExTfM779YYJpump",
"sourceId":"mh4bis9l0017ts"
}
})
)
setInterval(() => {
ws.ping()
}, 30000)
})
ws.on('message', res => {
console.log('res:', res.toString('utf-8'))
})
}
main()
以Python为例
import asyncio
import websockets
import json
async def main():
uri = "wss://api-data-v1.dbotx.com/trade/ws/"
headers = {"x-api-key": "YOUR_API_KEY"}
msg ={
"id": 1761291309,
"method": "listTrailingStopOrders",
"params": {
"source": "swap_order",
"page": 0,
"size": 10,
"chain": "solana",
"state":"init",
"token":"AgBPkSqL64uQ58kka9LqcxyuNk4erExTfM779YYJpump",
"sourceId":"mh4bis9l0017ts"
}
}
async with websockets.connect(uri, additional_headers=headers) as ws:
await ws.send(json.dumps(msg))
async def keep_alive():
while True:
await ws.ping()
await asyncio.sleep(30)
async def listen_for_messages():
async for message in ws:
print(message)
await asyncio.gather(keep_alive(), listen_for_messages())
if __name__ == "__main__":
asyncio.run(main())
响应结果可视化参考

