欧易OKX交易所实时数据API接口详解
欧易OKX作为全球领先的加密货币交易所,为开发者提供了丰富的API接口,方便获取实时市场数据、进行交易和管理账户。本文将详细介绍欧易OKX交易所的实时数据API接口,帮助开发者更好地了解和使用这些接口。
概览
欧易OKX API接口体系架构清晰,主要区分为公共接口(Public API)和私有接口(Private API)。公共接口设计为免身份验证访问模式,旨在为开发者和用户提供便捷的市场数据查询服务。这类接口涵盖广泛的数据类型,例如:
- 实时行情数据: 包括各种交易对的最新成交价格、最高价、最低价、成交量等关键指标,能够实时反映市场动态。
- 交易深度数据: 展现指定交易对的买单和卖单挂单情况,以不同价格档位显示买卖盘的数量,有助于分析市场供需关系。
- 历史数据: 提供一段时间内的交易数据,例如K线图数据(包括日K、周K、月K等不同周期)、历史成交记录等,方便用户进行技术分析和回测。
- 其他市场信息: 可能包括指数数据、资金费率、预估结算价等,具体取决于欧易OKX提供的API接口。
与此相对,私有接口则需要通过API Key等身份验证机制进行访问,保障用户账户安全。私有接口主要用于执行涉及用户资产的操作,例如:
- 下单交易: 包括市价单、限价单、止损单等多种订单类型,允许用户进行买入和卖出操作。
- 撤单操作: 允许用户取消尚未成交的订单。
- 账户管理: 查询账户余额、交易记录、充提币记录等。
- 划转资金: 在不同账户(例如交易账户、资金账户)之间进行资金转移。
本文将聚焦于公共API中的实时数据部分,深入探讨如何利用这些接口获取和分析市场信息,为交易决策提供数据支持。通过公共API,用户可以构建自己的交易策略、监控市场风险,或将数据集成到其他应用程序中。
实时行情API
实时行情API提供特定加密货币交易对的最近交易价格、成交量、以及其他关键市场数据。此接口旨在为用户提供快速、准确的市场快照,使其能够立即掌握指定交易对的最新市场动态,并基于实时信息做出明智的交易决策。
除了价格和成交量,实时行情API还可以提供以下数据点,以帮助用户进行更全面的分析:
- 最高价(High): 指定时间段内达到的最高交易价格。
- 最低价(Low): 指定时间段内达到的最低交易价格。
- 开盘价(Open): 指定时间段开始时的交易价格。
- 收盘价(Close): 指定时间段结束时的交易价格。
- 成交量(Volume): 指定时间段内交易的加密货币总数量。
- 成交额(Quote Volume): 指定时间段内以计价货币计算的总交易额。
- 时间戳(Timestamp): 最近一次交易发生的时间。
- 加权平均价格(Weighted Average Price): 基于成交量计算的平均价格,更能反映市场真实价格。
通过集成实时行情API,交易平台、数据分析工具和个人交易者可以构建实时的市场监控仪表板,设置价格提醒,并开发自动交易策略,从而提高交易效率和盈利能力。
API的响应通常采用JSON格式,方便解析和集成到各种应用程序中。开发者应参考API文档,了解具体的请求参数、响应格式以及速率限制等信息。
接口地址:
/api/v5/market/ticker
该接口用于获取特定加密货币交易对的市场行情数据。
接口描述:
/api/v5/market/ticker
接口提供指定交易对的实时市场行情信息,包括最新成交价、24小时最高价、24小时最低价、24小时成交量等关键数据。这些数据对于交易者分析市场趋势和制定交易策略至关重要。通过该接口,用户可以及时了解市场动态,把握交易机会。
请求参数:
必须提供交易对(
instId
)参数。例如,要查询比特币兑美元(BTC-USD)的行情,需要设置
instId=BTC-USD
。可能还支持其他可选参数,例如成交量类型或时间范围,具体取决于API提供商的实现。请参考API文档了解所有可用参数。
响应数据:
接口返回的数据通常为JSON格式,包含以下字段:
-
instId
:交易对ID(例如:BTC-USD) -
last
:最新成交价 -
high24h
:24小时最高价 -
low24h
:24小时最低价 -
vol24h
:24小时成交量(可能以基础货币或计价货币计) -
ts
:数据更新时间戳
注意事项:
- 请务必查阅API的官方文档,了解具体的请求参数、响应数据格式以及频率限制。
- 不同交易所或数据提供商的API可能有细微差异,务必进行适配。
- 实时市场行情数据变化迅速,建议定期刷新数据。
- 高并发请求可能会触发API的频率限制,请合理控制请求频率。
请求方式:
GET
方法是超文本传输协议 (HTTP) 中用于从服务器检索数据的常用方法。它属于只读请求,意味着它不应该修改服务器上的任何资源。当客户端(例如 Web 浏览器)发起
GET
请求时,它会将请求的参数以 URL 查询字符串的形式附加到请求的 URL 后面。服务器接收到请求后,会根据 URL 和参数检索相应的数据,并将数据作为响应返回给客户端。由于
GET
请求的参数包含在 URL 中,因此它们对用户可见,并且可能会被缓存在浏览器历史记录和服务器日志中。因此,不应该使用
GET
请求发送敏感信息,如密码或信用卡号码。
GET
请求的长度通常有限制,具体取决于服务器和浏览器的配置,因此不适合发送大量数据。在设计 Web API 时,
GET
方法通常用于检索资源的信息,例如获取用户信息、商品列表或文章内容。
请求参数:
参数名 | 类型 | 是否必选 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,例如BTC-USDT |
返回参数:
参数名 | 类型 | 描述 |
---|---|---|
instId | String | 产品ID |
last | String | 最新成交价 |
lastSz | String | 最新成交数量 |
askPx | String | 卖一价 |
askSz | String | 卖一量 |
bidPx | String | 买一价 |
bidSz | String | 买一量 |
open24h | String | 24小时开盘价 |
high24h | String | 24小时最高价 |
low24h | String | 24小时最低价 |
volCcy24h | String | 24小时成交量(以币计价) |
vol24h | String | 24小时成交量(以张/USDT计价) |
ts | String | 数据时间戳,Unix时间,单位为毫秒 |
sodUtc0 | String | UTC 0时开盘价 |
sodUtc8 | String | UTC 8时开盘价 |
示例:实时行情数据获取
获取指定交易对的实时行情数据是加密货币交易和分析的基础。以下示例展示了如何通过API请求获取BTC-USDT交易对的实时行情。
请求方法:
GET
API端点:
/api/v5/market/ticker
查询参数:
-
instId
(instrument ID):指定要查询的交易对。在此示例中,instId=BTC-USDT
表示查询比特币(BTC)与泰达币(USDT)的交易对。
完整请求示例:
GET /api/v5/market/ticker?instId=BTC-USDT
响应数据(示例):
{
"code": "0",
"msg": "",
"data": [
{
"instId": "BTC-USDT",
"last": "29000.00",
"lastSz": "0.1",
"askPx": "29000.10",
"askSz": "0.5",
"bidPx": "28999.90",
"bidSz": "0.6",
"open24h": "28500.00",
"high24h": "29100.00",
"low24h": "28400.00",
"vol24h": "1000",
"volCcy24h": "29000000",
"ts": "1678886400000",
"sodUtc0": "28600.00",
"sodUtc8": "28700.00"
}
]
}
响应字段说明:
-
code
: 状态码,"0"
表示请求成功。 -
msg
: 错误信息,请求成功时为空。 -
data
: 行情数据数组。 -
instId
: 交易对ID。 -
last
: 最新成交价。 -
lastSz
: 最新成交数量。 -
askPx
: 卖一价。 -
askSz
: 卖一量。 -
bidPx
: 买一价。 -
bidSz
: 买一量。 -
open24h
: 24小时开盘价。 -
high24h
: 24小时最高价。 -
low24h
: 24小时最低价。 -
vol24h
: 24小时成交量(币)。 -
volCcy24h
: 24小时成交额(计价货币)。 -
ts
: 时间戳(毫秒)。 -
sodUtc0
: UTC 0时的开盘价。 -
sodUtc8
: UTC+8时的开盘价。
通过解析响应数据,可以获取BTC-USDT交易对的最新价格、成交量等信息,从而进行交易决策或市场分析。
返回示例:
以下JSON格式展示了加密货币交易平台返回的市场数据示例,该数据结构包含了特定交易对的关键信息,用于实时监控和分析市场动态。
{
"code": "0",
指示API请求的返回状态码。 "0" 通常表示请求成功,任何其他值都可能表示错误或警告。开发者应根据状态码处理不同的响应。
"msg": "",
包含与请求相关的消息。当 "code" 不为 "0" 时,"msg" 通常包含错误描述或调试信息。如果请求成功,"msg" 可能为空字符串。
"data": [
包含实际数据的数组。在许多API中,数据以数组形式返回,允许单个请求返回多个数据条目。
{
"instId": "BTC-USDT",
交易对的唯一标识符。在此示例中,"BTC-USDT" 表示比特币(BTC)与泰达币(USDT)的交易对。
"last": "26500.00",
最近成交的价格。代表该交易对最新一笔交易的成交价格。
"lastSz": "0.01",
最近成交的数量。代表该交易对最新一笔交易的成交数量。
"askPx": "26500.01",
卖一价,即市场上最佳(最低)的卖出价格。
"askSz": "0.01",
卖一量,即市场上以卖一价挂单的可用数量。
"bidPx": "26500.00",
买一价,即市场上最佳(最高)的买入价格。
"bidSz": "0.01",
买一量,即市场上以买一价挂单的可用数量。
"open24h": "26000.00",
24小时的开盘价。指过去24小时内第一笔交易的价格。
"high24h": "26800.00",
24小时的最高价。指过去24小时内达到的最高价格。
"low24h": "25800.00",
24小时的最低价。指过去24小时内达到的最低价格。
"volCcy24h": "1000",
24小时的交易量(以计价货币计)。在本例中,计价货币是 USDT,因此该值表示24小时内交易的比特币价值(以USDT计)。
"vol24h": "26300000",
24小时的交易量(以基础货币计)。在本例中,基础货币是 BTC,表示24小时内交易的比特币数量。通常与 `volCcy24h` 结合使用,提供更全面的交易活动视图。
"ts": "1678886400000",
时间戳,表示数据生成的时间(以毫秒为单位)。
"sodUtc0": "26000.00",
UTC 0时区的当日开盘价。
"sodUtc8": "26100.00"
UTC 8时区的当日开盘价(北京时间)。在中国等UTC+8时区的地区,此值尤其重要。
}
]
}
深度数据API
深度数据API提供特定交易对的实时买卖盘挂单信息,也被称为订单簿数据。这些数据精确显示了市场上买方和卖方在不同价格水平的挂单数量,为分析市场深度和流动性提供了关键依据。通过深度数据API,用户可以观察到不同价格区间的买单和卖单分布情况,从而评估市场的潜在支撑和阻力位。
这些信息可以用于分析市场买卖力量对比,例如,通过观察买盘和卖盘的数量比例,可以判断当前的市场情绪是偏向多头还是空头。大量的买单堆积在较低的价格水平,可能表明市场存在较强的支撑;而大量的卖单堆积在较高的价格水平,则可能预示着市场面临较强的阻力。深度数据还可用于识别“冰山订单”(Iceberg Orders),即隐藏的大额订单,这些订单会对市场产生潜在影响。
深度数据API通常提供不同精度的订单簿数据,例如:L1级别的订单簿数据仅提供最佳买一价和卖一价,而L2级别的订单簿数据则提供更详细的订单簿信息,包括多个价格水平的买卖盘挂单。一些高级API还会提供订单簿的快照(Snapshot)和增量更新(Incremental Updates),以便用户能够实时跟踪订单簿的变化。
接口地址:
/api/v5/market/depth
此接口用于获取指定交易对的市场深度数据,也称为订单簿信息。订单簿按照价格进行排序,展示了当前市场上买单和卖单的挂单情况,是进行交易决策的重要参考。
通过该接口,可以实时了解特定交易对的买盘(Bid)和卖盘(Ask)的价格、数量等信息。买盘代表用户愿意以某个价格买入的挂单,卖盘代表用户愿意以某个价格卖出的挂单。
详细参数说明(需要在实际文档中补充):
- symbol (required): 交易对,例如 "BTC-USDT"。
- limit (optional): 返回的订单簿深度数量,默认为20,最大值为200。值越大,返回的订单簿深度越深,但也会增加请求的响应时间。
- depth (optional): 订单簿合并深度。例如,depth=0.1 表示将价格相近的订单合并到0.1的价格区间内。
- 其他可能的参数: 例如,是否返回 checksum 用于验证数据完整性,是否返回增量更新的数据等等。 这些参数需要根据实际的API文档补充。
返回数据格式(需要在实际文档中补充):
返回的数据通常包含买单(bids)和卖单(asks)两个数组。每个数组中的元素包含价格(price)和数量(size)两个字段。
示例:
{
"bids": [
[
"27000.50", // 价格
"1.234" // 数量
],
[
"27000.49",
"0.567"
],
// ... 更多买单
],
"asks": [
[
"27001.00", // 价格
"0.890" // 数量
],
[
"27001.01",
"2.345"
],
// ... 更多卖单
]
}
注意事项:
- 订单簿数据是动态变化的,需要实时更新才能反映市场真实情况。
- 不同的交易所可能对订单簿深度的限制不同,需要参考具体的API文档。
- 高频交易者通常会利用订单簿数据进行套利和做市等策略。
- 在使用API时,需要注意频率限制,避免被服务器限制访问。
请求方式:
在与服务器进行数据交互时,客户端通常需要指定一种HTTP方法,以明确请求的目的。其中,
GET
方法是最常用的请求方式之一。GET 请求主要用于从服务器获取资源,它会将请求参数附加在URL的末尾,例如:
https://api.example.com/data?param1=value1¶m2=value2
。由于参数直接暴露在URL中,因此GET请求不适合传输敏感数据。服务器在接收到GET请求后,会根据URL中的参数进行处理,并将结果返回给客户端。浏览器和服务器通常会对URL的长度有一定的限制,因此GET请求传输的数据量通常较小。
请求参数:
参数名 | 类型 | 是否必选 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,例如BTC-USDT |
sz | String | 否 | 深度档位数量,可选值:1-400,默认200 |
返回参数:
参数名 | 类型 | 描述 |
---|---|---|
asks | Array | 卖盘挂单列表,每个元素是一个数组,包含价格和数量 |
bids | Array | 买盘挂单列表,每个元素是一个数组,包含价格和数量 |
ts | String | 数据时间戳,Unix时间,单位为毫秒 |
示例:获取BTC-USDT深度数据
在加密货币交易中,深度数据对于理解市场供需关系至关重要。交易所的API接口提供了获取深度数据的途径,允许用户实时分析买单和卖单的分布情况。 以下是一个通过GET请求获取BTC-USDT交易对深度数据的示例:
请求方法: GET
API端点:
/api/v5/market/depth
请求参数:
-
instId
(必选): 指定交易对的ID,例如BTC-USDT
。 这表示我们希望获取比特币兑换泰达币的交易深度。 -
sz
(可选): 指定返回的深度档位的数量。sz=5
表示我们希望获取买单和卖单各5个最佳价格档位的数据。交易所通常允许用户自定义返回的档位数,例如从1到400,档位数越高,数据越详细。
请求示例:
GET /api/v5/market/depth?instId=BTC-USDT&sz=5
说明:
- 该请求会向交易所的API服务器发送一个GET请求,请求获取BTC-USDT交易对的深度数据。
-
instId=BTC-USDT
参数指定了要获取的交易对。 -
sz=5
参数指定了返回的深度档位的数量为5。这意味着将返回买单和卖单中,价格最优的各5个档位的数据。 - 交易所返回的数据通常包含每个价格档位的价格和数量信息,可以用于分析市场的买卖压力和流动性。
-
通过调整
sz
参数,可以获取不同数量的深度档位,以满足不同的分析需求。 - 实际使用时,需要替换API端点和请求参数为交易所提供的具体值。
- 需要注意API的访问频率限制,避免频繁请求导致IP被封禁。
返回示例:
以下JSON结构展示了加密货币交易平台提供的订单簿数据的返回示例。该数据结构清晰地呈现了买单(bids)和卖单(asks)的信息,以及数据的时间戳,便于进行市场分析和交易决策。
{
"code": "0",
"msg": "",
"data": [
{
"asks": [
["26500.01", "0.01", "1"],
["26500.02", "0.02", "1"],
["26500.03", "0.03", "1"],
["26500.04", "0.04", "1"],
["26500.05", "0.05", "1"]
],
"bids": [
["26500.00", "0.01", "1"],
["26499.99", "0.02", "1"],
["26499.98", "0.03", "1"],
["26499.97", "0.04", "1"],
["26499.96", "0.05", "1"]
],
"ts": "1678886400000"
}
]
}
字段解释:
-
code
: 返回代码,"0" 通常表示请求成功。 -
msg
: 返回消息,通常为空字符串 "",用于提供错误或附加信息。 -
data
: 包含订单簿数据的数组,通常只包含一个元素,对应一个交易对。
在
data
数组中,包含以下关键信息:
-
asks
: 卖单数组。每个卖单包含价格、数量和订单数量(或深度)信息。例如,["26500.01", "0.01", "1"]
表示一个以 26500.01 的价格挂出的 0.01 个单位的卖单,订单数量为 1。 -
bids
: 买单数组。每个买单也包含价格、数量和订单数量(或深度)信息。例如,["26500.00", "0.01", "1"]
表示一个以 26500.00 的价格挂出的 0.01 个单位的买单,订单数量为 1。 -
ts
: 时间戳,表示数据的生成时间,通常为 Unix 时间戳(毫秒)。例如,"1678886400000"
。
数据解读:
asks
数组按价格升序排列,反映了市场上的最低卖价。交易者通常会参考
asks
数组来确定他们可以立即卖出的最高价格。
bids
数组按价格降序排列,反映了市场上的最高买价。交易者通常会参考
bids
数组来确定他们可以立即买入的最低价格。
买单和卖单的价格差距(即买卖价差,bid-ask spread)是衡量市场流动性的重要指标。较小的买卖价差通常意味着更高的流动性。
时间戳
ts
的作用是确保数据的时效性,并允许用户跟踪订单簿的变化历史。
K线数据API
K线数据API是加密货币交易和分析的基础,它提供指定交易对在特定时间段内的历史K线(蜡烛图)数据。这些数据对于进行技术分析至关重要,能够帮助交易者识别趋势、支撑位和阻力位,以及潜在的买入和卖出信号。
K线数据通常包含以下几个关键要素:
- 开盘价 (Open): 指定时间段内第一笔交易的价格。
- 最高价 (High): 指定时间段内达到的最高价格。
- 最低价 (Low): 指定时间段内达到的最低价格。
- 收盘价 (Close): 指定时间段内最后一笔交易的价格。
- 交易量 (Volume): 指定时间段内的交易总量。
- 时间戳 (Timestamp): K线对应的时间。
通过API获取的K线数据,可以进一步计算出各种技术指标,例如移动平均线 (Moving Averages)、相对强弱指数 (RSI)、布林带 (Bollinger Bands) 和移动平均收敛散度 (MACD),从而更深入地分析市场行为。不同的API提供商可能支持不同的K线时间周期,常见的有1分钟、5分钟、15分钟、30分钟、1小时、4小时、1天、1周和1月等。
使用K线数据API时,需要注意以下事项:
- API密钥管理: 安全地存储和使用你的API密钥,避免泄露。
- 频率限制: 了解API的请求频率限制,避免超出限制导致请求失败。
- 数据准确性: 验证API返回的数据是否准确和完整,确保分析结果的可靠性。
- 数据更新频率: 了解API的数据更新频率,以便及时获取最新的市场信息。
总而言之,K线数据API是加密货币交易员和分析师不可或缺的工具,熟练掌握其使用方法能够显著提升交易策略的有效性。
接口地址:
/api/v5/market/candles
此API接口
/api/v5/market/candles
用于获取指定交易对的K线数据。K线数据是加密货币交易中常用的技术分析工具,它以图形方式展示了特定时间段内的开盘价、最高价、最低价和收盘价。通过分析K线图,交易者可以了解市场趋势和潜在的交易机会。
该接口通常需要指定以下参数:
-
instId
(交易对 ID): 例如
BTC-USD
,指定要查询的交易对。这是必须提供的参数。 -
bar
(K线周期): 指定K线的时间周期,例如
1m
(1分钟),5m
(5分钟),15m
(15分钟),30m
(30分钟),1h
(1小时),4h
(4小时),1d
(1天),1w
(1周),1M
(1月)。 - limit (返回K线数量): 限制返回的K线数量,通常有一个最大值,例如最多返回100根K线。
- after (起始时间戳): 返回此时间戳之后的数据。
- before (结束时间戳): 返回此时间戳之前的数据。
返回的数据通常是一个包含K线数据的数组,每根K线数据包含以下信息:
- 时间戳(Unix 时间戳,单位毫秒)
- 开盘价
- 最高价
- 最低价
- 收盘价
- 交易量
- 交易额
注意: 使用此接口时,请务必注意API的频率限制,避免频繁请求导致IP被封禁。同时,请仔细阅读API文档,了解所有可用参数和返回值的含义。
请求方式:
在与区块链网络交互时,客户端与服务器之间通常采用多种通信方式。其中,GET 请求是一种常用的数据获取方式,客户端通过构造 URL 并向服务器发送请求,服务器则返回相应的数据。GET 请求的特点是简单、高效,适用于获取只读数据,例如区块头信息、交易详情或账户余额。由于数据直接附加在 URL 中,因此不建议使用 GET 请求传递敏感信息,以避免潜在的安全风险。标准的 HTTP GET 方法通常用于从指定的资源请求数据,并且不应该有副作用,即不应修改服务器端的状态。使用 GET 请求时,参数会附加在 URL 的末尾,以 '?' 分隔 URL 和参数,多个参数之间用 '&' 连接。例如:
/api/data?param1=value1¶m2=value2
。对于区块链 API,GET 请求常用于查询特定区块的高度、交易哈希或者地址的余额。
请求参数:
参数名 | 类型 | 是否必选 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,例如BTC-USDT |
bar | String | 否 | K线周期,例如1m、5m、15m、30m、1H、4H、1D、1W、1M等,默认1m |
limit | String | 否 | 返回K线数量,默认100,最大100 |
after | String | 否 | 请求此时间戳之后的数据(毫秒时间戳) |
before | String | 否 | 请求此时间戳之前的数据(毫秒时间戳) |
返回参数:
返回结果为一个二维数组,数组中的每一个元素代表一个独立的K线数据单元,提供了特定时间段内的市场概况。每个K线数据单元包含以下关键信息:
索引 | 类型 | 描述 |
---|---|---|
0 | String |
开盘时间(Open Time),采用Unix时间戳格式,精确到毫秒级别。该时间戳代表K线开始的时间。例如:
1678886400000
|
1 | String |
开盘价(Open Price),该K线开始交易时的价格。使用字符串类型可以避免精度丢失。例如:
"25000.50"
|
2 | String |
最高价(High Price),该K线时间段内达到的最高交易价格。同样使用字符串类型保证精度。例如:
"25500.00"
|
3 | String |
最低价(Low Price),该K线时间段内达到的最低交易价格。使用字符串类型确保数值准确性。例如:
"24800.75"
|
4 | String |
收盘价(Close Price),该K线结束交易时的价格。字符串类型用于精确表示价格。例如:
"25200.25"
|
5 | String |
成交量(Volume,以币计价),该K线时间段内的总成交量,以交易对的基础货币单位计价。例如,对于BTC/USDT交易对,该值为BTC的成交量。例如:
"10.50"
|
6 | String |
成交额(Quote Volume,以计价货币计价),该K线时间段内的总成交额,以交易对的计价货币单位计价。例如,对于BTC/USDT交易对,该值为USDT的成交额。例如:
"262500.00"
|
示例:获取BTC-USDT 1 分钟 K 线数据
使用 HTTP GET 方法请求指定交易对的 K 线(Candlestick)数据。以下示例展示如何通过 API 获取 BTC-USDT 交易对的 1 分钟 K 线数据,并限制返回数量。
GET /api/v5/market/candles?instId=BTC-USDT&bar=1m&limit=10
参数说明:
-
instId
: 交易对 ID。例如,BTC-USDT
代表比特币兑泰达币。 -
bar
: K 线周期。例如,1m
代表 1 分钟 K 线。支持的周期包括:1m
(1分钟),3m
(3分钟),5m
(5分钟),15m
(15分钟),30m
(30分钟),1h
(1小时),2h
(2小时),4h
(4小时),6h
(6小时),12h
(12小时),1D
(1天),1W
(1周),1M
(1月),1Y
(1年). -
limit
: 返回数据条数。该参数为可选参数,指定一次最多返回的数据条数。如果不指定,服务器会返回默认数量,通常是最近的K线数据。本例中,limit=10
表示返回最新的 10 条 1 分钟 K 线数据。
请求示例分析:
该请求会向服务器请求 BTC-USDT 交易对的最新 10 条 1 分钟 K 线数据。服务器会返回一个包含时间戳、开盘价、最高价、最低价、收盘价和成交量的数组。 通过分析这些K线数据,可以帮助用户进行技术分析和交易决策。例如,通过观察价格走势和成交量变化,用户可以判断市场趋势和潜在的买卖机会。
返回示例:
API接口的返回数据通常采用JSON格式,以下示例展示了一种可能的加密货币交易数据结构,模拟了最近十分钟的交易行情:
{
"code": "0",
"msg": "",
"data": [
[
"1678886400000",
"26400.00",
"26450.00",
"26380.00",
"26420.00",
"10",
"264200"
],
[
"1678886460000",
"26420.00",
"26480.00",
"26400.00",
"26450.00",
"12",
"264500"
],
[
"1678886520000",
"26450.00",
"26500.00",
"26430.00",
"26480.00",
"15",
"264800"
],
[
"1678886580000",
"26480.00",
"26520.00",
"26460.00",
"26500.00",
"8",
"265000"
],
[
"1678886640000",
"26500.00",
"26550.00",
"26480.00",
"26530.00",
"11",
"265300"
],
[
"1678886700000",
"26530.00",
"26580.00",
"26510.00",
"26560.00",
"9",
"265600"
],
[
"1678886760000",
"26560.00",
"26600.00",
"26540.00",
"26580.00",
"13",
"265800"
],
[
"1678886820000",
"26580.00",
"26620.00",
"26560.00",
"26600.00",
"10",
"266000"
],
[
"1678886880000",
"26600.00",
"26650.00",
"26580.00",
"26630.00",
"14",
"266300"
],
[
"1678886940000",
"26630.00",
"26680.00",
"26610.00",
"26660.00",
"12",
"266600"
]
]
}
字段解释:
-
code
: 返回代码,"0" 通常表示成功。 -
msg
: 返回消息,用于提供关于状态的额外信息,如果code
为 "0",则通常为空字符串。 -
data
: 包含交易数据的数组,每个子数组代表一个时间点的交易信息。
数据数组(
data
)结构解释:
每个子数组包含以下元素(按顺序排列):
-
时间戳 (Unix milliseconds)
: 例如 "1678886400000",表示自 Unix 纪元(1970年1月1日 00:00:00 UTC)以来的毫秒数。 -
开盘价 (Open)
: 该时间段内的第一个交易价格,例如 "26400.00"。 -
最高价 (High)
: 该时间段内的最高交易价格,例如 "26450.00"。 -
最低价 (Low)
: 该时间段内的最低交易价格,例如 "26380.00"。 -
收盘价 (Close)
: 该时间段内的最后一个交易价格,例如 "26420.00"。 -
交易笔数
: 该时间段内完成的交易数量,例如 "10"。 -
交易量 (Volume)
: 该时间段内的总交易量,通常以货币单位表示,例如 "264200"。
注意: 时间间隔通常是分钟级别,具体取决于API的配置。本示例中,每个数据点间隔60秒(1分钟)。交易量单位取决于交易所和交易对。务必查阅API文档以获取准确的单位信息和完整的数据字段定义。
交易历史API
交易历史API旨在提供指定交易对在特定时间段内的历史成交记录的详细数据。该API对于量化交易员、算法交易者、以及需要分析市场趋势和进行回测的研究人员至关重要。通过访问历史成交数据,用户可以了解特定交易对的价格波动、交易量分布以及市场深度等关键信息。
该API通常提供多种过滤和排序选项,允许用户根据时间范围、价格区间、交易量大小等条件检索历史成交记录。返回的数据通常包括成交时间戳、成交价格、成交数量、买卖方向(买入或卖出)等信息。部分高级API还会提供更详细的信息,例如订单类型(市价单或限价单)、撮合引擎信息等。
为了确保数据的准确性和一致性,交易历史API通常会采取严格的数据验证和清洗机制。同时,为了满足不同用户的需求,API通常提供多种数据格式,例如JSON、CSV等。在使用该API时,用户需要注意API的使用限制,例如请求频率限制、数据返回条数限制等。合理使用API,可以有效提高数据获取效率,降低资源消耗。
接口地址:
/api/v5/market/trades
该接口用于获取指定交易对的最新成交记录。通过此接口,您可以实时获取市场交易数据,包括成交价格、成交数量、成交时间等关键信息,从而进行市场分析和交易决策。
详细说明:
- 功能: 查询特定交易对的最新成交数据。
- 适用场景: 适用于需要实时交易数据更新的应用程序,例如:量化交易平台、行情展示工具、数据分析系统等。
- 请求方式: GET
-
请求参数:
-
instId
(必选): 交易对ID,例如:BTC-USD-SWAP。 -
limit
(可选): 返回结果的数量,默认为20,最大值为200。
-
-
返回数据:
返回一个包含交易记录的数组,每条记录包含以下字段:
-
tradeId
: 成交ID。 -
px
: 成交价格。 -
sz
: 成交数量。 -
ts
: 成交时间戳(Unix时间戳,单位为毫秒)。 -
side
: 买卖方向(buy或sell)。
-
-
注意事项:
- 请确保您的API密钥拥有访问市场数据的权限。
- 频繁调用该接口可能会导致API调用频率限制。
- 返回的数据按照时间顺序排列,最新的交易记录在前面。
示例:
例如,要获取BTC-USD-SWAP交易对的最新50条成交记录,可以使用以下URL:
/api/v5/market/trades?instId=BTC-USD-SWAP&limit=50
请求方式:
HTTP 请求方法为 GET。这意味着客户端从服务器请求特定资源,服务器将返回请求的资源。GET 请求用于读取数据,不应该用于修改服务器上的数据。由于 GET 请求的数据附加在 URL 后面,因此有一定的长度限制,通常用于请求少量数据。它是一种幂等的操作,即多次执行相同 GET 请求的结果相同,不会对服务器产生副作用。浏览器通常会缓存 GET 请求的结果,以提高性能。
请求参数:
参数名 | 类型 | 是否必选 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,例如BTC-USDT |
limit | String | 否 | 返回记录数量,默认100,最大400 |
返回参数:
参数名 | 类型 | 描述 |
---|---|---|
instId | String | 产品ID |
tradeId | String | 交易ID |
px | String | 成交价格 |
sz | String | 成交数量 |
side | String | buy:买入,sell:卖出 |
ts | String | 交易时间戳,Unix时间,单位为毫秒 |
示例:获取BTC-USDT交易历史数据
通过API调用获取BTC-USDT的交易历史数据,是了解市场动态的关键一步。交易历史数据包含了每一笔交易的详细信息,例如成交价格、成交数量以及交易时间。这些信息对于技术分析、量化交易和风险管理至关重要。
API请求示例:
GET /api/v5/market/trades?instId=BTC-USDT&limit=10
请求参数说明:
-
instId
:指定交易对,此处为BTC-USDT,表示比特币兑美元泰达币。 -
limit
:限制返回的交易记录数量,此处设置为10,表示返回最近的10条交易记录。 可以根据实际需求调整此数值,例如设置为100可以获取更多的历史数据。
注意事项:
- API版本号可能会随时间更新,请根据实际使用的API文档调整请求路径。
- 不同的交易所API可能会有不同的参数名称和请求方式,务必参考对应交易所的API文档。
- 频繁请求API可能会触发频率限制,需要合理控制请求频率。可以通过设置合适的延迟时间或者使用WebSocket等实时数据接口来避免频率限制。
- 返回的数据格式通常为JSON,需要使用相应的编程语言进行解析和处理。
- 在实际应用中,需要考虑网络延迟、API稳定性等因素,并进行相应的错误处理和重试机制的开发。
- 除了交易历史数据,还可以通过API获取其他市场数据,例如最新成交价、深度数据、K线数据等。
返回示例:
此示例展示了加密货币交易接口可能返回的数据结构,具体体现为JSON格式。该数据包含了多个BTC-USDT交易对的交易信息,适用于实时行情监控或历史数据分析。
{
"code": "0",
"msg": "",
"data": [
{
"instId": "BTC-USDT",
"tradeId": "1234567890",
"px": "26500.00",
"sz": "0.01",
"side": "buy",
"ts": "1678886400000"
},
{
"instId": "BTC-USDT",
"tradeId": "1234567891",
"px": "26500.01",
"sz": "0.02",
"side": "sell",
"ts": "1678886401000"
},
{
"instId": "BTC-USDT",
"tradeId": "1234567892",
"px": "26500.02",
"sz": "0.03",
"side": "buy",
"ts": "1678886402000"
},
{
"instId": "BTC-USDT",
"tradeId": "1234567893",
"px": "26500.03",
"sz": "0.04",
"side": "sell",
"ts": "1678886403000"
},
{
"instId": "BTC-USDT",
"tradeId": "1234567894",
"px": "26500.04",
"sz": "0.05",
"side": "buy",
"ts": "1678886404000"
},
{
"instId": "BTC-USDT",
"tradeId": "1234567895",
"px": "26500.05",
"sz": "0.06",
"side": "sell",
"ts": "1678886405000"
},
{
"instId": "BTC-USDT",
"tradeId": "1234567896",
"px": "26500.06",
"sz": "0.07",
"side": "buy",
"ts": "1678886406000"
},
{
"instId": "BTC-USDT",
"tradeId": "1234567897",
"px": "26500.07",
"sz": "0.08",
"side": "sell",
"ts": "1678886407000"
},
{
"instId": "BTC-USDT",
"tradeId": "1234567898",
"px": "26500.08",
"sz": "0.09",
"side": "buy",
"ts": "1678886408000"
},
{
"instId": "BTC-USDT",
"tradeId": "1234567899",
"px": "26500.09",
"sz": "0.10",
"side": "sell",
"ts": "1678886409000"
}
]
}
字段解释:
-
code
: 返回代码,"0" 通常表示请求成功。非零值指示错误。 -
msg
: 返回消息,通常为空字符串 "",用于提供有关请求状态的附加信息(如有错误)。 -
data
: 包含交易数据的数组,每个元素代表一笔交易。 -
instId
: 交易对的唯一标识符,例如 "BTC-USDT",表示比特币兑泰达币。 -
tradeId
: 交易ID,每笔交易的唯一识别码。 -
px
: 交易价格,例如 "26500.00",表示该笔交易的成交价格。 -
sz
: 交易数量,例如 "0.01",表示交易的BTC数量。 -
side
: 交易方向,"buy" 表示买入,"sell" 表示卖出。 -
ts
: 交易时间戳,以毫秒为单位的 Unix 时间戳,例如 "1678886400000"。可以使用此时间戳将交易排序或显示交易发生的时间。
此数据结构允许开发者追踪特定交易对的实时成交情况,监控市场深度,并据此制定交易策略。时间戳字段尤其重要,它允许按时间顺序分析市场动态。通过分析买卖双方的数量和价格,可以评估市场的供需关系。
其他公共API
除了前述重点介绍的API接口之外,欧易OKX平台还提供了更为广泛的公共API服务,以满足不同开发者的需求。例如,开发者可以通过相应的API端点获取所有可交易的币币、杠杆、交割/永续合约、期权等交易对的详细列表,包括交易对的名称、交易单位、最小下单数量等关键信息。还可以获取基于OKX平台交易数据计算的各类指数行情,这些指数通常用于追踪特定加密货币或加密货币组合的表现,为量化交易和投资决策提供参考依据。开发者应仔细查阅欧易OKX官方API文档,以了解所有可用API的详细信息、参数要求、返回数据结构和使用限制。
在使用欧易OKX提供的任何API接口时,务必严格遵守其API使用协议和相关规定,特别是关于请求频率的限制。过度频繁地请求API可能会触发平台的风控机制,导致IP地址或API密钥被暂时或永久封禁。为避免此类情况发生,建议开发者实施合理的频率控制策略,例如使用令牌桶算法或漏桶算法来限制API请求的速率。同时,选择合适的编程语言和HTTP客户端库,例如Python的requests库或Java的HttpClient,可以极大地简化API调用过程,提高开发效率。考虑到API返回的数据格式通常为JSON,建议使用相应的JSON解析库来处理返回数据,以便更方便地提取所需信息。在使用过程中,充分考虑异常处理机制,例如网络连接错误、API返回错误码等,以确保程序的健壮性和稳定性。