时间:2023-04-29 20:15 / 来源:未知
ptcg价格查询即所有买价变化量的总和Level 2 高频行情数据包罗洪量有价钱的音信,使用这些数据天生生意信号和获取收益一经成为量化磋议中的一种主流计谋。本文基于邦内 A 股商场 Level 2 高频行情数据的特色,闪现高频行情数据存储和因子阴谋实例。
Level 2 行情数据是目前邦内证券商场上最为无缺,颗粒度最为严密的生意音信数据。其涵盖了正在沪深两市上市的股票、可生意型基金、沪深生意所指数等洪量种类。
分钟K线:即当日全天的分钟K线行情。比拟守旧K线,包罗了分钟成交笔数音信。
盘口疾照:即常用的每3秒一个切片的十档委托行情。此中,也囊括该功夫的委托总量和均匀委托代价音信。
须要留神的是,沪深生意所的 Level 2 行情数据存正在肯定的分别,苛重再现正在成交明细数据方面。深交所的逐笔成交数据中,囊括了逐笔委托数据,此中有详明的挂撤单音信,和标帜为撤单的逐笔成交。
上交所供给的1分钟数据是 Level 2 行情数据中数据字段起码、频率最低的数据。其苛重包罗昨日收盘价、开盘价、最高价、最低价、收盘价、成交量和成交额等数据。
A股票行情疾照数据每3秒钟纪录一次,囊括前后两个功夫的盘口转折数据。每天的数据量约为15G。
股票行情疾照数据原始字段注脚对比外(外中的空字段,注脚现在商场的行情数据中没有该字段)
股票逐笔委托数据纪录的最小韶华间隔为0.01秒,每个0.01秒内有恐怕有众笔委托,Level 2 行情数据对0.01秒内的委托时点实行含糊经管,不实行划分。股票逐笔委托数据的单日数据量正在12GB摆布,因为生意活泼度区别,区别标的之间的单日数据量会有很大分别。
股票逐笔委托原始数据字段注脚对比外(外中的空字段,注脚现在商场的行情数据中没有该字段)
与股票逐笔委托数据犹如,股票逐笔成交数据纪录了股票生意的每一笔成交音信。每笔成交包罗代价、成交量、成交金额、成交韶华等音信。单日数据量正在6GB摆布,与区别标的的生意活泼度相合。
股票逐笔成交数据原始字段注脚对比外(外中的空字段,注脚现在商场的行情数据中没有该字段)
A股股票高频数据逐日数据增量正在30+G,基金债券等标的逐日数据量正在45+G。史册数据和逐日增量数据数据量正在10TB级别以上。面临这样广大的数据量, 若何保障高效的数据写入、数据压缩和疾速的数据查问、阴谋,是高频数据经管的一大寻事。
这里咱们给行家先容一个基于高机能时序数据库,赞成数据领悟和流阴谋的低延时平台——DolphinDB。
DolphinDB 具备壮健的存储、经管 GB 级别以至 PB 级别海量数据集的才干,囊括 Level 2 高频行情数据的存储、因子阴谋、修模、回测和实盘生意等。DolphinDB 不但供给了高速存取时序数据的根本性能,还内置了向量化的众范式编程道话和壮健的阴谋引擎,可高效用于量化金融的因子斥地。
4月27日(周四)晚七点半,DolphinDB CEO 周小华博士与数据领悟掌握人毛忻玥教师将线上开讲,盘绕“打垮 Python 拘束:Level 2 因子的剧本优化执行”中央,以众个纷乱因子阴谋为案例,闪现 DolphinDB 阴谋 Level 2 因子的最佳执行,并与 Python 实行机能比拟,老师代码转换攻略。
下面将判袂给行家先容若何将 DolphinDB 的存储特点组合运用,构修一个生动的存储处置 计划; 以及若何正在 DolphinDB 中完毕常用 Level 2 因子的批阴谋。
为了完毕行情数据的生动分区存储,能够采用”韶华+标的“的体例实行数据分区。DolphinDB 赞成对区别分区数据实行众线程并行操作。
DolphinDB 的 TSDB引擎供给了排序键修立,可认为每个数据分区修立一个排序键,以便正在数据随机读取时更切确地定位数据。比方,通过修立 SortColumn=[“SecurityID”, “TradeTime”],数据能够依据 SecurityID 字段分组,并正在每个组内依据韶华字段 TradeTime 排序。
正在上交所股票 Level 2 行情数据中,时价单音信只存储于逐笔成交外中,而逐笔委托外中没有时价单的纪录,以是阴谋委托量和委托金额等目标时须要对两个外实行合系。正在深交所 Level 2 行情数据中,逐笔委托外中的时价单代价标帜为0;而撤单纪录正在逐笔成交外中,撤单纪录中代价也标帜为0;以是正在阴谋委托金额、撤单金额等目标时都须要对两个外实行合系再阴谋。其余,正在阴谋其他因子目标时,也须要对逐笔成交外和行情疾照数据外实行合系。
依据营业需求,这里对沪深股票 Level 2 高频数据采用一库三外的修库修外计划,即把两个生意所相似的行情数据存入统一张外,运用 market 字段标识区别的生意所,且将 market 修立正在索引列(SortColumn)中。
Level 2 史册行情数据中有很众常用的行情疾照、逐笔成交和逐笔委托高频因子,基于疾照数据的常用因子有:
行情疾照中的大局限高频因子基于限价订单簿的静态目标,比方价差、深度、宽度、斜率、订单不均衡等,磋议商场的生意手脚,进而预测股票的短期代价走势。
本节先容基于 Level 2 行情疾照中十档营业代价和营业数目数据阴谋的韶华加权订单斜率、十档均匀委卖订单斜率、成交价加权净委买比例、十档委买增额和十档营业委托均价线性回归斜率等高频因子。
qt 权衡 t 功夫的订单斜率。此中,Bidt 和 Askt 判袂显示买一价和卖一价,BidQtyt 和 AskQtyt 判袂显示买一量和卖一量。
运用函数 mavg 阴谋过去20行的搬动均匀韶华加权订单斜率,此中@state显示用户自界说的状况函数。状况算子阴谋时须要用到史册状况,DolphinDB 正在流式阴谋中对自界说状况函数,通过增量的体例完毕,机能有很大的晋升。
订单失衡率(SOIR)因子权衡营业委托量正在总量中的不屈衡水准。其阴谋公式如下:
显示 $t$ 功夫第i档的订单失衡率因子。此中$BidQty_{i,t)$,$AskQty_{i,t)$显示第i档买方委托量和卖方委托量。为了弥漫使用各档数据音信,阴谋各档位加权和订单失衡率因子时,依据营业压力的影响力给予区别档位相应的权重。时时,切近生意代价的档位被给予更高的权重。阴谋公式如下:
SOIR 响应盘口各档归纳的营业委托量不屈衡水准。若是 SOIR 为正,则注脚商场买压大于卖压,改日代价趋向上涨的概率较高。其余,SOIR 值越大,上涨的概率越高,反之亦然。
BidQty, AskQty 为数组向量数据类型,判袂为买方十档委托量和卖方十档委托数目。运用数组向量实行加减运算分外便捷,而运用 rowWavg 函数则可轻松阴谋加权均匀值。正在本例中,咱们运用 rowWavg 函数阴谋各档加权均匀的营业委托量不屈衡水准因子,即订单失衡率因子。终末对一段韶华的目标实行搬动准绳化经管。
净委买比率是权衡一段韶华内买盘相对强度的目标,阴谋公式为:(盘口买一转折量-盘口卖一转折量)/ (abs(盘口买一转折量)+abs(盘口卖一转折量))×100%。当净委买比率为正值数值较大时,注脚商场买盘强劲。当委比值为负值且数值较大时,注脚商场卖盘强劲。数值从-100%渐渐减少到+100%显示买盘慢慢巩固,卖盘慢慢削弱;而从+100%渐渐省略到-100%则显示买盘慢慢削弱,卖盘慢慢巩固的进程。其阴谋公式如下:
以上代码,起初通过阴谋营业一档前子息价的转折,获得盘口营业一委托量的绝对转折量;然后使用净委买比率公式,阴谋过去一段韶华的成交价加权净委买比例。
十档净委买增额因子指的是正在有用十档规模内买方资金总体减少量,即统统买价转折量的总和,阴谋公式如下:
有用十档规模内显示不斟酌已不正在十档规模内的档位,即显示只斟酌以下区间的档位:
以上代码,起初通过行对齐函数 rowAlign 完毕现在十档代价和前一个一十档代价实行行对齐,然后通过rowAt 和 nullFill 函数判袂获取对应档位的委托量和完毕代价实行对齐,终末阴谋总的转折额。
十档营业委托均价线性回归斜率为十档营业委托均价对韶华t的线性回归的斜率。
以上代码,Bid, Ask, BidQty和AskQty 均为数组向量数据类型,判袂为营业十档代价和十档委托数目。通过 linearTimeTrend 函数获取因子值对韶华 t 的滑动线性回归斜率,该函数返回线性回归的截距和斜率。linearTimeTrend(price_,lag1)[1]显示获取十档营业委托均价对韶华t的线性回归的斜率。
正在 Python 中完毕上面5个因子的阴谋逻辑。获取一天中两只股票的数据实行比拟测试。
逐笔成交数据的因子阴谋逐笔成交数据包罗的音信很丰盛,能够构修许众中高频因子。以下为逐笔成交的样例数据:
使用逐笔成交数据中的营业订单号,能够将其归并为单笔订单成交数据,并从单笔订单的角度划分巨细单和主营业宗旨等。本节从单笔订单和主营业角度开拔,阴谋主动买入和卖出的单笔订单均价,并统计成交韶华与开头委托下单时长跨越1分钟的订单数目。
单笔订单主动买入、卖出均价为单笔主买、主卖订单的成交均价代价之和除以订单数目。
n 显示截至 t 功夫主买、主卖订单数目,avgTradePrice 显示单笔订单主买、主卖的成交均价。
这里起初通过自界说函数完毕单笔订单的成交均价,然后再阴谋单笔订单的成交均价。自界说函数中运用 groupby 函数判袂阴谋单笔订单的成交金额和成交数目。
终末通过 group by + cgroup by 阴谋每只股票当日最新一分钟单笔订单主动买入、卖出均价。阴谋结果如下:
延时成交挂单数和成交量,肯定水准上能响应大单或者机组成交状况。本节统计从下单到成交的韶华间隔跨越1分钟的订单数和成交量。
下单音信纪录正在逐笔委托内外,若是统计下单到成交之间的韶华间隔,则须要把逐笔成交外和逐笔委托外实行合系。这里起初通过左半联贯(lsj)返回逐笔成交外中统统与逐笔委托外完婚的纪录,若是逐笔委托外中有众条完婚纪录(如上交所的下单和撤单纪录),lsj 将会取第一条(下单时的订单纪录)完婚纪录。以是,lsj 能够把订单委托下单的韶华以及下单量切确合系到成交纪录中。
正在阴谋股票延时成交订单因子的自界说函数中,先按每个订单号分组,阴谋订单下单到该笔订单终末成交时的最大韶华差和订单的总成交量;然后依据最大延时是否跨越1分钟来阴谋股票的延时订单数目和成交总量。
逐笔委托数据的因子阴谋Level 2 行情逐笔委托数据包罗统统的委托订单音信(除了上交所的时价单(即时成交)和局限撤单,深交所的撤单),本节依据营业订单的委托音信,阴谋深交所股票的委买委卖金额和撤单金额目标数据。
委托营业金额是对一段韶华内委托订单的营业宗旨的资金总量实行统计。因为深交所的时价订单的代价正在逐笔委托内外标帜为0,以是阴谋委托金额时,咱们须要正在逐笔成交纪录中找到迩来的成交代价来举动其近似值。
这里通过lj(left join)判袂把营业撤单的委托代价合系到撤单音信外中,然后阴谋每只股票每分钟的营业撤单金额。
从这些因子的阴谋中能够看到,运用 DolphinDB 存储和阴谋 A 股商场 Level 2 高频行情数据分外高效、生动。上文涉及到了洪量 DolphinDB 剧本,以及与 Python 剧本机能的比拟,无缺的详明比拟代码,将正在4月27日(周四)晚七点半的 DolphinDB 直播间实行闪现。
届时,DolphinDB CEO 周小华博士与数据领悟掌握人毛忻玥教师,将一同主讲,助助行家更高效地完毕从 Python 到 DolphinDB 的转换。