首页
/ SinaL2:新浪Level2行情数据获取工具详解

SinaL2:新浪Level2行情数据获取工具详解

2026-02-06 04:52:58作者:秋阔奎Evelyn

SinaL2是一个专门用于获取新浪Level2市场深度数据的轻量级Python客户端。该项目从dHydra框架中抽离出来,专注于行情数据的高效获取,实现了模块化和低耦合的设计,便于开发者进行二次开发和整合。

项目特点

  • 支持新浪Level2数据服务的多个版本,包括普及版和标准版
  • 专注于行情数据的高效获取,代码结构清晰
  • 模块化设计,便于集成到其他量化交易系统
  • 提供实时行情、逐笔交易数据获取功能
  • 包含命令行工具方便调试和批量数据下载

安装方法

使用pip安装:

pip install SinaL2

或者从GitCode仓库克隆:

git clone https://gitcode.com/gh_mirrors/si/SinaL2
cd SinaL2

配置说明

在使用前需要配置新浪账号信息。在项目根目录创建sina.json文件:

{
    "username": "您的用户名",
    "password": "您的密码"
}

注意:需要在新浪购买Level2数据权限,普及版或标准版均可使用。

核心功能

数据监听

SinaL2支持实时监听多只股票的行情数据:

from SinaL2.SinaL2 import SinaL2
import threading
import time
import SinaL2.util as util

trading_date = util.get_trading_date()

def on_recv_data(message):
    print(util.ws_parse(message=message, to_dict=True, trading_date=trading_date))

def start_sina_l2():
    sina_l2 = SinaL2(
        symbols=["sz000001","sh600221"], 
        on_recv_data=on_recv_data, 
        query=["quotation","transaction","orders"]
    )
    sina_l2.start()

t = threading.Thread(target=start_sina_l2)
t.setDaemon(True)
t.start()

while True:
    time.sleep(10)

数据解析

SinaL2提供了完善的数据解析功能,支持将原始数据转换为字典格式:

  • quotation_to_dict(): 行情数据解析
  • transaction_to_dict(): 逐笔交易数据解析
  • orders_to_dict(): 委托数据解析

使用注意事项

  1. 数据使用合规性:新浪Level2数据有使用限制,禁止恶意抓取,不保证在云服务器的可用性
  2. 依赖包:项目依赖pandas等包,虽然基本用不到但需要安装
  3. 性能建议:对于高频数据处理,建议采用dHydra框架的redis消息队列与多进程处理方案
  4. 开源协议:项目采用Apache开源协议

应用场景

SinaL2适用于多种量化交易场景:

  • 实时监控:持续监听感兴趣的股票,及时作出交易决策
  • 历史数据分析:批量下载特定股票的逐笔交易记录,为策略回测提供数据基础
  • 数据清洗与存储:将获取的数据清洗后存入数据库,供后续分析使用

技术架构

项目采用模块化设计,主要包含以下核心模块:

  • SinaL2.py: 主客户端类,提供数据获取和连接管理
  • util.py: 工具函数,包含数据解析、日志配置等功能
  • Sina.py: 新浪数据接口封装
  • connection.py: 网络连接管理

最佳实践建议

  1. 结合异步编程模型如gevent提高数据处理效率
  2. 在处理大量股票实时数据时,合理配置线程和进程数量
  3. 定期检查数据质量,确保数据准确性
  4. 遵守新浪的数据使用政策,合法合规使用数据资源

SinaL2作为一个专注于Level2数据获取的工具,为量化交易开发者提供了便捷的数据接入方案,是构建个性化投资分析工具的重要基础组件。

登录后查看全文
热门项目推荐
相关项目推荐