Gemini API:探索加密货币交易的无限可能
Gemini交易所提供了一套功能完备且高效的REST API,赋能开发者以编程方式无缝集成其平台的数据和服务。通过该API,用户可以实时获取市场动态、执行交易策略、管理账户信息等。本文将模拟撰写一篇关于Gemini REST API常用接口调用的实战指南,旨在为加密货币爱好者、量化交易者以及开发者提供深入理解和高效利用这些关键接口的指导。文章将涵盖行情数据、交易执行、账户管理等多个方面,并通过代码示例阐述其具体用法,助力读者快速上手并构建自定义的交易应用。
账户余额查询
要高效利用Gemini API进行交易和管理,获取准确的账户信息至关重要。查询账户余额是您在使用Gemini API时的首要步骤。通过向
GET /v1/balances
端点发送请求,您可以实时掌握账户中持有的各种加密货币和法币的余额信息。此接口返回的数据包括可用余额、已冻结余额和总余额,帮助您全面了解资产状况。请务必确保您的API密钥具有足够的权限来执行此操作,并在请求头中正确包含API密钥和签名信息。查询结果以JSON格式返回,方便您在应用程序中进行解析和处理。
请求示例:
GET /v1/balances
此示例展示了如何通过发送一个简单的
GET
请求至
/v1/balances
端点,来获取用户账户余额信息。
GET
方法指示客户端希望从服务器检索数据。
/v1/balances
作为API路径,指向获取余额信息的特定资源。 实际应用中,可能需要添加认证头部信息(例如,
Authorization: Bearer
)以验证请求者的身份,确保只有授权用户才能访问其账户余额。 返回的数据通常会以JSON格式呈现,包含可用余额、已锁定余额以及其他相关账户信息。
补充说明:
-
请求方法:
GET
是最常用的HTTP方法之一,用于从服务器获取资源。 -
API 端点:
/v1/balances
是一个示例端点,实际端点可能会根据具体的API设计而有所不同。 请查阅相关的API文档。 - 身份验证: 为了保护用户数据,API通常需要身份验证。常见的身份验证方式包括API密钥、OAuth 2.0等。
- 响应格式: API响应通常采用JSON格式,易于解析和处理。
响应示例:
[ { "currency": "BTC", "amount": "1.23456789", "available": "1.23456789", "type": "exchange" }, { "currency": "USD", "amount": "1000.00", "available": "1000.00", "type": "exchange" } ]
响应中,
currency
字段明确了资产的币种,例如:BTC代表比特币,USD代表美元。理解币种代码对于正确评估资产至关重要。
amount
字段表示该币种下的总余额,包含了所有类型的资金,例如锁仓资金、交易冻结资金等。该数值精确到小数点后8位,保证了资产记录的准确性,适用于高精度财务计算。
available
字段则表示可以立即使用的余额,例如可以用于交易或提现的资金。该字段同样精确到小数点后8位。可用余额通常小于或等于总余额,因为它不包括任何被冻结或锁定的资金。
type
字段描述了账户的类型。在本例中,
exchange
表示交易所账户,意味着这些资产存储在交易所平台上。其他可能的账户类型包括:
wallet
(钱包账户)、
staking
(质押账户)、
lending
(借贷账户)等。不同类型的账户对应不同的资产管理策略和权限。
通过解析这些关键数据,您可以清晰地了解账户当前的资产分布和可用情况,为进一步的投资决策提供数据支撑。准确理解和处理这些数据对于加密货币交易至关重要。
市场行情获取
Gemini API 提供了强大的市场行情数据接口,允许开发者和交易者实时追踪加密货币市场的动态。其中,
GET /v1/ticker/:symbol
接口是获取指定交易对关键市场数据的核心方法。通过向该接口发送请求,您可以获得该交易对在 Gemini 交易所的最新成交价格、成交量、最高价、最低价、时间戳以及其他相关市场统计数据。
需要特别注意的是,
:symbol
参数必须替换为有效的交易对符号,例如
BTCUSD
代表比特币/美元交易对,
ETHUSD
代表以太坊/美元交易对。 Gemini API 提供了所有可用交易对的清单,开发者可以根据自己的需求选择合适的交易对进行查询。
返回的数据通常包括以下关键字段:
-
last
: 最新成交价格。这是该交易对的最后一次成交的价格。 -
volume
: 成交量。指在过去24小时内该交易对的总成交量。 -
bid
: 最高买入价。当前市场上最高的买入订单的价格。 -
ask
: 最低卖出价。当前市场上最低的卖出订单的价格。 -
high
: 24小时最高价。过去24小时内该交易对的最高成交价格。 -
low
: 24小时最低价。过去24小时内该交易对的最低成交价格。 -
timestamp
: 时间戳。代表数据的生成时间,通常以 Unix 时间戳格式表示。
GET /v1/ticker/:symbol
接口,您可以构建实时的市场监控工具、量化交易策略以及其他基于市场数据的应用程序。
请求示例:
HTTP 方法:
GET
URI 路径:
/v1/ticker/BTCUSD
请求说明:
该
GET
请求用于获取 BTC (比特币) 相对于 USD (美元) 的最新交易价格信息。
/v1/ticker/
之后指定的是交易对,在此示例中为
BTCUSD
。不同的加密货币交易所和 API 提供商可能支持不同的交易对,例如
ETHUSD
(以太坊/美元) 或
BTCEUR
(比特币/欧元)。在实际使用中,应替换
BTCUSD
为您感兴趣的特定交易对。
预期响应: API 将返回一个 JSON 对象,其中包含诸如当前价格、最高价、最低价、交易量等信息。具体返回字段取决于 API 提供商的实现。
错误处理: 如果请求失败 (例如,无效的交易对),API 通常会返回一个包含错误代码和描述的 JSON 对象。客户端应该适当地处理这些错误情况。
其他说明: 某些 API 可能需要身份验证 (例如,API 密钥) 才能访问数据。请参阅 API 文档以了解详细信息。应注意 API 的速率限制,避免过于频繁地发送请求。
响应示例:
{
"ask": "27000.00",
"bid": "26999.00",
"last": "26999.50",
"volume": {
"BTC": "100.00",
"USD": "2700000.00"
},
"timestamp": "1678886400"
}
响应数据以JSON格式呈现,便于解析和使用。
ask
字段代表当前市场上的最优卖出价格,也称为卖一价,是潜在买家可以立即购买资产的价格。
bid
字段代表当前市场上的最优买入价格,也称为买一价,是潜在卖家可以立即出售资产的价格。
last
字段指示最近一笔交易的成交价格,是衡量市场价格变动的重要指标。
volume
字段提供关于交易量的详细信息。它是一个嵌套的对象,包含了不同计价货币的交易量。"BTC": "100.00" 表示以比特币计价的交易量为100个比特币,而 "USD": "2700000.00" 表示以美元计价的交易量为270万美元。交易量是衡量市场活跃度的关键指标,高交易量通常表示市场对该资产的兴趣浓厚。
timestamp
字段是一个 Unix 时间戳,表示数据生成的时间。它记录了从1970年1月1日0时0分0秒(UTC)到该时间点的秒数。在这个例子中,"1678886400" 对应于北京时间2023年3月15日0时0分0秒。时间戳对于跟踪历史数据和进行时间序列分析至关重要。 通过综合分析这些字段,您可以洞察市场的实时状态,评估价格趋势,并制定相应的交易策略。
交易下单
Gemini API 允许用户通过程序化的方式参与数字资产交易。利用 API 接口,用户可以构建自动化交易策略、集成到现有交易平台或开发定制化的交易应用。提交交易的核心在于
POST /v1/order/new
接口,通过此接口,用户可以精确地发出买入或卖出指令,从而在市场上执行其交易策略。
POST /v1/order/new
请求需要包含一系列参数,这些参数定义了订单的具体属性,例如:
- symbol :指定要交易的交易对,例如 "BTCUSD" 代表比特币兑美元。
- amount :指定要买入或卖出的数字资产数量。
- price :指定订单的限价价格。这是您愿意买入或卖出的最高(买单)或最低(卖单)价格。
- side :指示是买单 ("buy") 还是卖单 ("sell")。
- type :指定订单类型,例如 "exchange limit" 表示限价单。
- client_order_id (可选):允许您为订单分配一个唯一的 ID,以便跟踪订单状态。
成功提交订单后,API 将返回订单的详细信息,包括订单 ID、状态和成交情况。用户可以使用订单 ID 查询订单状态,或取消未成交的订单。精确地管理这些参数对于成功地执行您的交易策略至关重要。错误的参数设置可能导致订单无法执行,或者以非预期的价格成交。
请求示例:
以下是一个创建新订单的请求示例,展示了如何使用API接口提交限价交易委托。请注意,所有数值都应以字符串形式提供,以保证精度。
{
"request": "/v1/order/new",
"nonce": 1678886400,
"client
order
id": "my
order
123",
"symbol": "BTCUSD",
"amount": "0.1",
"price": "27000.00",
"side": "buy",
"type": "exchange limit"
}
字段解释:
-
request
: API请求路径,此处为创建新订单的接口/v1/order/new
。 -
nonce
: 一个单调递增的整数,用于防止重放攻击。通常是Unix时间戳,确保每次请求的唯一性。 -
client order id
: 客户端自定义的订单ID,方便客户端跟踪订单状态,最长可支持一定长度的字符串(具体长度限制参考API文档)。 -
symbol
: 交易对,例如 "BTCUSD" 表示比特币兑美元。 -
amount
: 订单数量,即想要购买或出售的加密货币数量。 此处为"0.1"个比特币。 -
price
: 订单价格,即希望成交的价格。 此处为 "27000.00" 美元。 -
side
: 订单方向,"buy" 表示买入,"sell" 表示卖出。 -
type
: 订单类型,"exchange limit" 表示限价交易。 还有市价交易"exchange market"等其他类型,具体支持的类型参考API文档。
注意事项:
-
nonce
必须大于之前使用的值。 - 确保账户有足够的资金来支付订单。
- 不同的交易所可能对参数的名称和格式有不同的要求,请务必参考对应交易所的API文档。
- 错误的参数可能导致订单创建失败,请仔细检查参数的正确性。
-
client order id
应当具有唯一性,方便后续查询和管理。 -
amount
和price
应该符合交易所规定的最小交易单位和价格精度。
响应示例:
以下JSON格式的响应示例详细展示了一个加密货币交易订单的信息。理解这些字段对于构建交易应用程序和分析市场数据至关重要。
{
"order_id": "1234567890",
"id": "1234567890",
"client_order_id": "my_order_123",
"symbol": "BTCUSD",
"amount": "0.1",
"price": "27000.00",
"side": "buy",
"type": "exchange limit",
"is_live": true,
"is_cancelled": false,
"is_hidden": false,
"was_forced": false,
"avg_execution_price": null,
"executed_amount": "0.0",
"remaining_amount": "0.1",
"timestamp": "1678886400",
"timestampms": 1678886400000
}
在API请求中,
symbol
字段明确指定了交易对,例如 "BTCUSD",表明比特币与美元之间的交易。
amount
字段代表交易的数量,单位通常是交易对中的基础货币,本例中为比特币。
price
字段则指定了订单的价格,使用计价货币表示,这里是美元。
side
字段定义了交易方向,"buy" 表示买入,"sell" 则表示卖出。
type
字段定义订单类型, "exchange limit" 表示限价单,只有当市场价格达到或优于指定价格时才会成交。其他订单类型包括市价单 (market order) 等。
在响应中,
order_id
字段是交易所分配的唯一订单标识符,用于跟踪订单的状态。
id
字段是另一个订单标识符,可能由不同的系统组件生成。
client_order_id
是客户端提供的订单ID,方便用户在自己的系统中进行订单管理和匹配。
is_live
字段指示订单当前是否处于活动状态,即是否尚未完全成交或被取消。
is_cancelled
和
is_hidden
和
was_forced
分别表示订单是否被取消、是否为隐藏订单以及是否被强制执行(例如,由于强制平仓)。
executed_amount
字段记录了订单已成交的数量,
remaining_amount
字段则表示订单剩余未成交的数量。
avg_execution_price
表示平均成交价格。
timestamp
和
timestampms
字段分别以秒和毫秒为单位记录了订单创建的时间戳,用于时间序列分析和审计。
订单状态查询
成功提交交易订单后,用户可通过调用
GET /v1/order/status
API接口,实时查询订单的当前状态及详细信息。此接口允许您追踪订单处理进度,确保交易顺利执行。
请求方式:
GET
接口地址:
/v1/order/status
请求参数(示例):
{
"order_id": "your_order_id" // 替换为实际的订单ID
}
请务必将
order_id
替换为您实际提交订单后获得的唯一订单标识符。不同的交易平台或交易所可能会提供不同的订单ID生成策略。
响应示例:
{
"order_id": "your_order_id",
"status": "pending", // 可选值包括:pending(待处理)、processing(处理中)、completed(已完成)、failed(失败)、cancelled(已取消)
"create_time": "2024-01-01 10:00:00", // 订单创建时间
"update_time": "2024-01-01 10:05:00", // 订单状态最近更新时间
"price": "1.00", // 订单价格
"quantity": "10.00", // 订单数量
"type": "buy", // 订单类型:buy(买入)、sell(卖出)
"symbol": "BTC/USDT" // 交易对
}
status
字段是订单状态查询的关键,它反映了订单的当前处理阶段。请根据不同的
status
值采取相应的措施。 如
pending
表示订单尚未被系统处理,
processing
表示订单正在被执行,
completed
表示订单已成功完成,
failed
表示订单执行失败,
cancelled
表示订单已被取消.
通过定期调用此接口,您可以及时了解订单的状态变化,并根据实际情况采取必要的行动,如取消订单(如果平台支持)或联系客服寻求帮助。
请求示例:
GET
/v1/order/status
?order_id=1234567890
该示例展示了如何通过
GET
请求查询订单状态。请求的统一资源定位符 (URL) 为
/v1/order/status
,这是一个 RESTful API 端点,用于获取指定订单的详细状态信息。请求中包含一个查询参数
order_id
,其值为
1234567890
,用于唯一标识需要查询的订单。服务器将根据此订单ID检索数据库或相关存储系统,并返回与该订单相关的最新状态数据,例如订单已创建、已支付、已发货、已完成或已取消等状态信息。在实际应用中,API 接口可能需要身份验证,因此通常还需要在请求头中包含授权令牌 (Authorization token) 或其他身份验证凭据。为了提高安全性,API 通信通常通过 HTTPS 协议进行加密,以防止中间人攻击和数据泄露。
响应示例:
以下JSON示例展示了交易所API返回的订单状态信息,用于查询特定订单的详细情况。其中各字段的具体含义如下:
{
"order_id": "1234567890",
"id": "1234567890",
"client_order_id": "my_order_123",
"symbol": "BTCUSD",
"amount": "0.1",
"price": "27000.00",
"side": "buy",
"type": "exchange limit",
"is_live": true,
"is_cancelled": false,
"is_hidden": false,
"was_forced": false,
"avg_execution_price": null,
"executed_amount": "0.0",
"remaining_amount": "0.1",
"timestamp": "1678886400",
"timestampms": 1678886400000
}
字段说明:
-
order_id
: 交易所内部生成的唯一订单ID,用于追踪订单。 -
id
: 订单ID,与order_id
相同,用于标识订单。 -
client_order_id
: 客户端自定义的订单ID,方便用户在自己的系统里识别订单。如果下单时指定了该字段,则响应中也会包含。 -
symbol
: 交易对,例如 "BTCUSD" 表示比特币兑美元。 -
amount
: 订单的总数量,例如 "0.1" 表示0.1个比特币。 -
price
: 订单的限价,例如 "27000.00" 表示27000美元。 -
side
: 订单方向,"buy" 表示买入,"sell" 表示卖出。 -
type
: 订单类型,例如 "exchange limit" 表示交易所限价单。 其他类型可能包括市价单("exchange market")、止损限价单("exchange stop limit")等。 -
is_live
: 布尔值,指示订单是否在交易所活跃(未完成且未取消)。true
表示订单仍然有效,等待成交。 -
is_cancelled
: 布尔值,指示订单是否已被取消。true
表示订单已被取消,不再可能成交。 -
is_hidden
: 布尔值,指示订单是否为隐藏订单(冰山订单)。true
表示该订单的部分或全部数量可能被隐藏。 -
was_forced
: 布尔值,指示订单是否被强制平仓。true
表示该订单是被强制平仓引擎关闭的。 -
avg_execution_price
: 平均成交价格。如果订单部分成交,则此字段显示平均成交价格;如果订单尚未成交,则为null
。 -
executed_amount
: 已成交的数量。如果订单完全成交,则等于amount
;如果订单尚未成交,则为 "0.0"。 -
remaining_amount
: 剩余未成交的数量。amount - executed_amount = remaining_amount
。 -
timestamp
: 订单创建的Unix时间戳(秒)。 -
timestampms
: 订单创建的Unix时间戳(毫秒)。
响应与下单响应类似,通过检查
is_live
、
executed_amount
和
remaining_amount
等字段,您可以实时监控和判断订单的当前状态。例如,如果
is_live
为
false
且
executed_amount
等于
amount
,则表示订单已完全成交。如果
is_live
为
false
且
is_cancelled
为
true
,则表示订单已被用户取消。
订单取消
在加密货币交易中,有时您可能需要取消已经提交但尚未完全成交的订单。这可能是由于市场价格波动超出预期,或者您改变了交易策略。取消未成交订单是风险管理的重要组成部分。
要取消一个尚未成交的订单,您可以使用应用程序编程接口 (API) 中的特定端点。对于大多数加密货币交易所,通常会提供一个专门用于取消订单的API接口。在这个例子中,该接口为
POST /v1/order/cancel
。
POST
方法表明您正在向服务器发送数据,以请求取消特定的订单。
调用
POST /v1/order/cancel
接口时,您需要提供必要的参数来指定要取消的订单。这些参数通常包括订单ID (
orderId
)、交易对 (
symbol
,例如
BTC/USD
或
ETH/BTC
),以及其他可能的验证信息,以确保您有权取消该订单。请务必仔细检查您提供的订单ID,避免取消错误的订单。
该请求的格式通常是JSON。例如:
{
"orderId": "1234567890",
"symbol": "BTC/USD"
}
服务器收到您的取消订单请求后,会进行验证并尝试取消订单。如果取消成功,服务器会返回一个成功的响应,通常包含取消订单的状态信息。如果取消失败(例如,订单已经成交或已被部分成交),服务器也会返回相应的错误信息,方便您进行后续处理。
在调用取消订单接口时,请务必注意API的使用频率限制 (Rate Limiting),避免因频繁调用而导致API被暂时禁用。同时,也要关注网络连接的稳定性,确保请求能够成功发送和接收。
了解交易所对于部分成交订单的处理方式也很重要。有些交易所允许取消部分成交的订单,而有些交易所则不允许。在取消订单前,请仔细阅读交易所的API文档和交易规则,确保您了解相关政策。
请求示例:
以下展示了一个取消订单的API请求示例,该请求采用JSON格式,旨在通过API接口取消指定ID的挂单。
{
"request": "/v1/order/cancel",
"nonce": 1678886400,
"order_id": "1234567890"
}
字段解释:
-
request
: API请求的路径,/v1/order/cancel
表示取消订单的API端点。版本号 v1 意味着这是API的第一个版本,order/cancel 表明这是订单取消的功能。 -
nonce
: 一个时间戳,通常是Unix时间,用于防止重放攻击。客户端生成请求时的时间,服务器会验证此时间戳的有效性,防止过期的请求被执行。建议使用当前时间戳,并确保在合理的时间范围内。 -
order_id
: 需要取消的订单的唯一标识符,必须是字符串类型。确保提供的订单ID存在且属于当前用户,否则取消操作可能会失败。
注意事项:
-
nonce
值的生成应该具有唯一性,可以使用当前时间戳加上一个随机数来确保唯一性。 - 在实际应用中,还需要包含签名(signature)字段,用于验证请求的合法性和防止篡改。签名通常基于请求参数和密钥进行加密生成。
- 服务器在接收到此请求后,需要进行身份验证、权限检查以及订单状态验证,确保请求的合法性和有效性。
- API的返回结果通常也是JSON格式,包含状态码(status code)和消息(message),用于指示取消操作是否成功。
响应示例:
以下 JSON 对象展示了一个成功的订单取消响应示例。请注意,时间戳以 Unix 时间格式提供,单位为秒或毫秒。
{
"order_id": "1234567890",
"id": "1234567890",
"client_order_id": "my_order_123",
"symbol": "BTCUSD",
"amount": "0.1",
"price": "27000.00",
"side": "buy",
"type": "exchange limit",
"is_live": false,
"is_cancelled": true,
"is_hidden": false,
"was_forced": false,
"avg_execution_price": null,
"executed_amount": "0.0",
"remaining_amount": "0.1",
"timestamp": "1678886400",
"timestampms": 1678886400000
}
字段解释:
-
order_id
: 平台内部的订单唯一标识符。 -
id
: 订单的唯一标识符,与order_id
可能相同,具体取决于交易所的实现。 -
client_order_id
: 客户端自定义的订单标识符,方便客户端追踪订单状态。 -
symbol
: 交易对的符号,例如 "BTCUSD" 表示比特币兑美元。 -
amount
: 订单的总量,以基础货币计价。 -
price
: 订单的委托价格,例如限价单的价格。 -
side
: 订单的方向,"buy" 表示买入,"sell" 表示卖出。 -
type
: 订单类型,例如 "exchange limit" 表示交易所限价单。其他类型可能包括 "market"(市价单)、"stop limit"(止损限价单)等。 -
is_live
: 指示订单当前是否在市场上活跃。取消成功后,该字段通常为false
。 -
is_cancelled
: 指示订单是否已被取消。true
表示订单已成功取消。 -
is_hidden
: 指示订单是否为隐藏订单(Iceberg Order),即部分成交后自动隐藏剩余订单。 -
was_forced
: 指示订单是否被强制平仓。 -
avg_execution_price
: 订单的平均成交价格。如果订单尚未成交或部分成交,该字段可能为null
。 -
executed_amount
: 订单已成交的数量。 -
remaining_amount
: 订单剩余未成交的数量。 -
timestamp
: 订单状态更新的时间戳,以秒为单位的 Unix 时间。 -
timestampms
: 订单状态更新的时间戳,以毫秒为单位的 Unix 时间。
响应中,
is_cancelled
字段为
true
清晰地表明该订单已成功取消。请确保在你的应用程序中正确处理此状态,并向用户反馈订单取消成功的消息。
历史交易查询
Gemini API 提供强大的历史交易查询功能,允许用户检索并分析其在 Gemini 交易所的交易活动。 通过调用
GET /v1/mytrades
接口,您可以获取账户的历史交易记录,包括买单、卖单以及成交的详细信息。
该接口支持多种查询参数,方便用户根据特定条件筛选交易记录。 例如,您可以指定查询的时间范围(起始时间和结束时间),从而仅检索特定时间段内的交易。 还可以根据交易对(例如 BTC/USD)进行过滤,以便查看特定市场的交易活动。
GET /v1/mytrades
接口返回的交易记录包含以下关键信息:
- 交易 ID (trade_id): 交易的唯一标识符。
- 订单 ID (order_id): 关联订单的唯一标识符。
- 交易对 (symbol): 交易的市场,例如 "BTCUSD"。
- 交易类型 (side): "buy" (买入) 或 "sell" (卖出)。
- 成交数量 (amount): 成交的加密货币数量。
- 成交价格 (price): 成交的法币价格。
- 交易费用 (fee_amount): 交易产生的费用。
- 费用货币 (fee_currency): 费用所使用的货币。
- 时间戳 (timestamp): 交易发生的 Unix 时间戳(以秒为单位)。
通过分析历史交易记录,用户可以深入了解其交易策略的表现,识别盈利机会,并优化未来的交易决策。 结合其他 Gemini API 接口,例如市场数据查询,可以构建复杂的交易分析工具和策略。
请求示例:
使用 GET 方法请求
/v1/mytrades
接口,并指定
symbol
参数为
BTCUSD
,即可查询 BTCUSD 交易对的个人交易记录。
例如:
GET /v1/mytrades?symbol=BTCUSD
这个请求会返回用户在 BTCUSD 交易对上的所有成交记录。 请确保您已正确配置 API 密钥,并拥有足够的权限进行交易历史查询。
响应示例:
[ { "price": "27000.00", "amount": "0.05", "timestamp": "1678886400", "timestampms": 1678886400000, "type": "Buy", "fee_currency": "USD", "fee_amount": "0.135", "order_id": "1234567890", "client_order_id": "my_order_123" }, { "price": "27001.00", "amount": "0.05", "timestamp": "1678886460", "timestampms": 1678886460000, "type": "Buy", "fee_currency": "USD", "fee_amount": "0.135", "order_id": "1234567890", "client_order_id": "my_order_123" } ]
响应结果包含交易历史记录的数组,每个元素代表一笔已成交的交易。
price
字段,以字符串形式呈现,代表该笔交易的成交价格,通常以美元或其他指定计价货币表示。
amount
字段,同样是字符串类型,表示交易的成交数量,即买入或卖出的加密货币数量。
timestamp
字段,为Unix时间戳,记录了交易发生的时间,精确到秒。
timestampms
字段,提供更精确的时间戳,精确到毫秒级别,方便进行高精度的时间序列分析。
type
字段,枚举类型,标明交易的类型,
Buy
代表买入,
Sell
则代表卖出。
fee_currency
字段,指明手续费的币种,例如USD。
fee_amount
字段,表示该笔交易产生的手续费金额。
order_id
字段,是交易所分配的唯一订单标识符,用于追踪订单状态和历史。
client_order_id
字段,是客户端自定义的订单标识符,方便用户在自己的系统中关联订单。
其他接口
除了前面介绍的常用接口之外,Gemini API 还提供了一系列其他接口,旨在满足开发者更广泛和精细化的交易需求。这些接口涵盖了市场数据、交易对信息、以及历史交易记录等多个方面,为构建复杂的交易策略和分析工具提供了必要的数据基础。
-
GET /v1/symbols
: 获取所有可交易的交易对的详细信息。该接口返回一个包含所有交易对的列表,每个交易对都包含了诸如交易对代码、基础货币、报价货币、最小交易单位等关键信息。这对于了解当前Gemini平台支持的所有交易品种至关重要。 通过此接口,用户可以动态地获取最新的交易对信息,而无需硬编码。 -
GET /v1/book/:symbol
: 获取指定交易对的完整订单簿。订单簿是市场深度的直观体现,它包含了买单和卖单的价格和数量信息。此接口允许开发者深入了解特定交易对的市场供需情况,从而制定更明智的交易决策。返回的订单簿数据通常包含多个层级的买单和卖单,深度表示不同价格水平的订单数量。 -
GET /v1/trades/:symbol
: 获取指定交易对的最近成交记录。该接口提供实时的交易数据流,包含了交易时间、交易价格、交易数量等关键信息。通过分析历史成交记录,开发者可以识别市场趋势、评估交易量,并进行风险管理。返回的交易记录通常按照时间倒序排列,方便用户获取最新的交易信息。
这些接口共同构成了 Gemini API 的强大功能集,提供了远超基础交易的功能。开发者可以通过组合使用这些接口,构建高度定制化的交易应用和数据分析工具,更好地参与加密货币市场。 强烈建议开发者深入研读 Gemini API 的官方文档,全面了解每个接口的详细参数、返回值以及使用限制,以便充分利用这些资源。