抹茶API应用
抹茶交易所(MEXC Global)作为一家知名的加密货币交易平台,其API接口为开发者提供了丰富的功能和数据接入能力。通过API,用户可以自动化交易策略、获取实时市场数据、管理账户资产等,极大地拓展了交易和投资的可能性。
API概述
抹茶API提供RESTful接口,使用HTTP协议进行通信,数据格式主要为JSON。API涵盖了多个模块,包括现货交易、合约交易、杠杆交易、账户信息、市场数据等。开发者可以根据自身需求选择相应的接口进行调用。
抹茶API的安全性至关重要,因此采用了多种安全措施,包括:
- API Key和Secret Key: 用户需要在抹茶交易所申请API Key和Secret Key,用于身份验证。Secret Key必须妥善保管,切勿泄露。
- IP白名单: 用户可以设置允许访问API的IP地址,限制未经授权的访问。
- 签名验证: 所有请求都需要进行签名验证,确保请求的完整性和真实性。
- 频率限制: 为了防止API被滥用,抹茶交易所对API的调用频率进行了限制。
API主要功能模块
以下是抹茶API的主要功能模块及其常用接口,涵盖了交易、账户、市场数据等关键功能,旨在为开发者提供全面的数据支持和便捷的交易体验:
-
现货交易API:
用于执行现货交易操作,包括下单、撤单、查询订单状态等。
-
/spot/v3/orders
:创建、查询、取消现货订单。 -
/spot/v3/fills
:获取现货成交历史记录。 -
/spot/v3/accounts
:查询现货账户信息,例如余额、可用资金等。
-
-
合约交易API:
支持永续合约和交割合约的交易,提供杠杆交易、止盈止损等功能。
-
/swap/v3/orders
:创建、查询、取消合约订单。 -
/swap/v3/positions
:查询合约持仓信息。 -
/swap/v3/accounts
:查询合约账户信息,包括保证金、盈亏等。 -
/swap/v3/funding_rate
:获取合约资金费率。
-
-
市场数据API:
提供实时的市场行情数据,包括价格、成交量、深度等信息。
-
/spot/v3/tickers
:获取现货市场行情快照。 -
/swap/v3/tickers
:获取合约市场行情快照。 -
/spot/v3/candles
:获取现货K线数据。 -
/swap/v3/candles
:获取合约K线数据。 -
/spot/v3/depth
:获取现货市场深度数据。 -
/swap/v3/depth
:获取合约市场深度数据。
-
-
账户API:
用于管理账户信息,包括充值、提现、查询资金流水等。
-
/account/v3/wallet
:查询账户余额。 -
/account/v3/deposit/address
:获取充值地址。 -
/account/v3/withdraw
:提交提现申请。 -
/account/v3/ledger
:查询资金流水记录。
-
-
杠杆交易API:
提供杠杆交易相关接口。
-
/margin/v3/accounts
:获取杠杆账户信息。 -
/margin/v3/orders
:创建、查询、取消杠杆订单。 -
/margin/v3/loan
: 借币。 -
/margin/v3/repay
:还币。
-
1. 现货交易
现货交易API允许用户进行实时的加密货币买卖操作,涵盖创建订单、查询订单状态、获取历史交易记录等关键功能。通过这些API接口,开发者可以构建自动化交易策略,实现程序化交易。
-
下单 (POST /api/v3/order):
此接口是创建买单或卖单的核心。开发者必须指定交易对(例如BTCUSDT)、交易方向(买入BUY或卖出SELL)、交易类型(市价MARKET或限价LIMIT)以及交易数量。对于限价单,还需要指定委托价格。
timeInForce
参数控制订单在市场中的有效时长,常见的有GTC(Good Till Cancelled,直到取消)和IOC(Immediate Or Cancel,立即成交或取消)。newClientOrderId
字段允许开发者自定义订单ID,方便跟踪和管理。请求示例:
{ "symbol": "BTCUSDT", "side": "BUY", "type": "LIMIT", "timeInForce": "GTC", "quantity": "0.001", "price": "40000", "newClientOrderId": "your_order_id" }
参数说明:
-
symbol
: 交易对,如"BTCUSDT"。 -
side
: 交易方向,"BUY"(买入)或"SELL"(卖出)。 -
type
: 订单类型,"LIMIT"(限价单)或"MARKET"(市价单)。 -
timeInForce
: 订单有效方式,常用的有"GTC"、"IOC"、"FOK"(Fill or Kill,全部成交或取消)。 -
quantity
: 交易数量,例如0.001个BTC。 -
price
: 委托价格(仅限价单需要)。 -
newClientOrderId
: 客户端自定义订单ID(可选)。
-
-
取消订单 (DELETE /api/v3/order):
此接口用于撤销尚未完全成交的订单。开发者需要提供订单ID(
orderId
)或原始客户端订单ID(origClientOrderId
)来指定要取消的订单。强烈建议使用客户端订单ID,以便更准确地取消特定订单,尤其是在高频交易场景下。请求示例:
{ "symbol": "BTCUSDT", "orderId": 12345 }
参数说明:
-
symbol
: 交易对,如"BTCUSDT"。 -
orderId
: 订单ID,由交易所生成。 -
origClientOrderId
: 原始客户端订单ID(可选,但推荐使用)。
-
-
查询订单 (GET /api/v3/order):
此接口允许开发者查询特定订单的详细状态信息,包括订单类型、价格、数量、成交情况等。需要提供交易对和订单ID进行查询。
请求示例:
{ "symbol": "BTCUSDT", "orderId": 12345 }
参数说明:
-
symbol
: 交易对,如"BTCUSDT"。 -
orderId
: 订单ID。
-
-
查询所有未完成订单 (GET /api/v3/openOrders):
获取所有未成交的现货订单。可以指定交易对(
symbol
)来筛选特定交易对的未完成订单。如果不指定交易对,则返回所有交易对的未完成订单。请求示例:
{ "symbol": "BTCUSDT" // Optional, to filter by specific symbol }
参数说明:
-
symbol
: 交易对,如"BTCUSDT"(可选)。
-
2. 合约交易
合约交易API允许用户在加密货币交易所进行永续合约的开仓、平仓、止盈止损以及调整杠杆等操作。通过API接口,用户可以程序化地管理合约交易,实现自动交易策略。
-
下单 (POST /api/v3/futures/order):
此接口用于创建合约订单。用户需要指定合约代码 (
symbol
)、交易方向 (side
,多头/空头)、订单类型(type
,市价/限价)、开仓/平仓 (positionEffect
)、杠杆倍数 (leverage
)、价格 (price
,仅限价单需要)、数量 (quantity
) 等参数。timeInForce
参数用于设置订单有效期,如GTC
(Good Till Cancelled)。请求示例:
{ "symbol": "BTCUSDT_UMCBL", // 合约代码,例如:BTCUSDT永续合约 "side": "BUY", // 交易方向:BUY (做多/开多), SELL (做空/开空) "type": "LIMIT", // 订单类型:LIMIT (限价单), MARKET (市价单) "quantity": "1", // 合约数量,表示开仓或平仓的合约数量,单位通常为合约张数或特定币种的数量 "price": "40000", // 委托价格,仅限价单需要指定 "leverage": 10, // 杠杆倍数,风险和收益的放大倍数 "positionEffect": "OPEN", // 持仓方向:OPEN (开仓), CLOSE (平仓) "timeInForce": "GTC" // 有效期类型:GTC (Good Till Cancelled,直到取消), IOC (Immediate Or Cancel,立即成交否则取消), FOK (Fill Or Kill,完全成交否则取消) }
-
取消订单 (DELETE /api/v3/futures/order):
此接口用于取消尚未完全成交的合约订单。 需要提供合约代码 (
symbol
) 和要取消的订单ID (orderId
)。请求示例:
{ "symbol": "BTCUSDT_UMCBL", "orderId": 12345 }
-
查询订单 (GET /api/v3/futures/order):
此接口用于查询指定合约订单的详细信息,包括订单状态、成交价格、成交数量等。 需要提供合约代码 (
symbol
) 和订单ID (orderId
)。请求示例:
{ "symbol": "BTCUSDT_UMCBL", "orderId": 12345 }
-
调整杠杆 (POST /api/v3/futures/leverage):
此接口用于调整指定合约的杠杆倍数。 调整杠杆会影响仓位的保证金要求和潜在的盈亏幅度,请谨慎操作。 需要提供合约代码 (
symbol
) 和目标杠杆倍数 (leverage
)。请求示例:
{ "symbol": "BTCUSDT_UMCBL", "leverage": 20 }
3. 市场数据
市场数据API提供对加密货币市场至关重要的实时行情数据,涵盖价格动态、成交量指标以及市场深度图等关键信息,助力用户进行精准的市场分析和决策。
-
获取K线数据 (GET /api/v3/klines):
获取指定交易对的K线数据,是技术分析的基础。K线数据按照指定的时间周期进行聚合,反映了该时间段内的开盘价、最高价、最低价和收盘价。
参数:
{ "symbol": "BTCUSDT", "interval": "1m", // 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w (分钟: m, 小时: h, 天: d, 周: w) "limit": 100 // 返回K线数量上限 }
参数说明:
-
symbol
: 指定交易对,例如 "BTCUSDT"。 -
interval
: 指定K线的时间周期,常见选项包括1分钟 (1m),5分钟 (5m),15分钟 (15m),30分钟 (30m),1小时 (1h),4小时 (4h),1天 (1d) 和1周 (1w)。 -
limit
: 限制返回的K线数量,默认值和最大值可能有所限制,具体数值参考API文档。
-
-
获取最新价格 (GET /api/v3/ticker/price):
获取指定交易对的最新成交价格,是快速了解市场行情的便捷方式。
参数:
{ "symbol": "BTCUSDT" }
参数说明:
-
symbol
: 指定交易对,例如 "BTCUSDT"。
响应: 返回JSON格式的最新价格。例如:
{"symbol": "BTCUSDT", "price": "29000.00"}
-
-
获取深度数据 (GET /api/v3/depth):
获取指定交易对的深度图数据,展示了买单和卖单的挂单情况。通过分析深度图,可以了解市场的买卖力量分布,评估价格支撑和阻力位。
参数:
{ "symbol": "BTCUSDT", "limit": 20 // 返回的深度档位数量 }
参数说明:
-
symbol
: 指定交易对,例如 "BTCUSDT"。 -
limit
: 限制返回的深度档位数量,数值越高,返回的深度信息越详细,但同时也会增加数据传输量。
响应: 返回包含买单(bids)和卖单(asks)信息的JSON数据,每个档位包括价格和数量。
-
4. 账户信息
账户信息API提供用户账户的全面资产信息,涵盖余额、持仓、交易历史以及其他相关账户数据。 这些API接口为用户提供详细的账户概览,帮助用户进行资产管理和交易决策。
-
获取现货账户信息 (GET /api/v3/account):
获取用户的完整现货账户信息,包括可用余额、冻结余额、总资产价值以及其他账户相关的配置信息。 通过此接口,用户可以实时掌握其现货账户的整体状况。
请求参数为空。
-
获取合约账户信息 (GET /api/v3/futures/account):
获取用户的合约账户信息,包括保证金余额、可用保证金、持仓信息、未实现盈亏、已实现盈亏以及风险敞口等关键数据。 此接口对于进行合约交易的用户至关重要,能够帮助他们监控账户风险,调整交易策略。
请求参数为空。
-
获取交易历史 (GET /api/v3/myTrades):
获取用户的现货交易历史记录,包括成交价格、成交数量、交易时间、交易方向(买入或卖出)以及手续费等详细信息。 用户可以通过指定交易对(例如 "BTCUSDT")和限制返回记录的数量(例如 "limit": 100)来过滤交易历史。 此接口方便用户进行交易分析和税务申报。
请求示例:
{ "symbol": "BTCUSDT", "limit": 100 }
API使用注意事项
- 身份验证: 确保在每个API请求中包含正确的API Key和签名。身份验证是访问抹茶API的关键步骤,未经授权的请求将被拒绝。API Key用于标识您的身份,签名用于验证请求的完整性和真实性,防止数据篡改。请务必妥善保管您的API Key和Secret Key。
- 错误处理: API调用可能会返回错误代码,开发者需要根据错误代码进行相应的处理。抹茶API定义了丰富的错误代码,涵盖各种可能的错误情况,例如参数错误、权限不足、服务器错误等。开发者应该根据错误代码,提供友好的错误提示,并采取相应的措施,例如重新尝试请求、检查参数、联系技术支持等。
- 频率限制: 注意API的频率限制,避免过度调用导致API被禁用。为了保障系统的稳定性和可用性,抹茶API对每个API Key的调用频率进行了限制。过度调用可能会导致API Key被暂时或永久禁用。开发者应该合理设计程序的逻辑,避免不必要的API调用,并实现重试机制,以应对临时的网络问题或服务器繁忙。
- 数据安全: 保护好API Key和Secret Key,避免泄露。API Key和Secret Key是访问抹茶API的凭证,一旦泄露,可能会被他人利用进行恶意操作。请务必将API Key和Secret Key存储在安全的地方,例如加密的配置文件或密钥管理系统。不要将API Key和Secret Key硬编码在代码中,也不要将其上传到公共代码仓库。
- 版本更新: 抹茶API可能会进行版本更新,开发者需要及时关注更新信息并进行相应的调整。抹茶交易所会定期发布API版本更新,以修复bug、增加新功能或优化性能。开发者应该及时关注抹茶交易所的官方公告和API文档,了解最新的版本信息,并根据需要进行相应的调整。不兼容的API版本可能会导致程序运行错误。
- 签名算法: 抹茶API使用特定的签名算法,通常是HMAC-SHA256,需要仔细阅读API文档,确保签名正确。签名算法是用于生成API请求签名的算法,抹茶API通常使用HMAC-SHA256算法。开发者需要仔细阅读API文档,了解签名算法的详细步骤和参数要求,确保生成的签名与服务器期望的签名一致。错误的签名会导致请求被拒绝。
- 时间戳同步: API请求通常需要包含时间戳参数,确保时间戳与服务器时间同步,否则可能导致签名验证失败。为了防止重放攻击,抹茶API通常要求在API请求中包含时间戳参数。时间戳参数表示请求的发送时间,服务器会验证时间戳是否在允许的范围内。如果时间戳与服务器时间相差太大,服务器会认为请求是无效的。开发者需要确保客户端的时间与服务器时间同步,可以使用NTP服务器同步时间。
- 测试环境: 抹茶交易所通常提供测试环境(sandbox environment),建议开发者在正式上线前,在测试环境中进行充分的测试。测试环境是一个模拟的交易环境,与真实的市场环境隔离。开发者可以在测试环境中进行API调用、交易模拟、数据验证等操作,而无需担心资金损失或市场影响。在正式上线前,务必在测试环境中进行充分的测试,确保程序的稳定性和正确性。
- 官方文档: 务必参考抹茶交易所的官方API文档,了解API的最新信息和使用方法。API文档通常包含详细的接口描述、参数说明、返回示例和错误代码说明。抹茶交易所的官方API文档是开发者使用抹茶API的重要参考资料。API文档包含了API的最新信息和使用方法,包括接口描述、参数说明、返回示例和错误代码说明。开发者应该仔细阅读API文档,了解API的详细信息,并根据文档的指导进行开发。