iex数据文件分析器

iex-parser的Python项目详细描述


IEX语法分析器

iex pcap deep和tops文件的分析器。

概述

在编写iex时,exchange为 历史数据:深邃与巅峰。此数据作为pcap文件提供 这是网络活动的转储。

这个包提供了一个从这些文件中提取数据的api。

安装

从pypi安装。

pip install iex_parser

示例

以下代码处理从iex下载的tops示例文件。注意,文件不必解压缩。

fromiex_parserimportParser,TOPS_1_6TOPS_SAMPLE_DATA_FILE='data_feeds_20180127_20180127_IEXTP1_TOPS1.6.pcap.gz'withParser(TOPS_SAMPLE_DATA_FILE,TOPS_1_6)asreader:formessageinreader:print(message)

结果如下:

{'type':'trading_status','status':b'T','timestamp':datetime.datetime(2018,1,27,15,23,40,490473,tzinfo=datetime.timezone.utc),'symbol':b'SPEM','reason':b''}{'type':'trading_status','status':b'H','timestamp':datetime.datetime(2018,1,27,15,23,42,95642,tzinfo=datetime.timezone.utc),'symbol':b'INCO','reason':b'NA'}{'type':'trading_status','status':b'H','timestamp':datetime.datetime(2018,1,27,15,23,42,852349,tzinfo=datetime.timezone.utc),'symbol':b'CHSCN','reason':b'NA'}{'type':'price_level_update','side':b'S','flags':1,'timestamp':datetime.datetime(2018,1,27,15,23,44,856983,tzinfo=datetime.timezone.utc),'symbol':b'ATLO','size':8755,'price':Decimal('38.95')}{'type':'price_level_update','side':b'S','flags':0,'timestamp':datetime.datetime(2018,1,27,15,23,44,856983,tzinfo=datetime.timezone.utc),'symbol':b'ATLO','size':37222,'price':Decimal('48')}{'type':'price_level_update','side':b'S','flags':1,'timestamp':datetime.datetime(2018,1,27,15,23,44,856987,tzinfo=datetime.timezone.utc),'symbol':b'ATLO','size':8958,'price':Decimal('38.95')}{'type':'price_level_update','side':b'S','flags':0,'timestamp':datetime.datetime(2018,1,27,15,23,44,856987,tzinfo=datetime.timezone.utc),'symbol':b'ATLO','size':37019,'price':Decimal('48')}

以下代码处理从iex下载的deep示例文件。

fromiex_parserimportParser,DEEP_1_0DEEP_SAMPLE_DATA_FILE='data_feeds_20180127_20180127_IEXTP1_DEEP1.0.pcap.gz'withParser(DEEP_SAMPLE_DATA_FILE,DEEP_1_0)asreader:formessageinreader:print(message)

消息

这些消息作为字典返回。

安全指令

{'type':'security_directive','flags':int,'timestamp':datetime.datetime,'symbol':bytes,'round_lot_size':int,'adjusted_poc_close':decimal.Decimal,'luld_tier':int}

交易状态

{'type':'trading_status','status':bytes,'timestamp':datetime.datetime,'symbol':bytes,'reason':bytes}

操作停止

{'type':'operational_halt','halt_status':bytes,'timestamp':datetime.datetime,'symbol':bytes}

卖空价格测试状态

{'type':'short_sale_price_test_status','status':int,'timestamp':datetime.datetime,'symbol':bytes,'detail':bytes}

报价更新

{'type':'quote_update','flags':int,'timestamp':datetime.datetime,'symbol':bytes,'bid_size':int,'bid_price':decimal.Decimal,'ask_size':int,'ask_price':decimal.Decimal}

贸易报告

{'type':'trade_report','flags':int,'timestamp':datetime.datetime,'symbol':bytes,'size':int,'price':decimal.Decimal,'trade_id':int}

官方价格

{'type':'official_price','price_type':bytes,'timestamp':datetime.datetime,'symbol':bytes,'price':deccimal.Decimal}

交易中断

{'type':'trade_break','flags':int,'timestamp':datetime.datetime,'symbol':bytes,'size':int,'price':decimal.Decimal,'trade_id':int}

拍卖信息

{'type':'auction_information','auction_type':bytes,'timestamp':decimal.Decimal,'symbol':bytes,'paired_shares':int,'reference_price':decimal.Decmal,'indicative_clearing_price':decimal.Decimal,'imbalance_shares':int,'imbalance_side':bytes,'extension_number':int,'scheduled_auction_time':datetime.datetime,'auction_book_clearing_price':decimal.Decimal,'collar_reference_price':decimal.Decimal,'lower_auction_collar_price':decimal.Decimal,'upper_auction_collar_price':decimal.Decimal}

价格水平更新

{'type':'price_level_update','side':bytes,'flags':int,'timestamp':datetime.datetime,'symbol':bytes,'size':int,'price':decimal.Decimal}

安全事件

{'type':'security_event','security_event':bytes,'timestamp':datetime.datetime,'symbol':bytes}

注释

因为数据是作为网络数据包的转储分发的,所以有很多“空的” 小包。这些都需要时间来读取并减慢实际数据的传递速度。来处理这个 数据包在单独的python线程上读取并排队。队列的大小是 对Parser的可选参数,已通过实验设置为25000。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有x86javapath的x64机器上x86java上的java JNI未满足链接错误   java将Pixmap的一部分上传到GPU   图像Java位图RLE8格式   java Android studio谷歌广告崩溃应用程序   java如何创建包含未知数量对象的变量?   Java计算给定int数组的所有可能组合   java JDBC classnotfound异常   httpclient中的java将HttpEntity转换为字符串的最优雅/正确的方法是什么?   如何从Java程序运行nano?   java在安卓中调用自定义类/方法   调用方法和JOptionPane后,允许代码继续执行所需的java计时器或其他想法   关于侦听器的向量Java并发问题   线程池执行器Java线程池   java配置DTO上的Swagger javax验证约束   Java中用于按钮功能的swing操作命令   ServletOutputStream中的java设置状态代码   java打印输入数组的平均值