sinal2 icon indicating copy to clipboard operation
sinal2 copied to clipboard

Sina Level2 Data Fetcher 新浪Level2数据客户端

SinaL2, 又一个新浪Level2行情端

相同

  • 支持新浪Level2普及版和标准版等

不同

  • 轻量级, 专注于行情获取
  • 去耦合, 模块更容易复用
  • 不强制异步, 需要异步可以在外部用gevent或者自己patch
  • 命令行调试
  • 自带高性能下载全部数据的实现

安装

pip install python-sinal2

使用

from sinal2 import L2Client, L2Parser
def on_data(data):
    print(data)

c = L2Client(USERNAME, PASSWORD)
if c.login():
    csv = c.get_trans('sh601398')

    # 这条命令会一直监听到15:01收盘
    c.watch(['sh601398'], on_data=on_data, parse=True)

命令行

配置新浪用户名密码到环境变量

export SINA_USERNAME=UUUUUUUUU
export SINA_PASSWORD=PPPPPPPPP

查看单个票

sinal2 watch -s sh601398

输出原始信息到文件

sinal2 watch -s sh601398 --raw -o sh601398.l2

盘中同步全部沪深股票L2信息

sinal2 watch --raw -o all.l2

注意, 实盘请确保20M以上的高速带宽

使用多核

一般情况下, 单核gevent足够在开盘时间拉取全部沪深L2数据, 如果电脑实在太慢(比如共享主机或者云服务器), 会发生单CPU 100%还是来不及接收和处理的情况, 长时间后可能会出现网络错误(例如socket的buffer溢出或无响应超时)并丢包, 这时需要开启多核调度, --core指定核心数即可

sinal2 watch --raw -o all.l2 -c 2

收盘后下载逐笔数据

sinal2 trans -s sh601398 -o sh601398.trans

全部逐笔

sinal2 trans -o all.trans

下载全部的逐笔数据大约需要2M带宽