AllTick
使用这个简单的 API 获取实时股票市场数据
博客

使用这个简单的 API 获取实时股票市场数据

是否曾想过如何为自己的项目接入实时股票市场数据?我将在这里为你详细介绍。本文将带你进入强大的股票市场数据 API 世界,尤其是 AllTick 的实时数据

AllTick阅读 6 分钟

是否曾想过如何为自己的项目接入实时股票市场数据?我将在这里为你详细介绍。本文将带你进入强大的股票市场数据 API 世界,尤其是 AllTick 的实时数据 API。无论你对美国股票、香港股票、A股、外汇,还是加密货币感兴趣,我都会准确展示如何使用这类能够带来显著帮助的数据快速开始。

开始使用 AllTick API

现在,我将引导你完成有效使用 AllTick API 所需的关键步骤。整个过程非常简单,任何人都可以轻松高效地使用该平台。

步骤 1:注册账户

首先,你需要在AllTick 的网站上注册账户。注册过程十分便捷,提供两种主要方式。你可以填写注册表单并提供个人信息,也可以选择更方便的方式,使用 Google 账户登录。最棒的一点是,注册免费,也无需提供任何信用卡信息。这让你可以轻松开始使用。

文章图片
文章图片

步骤 2:获取 API 密钥

成功注册后,你将获得访问 AllTick 控制面板的权限,并可在此处找到自己的 API 密钥:

文章图片
文章图片

步骤 3:了解使用配额和速率限制

在完全使用 AllTick API 之前,请先花一点时间了解不同账户方案对应的使用配额和速率限制。每种方案都会对数据获取量和请求频率设定具体限制。免费账户有明确的限制,但如果你需要更大的访问权限,可以考虑升级到提供增强功能的付费方案之一。

文章图片
文章图片

每个计划的使用配额和限制

使用 AllTick API 发送请求的示例代码

为了向您展示如何使用 AllTick API 发送请求,下面使用 Python 提供了一个实际示例。此代码演示了如何调用 API 来获取实时股票市场数据。让我们逐步进行解析。

import time
import requests
import json

# Extra headers for the API request
test_headers = {
'Content-Type': 'application/json'
}

# Note: Replace "testtoken" in the URLs below with your actual API token.

# Define the API endpoints for different types of data
test_url1 = 'https://quote.tradeswitcher.com/quote-stock-b-api/kline?token=testtoken&query=%7B%22trace%22%20%3A%20%22python_http_test1%22%2C%22data%22%20%3A%20%7B%22code%22%20%3A%20%22700.HK%22%2C%22kline_type%22%20%3A%201%2C%22kline_timestamp_end%22%20%3A%200%2C%22query_kline_num%22%20%3A%202%2C%22adjust_type%3A%200%7D%7D'
test_url2 = 'https://quote.tradeswitcher.com/quote-stock-b-api/depth-tick?token=testtoken&query=%7B%22trace%22%20%3A%20%22python_http_test2%22%2C%22data%22%20%3A%20%7B%22symbol_list%22%3A%20%5B%7B%22code%22%3A%20%22700.HK%22%7D%2C%7B%22code%22%3A%20%22UNH.US%22%7D%5D%7D%7D'
test_url3 = 'https://quote.tradeswitcher.com/quote-stock-b-api/trade-tick?token=testtoken&query=%7B%22trace%22%20%3A%20%22python_http_test3%22%2C%22data%22%20%3A%20%7B%22symbol_list%22%3A%20%5B%7B%22code%22%3A%20%22700.HK%22%7D%2C%7B%22code%22%3A%20%22UNH.US%22%7D%5D%7D%7D'

# Send the first API request to retrieve kline data
resp1 = requests.get(url=test_url1, headers=test_headers)
time.sleep(1) # Pause for a moment to avoid hitting the rate limit

# Send the second API request to get depth tick data
resp2 = requests.get(url=test_url2, headers=test_headers)
time.sleep(1)

# Send the third API request for trade tick data
resp3 = requests.get(url=test_url3, headers=test_headers)

# Print the decoded text returned by each request
text1 = resp1.text
print("Kline Data:", text1)

text2 = resp2.text
print("Depth Tick Data:", text2)

text3 = resp3.text
print("Trade Tick Data:", text3)

代码说明

  1. 导入库: 我们首先导入必要的库: time, requests, 和 json
  2. 设置请求头: 我们定义 API 请求所需的请求头,指定我们将发送和接收 JSON。
  3. 定义 API 端点: 我们为不同的 API 端点设置 URL。每个 URL 都针对指定的股票代码获取特定类型的数据(例如 K 线、深度 tick 和交易 tick)(例如,700.HK 代表港股,以及 UNH.US 美国股票)。
  4. 发送 API 请求: 使用 requests.get(),我们向每个 API 端点发送 GET 请求。为防止请求 API 过于频繁,我们会在请求之间加入短暂的暂停。
  5. 处理响应:最后,我们会输出每个请求从 API 接收到的响应。现在可以根据您的具体需求进一步处理这些数据。

使用 AllTick WebSocket 获取实时市场数据

要使用 AllTick WebSocket API 获取实时市场数据,您可以使用以下 Python 示例。此代码说明了如何建立 WebSocket 连接、订阅特定股票数据以及处理传入的消息。

import json
import websocket # Ensure you have the websocket-client library installed: pip install websocket-client

'''
# Special Note:
# GitHub: https://github.com/alltick/realtime-forex-crypto-stock-tick-finance-websocket-api
# Token Application: https://alltick.co
# Replace "testtoken" in the URL below with your actual token.
# Stock API address:
# wss://quote.tradeswitcher.com/quote-stock-b-ws-api
'''

class Feed(object):

def __init__(self):
self.url = 'wss://quote.tradeswitcher.com/quote-stock-b-ws-api?token=testtoken' # Your WebSocket URL here
self.ws = None

def on_open(self, ws):
"""
Callback executed when the WebSocket connection is opened.
"""
print('A new WebSocketApp is opened!')

# Example subscription parameters
sub_param = {
"cmd_id": 22002,
"seq_id": 123,
"trace": "3baaa938-f92c-4a74-a228-fd49d5e2f8bc-1678419657806",
"data": {
"symbol_list": [
{
"code": "700.HK", # Hong Kong stock
"depth_level": 5, # Depth level for market data
},
{
"code": "UNH.US", # U.S. stock
"depth_level": 5,
}
]
}
}

# Send the subscription request
sub_str = json.dumps(sub_param)
ws.send(sub_str)
print("Depth quotes subscribed!")

def on_message(self, ws, message):
"""
Callback executed when a message is received.
"""
# Parse the received message and print it
result = json.loads(message) # Using json.loads instead of eval for safety
print(result)

def on_error(self, ws, error):
"""
Callback executed when an error occurs.
"""
print(error)

def on_close(self, ws, close_status_code, close_msg):
"""
Callback executed when the WebSocket connection is closed.
"""
print('The connection is closed!')

def start(self):
"""
Initiates the WebSocket connection and starts the listener.
"""
self.ws = websocket.WebSocketApp(
self.url,
on_open=self.on_open,
on_message=self.on_message,
on_error=self.on_error,
on_close=self.on_close,
)
self.ws.run_forever() # Keep the connection alive

if __name__ == "__main__":
feed = Feed()
feed.start() # Start the WebSocket feed

导入库:我们导入必要的库,包括 json,用于处理 JSON 数据,以及 websocket,用于 WebSocket 连接。

WebSocket 类设置Feed 类被定义用于管理 WebSocket 连接。在 __init__ 方法中,WebSocket 连接的 URL 被设置。

WebSocket 回调

  • on_open:当连接打开时调用此方法。它会发送针对特定股票数据的订阅请求(在本例中为 700.HKUNH.US,深度级别为 5)。
  • on_message:此方法处理来自服务器的传入消息,解析并打印接收到的 JSON 数据。
  • on_error:发生错误时触发此方法,并打印错误消息。
  • on_close:连接关闭时调用此方法,表示连接已结束。

启动方法start 方法使用定义的 URL 和回调初始化 WebSocketApp,然后使用 run_forever()

执行:在 if __name__ == "__main__": 代码块中,我们创建 Feed 类的实例并启动 WebSocket 连接。

最终思考

利用 AllTick API 获取实时市场数据,可以显著增强您的交易和金融应用。无论您选择使用 HTTP 请求进行简单的数据检索,还是使用 WebSocket 连接获取持续的实时更新,这两种方法都针对不同的使用场景提供了独特的优势。通过了解每种方法的细微差别、实施稳健的错误处理并遵循最佳实践,您可以构建能够动态响应市场状况的有效解决方案,最终为用户提供及时的洞察和竞争优势。

要深入了解 AllTick API 的功能,我们建议您查看我们的完整API 文档。其中包含有关端点、参数和最佳实践的详细信息,可帮助您充分利用集成。此外,别忘了查看我们的GitHub 仓库,您将在那里找到代码示例、更新信息以及一个充满活力、随时准备为您提供支持的社区。您利用实时市场数据的旅程就从这里开始!

立即开始接入市场数据

几秒内生成免费 API 密钥,通过一个端点连接所有市场。