- 支持新浪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
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带宽