接口使用 (API 集成与调用示例)

QuantumExecute 提供完善的 API 接口,方便用户将算法交易功能集成到自有系统中,实现程序化控制。本节介绍 API 集成的基本流程和注意事项,并给出调用示例。

1. 集成流程

若您希望通过编程方式调用 QE 算法服务,需要按照以下步骤进行系统集成:

  1. 获取 API 凭证:联系 QE 平台支持团队获取分配给您的 Client ID(客户端标识)和 Secret Key(签名密钥)。Client ID 用于标识调用方身份,Secret Key 用于对交易指令进行签名,以验证请求合法性。

  2. IP 白名单设置:与 QE 技术团队确认您系统下单所使用服务器的 IP 地址范围。平台将仅允许来自预先登记的 IP 地址的 API 请求,以提高安全性。

  3. 配置交易所 API:在您所使用的交易所(如 Binance)上创建限定上述服务器 IP 使用的 API Key,并将该 API Key 提供给 QE 平台。出于安全考虑,建议您使用平台提供的公钥对 API Secret 进行加密后再发送给 QE(如不熟悉加密过程,可联系 QE 获得指导)。QE 收到您的 API Key 信息后,会将其安全存储并配置到交易执行系统中。

  4. 对接测试:当 QE 确认配置完毕,您即可根据 API 文档编写程序代码与平台接口对接,并通过测试环境验证调用。建议先在小额或模拟模式下测试下单、查询等流程,确认无误后再进行实盘交易调用。

完成以上集成后,您的系统就能通过调用 QE API 发出交易指令,例如下达算法订单、查询订单状态、获取执行报告等。所有接口调用都须包含正确的 Client ID 以及基于 Secret Key 算出的数字签名,以通过平台校验。签名通常采用 HMAC-SHA256 等算法,具体细节参考 API 接入文档。

2. 调用示例

以下为一个使用 Python 发起算法交易请求的示例流程(伪代码):

import time, hmac, hashlib
import requests

# Credentials (obtained from QE)
CLIENT_ID = "your_client_id"
API_SECRET = b"your_api_secret_bytes"  # ensure this is in bytes for HMAC

# Example order parameters
payload = {
    "exchange": "Binance",
    "symbol": "BTCUSDT",
    "side": "buy",
    "strategy": "TWAP",
    "order_quantity": 100,       # total quantity to buy
    "duration": 3600,            # execution duration in seconds (e.g., 1 hour)
    "start_time": int(time.time())  # start now (current epoch time)
    # ... other optional parameters like price limits, etc.
}
# Convert payload to JSON string
import json
body = json.dumps(payload)

# Prepare authentication headers
timestamp = str(int(time.time() * 1000))  # current timestamp in ms
# Create signature: HMAC_SHA256(secret, <timestamp + body>)
signing_payload = (timestamp + body).encode('utf-8')
signature = hmac.new(API_SECRET, signing_payload, hashlib.sha256).hexdigest()

headers = {
    "X-QE-CLIENTID": CLIENT_ID,
    "X-QE-TIMESTAMP": timestamp,
    "X-QE-SIGNATURE": signature,
    "Content-Type": "application/json"
}

# Send request (assuming endpoint URL and path)
url = "https://api.quantumexecute.com/v1/algo_order"
response = requests.post(url, data=body, headers=headers)
res_data = response.json()
print("Order Status:", res_data)

上述示例展示了通过假定的 Python SDK 接口创建并提交一个算法订单的过程。在实际使用中,您也可以直接通过向 HTTP API 发送请求来完成相同操作。例如,发送一个 HTTP POST 请求到/api/v1/algo_order端点,附带必要的参数和签名头,即可启动算法策略。QE 提供了官方的 Go 和 Python 库来简化集成流程,开发者也可以根据 API 文档自行实现签名和请求发送。

3 注意事项

  • 时钟同步:确保您的系统时间与标准时间同步(例如通过 NTP),因为签名校验通常对时间戳有严格要求,时差过大会导致请求被拒绝。

  • 异常处理:调用 API 下单后请做好异常处理,如网络超时、签名错误等。对于请求被拒绝的情况,API 会返回相应的错误码和信息,常见错误如权限不足(可能是 IP 或签名问题)、参数不合法等。

  • 频率限制:平台对 API 调用设置了一定的频率限制,请在应用中加入重试与间隔逻辑,避免因短时间内请求过多而触发限流。

  • 密钥保管:妥善保管您的 Client ID 和 Secret Key。切勿将 Secret Key 写入客户端应用或日志;如怀疑密钥泄露,请立即重置并通知 QE 支持。

注:完整的 API 列表和技术细节请参考《QuantumExecute API 接入文档》。该文档可向 QE 官方团队索取。

最后更新于