Datafeed非展示行情

算法交易、风险控制、数据分析研究和开发策略等高端应用如果需要听取实时市场报价,需要接入Datafeed非展示行情才能接收并使用行情。

01 什么是Datafeed?

Datafeed非展示行情即股票或期货Level2深度行情的另一种使用模式,通过特定的API接口来接收交易所发出的行情数据。

与我们日常在PC或APP端看到的Level-2行情相同的是,Datafeed和Level-2数据来源一样,但Datafeed侧重于“用”(比如交易、分析研究),后者侧重于“看”。

展示行情以图形化的形式,直观地展现了当下的市场波动,但行情数据不允许落地及接口获取,只能用于PC或者手机终端进行展示之用。

02 Level-2的优势?

Level-2深度行情相信大家一定都不陌生,相比Level-1,包含了更多的市场信息,比如盘口信息、成交明细和委托价格等,刷新速度也更快是专业机构用户必备的“吃饭家伙”。

比如沪市的Level-1行情只提供5档行情信息,如果升级到Level-2 行情,可以看到10档。

        在深市,Level-2行情甚至提供了买卖各500档,总共1000档的行情。

基于Level2每一笔成交的价格和数量数据,可以计算出非常准确和客观的资金流向数据。

比如部分行情软件可以支持此功能:「拉升至涨停封板所需资金4.77亿」。

        这个数字就是使用500档盘口数据算出来的,将所有卖盘的数据量加起来即可。

在期货市场,Level-1行情以一档,Level-2行情则以五档为主

推送的频率也更快,如大商所普通行情是2次快照每秒Level-2行情则提升到4次快照每秒。

不同的期货公司会提供不同的增值服务,比如可以提供上期所、郑商所五档行情的免费查看。

03 量化应用行情接入

交易所对实时行情数据的接入和转发是有明确限制的,任何未经授权的单位和个人不得擅自转发或传播交易所交易行情信息。

各大证券、期货交易所下属的技术公司或信息公司负责实时、历史行情对外的授权管理,用户可直接通过技术、信息公司提供的API接口,利用机房托管的方式接收交易所的深度行情,可以避免通过信息商获取数据的延迟问题。

所以,Datafeed的接入申请也比较麻烦,包括资质、技术等各个方面的审核。

以及授权单位必须严格按交易所书面认可的用途(自用or转发)使用非展示数据。

以下是各交易所官网公示的深度行情内容及采样频率,供大家参考:

深交所:

行情内容:在基本即时行情的基础上,实时买卖盘由五档扩展到十档,并增加最佳价位的前50个分档明细、逐笔委托、逐笔成交等信息;

发布频率:3秒/次;

传输形式:UDP;

网关传输:TCP模式、MDDP模式

上交所:

行情内容:在Level-1基础上增加委托信息(如委托笔数、委托数量及加权平均价格;前10档的价格、委托数量及委托笔数;前1档价位前50笔订单的委托数量;总的价位深度数量)、成交信息(逐笔成交明细数据买/卖方订单成交的最长等待时间)、增值数据(买/卖方的累计撤单笔数、数量和金额 ETF申购)

发布频率:3秒/次;

传输形式:TCP;

网关传输:TCP模式

大商所:

行情内容:5级深度委托行情、最佳买卖价位上前10笔分笔委托量、加权平均委买价格、实时结算价、分价位成交量统计等8种数据;

发布频率:0.25秒/次;

传输形式:TCP、UDP点播及组播;

郑商所:

行情内容:合约编码、前收盘、前结算、昨持仓量、开盘价、收盘价、最高价、最低价、最新价、申买价、申卖价、申买量、申卖量、结算价、均价、涨停板、跌停板、成交量、持仓量、5级深度委托行情、委买总量、委卖总量;

发布频率:0.25秒/次;

传输形式:TCP或UDP组播;

上期所/能源中心:

主要内容:合约编码、最新价、合约数量、成交金额、持仓量、最高价、最低价、今开盘、今收盘等;

发布频率:0.5秒/次;

传输形式:TCP或UDP组播;

中金所:

行情内容:合约名称、交割月份、最新价、涨跌、成交量、持仓量、申买价(最优五笔)、申卖价(最优五笔)、申买量(最优五笔)、申卖量(最优五笔)、结算价、开盘价、收盘价、最高价、最低价、前结算价、成交额等;

发布频率:0.5秒/次;

传输形式:TCP或UDP组播;

backtrader是一个用于开发交易策略的Python框架,它提供了许多功能强大的工具和类来帮助交易者开发和测试交易策略。其中,backtrader的datafeed是用于提供数据的类,它可以从各种来源获取数据,并将其转换为backtrader所需的格式。 下面是backtrader的datafeed代码详解: ```python from datetime import datetime import backtrader as bt class MyDataFeed(bt.feeds.GenericCSVData): params = ( ('dtformat', '%Y-%m-%d'), # 数据的时间格式 ('datetime', 0), # 数据中时间所在的列数 ('open', 1), # 开盘价所在的列数 ('high', 2), # 最高价所在的列数 ('low', 3), # 最低价所在的列数 ('close', 4), # 收盘价所在的列数 ('volume', 5), # 成交量所在的列数 ('openinterest', -1), # 持仓量所在的列数,默认为-1,表示没有持仓量数据 ) ``` 代码中定义了一个名为MyDataFeed的类,它继承自backtrader的GenericCSVData类,这个类是backtrader内置的用于读取CSV格式数据的类,如果我们需要读取其他格式的数据,可以继承GenericCSVData类并进行修改。 在params参数中,我们定义了许多数据的属性,包括时间格式、开盘价、最高价、最低价、收盘价、成交量和持仓量等。这些属性需要根据数据文件的格式进行设置,如果数据文件与上述定义的属性不同,则需要进行修改。 接下来,我们需要实例化这个类,并将数据文件的路径传递给它: ```python data = MyDataFeed(dataname='data.csv') ``` 这行代码中,我们创建了一个名为data的对象,并将数据文件的路径(data.csv)传递给它。这个对象现在可以被用于backtrader的策略中,数据将会按照我们定义的格式进行读取和处理。 总之,backtrader的datafeed是一个常强大的类,它可以从各种来源获取数据,并将其转换为backtrader所需的格式。我们只需要根据数据文件的格式进行一些简单的设置,就可以轻松地获取数据并进行回测分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值