想用 MEXC API 自动化交易?新手必看!
MEXC API 详解
概述
MEXC API (应用程序编程接口) 允许开发者通过编程方式无缝地与MEXC交易所进行交互,极大地扩展了交易所的功能,实现自动化交易策略的部署、实时市场数据的获取、以及账户管理等核心功能。通过API,经验丰富的交易者和机构可以创建高度自定义的交易机器人和策略,从而实现算法交易,并且无需持续手动操作即可精准执行买卖订单,显著提高交易效率和执行速度。同时,API提供对全面市场数据的实时监控,包括但不限于深度行情、历史交易记录和订单簿信息,为交易决策提供坚实的数据基础。更重要的是,API还支持对账户状态的实时监控和管理,例如余额查询、订单状态跟踪和持仓分析,确保用户能够全面掌控自己的交易活动。
API 权限和安全
为了充分利用MEXC交易所提供的API功能,您需要先在MEXC平台上创建API密钥。 这个过程涉及访问您的MEXC账户设置,并按照指示生成一对密钥:一个公钥(API Key)和一个私钥(Secret Key)。在创建API密钥时,一个至关重要的步骤是仔细配置其权限。 您可以根据您的需求选择不同的权限级别,例如,只读权限允许您获取市场数据,但不能进行任何交易;而交易权限则允许您执行买卖操作。请务必根据您的实际需求授予适当的权限,以最大限度地降低潜在风险。
API密钥的安全性至关重要。 任何获得您的API密钥的人都可能访问您的账户并执行操作,因此,您必须采取严格的安全措施来保护它们。 切勿与他人分享您的API密钥,也不要将其存储在不安全的位置,例如未加密的文本文件或公共代码仓库中。 定期审查和轮换您的API密钥也是一个良好的安全实践。
MEXC交易所实施了多项安全措施,以保障用户的资产和数据安全,包括:
- API密钥认证: MEXC API强制要求所有API请求都必须包含有效的API密钥进行身份验证。 这确保了只有经过授权的应用程序才能访问API并执行操作。API密钥充当访问令牌,验证请求的来源,并防止未经授权的访问。
- IP地址白名单: 您可以进一步增强API密钥的安全性,方法是设置IP地址白名单。 此功能允许您指定允许使用API密钥访问MEXC API的特定IP地址。 任何来自未列入白名单的IP地址的请求都将被拒绝,从而有效防止了未经授权的访问,即使API密钥泄露。
- 频率限制 (Rate Limiting): 为了防止API被滥用或恶意攻击,MEXC对API请求的频率施加了限制。 频率限制有助于防止拒绝服务 (DoS) 攻击,并确保所有用户都能公平地访问API资源。 如果您的应用程序超过了频率限制,您将收到一个错误响应,并且需要减少请求的频率。 详细的频率限制规则可以在MEXC的API文档中找到。
- 双因素认证 (2FA): 强烈建议您为您的MEXC账户启用双因素认证。 这将增加额外的安全层,即使有人获得了您的用户名和密码,他们也需要提供来自您的移动设备的第二个验证码才能访问您的账户或使用API密钥。
API 端点
MEXC API 提供了一系列端点,允许开发者访问和交互 MEXC 交易所的各种功能。这些端点根据其用途和所需权限进行分类,涵盖了市场数据、账户管理和交易执行等多个方面。理解这些端点的功能和使用方法对于构建基于 MEXC API 的应用程序至关重要。
- 公共端点: 提供无需身份验证即可访问的公开市场数据。这些端点通常用于获取实时或历史的行情信息,包括交易对的最新价格、交易量、深度数据(买单和卖单)以及K线数据(一段时间内的开盘价、最高价、最低价和收盘价)。利用公共端点可以构建行情监控工具、数据分析平台以及交易策略的回测系统。交易对信息也是通过公共端点获取的,包括交易对的名称、交易单位、最小交易量等。
- 现货账户端点: 用于管理用户的现货账户。必须通过身份验证才能访问,确保只有账户所有者才能执行操作。这些端点允许用户查询账户余额,包括各种币种的可用数量和已冻结数量。用户可以使用这些端点进行下单操作,包括市价单、限价单等,并可以指定交易方向(买入或卖出)和数量。用户还可以使用现货账户端点来撤销未成交的订单,以便调整交易策略或避免不必要的损失。
- 合约账户端点: 用于管理用户的合约账户,同样需要身份验证。这些端点提供与现货账户端点类似的功能,但专门用于操作合约交易。除了查询余额和下单、撤单之外,合约账户端点还允许用户查询持仓信息,包括当前持有的合约数量、平均持仓价格、盈亏情况以及强平价格。这些信息对于合约交易者来说至关重要,可以帮助他们监控风险、调整仓位并执行止盈止损策略。
- 杠杆账户端点: 用于管理用户的杠杆账户。杠杆交易允许用户借入资金进行交易,从而放大收益或损失。杠杆账户端点允许用户借入特定币种的资金,并指定借款数量和利率。用户还需要使用这些端点来归还借款,并支付利息。与其他账户端点类似,杠杆账户端点也提供查询余额、下单和撤单的功能。在使用杠杆账户端点时,务必注意风险管理,避免过度杠杆导致爆仓。
API 请求和响应
MEXC API 遵循 RESTful 架构原则,并通过标准的 HTTP 请求进行数据交互。这种架构风格使得 API 易于理解和使用,并具有良好的可扩展性。
- 请求方式: MEXC API 支持多种 HTTP 请求方法,常用的包括 GET(用于检索数据)、POST(用于创建或更新数据)、PUT(用于完整更新数据)、DELETE(用于删除数据)。选择合适的请求方式取决于要执行的操作。
-
请求参数:
请求参数用于向 API 传递必要的信息。这些参数可以通过两种方式传递:URL 参数(附加在 URL 后面,例如
?symbol=BTCUSDT&limit=10
)或请求体(在 POST、PUT 等请求中,将参数以 JSON 或其他格式放在请求体中)。 - 响应格式: 为了便于解析和处理,MEXC API 响应通常采用 JSON (JavaScript Object Notation) 格式返回数据。JSON 是一种轻量级的数据交换格式,易于阅读和编写,并且被广泛支持。
为了安全地访问 MEXC API,每个 API 请求都需要包含必要的头部信息。其中,
X-MEXC-APIKEY
头部用于传递您的 API 密钥。API 密钥是您访问 API 的凭证,请妥善保管,避免泄露。根据 API 的不同,可能还需要其他头部信息,例如内容类型 (
Content-Type
) 等。
API 响应包含三个关键部分:状态码、响应头和响应体。状态码是一个三位数的数字,表示请求的执行结果。常见的状态码包括:200 (OK),表示请求成功;400 (Bad Request),表示请求错误,通常是由于参数错误或格式不正确导致的;401 (Unauthorized),表示未授权,通常是由于 API 密钥无效或缺少权限导致的;500 (Internal Server Error),表示服务器内部错误。响应头包含关于响应的元数据,例如内容类型、内容长度等。响应体包含 API 返回的实际数据,通常是 JSON 格式的数据。
数据类型
MEXC API 采用多种标准数据类型,以确保数据的准确性和高效传输。理解这些数据类型对于成功地解析API响应和构建有效的API请求至关重要,具体包括:
- 整数 (Integer): 用于表示不带小数部分的数值,如交易ID、订单数量等。根据数值范围,可能使用不同的整数类型,例如32位整数(int32)或64位整数(int64),后者可以表示更大的数值。在API文档中会明确指出具体使用的整数类型。
- 浮点数 (Float): 用于表示带有小数部分的数值,例如价格、费率等。通常使用双精度浮点数(double或float64)以提供更高的精度。需要注意的是,在处理浮点数时,应避免直接比较大小,而是应该使用一定的误差范围进行比较,以避免由于浮点数精度问题导致的结果不准确。
- 字符串 (String): 用于表示文本数据,例如交易对名称、订单状态等。字符串通常采用UTF-8编码,以支持多语言字符集。在发送API请求时,需要对字符串进行适当的编码,以确保服务器能够正确解析。
-
布尔值 (Boolean):
用于表示真或假,通常用
true
或false
表示。在API响应中,布尔值常用于表示某种状态,例如订单是否已完成、账户是否已激活等。 - 数组 (Array): 用于表示一组相同类型的数据的有序集合。例如,一个订单簿的深度信息可以表示为一个数组,其中每个元素代表一个价格水平的买单或卖单。数组中的元素可以是任何其他数据类型,包括整数、浮点数、字符串、布尔值,甚至是其他数组或对象。
- 对象 (Object): 用于表示一个包含键值对的数据结构,也称为JSON对象。每个键值对由一个键(字符串)和一个值(可以是任何其他数据类型)组成。对象用于表示复杂的数据结构,例如订单信息、账户信息等。键值对的顺序通常不重要,但有些API可能会对键的顺序有特定的要求。
常见API接口详解
获取服务器时间
-
端点:
/api/v3/time
- 方法: GET
- 描述: 获取MEXC服务器当前的时间戳。此端点用于同步客户端与服务器的时间,对于时间敏感型操作尤为重要,例如创建订单或验证签名。
- 响应示例:
以下JSON格式展示了服务器时间的响应结构:
{
"serverTime": 1678886400000
}
字段解释:
-
serverTime
: 表示MEXC服务器的当前时间,以Unix时间戳(毫秒)格式表示。 Unix时间戳是从1970年1月1日00:00:00 UTC开始计算的总毫秒数。开发者可以使用此值来同步他们的应用程序时间,或者用于计算特定事件发生的时间差。 例如,可以使用此时间戳验证请求的有效性,防止重放攻击,或用于记录事件发生的确切时间。
使用场景:
- 时间同步: 在高频交易或需要精确时间戳的交易策略中,确保客户端时间与服务器时间同步至关重要。 通过调用此端点,客户端可以获取服务器时间,并相应地调整本地时间,从而避免因时间差异导致的问题。
- 请求签名验证: 为了确保API请求的安全性,通常会使用时间戳对请求进行签名。 此端点返回的时间戳可以用于生成和验证签名,防止恶意篡改或重放攻击。
- 时间戳记录: 在记录交易或其他事件时,使用服务器时间戳可以提供更准确的时间信息,确保数据的一致性和可靠性。
获取交易对信息
-
端点:
/api/v3/exchangeInfo
- 方法: GET
- 描述: 获取MEXC交易所所有交易对的详细信息。此接口提供有关交易对名称、交易对状态(如交易中、已暂停)、价格精度、数量精度、交易规则、交易对所涉及的资产等重要数据,是进行交易策略分析和风险管理的关键信息来源。
-
参数:
-
symbol
(可选): 指定需要查询的交易对名称。如果不指定此参数,API将返回所有交易对的信息。指定交易对可以提高查询效率,减少数据传输量。例如:symbol=BTCUSDT
。
-
- 响应示例:
该响应示例展示了MEXC交易所返回的交易对信息结构。
{
"timezone": "UTC",
"serverTime": 1678886400000,
"rateLimits": [],
"symbols": [
{
"symbol": "BTCUSDT",
"status": "TRADING",
"baseAsset": "BTC",
"baseAssetPrecision": 8,
"quoteAsset": "USDT",
"quotePrecision": 8,
"orderTypes": [
"LIMIT",
"MARKET",
"LIMIT_MAKER"
],
"icebergAllowed": true,
"ocoAllowed": true,
"quoteOrderQtyMarketAllowed": true,
"isSpotTradingAllowed": true,
"isMarginTradingAllowed": true,
"filters": []
}
]
}
字段解释:
-
timezone
: 服务器的时区,通常为UTC。 -
serverTime
: 服务器当前的时间戳(Unix时间戳,毫秒)。 -
rateLimits
: 交易所的限速规则,用于防止API滥用。详细信息请参考MEXC API文档中的限速说明。 -
symbols
: 包含所有交易对信息的数组。每个交易对的信息如下:-
symbol
: 交易对的名称,例如"BTCUSDT"。 -
status
: 交易对的状态,例如"TRADING"(交易中)、"HALT"(暂停交易)等。 -
baseAsset
: 基础资产,例如"BTC"。 -
baseAssetPrecision
: 基础资产的精度,表示小数点后的位数。例如,值为8表示BTC可以精确到小数点后8位。 -
quoteAsset
: 报价资产,例如"USDT"。 -
quotePrecision
: 报价资产的精度,表示小数点后的位数。 -
orderTypes
: 允许的订单类型,例如"LIMIT"(限价单)、"MARKET"(市价单)、"LIMIT_MAKER"(挂单)。 -
icebergAllowed
: 是否允许冰山订单。 -
ocoAllowed
: 是否允许OCO (One-Cancels-the-Other) 订单。 -
quoteOrderQtyMarketAllowed
: 是否允许市价单按报价货币数量下单。 -
isSpotTradingAllowed
: 是否允许现货交易。 -
isMarginTradingAllowed
: 是否允许杠杆交易。 -
filters
: 交易对的过滤器,用于限制订单大小、价格等。详细信息请参考MEXC API文档中的过滤器说明。
-
注意事项:
-
请根据
baseAssetPrecision
和quotePrecision
来控制交易的数量和价格,避免精度问题导致交易失败。 -
filters
字段包含了交易对的详细交易规则,例如最小交易数量、最小交易价格等,务必仔细阅读并遵守。 - 定期更新交易对信息,因为交易所可能会调整交易规则或增加新的交易对。
获取K线数据
-
端点:
/api/v3/klines
- 方法: GET
- 描述: 获取指定交易对的历史K线(OHLCV)数据,用于技术分析和策略回测。
-
参数:
-
symbol
(必选): 交易对名称,例如BTCUSDT
,ETHBTC
。 该参数区分大小写。 -
interval
(必选): K线时间周期。支持的周期包括:1m
(1分钟),3m
(3分钟),5m
(5分钟),15m
(15分钟),30m
(30分钟),1h
(1小时),2h
(2小时),4h
(4小时),6h
(6小时),8h
(8小时),12h
(12小时),1d
(1天),3d
(3天),1w
(1周),1M
(1月)。选择合适的周期对于分析至关重要。 -
startTime
(可选): K线数据的起始时间戳,以毫秒为单位。如果未提供,则从最早可用数据开始。可以使用Unix时间戳转换工具。 -
endTime
(可选): K线数据的结束时间戳,以毫秒为单位。 如果未提供,则返回最新的K线数据。endTime 必须大于 startTime。 -
limit
(可选): 返回的K线数据条数。默认值为 500,最大值为 1500。 建议根据分析需求合理设置limit,防止数据量过大影响性能。
-
- 响应示例:
[ [ 1678886400000, // 开盘时间 (Unix时间戳,毫秒) "23000.00", // 开盘价 (Open) "23100.00", // 最高价 (High) "22900.00", // 最低价 (Low) "23050.00", // 收盘价 (Close) "100.00", // 成交量 (Volume) 1678886460000, // 收盘时间 (Unix时间戳,毫秒) "2305000.00", // 成交额 (Quote asset volume) 100, // 成交笔数 (Number of trades) "50.00", // 主动买入成交量 (Taker buy base asset volume) "1152500.00", // 主动买入成交额 (Taker buy quote asset volume) "0" // 忽略,保留字段 (Ignore) ] ]
下单
-
端点:
/api/v3/order
- 方法: POST
- 描述: 提交新的交易订单至交易所。该接口允许用户指定交易对、交易方向、订单类型及其他参数,从而实现买入或卖出加密货币资产。
-
参数:
-
symbol
(必选): 交易对名称,指定需要交易的两种加密货币。例如,BTCUSDT
表示比特币 (BTC) 与泰达币 (USDT) 的交易对。 -
side
(必选): 交易方向,指示订单是买入还是卖出。BUY
表示买入,即用法币购买加密货币;SELL
表示卖出,即将持有的加密货币兑换为法币或其他加密货币。 -
type
(必选): 订单类型,定义订单的执行方式。-
LIMIT
(限价单): 以指定的价格或更优的价格成交。如果市场价格未达到指定价格,订单将不会立即成交,而是挂在订单簿上等待。 -
MARKET
(市价单): 以当前市场最优价格立即成交。市价单保证成交,但不保证成交价格,可能因市场波动而高于或低于预期。 -
LIMIT_MAKER
(限价挂单): 一种特殊的限价单,如果该订单会立即与订单簿上的现有订单成交,则该订单会被立即取消。其目的是确保该订单始终作为“maker”挂在订单簿上,从而享受maker手续费优惠。
-
-
timeInForce
(可选): 有效方式,用于指定订单在多长时间内有效。只有在type
为LIMIT
或LIMIT_MAKER
时才需要。-
GTC
(Good Till Cancel): 订单会一直有效,直到被完全成交或手动取消。 -
IOC
(Immediate Or Cancel): 订单尝试立即以指定价格成交,任何未成交的部分会被立即取消。 -
FOK
(Fill Or Kill): 订单必须立即全部成交,否则整个订单会被取消。
-
-
quantity
(必选): 交易数量,指定买入或卖出的加密货币数量。该数量通常以交易对中的基础货币为单位。 -
price
(可选): 价格,指定LIMIT
或LIMIT_MAKER
订单的期望成交价格。该价格以交易对中的报价货币为单位。 -
newClientOrderId
(可选): 客户端自定义订单ID,允许用户为订单指定一个唯一的标识符,方便后续查询和跟踪。 -
stopPrice
(可选): 止损价格,用于触发止损订单。当市场价格达到止损价格时,系统会自动提交一个市价或限价订单。 只有在type
为STOP_LOSS
,STOP_LOSS_LIMIT
,TAKE_PROFIT
,TAKE_PROFIT_LIMIT
时才需要。-
STOP_LOSS
: 当市场价格达到stopPrice
时,会提交一个市价单进行止损。 -
STOP_LOSS_LIMIT
: 当市场价格达到stopPrice
时,会提交一个限价单进行止损,止损价格为price
。 -
TAKE_PROFIT
: 当市场价格达到stopPrice
时,会提交一个市价单进行止盈。 -
TAKE_PROFIT_LIMIT
: 当市场价格达到stopPrice
时,会提交一个限价单进行止盈,止盈价格为price
。
-
-
icebergQty
(可选): 冰山委托数量,将大额订单拆分为多个小额订单,以减少对市场价格的影响。只有LIMIT
类型的订单才能使用此参数。
-
- 响应示例:
响应示例展示了成功提交订单后,服务器返回的 JSON 格式数据。该数据包含了订单的各种属性,如交易对、订单ID、客户端订单ID、成交时间、价格、数量、状态等。
{
"symbol": "BTCUSDT",
"orderId": 123456789,
"orderListId": -1,
"clientOrderId": "my
order
1",
"transactTime": 1678886400000,
"price": "23000.00",
"origQty": "1.00",
"executedQty": "0.00",
"cummulativeQuoteQty": "0.00",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"fills": []
}
查询订单
-
端点:
/api/v3/order
- 方法: GET
- 描述: 查询指定交易对的订单信息。该接口允许用户通过多种方式检索订单,包括订单ID、客户端自定义ID或交易对。通过提供参数,您可以精确地获取所需的订单详细信息。
-
参数:
-
symbol
(必选): 交易对名称。例如,BTCUSDT
表示比特币兑美元的交易对。务必提供正确的交易对,以确保查询到正确的订单信息。 -
orderId
(可选): 订单ID。这是交易所分配给订单的唯一标识符。如果您知道订单ID,可以通过此参数直接查询。 -
origClientOrderId
(可选): 客户端自定义订单ID。如果您在创建订单时指定了自定义的客户端订单ID,可以通过此参数进行查询。这在需要通过自定义ID跟踪订单时非常有用。
-
- 响应示例:
返回的JSON对象包含了订单的详细信息,包括交易对、订单ID、客户端订单ID、价格、数量、执行情况、状态、订单类型、买卖方向、时间戳等。以下是一个示例:
{
"symbol": "BTCUSDT",
"orderId": 123456789,
"orderListId": -1,
"clientOrderId": "myorder1",
"price": "23000.00",
"origQty": "1.00",
"executedQty": "0.00",
"cummulativeQuoteQty": "0.00",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000",
"icebergQty": "0.00000000",
"time": 1678886400000,
"updateTime": 1678886400000,
"isWorking": true,
"origQuoteOrderQty": "0.00000000"
}
字段说明:
-
symbol
: 交易对,例如BTCUSDT
。 -
orderId
: 订单ID,由交易所分配。 -
orderListId
: 订单列表ID,通常用于OCO订单。 -
clientOrderId
: 客户端自定义订单ID。 -
price
: 订单价格。 -
origQty
: 原始订单数量。 -
executedQty
: 已执行的订单数量。 -
cummulativeQuoteQty
: 累计成交额。 -
status
: 订单状态,例如NEW
(新订单),FILLED
(已完成),CANCELED
(已取消),PARTIALLY_FILLED
(部分成交)。 -
timeInForce
: 订单有效期规则,例如GTC
(Good Till Cancelled,直到取消)。 -
type
: 订单类型,例如LIMIT
(限价单),MARKET
(市价单)。 -
side
: 订单方向,BUY
(买入) 或SELL
(卖出)。 -
stopPrice
: 止损价格 (如果订单类型是止损单)。 -
icebergQty
: 冰山订单数量。 -
time
: 订单创建时间戳 (毫秒)。 -
updateTime
: 订单更新时间戳 (毫秒)。 -
isWorking
: 指示订单是否在交易中。 -
origQuoteOrderQty
: 原始报价订单数量。
撤销订单
-
端点:
/api/v3/order
- 方法: DELETE
- 描述: 撤销指定交易对的订单。该操作允许用户取消尚未完全成交的挂单。
-
参数:
-
symbol
(必选): 交易对名称,指定要撤销订单的交易市场。例如,BTCUSDT
表示比特币对泰达币的交易对。 -
orderId
(可选): 要撤销的订单的服务器订单ID。如果提供了orderId
,则系统将尝试撤销具有该ID的订单。orderId
和origClientOrderId
必须指定其中一个。 -
origClientOrderId
(可选): 发起订单时客户端自定义的订单ID。如果提供了origClientOrderId
,系统将尝试撤销具有该客户端ID的订单。这允许通过客户端维护的ID撤销订单,而无需知道服务器分配的orderId
。orderId
和origClientOrderId
必须指定其中一个。 -
newClientOrderId
(可选): 新的客户端自定义订单ID,用于此次撤单操作。
-
- 响应示例: 成功撤销订单后,服务器将返回包含订单详细信息的JSON对象。
响应体:
symbol
: 交易对名称,例如 "BTCUSDT"。
orderId
: 服务器分配的订单ID,是一个唯一的数字标识符。
orderListId
: 订单列表ID。 如果是OCO订单,则会返回此参数。否则,该值将为-1。
clientOrderId
: 创建订单时客户端提供的订单ID。
origClientOrderId
: 原始订单的客户端订单ID。
transactTime
: 服务器处理撤销请求的时间戳(Unix时间戳,毫秒)。
price
: 订单的委托价格。
origQty
: 原始订单的数量。
executedQty
: 已经成交的订单数量。
cummulativeQuoteQty
: 已经成交的数量乘以成交价格的总和,即成交总额。
status
: 订单状态,撤销成功后,状态为 "CANCELED"。
timeInForce
: 有效方式,例如 "GTC" (Good Till Cancelled,直到取消都有效)。
type
: 订单类型,例如 "LIMIT" (限价单)。
side
: 订单方向,例如 "BUY" (买入)。
{
"symbol": "BTCUSDT",
"orderId": 123456789,
"orderListId": -1,
"clientOrderId": "myorder1",
"origClientOrderId": "myorder1",
"transactTime": 1678886400000,
"price": "23000.00",
"origQty": "1.00",
"executedQty": "0.00",
"cummulativeQuoteQty": "0.00",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
}
错误处理
当与API交互时发生问题,API将返回一个包含详细错误信息的JSON对象,以便于调试和问题诊断。该JSON对象至少包含错误代码和错误消息两个关键字段。通过分析错误代码,开发者能够迅速识别问题的根源,并据此采取适当的纠正措施。错误消息则提供了对错误更具描述性的解释,有助于理解错误的具体性质。开发者应充分利用这些信息,优化应用程序的错误处理机制,提升用户体验和系统的稳定性。
以下列出一些常见的错误代码及其含义,但请注意,这并非完整的错误代码列表。实际应用中,应参考API的官方文档,以获取最准确、最新的错误代码信息:
-
-1000
: 未知错误。表示发生了未能明确识别的异常情况。这通常需要更详细的日志或调试信息才能进一步分析。 -
-1001
: 连接超时。表明客户端与服务器建立连接或传输数据的时间超过了预设的阈值。这可能由于网络拥塞、服务器负载过高或客户端配置不当引起。建议检查网络连接、调整超时设置或稍后重试。 -
-1002
: 身份验证失败。表示提供的API密钥、签名或其他身份验证凭据无效。请仔细检查API密钥是否正确,以及签名算法是否正确实现。确保密钥已激活且拥有访问相应API端点的权限。 -
-1013
: 订单数量过小。说明尝试提交的订单数量低于交易所或API允许的最小数量限制。务必查阅交易所的规则,确保订单数量符合要求。 -
-2011
: 未知订单。指示API无法找到指定ID的订单。这可能是由于订单ID错误、订单已被取消或已成交,或者订单数据尚未同步到API。
示例代码
以下是一个使用Python语言调用MEXC API获取K线(Candlestick)数据的示例代码。该代码演示了如何通过HTTP GET请求与MEXC API交互,并解析返回的JSON数据。
import requests
import hmac
import hashlib
api_key = "YOUR_API_KEY"
secret_key = "YOUR_SECRET_KEY"
def get_kline_data(symbol, interval, limit=500):
url = "https://api.mexc.com/api/v3/klines"
params = {
"symbol": symbol,
"interval": interval,
"limit": limit
}
headers = {
"X-MEXC-APIKEY": api_key
}
response = requests.get(url, params=params, headers=headers)
if response.status_code == 200:
return response.()
else:
print(f"Error: {response.status_code} - {response.text}")
return None
if __name__ == "__main__":
symbol = "BTCUSDT"
interval = "1m"
kline_data = get_kline_data(symbol, interval)
if kline_data:
print(f"K线数据 for {symbol} ({interval}):")
for kline in kline_data:
print(kline)
请务必将
YOUR_API_KEY
和
YOUR_SECRET_KEY
替换成您在MEXC交易所申请的真实API密钥和私钥。API密钥用于身份验证,私钥用于签名某些需要安全验证的请求。请注意保管好您的密钥,避免泄露,以免造成资产损失。示例代码中的
limit
参数用于限制返回K线数据的数量,默认值为500。您可以根据需求调整该值。
interval
参数定义了K线的时间周期,例如"1m"代表1分钟,"5m"代表5分钟,"1h"代表1小时,"1d"代表1天等。MEXC API支持多种时间周期,具体请参考官方文档。 此处提供的代码仅为获取K线数据的示例,实际应用中可能需要进行错误处理、数据清洗和存储等操作。