相信大家对股市都不陌生,甚至什么是L2,可能大家都略有了解,但是说到L2行情接口可能大家就会觉得一头雾水,今日我们就来说说什么是L2行情接口,以及L2行情接口的优势。

首先,L2就是level 2,Level-2产品是由上海证券交易所推出的实时行情信息收费服务,主要提供在上海证券交易所上市交易的证券产品的实时交易数据。包括level2十档行情,买卖队列,逐笔成交,委托总量和加权价格等多种新式数据。使用Level-2软件的股民,在开盘时间内,可以随时看到庄家、散户买卖股票的情况。而L2行情接口就是指通过接口功能直接获得行情数据,并利用数据进行股票交易策略。

L2行情接口有什么优势?

回到正题,那到底L2行情接口有什么优势呢?一般来讲,L2行情接口其实是用于股票量化交易的工具之一,一般投资者最多只能看到10档买卖行情,但是只有这么少的数据,我们是很难进行买卖决策的,必须拿到更多的数据才能做出比较准确的判断,而L2行情接口就可以帮到我们了。换句话来说,L2行情接口就是为了帮助我们更好完成股票交易的一个工具。

说了这么多,相信大家对于L2行情接口多少也有了解了,如果再深入点说,L2行情接口还会根据不同的编程方式,适用的人群也不会一样,如果大家有兴趣,以后再跟大家详细讲解,今日就先说这么多,大家先好好消化一下吧。不懂的也可以找我聊聊

1.下载行情工具

https://gitee.com/l2gogogo/l2-push-python/tree/master/cli

2.目录说明

名称 说明

conf 配置目录

data 数据目录

log 日志目录

txtool 命令行工具-Linux

txtool.exe 命令行工具-Windows

3.行情工具常用命令

命令 说明

txtool -h 查看帮助

txtool version 查看工具版本号

txtool proxy 启动本地代理服务器。默认命令,Windows可直接双击执行

4.接入说明

1.下载行情工具,修改conf/proxy.toml

1.设置用户名和密码:User/Passwd

2.设置推送服务器地址:RpcServer/TcpServer

2.打开命令窗口,切换到cli目录,执行命令启动本地代理服务器

1.Linux系统执行:txtool proxy

2.Windows系统执行:txtool.exe proxy

3.如果提示本机端口已占用,可修改配置项Address(代理服务器监听地址)

3.启动成功,调用代理服务器提供的GRPC接口

1.接口地址见配置项Address,默认为:localhost:8090

2.接口定义,见目录proto

4.代理服务器配置

1.proxy.toml 配置代理服务器监听地址,是否将推送消息写入本地文件等

2.log.toml 配置日志格式,是否写入控制台和文件等

Level2行情接口

l接口定义,见目录proto

订阅事件

get_subscription查询订阅

add_subscription新增订阅

del_subscription取消订阅

数据推送事件

tick_record_stream 推送逐笔成交行情数据

order_record_stream 推送逐笔委托行情数据

order_queue_record_stream推送委托队列行情数据

stock_quote_record_stream 推送股票十档行情行情数据

代码示例

# -*- coding: utf-8 -*-

# 此Demo只是演示接入过程

import grpc

import entity_pb2

import proxy_pb2_grpc

import threading

from multiprocessing import Process

# 代理服务器监听的地址和端口

ServerConnect = grpc.insecure_channel('localhost:5000')

Stub = proxy_pb2_grpc.ProxyStub(ServerConnect)

# 查询订阅

def get_subscription():

# rep返回code为1代表成功,其余状态码可参考接入文档,data是返回订阅股票的情况

Result = Stub.GetSubscription(entity_pb2.Void())

print(Result)

# 新增订阅

def add_subscription():

# 实例ProtoBuf协议的方法

String = entity_pb2.String()

# 修改协议的值

# 2:市场代码标识(1为上海证券,2为深圳证券)

# 000002:股票代码

# 15:订阅全部标识(1为逐笔成交,2为逐笔委托,4为委托队列,8为股票十档行情,如果想全部订阅可直接填入15,原理是1+2+4+8,如果想订阅某几个行情将几个行情标识相加即可)

String.value = '2_000002_15'

# String.value = '2_000001_15,2_000002_5,2_000003_12,批量订阅'

# rep返回code为1代表成功,其余状态码可参考接入文档

Result = Stub.AddSubscription(String)

print(Result)

# 取消订阅

def del_subscription():

# 实例ProtoBuf协议的方法

String = entity_pb2.String()

# 修改协议的值

# 2:市场代码标识(1为上海证券,2为深圳证券)

# 000002:股票代码

# 15:取消全部标识(1为逐笔成交,2为逐笔委托,4为委托队列,8为股票十档行情,如果想全部取消可直接填入15,原理是1+2+4+8,如果想取消某几个行情将几个行情标识相加即可)

String.value = '2_000002_15'

# String.value = '2_000001_15,2_000002_5,2_000003_12,批量取消'

# rep返回code为1代表成功,其余状态码可参考接入文档

Result = Stub.DelSubscription(String)

print(Result)

# 推送逐笔成交行情数据

def tick_record_stream():

StreamResult = Stub.NewTickRecordStream(entity_pb2.Void())

# 用For循环就可以不断消费数据

for Result in StreamResult:

print(Result)

# 推送逐笔委托行情数据

def order_record_stream():

StreamResult = Stub.NewOrderRecordStream(entity_pb2.Void())

# 用For循环就可以不断消费数据

for Result in StreamResult:

print(Result)

# 推送委托队列行情数据

def order_queue_record_stream():

StreamResult = Stub.NewOrderQueueRecordStream(entity_pb2.Void())

# 用For循环就可以不断消费数据

for Result in StreamResult:

print(Result)

# 推送股票十档行情行情数据

def stock_quote_record_stream():

StreamResult = Stub.NewStockQuoteRecordStream(entity_pb2.Void())

# 用For循环就可以不断消费数据

for Result in StreamResult:

print(Result)

if __name__ == '__main__':

# 可以使用多线程并发接收推送数据

ThreadOne = threading.Thread(target=tick_record_stream)

ThreadTwo = threading.Thread(target=order_record_stream)

ThreadThree = threading.Thread(target=order_queue_record_stream)

ThreadFour = threading.Thread(target=stock_quote_record_stream)

# 多进程并发接收推送数据

# ProcessOne = Process(target=tick_record_stream)

# ProcessTwo = Process(target=order_record_stream)

# ProcessThree = Process(target=order_queue_record_stream)

# ProcessFour = Process(target=stock_quote_record_stream)

# 这设置为随主线程退出子线程,避免产生孤儿或僵尸线程

ThreadOne.daemon = True

ThreadTwo.daemon = True

ThreadThree.daemon = True

ThreadFour.daemon = True

# ProcessOne.daemon = True

# ProcessTwo.daemon = True

# ProcessThree.daemon = True

# ProcessFour.daemon = True

# 有一点值得注意一下,假如订阅的股票相对活跃,推送的数据就不会有休眠的状态出现,因为Python的GIL锁,所以用多线程接收推送效率不显著,这个时候可以考虑用多进程来接收推送

ThreadOne.start()

ThreadTwo.start()

ThreadThree.start()

ThreadFour.start()

# ProcessOne.start()

# ProcessTwo.start()

# ProcessThree.start()

# ProcessFour.start()

ThreadOne.join()

ThreadTwo.join()

ThreadThree.join()

ThreadFour.join()

# ProcessOne.join()

# ProcessTwo.join()

# ProcessThree.join()

# ProcessFour.join()

什么是L2行情接口?相关推荐

  1. 如何调用通达信l2行情接口?

    如何调用通达信l2行情接口?今天小编,就用这三个场景说明一下,如下: 1.API平台生成公钥,发布公钥并提供给需要连接API的人员. 2.Tradex涵盖市场接收.访问.管理和定制,实现一揽子解决方式 ...

  2. l2行情接口选哪个比较好?

    有很多人在选择l2行情接口时会纠结于通达信或同花顺,这两个不同机构提供的l2行情接口哪个更好呢? 如果你的确需要L2,通达信和同花顺两个都要选择L2.做短线,尤其是打板超短,你可能还需要比L2更高级的 ...

  3. 通过通达信l2行情接口的逐笔委托中挖掘主力踪迹

    在通达信l2行情接口,有非常强大的"逐笔委托"功能,通过使用这个功能,可以轻松看到一只股票每日所发生的所有委托指令. 在这个功能里,我们展示了委托时间.委托价格.委托量.以及委托方 ...

  4. 通达信l2行情接口有自动下单功能吗?

    通达信l2行情接口是否具有自动下单功能?通达信确实具有证券交易的功能,但它也需要连接到证券公司的软件.事实上,操作并不复杂,甚至免费版本也可以操作.这就是投资者需要自己下订单的原因. 通达信l2行情接 ...

  5. 通达信L2行情接口怎样破解?

    有些投资者或工作室想使用通达信L2行情接口,但又不想另外去购买,那怎么办呢?最有效的方法就是破解它,那具体要怎么做呢? 要破解通达信L2行情接口,最简单的方法就是通过编程获取数据,然后自己编写接口,对 ...

  6. 怎样调用通达信l2行情接口?

    要怎么调用通达信的l2行情接口呢?首先,我们知道这个接口具体就是指l2行情对应的数据,可以通过语言编译,生成json格式的键值对(一般是json 还有xml txt 等数据格式).生成一个地址也就是u ...

  7. 调用通达信l2行情接口简介说明

    调用通达信l2行情接口简介说明. 概述 使用纯Python类似TradeX通达信市场接口的实现 因为之前TradeX采用接口Python调用扩展的方式C代码实现,性能有很多限制,比如只支持32位Pyt ...

  8. 怎么使用L2行情接口软件查询股票情况?

    事实上,L2行情接口软件的主要核心是逐笔委托和逐笔交易的交易订单数据.开盘数据转瞬即逝.如何方便地调用程序中最全面的即时数据是我们应该关心的内容. 至于看市场,无论眼睛有多好,人脑都比不上用软件程序写 ...

  9. L2行情接口使用技巧分享

    1.在L2行情接口中,卖单明显比买单多,但卖一的位置上没有出现大卖单,同时股价稳步上涨,这种现象很可能是主力在进行打压式吸筹. 2.在买一到买十的位置上,某个价位上出现大买单,一般不是出现在买一位置. ...

  10. 常用通达信l2行情接口文件夹说明

    通达信目录下T0002pad目录中,随你拷贝或复制 数据下载Vipdoc 自选股票T0002blocknewZXG.blk 自编公式T0002PriGS.DAT 自编模板T0002PriPack.DA ...

最新文章

  1. 编译原理(六)自底向上分析之LR分析法
  2. 自然语言处理的 算法 BYTEDANCE
  3. 方法重载-Overload
  4. 第一周周四DailyReporting——PM(李忠)
  5. zabbix-2:自定义监控项目
  6. java的轻量锁,jvm第7节-锁(偏向锁,轻量锁,自旋锁)
  7. 对属性可以赋值的位置
  8. java druid sqlite_springboot整合druid抛出dbType not support : sqlite异常
  9. python pandas教程百家号_Pandas 常见的基本方法
  10. 作者:​郭海红(1987-),女,中国医学科学院医学信息研究所助理研究员。...
  11. PHP内核微信拼团购物商城小程序源码
  12. mysql date timestamp_【Mysql】Datetime和Timestamp区别,及mysql中各种时间的使用
  13. [LeetCode]Unique Binary Search Trees
  14. 高级Java程序员面试宝典
  15. 某程序员自述:我,三十多岁,逃离北上广,通过技术移民到加拿大!
  16. 论文周报 | 推荐系统领域最新研究进展
  17. Secondary NameNode工作机制
  18. 关于国密HTTPS的那些事(一)
  19. git 暂存的代码命令
  20. 本地电脑架设传奇怎么开外网叫朋友一起玩?

热门文章

  1. c语言水王争霸链表,水王争霸(water)
  2. 电影《失控玩家》:软件2.0,让游戏角色“觉醒”了?
  3. (转)三维GIS软件十九重唱
  4. 高仿QQ游戏大厅-支持换肤和控件切换动画
  5. 优秀网页翻译:关于您的下一个汽车友好型原型
  6. NOIP / CSP-S/J初赛基础知识1
  7. 用wget命令整站下载
  8. pythonurllib新浪微博_定向爬虫 - Python模拟新浪微博登录(示例代码)
  9. 关于综合布线系统双绞线电缆的屏蔽问题
  10. 职场纵横:IT职位全面解析(计算机类要找工作的朋友多看看)