在实际开发中,很多项目都需要实时获取美股行情数据,包括股票价格、涨跌幅、成交量等信息。整理了一套从数据获取到实时更新的流程,方便在项目中直接应用。
1. 基础请求:获取美股行情数据
最直观的方式是通过 REST API 获取基础行情。以 Python 为例,可以用
requests
获取最新行情:
|
import
requests
url =
"https://apis.alltick.co/market/stock/latest"
# 示例接口
params = {
"symbol"
:
"AAPL.US"
,
"market"
:
"US"
}
response = requests.get(url, params=params)
data = response.json()
print(data)
|
通过这种方式,你可以拿到股票最新价格、涨跌幅以及成交量等信息。这里
以
AllTick API
为例
,接口结构清晰,数据响应快,方便在项目中快速接入。
2. 实时更新行情:WebSocket 接入
单次请求获取的数据有限,行情瞬息万变,需要实时更新。Python 里的
websocket-client
可以很方便实现:
|
import
websocket
import
json
def
on_message
(ws, message):
data = json.loads(message)
print(
f"{data['symbol']} 当前价格: {data['price']}"
)
def
on_open
(ws):
subscribe_msg = {
"action"
:
"subscribe"
,
"symbols"
: [
"AAPL.US"
,
"TSLA.US"
]
}
ws.send(json.dumps(subscribe_msg))
ws = websocket.WebSocketApp(
"wss://apis.alltick.co/realtime"
,
>
>
ws.run_forever()
|
通过 WebSocket 建立连接,发送订阅消息,就能持续接收指定股票的实时价格更新。对于交易策略、行情分析或数据可视化都非常方便。
3. 数据处理与可视化
拿到数据之后,可以做一些简单处理或者可视化。比如用
pandas
和
matplotlib
绘制实时行情曲线:
|
import
pandas
as
pd
import
matplotlib.pyplot
as
plt
from
datetime
import
datetime
prices = []
def
on_message
(ws, message):
data = json.loads(message)
prices.append({
"time"
: datetime.now(),
"price"
: data[
'price'
]
})
df = pd.DataFrame(prices)
df.plot(x=
"time"
, y=
"price"
, kind=
"line"
)
plt.pause(0.01)
|
这样就可以边接收数据,边在图表上展示价格走势,直观了解市场变化。
4. 多品种和批量订阅
实际项目中,往往需要同时关注多只股票甚至跨市场的数据,可以在订阅列表里批量添加:
|
subscribe_msg = {
"action"
:
"subscribe"
,
"symbols"
: [
"AAPL.US"
,
"TSLA.US"
,
"MSFT.US"
]
}
|
数据会实时推送回来,无需频繁请求接口,节省网络开销,也便于在程序里统一处理。
完整的流程就是:先通过 API 获取基础行情,后续通过 WebSocket 实时订阅更新,然后在程序里处理或者可视化。
灵活使用接口和实时数据推送,可以快速搭建行情监控、交易策略或者数据分析工具。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70048654/viewspace-3109979/
,如需转载,请注明出处,否则将追究法律责任。