我们一定听说过高频交易使用十档行情,市场是实时刷新的,比我们的普通市场快得多,我们都知道市场快1ms,可以给我们带来巨大的信息优势,然后转化为收入。今天我们将解密传说中的十档行情。
在介绍行情前,先介绍一些基本概念。
又称逐笔成交,是整个市场上的逐笔数据。例如投资者一笔新的委托会形成一笔行情,交易所撮合一笔新的成交也会形成一笔行情,撤单也会形成一笔行情。 level2行情接口记录了市场的每一个事件的数据,是最精细和完整的数据。
行情快照
又称切片(snapshot)行情,是对tick行情数据的某一个时刻的切片数据。例如现在A股市场3s一笔的行情,就是每3s,在这时间段内的最高价、最低价、成交量、成交额等汇总成的一笔快照行情。这里有点像利润表的概念,利润表是一段时间内的汇总,而快照也是一定时间内行情的汇总。这里需要注意下,现在有人把3s一次的行情称为tick行情,其实这个是不对的,3s一次只能称之为行情快照。
level1行情
又称五档行情或基本行情,字面意义上是指行情报单簿的档位只有五档,即买一到买五,卖一到卖五。实际应用中一般用来指比较基础的一种行情,只包含最低层次的买卖,成交数据,更新频次也是最低。
level2行情
称十档行情或者增强行情,可以认为是level1行情的升级版,增强行情指在基本即时行情的基础上,实时买卖盘由五档扩展到十档,并增加最佳价位的前50个分档明细、逐笔委托、逐笔成交等信息。这种行情一般是要单独收费的。
level2行情又分为两类,第一类是展示行情。
level2展示行情
是指我们可以在交易软件或者手机app上看到的行情。比如同x顺level2,通x信level2,或者手机app的level2。
行情比较
接下来我们来看看行情的比较,首先不管是level1行情还是level2行情,都是3s一次刷新。买卖盘口,level1是五档行情,level2是十档行情。行情的基本信息都包括最高价、最低价、开盘价、收盘价、交易量和交易额,level1和level2都包括这些基本的信息。level1与level2最大的不同,就是这个增强行情信息。
上交所的level2增强信息,包括买一卖一前50笔订单的委托量,这里插一句,如果你用的是独立交易单元,就可以通过level2的这个数据来查看你委托的排名。另外上交所level2还有逐笔成交,以及全部委托的加权均价和总量的信息。
深交所的level2增强行情跟上交所有所不同,他除了有逐笔成交信息以外,还包括逐笔委托信息,实现了真tick级行情。由于有了逐笔委托和逐笔成交的信息,这样就能根据这个信息还原整个行情订单簿,实现实时行情刷新,也就是今天我们所讲的千档行情。
高频策略如何使用level2行情
让我们看看高频交易是如何使用二级市场的。高频交易将策略程序托管到交易所的机房,在机房内获得第二级市场,这比通过互联网获得市场要快得多。市场触发战略信号,信号发送到交易所匹配主机完成交易。
最后,让我们看看谁通常使用2级市场。一般来说,它们是高频量化交易用户,其高频策略高度依赖于高速市场的触发。这些客户通常有自己强大的金融工程团队和IT团队,主要是高频量化交易。
在这里,我们要注意的是,一般的私募都是利用证券公司的市场,而魔方为了满足自己的需求,去交易所申请了第二级市场授权。这个授权很贵,每年交易的授权费、带宽费、硬件费加起来就有几百万,说明第二级市场对于高频量化私募有多重要。
代码示例
# -*- 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:文章来源:https://www.toymoban.com/news/detail-491806.html
print(Result)文章来源地址https://www.toymoban.com/news/detail-491806.html
到了这里,关于高频策略如何使用level2行情?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!