如何获取股票实时数据?
摘要:
获取股票实时数据需综合运用行情API、交易所直连、第三方数据商及量化平台。核心方法包括使用WebSocket接收推送、处理tick数据、处理复权因子。关键词:实时行情。

实时行情数据源
股票实时数据主要通过行情供应商或交易所接口获取。主流方案包括:
证券交易所官方行情接口(如上海/深圳证券交易所的Level-1/Level-2行情)
第三方数据服务商(如Wind、聚宽、Tushare、AkShare)
券商或期货公司提供的柜台接口(常带实时行情)
不同来源的数据延迟、字段完整度及费用差异显著。高频交易者倾向使用Level-2快照或逐笔成交,日线级策略则可用免费源。
WebSocket订阅实时数据
实时推送多采用WebSocket协议,可低延迟接收行情变化。以Python为例,连接行情服务后,订阅股票代码,回调处理接收到的JSON数据。

import websocket
import json
def on_message(ws, message):
data = json.loads(message)
# 处理字段如:code, last, bid, ask, volume, timestamp
print(data)
def on_error(ws, error):
print(error)
def on_close(ws):
print("closed")
def on_open(ws):
# 订阅多支股票
sub = {"action": "subscribe", "symbols": "600519,000001"}
ws.send(json.dumps(sub))
ws = websocket.WebSocketApp("wss://example.com/realquote",
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.run_forever()
注意处理心跳包,需定期发送心跳或重连。若数据源不支持WebSocket,可轮询REST API,但延迟高,不适合盘中高频交易。
处理tick数据
tick数据是最细粒度的行情,包含每笔成交的价量及时间。获取后需清洗与聚合。关键步骤:
过滤无效记录(如成交量为0)
校正时间戳到统一时区
按分钟或小时聚合为K线
股票期货中,tick数据常用于计算买卖压力、波动率等指标。处理时注意数据量巨大,需用高效存储如Parquet列式文件。
复权因子的实时更新
实时数据中价格常为不复权价,需结合复权因子计算前复权或后复权价格,尤其对历史回测或实际交易至关重要。复权因子基于分红、送股等事件,在除权日变化。
从数据供应商获取当日复权因子,对实时价乘以因子即可得到复权价。需在盘中定时更新因子,因为上市公司可能临时调整事件。
# 伪代码
factor_table = get_dividend_factor() # 每日更新
def adj_price(price, symbol):
factor = factor_table.loc[symbol, "adj_factor"]
return price * factor
数据存储与延迟控制
实时数据需快速存储以便复用。内存数据库如Redis可存储最近数据,历史数据落盘到数据库。延迟控制包括:
心跳检测,断线自动重连
使用异步IO处理高吞吐
多路数据源冗余切换
对期货,还需结合合约到期日、换月规则等,保证数据连续性。
实时数据在策略中的应用
获取实时行情后,需与交易接口对接执行策略。常见流程:行情驱动信号生成,下单指令发送至柜台。注意交易回执处理,避免重复下单。
# 简单策略示例:价格突破N周期高点多头开仓
context.holding = None
def handle_tick(quote):
if quote is None: return
# 维护bar更新
bar = update_bar(quote)
if bar and context.holding is None and bar.close > max(bar['high'].rolling(20).max()):
send_order(quote.code, 1, "buy")
实时数据测试与容错
测试环境使用模拟数据或回放。容错机制包括检查数据源是否正常、价格跳动是否极端、时间戳是否滞后。对异常数据需过滤或重连。
股票期货交易中,实时数据的毫秒级差异可能影响滑点,故系统需优化至低延迟,但更应确保数据连续正确。
合规性与成本考量
获取实时行情需遵守交易所数据发播协议。不经授权抓取数据可能违法。免费源通常有延迟,高频策略需付费购买机构级行情。根据自身策略需求,合理选择数据级别(快照、逐笔、订单簿)。
结合上述方法与实现,构建可靠实时数据基础,支撑量化交易决策。
声明
转载声明:欢迎分享本文,转载请注明出处!
点击复制: