跳转至

API 参考

常见概念

交易量、价格、订单类型和有效期

交易量

交易量以美分(0.0000001 手的单位)指定。

手数 交易量(美分)
0.01 100,000
0.1 1,000,000
1.0 10,000,000

价格

价格值以点子表示。 转换方式:display_price = pipette_value / 10^pipDigits

对于 EURUSD(5 位数字),点子值 112345 = 1.12345

订单类型

类型 描述 必填字段
MARKET 以当前价格立即执行 symbolIdtradeSidevolume
LIMIT 以限价或更优价格执行 + limitPrice
STOP 当市场达到止损价时触发 + stopPrice
MARKET_RANGE 在价格范围内执行 + baseSlippagePrice
STOP_LIMIT 在止损价触发的限价单 + stopPricelimitPrice

有效期

策略 描述
GOOD_TILL_CANCEL 订单保持活跃状态,直到成交或取消
GOOD_TILL_DATE 订单在指定的 expirationTimestamp 到期
IMMEDIATE_OR_CANCEL 立即成交可用部分,取消其余部分

账户信息

GET /v1/balance Get account balance

返回账户余额、净值和可用保证金。

参数

无参数。

响应

200 成功响应

Response body
{
  "balance": 10000.00,
  "equity": 10250.75,
  "freeMargin": 9800.50,
  "balanceVersion": 42,
  "moneyDigits": 2,
  "depositAssetId": 1
}
字段 类型 描述
balance double 以存款货币计的账户余额
equity double 余额 + 浮动盈亏
freeMargin double 可用于新交易的保证金
balanceVersion int64 余额版本计数器
moneyDigits int32 货币值的小数位数
depositAssetId int64 存款货币资产 ID
GET /v1/symbols 获取可用交易品种

返回账户上所有可供交易的交易品种。

参数

无参数。

响应

200 Symbol 对象数组

Response body
[
  {
    "symbolId": 1,
    "symbolName": "EURUSD",
    "enabled": true,
    "baseAssetId": 2,
    "quoteAssetId": 1,
    "description": "Euro vs US Dollar"
  }
]

Symbol

字段 类型 描述
symbolId int64 交易品种 ID(用于其他 API 调用)
symbolName string 交易品种名称(例如,"EURUSD")
enabled boolean 该交易品种是否可交易
baseAssetId int64 基础资产 ID
quoteAssetId int64 报价资产 ID
description string 可读描述
GET /v1/assets 获取可用资产

返回可用资产(货币)。

参数

无参数。

响应

200 Asset 对象数组

Response body
[
  {
    "assetId": 1,
    "name": "USD",
    "displayName": "US Dollar"
  }
]

Asset

字段 类型 描述
assetId int64 资产 ID
name string 资产代码(例如,"USD")
displayName string 显示名称

市场数据

GET /v1/prices 获取现货价格

返回指定交易品种的当前买入/卖出价格。 这是一个快照 – API 不支持流式传输。

参数
名称 位于 类型 必填 描述
symbolId query int64[] 逗号分隔的交易品种 ID
响应

200 SpotPrice 对象数组

Response body
[
  {
    "symbolId": 1,
    "bid": 112340,
    "ask": 112355,
    "high": 112890,
    "low": 111950,
    "sessionClose": 112100,
    "timestamp": 1700000000000
  }
]

SpotPrice

字段 类型 描述
symbolId int64 符号 ID
bid int64 最佳买入价格(点子)
ask int64 最佳卖出价格(点子)
high int64 交易时段最高价(点子)
low int64 交易时段最低价(点子)
sessionClose int64 上一交易时段收盘价(点子)
timestamp int64 报价时间戳(纪元毫秒)
GET /v1/trendbars 获取历史 OHLCV 数据

返回交易品种的历史烛台图(OHLCV)数据。

参数
名称 位于 类型 必填 默认 描述
symbolId query int64 符号 ID
period query string K线周期
fromTimestamp query string 开始时间 (ISO-8601)
toTimestamp query string 结束时间 (ISO-8601)
count query int32 100 返回的最大K线数量
可用周期

M_1 M_2 M_3 M_4 M_5 M_10 M_15 M_30 H_1 H_2 H_3 H_4 H_6 H_8 H_12 D_1 W_1 MN_1

响应

200 Trendbar 对象数组

Response body
[
  {
    "timestamp": 1700000000000,
    "open": 112340.0,
    "high": 112890.0,
    "low": 111950.0,
    "close": 112500.0,
    "volume": 4521
  }
]

Trendbar

字段 类型 描述
timestamp int64 K线开盘时间 (纪元毫秒)
open double 开盘价 (点值)
high double 最高价 (点值)
low double 最低价 (点值)
close double 收盘价 (点值)
volume int64 跳动量

订单

POST /v1/orders 下新订单

下新的交易订单。 返回 ExecutionResponse

参数

无路径或查询参数。

请求正文 application/json
字段 类型 必填 描述
symbolId int64 交易的交易品种
orderType string MARKET, LIMIT, STOP, MARKET_RANGE, STOP_LIMIT
tradeSide string BUYSELL
volume int64 以分为单位的交易量
limitPrice double 限价 – LIMITSTOP_LIMIT 必填
stopPrice double 止损触发价 – STOPSTOP_LIMIT 必填
stopLoss double 止损价格
takeProfit double 止盈价格
comment string 自由文本备注 (最多 256 个字符)
label string 机器人标签 (最多 100 个字符)
timeInForce string GOOD_TILL_CANCEL, GOOD_TILL_DATE, IMMEDIATE_OR_CANCEL
baseSlippagePrice double 滑点基准价 – MARKET_RANGE 必填
slippageInPoints int32 最大滑点(点数)
expirationTimestamp int64 到期时间戳 (纪元毫秒) – 用于 GOOD_TILL_DATE
Example request body
{
  "symbolId": 1,
  "orderType": "MARKET",
  "tradeSide": "BUY",
  "volume": 10000000,
  "stopLoss": 112000,
  "takeProfit": 113000
}
响应

200 ExecutionResponse – 订单已接受或已成交

400 INVALID_REQUESTTRADING_BAD_VOLUME

422 NOT_ENOUGH_MONEY

409 MARKET_CLOSED

Example success response
{
  "orderId": 12345,
  "positionId": 67890,
  "executionType": "ORDER_FILLED",
  "order": { "..." : "..." },
  "position": { "..." : "..." },
  "deal": { "..." : "..." }
}
GET /v1/orders 获取挂单

返回所有挂单(未成交订单)。

参数

无参数。

响应

200 挂单 Order 对象数组

PUT /v1/orders/{orderId} 修改挂单

修改现有挂单。 返回 ExecutionResponse

参数
名称 位于 类型 必填 描述
orderId path int64 要修改的订单
请求正文 application/json

以下字段的任意子集。

字段 类型 描述
volume int64 新交易量(美分)
limitPrice double 新限价
stopPrice double 新止损价
stopLoss double 新止损价
takeProfit double 新止盈价
expirationTimestamp int64 新到期时间戳 (纪元毫秒)
响应

200 ExecutionResponseORDER_REPLACED

404 未找到订单

DELETE /v1/orders/{orderId} 取消挂单

取消挂单。 返回 ExecutionResponse

参数
名称 位于 类型 必填 描述
orderId path int64 要取消的订单
响应

200 ExecutionResponseORDER_CANCELLED

404 未找到订单

GET /v1/orders/history 获取订单历史

返回时间范围内的历史订单。

参数
名称 位于 类型 必填 描述
fromTimestamp query string 开始时间 (ISO-8601)
toTimestamp query string 结束时间 (ISO-8601)
响应

200 OrderListResponse

字段 类型 描述
orders Order[] 历史订单数组
hasMore boolean 是否有其他页面可用

持仓

GET /v1/positions 获取未平仓头寸

返回所有未平仓头寸和挂单。

参数

无参数。

响应

200 Position 对象数组

Response body
[
  {
    "positionId": 67890,
    "symbolId": 1,
    "tradeSide": "BUY",
    "volume": 10000000,
    "entryPrice": 112345.0,
    "stopLoss": 112000.0,
    "takeProfit": 113000.0,
    "unrealizedPnl": 155.25,
    "commission": -7.00,
    "swap": -1.20
  }
]

头寸

字段 类型 描述
positionId int64 头寸 ID
symbolId int64 符号 ID
tradeSide string BUYSELL
volume int64 以分为单位的交易量
entryPrice double VWAP 入场价格
stopLoss double 止损价格
takeProfit double 止盈价格
unrealizedPnl double 浮动盈亏
commission double 已收取的佣金
swap double 掉期金额
GET /v1/positions/{positionId} 获取头寸明细

返回头寸及其相关订单和成交。

参数
名称 位于 类型 必填 描述
positionId path int64 头寸 ID
响应

200 PositionDetailResponse

字段 类型 描述
position Position Position 对象
orders Order[] 相关订单
deals Deal[] 相关成交
PUT /v1/positions/{positionId} 修改头寸止损/止盈

更新未平仓头寸的止损和/或止盈。 返回 ExecutionResponse

参数
名称 位于 类型 必填 描述
positionId path int64 头寸 ID
请求正文 application/json
字段 类型 描述
stopLoss double 新止损价格(null 表示移除)
takeProfit double 新止盈价格(null 表示移除)
trailingStopLoss boolean 启用移动止损
Example request body
{
  "stopLoss": 111500,
  "takeProfit": 113500,
  "trailingStopLoss": false
}
响应
POST /v1/positions/{positionId}/close 平仓头寸

全部或部分平仓未平仓头寸。 使用小于头寸完整交易量的值进行部分平仓。 返回 ExecutionResponse

参数
名称 位于 类型 必填 描述
positionId path int64 头寸 ID
请求正文 application/json
字段 类型 必填 描述
volume int64 要平仓的交易量(以美分为单位)
Example – full close (1 lot)
{
  "volume": 10000000
}
响应

422 NOT_ENOUGH_MONEY – 部分平仓的保证金不足


交易

GET /v1/deals 获取成交历史

返回时间范围内已执行的成交。

参数
名称 位于 类型 必填 默认 描述
fromTimestamp query string 开始时间 (ISO-8601)
toTimestamp query string 结束时间 (ISO-8601)
maxRows query int32 50 返回的最大成交数
响应

200 Deal 对象数组

Response body
[
  {
    "dealId": 11111,
    "orderId": 12345,
    "positionId": 67890,
    "symbolId": 1,
    "tradeSide": "BUY",
    "volume": 10000000,
    "filledVolume": 10000000,
    "executionPrice": 112345.0,
    "executionTimestamp": 1700000000000,
    "dealStatus": "FILLED",
    "commission": -7.00
  }
]

Deal

字段 类型 描述
dealId int64 交易 ID
orderId int64 触发此成交的订单
positionId int64 头寸 ID
symbolId int64 符号 ID
tradeSide string BUYSELL
volume int64 请求的交易量(以美分为单位)
filledVolume int64 已成交交易量(以美分为单位)
executionPrice double 执行价格
executionTimestamp int64 执行时间(纪元毫秒)
dealStatus string 状态 – 见下方值
commission double 已收取的佣金

dealStatus

价值 含义
FILLED 订单完全成交
PARTIALLY_FILLED 订单已部分成交
REJECTED 被交易服务器拒绝
INTERNALLY_REJECTED 在到达服务器之前被内部拒绝
ERROR 执行期间发生错误
MISSED 订单错过(例如,市场跳空)

架构 { #execution-response-schema }

ExecutionResponse

所有订单下单、修改和取消操作都返回此对象。

字段 类型 描述
orderId int64 受影响的订单 ID
positionId int64 受影响头寸 ID
executionType string 结果类型 – 见下方值
order Order 订单详情(如适用)
position Position 持仓详情(如适用)
deal Deal 交易详情(如适用)

executionType

价值 含义
ORDER_ACCEPTED 挂单已接受
ORDER_FILLED 订单完全成交
ORDER_REPLACED 订单已修改
ORDER_CANCELLED 订单已取消
ORDER_EXPIRED 订单已到期
ORDER_REJECTED 订单被拒绝
ORDER_CANCEL_REJECTED 取消请求被拒绝
ORDER_PARTIAL_FILL 订单已部分成交
SWAP 持仓掉期已应用
DEPOSIT 账户入金
WITHDRAW 账户出金
BONUS_DEPOSIT_WITHDRAW 赠金入金或出金

速率限制

网关在多个级别强制执行速率限制。

级别 描述
每个 IP 限制来自单个 IP 地址的总请求数
每个用户 限制单个令牌所有账户的总请求数
每个账户 限制针对单个交易账户的请求数

超出速率限制

当超出速率限制时,API 返回 429 Too Many Requests 并带有 Retry-After 标头。


错误处理

当请求失败时,API 返回 JSON 错误响应。

Error response format
{
  "error": {
    "code": "NOT_ENOUGH_MONEY",
    "message": "Insufficient free margin for this order",
    "httpStatus": 422,
    "retryAfter": null
  }
}

错误代码

代码 HTTP 描述
INVALID_REQUEST 400 无效或缺失的请求参数
UNAUTHORIZED 401 无效、过期或缺失的令牌
TRADING_BAD_VOLUME 400 交易量无效(低于最小值或超过持仓)
NOT_ENOUGH_MONEY 422 可用保证金不足
SYMBOL_NOT_FOUND 404 品种 ID 不存在
MARKET_CLOSED 409 该品种的市场当前已关闭
MAINTENANCE 503 交易服务器处于维护模式
TIMEOUT 504 交易服务器未及时响应
GATEWAY_RATE_LIMIT 429 超出速率限制 – 见 Retry-After 标头

速率限制处理

当您收到 429 响应时,Retry-After 标头和 retryAfter 字段指示您在发送下一个请求之前需要等待的秒数。