CN108876628A - 金融量化分析数据传输方法 - Google Patents
金融量化分析数据传输方法 Download PDFInfo
- Publication number
- CN108876628A CN108876628A CN201810690773.5A CN201810690773A CN108876628A CN 108876628 A CN108876628 A CN 108876628A CN 201810690773 A CN201810690773 A CN 201810690773A CN 108876628 A CN108876628 A CN 108876628A
- Authority
- CN
- China
- Prior art keywords
- data
- code
- sender
- serializing
- unserializing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/06—Asset management; Financial planning or analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Human Resources & Organizations (AREA)
- Game Theory and Decision Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及计算机数据处理、传输技术领域。所提供的金融量化分析数据传输方法,包括以下步骤:发送方对第一数据结构进行描述,生成描述文件;根据描述文件,生成第一数据结构的序列化代码;计算第一数据结构当前各个成员变量所包含的第一数据序列化后所占用的总内存大小;根据计算的总内存大小申请相应内存;将第一数据及所申请的内存作为参数传入序列化代码,将当前各个成员变量所包含的第一数据进行序列化,序列化后生成的第二数据保存在申请的内存;将第二数据发送至接收方;接收方根据描述文件生成第二数据结构以及反序列化代码;将第二数据作为参数传入反序列化代码,进行反序列化后解析出第一数据,将解析出的第一数据保存在第二数据结构。该金融量化分析数据传输方法适用于金融领域,具有更安全、更快速,同时支持matlab,python,R等常用的金融量化语言的优点。
Description
技术领域
本发明涉及计算机数据处理、传输技术领域,具体涉及金融量化分析数据传输方法。
背景技术
数据在互联网传输之前一般要经过序列化处理,数据经过序列化之后,更变网络传输,解析和储存。但是序列化同时使得数据传输的性能降低。而在金融量化分析的应用中对数据传输的性能要求是极其高的,同时对数据的安全性也有一定的要求。
目前常用的序列化方法有两种:
第一种:把数据序列化为字符串传输,比如xml,json,这种方法的优点是序列化后的数据的可读性很高,缺点就是可读性强带来的不安全,还有转换速度非常慢、且转换后数据所占用的字节数变大,导致传输时间增加。
第二种:把数据转换为二进制传输,目前流行比较广的有protocol buffer。Protocol buffer对比xml,json等序列化方法性能有所提高。但是其序列化后的内容附带了相应的反序列化信息,如果数据被拦截很容易解析出其中的数据,同时其在处理整型的数据是动态变化的,因此可能会导致所占用的字节数过大,导致传输效率降低。
对于金融领域,尤其是量化投资、证券交易的场景下,往往需要快速的对数据进行分析、处理从而在最短的时间内做出交易决策。因此需要的数据序列化方法必须满足以下特点:高性能,具有一定的安全性。又因为金融量化常用的编程语言有:matlab、python、R等。目前市场上尚未存在完全支持matlab、python、R等语言的二进制序列化协议。
发明内容
本发明的目的在于提供用于金融领域的更安全、更快速的,同时支持matlab,python,R等常用的金融量化语言的金融量化分析数据传输方法。
本发明采用以下技术方案:
金融量化分析数据传输方法,其特征在于,包括以下步骤:
发送方对第一数据结构进行描述,生成描述文件;
其中,所述描述的信息包括数据结构中各个成员变量的数据类型及其位置;
发送方保存该描述文件,并将该描述文件提供至接收方;
发送方根据所述描述文件,生成所述第一数据结构的序列化代码;
发送方计算所述第一数据结构当前各个成员变量所包含的第一数据序列化后所占用的总内存大小;
发送方根据所述计算的总内存大小申请相应内存;
发送方将所述第一数据及所申请的内存作为参数传入序列化代码,将当前各个成员变量所包含的第一数据进行序列化,序列化后生成的第二数据保存在所述申请的内存;
发送方将所述第二数据发送至接收方;
接收方根据所述描述文件生成第二数据结构以及反序列化代码;
接收方将所述第二数据作为参数传入所述反序列化代码,进行反序列化后解析出第一数据,将所述解析出的第一数据保存在第二数据结构。
本发明提供的金融量化分析数据传输方法适用于金融领域,具有更安全、更快速,同时支持matlab,python,R等常用的金融量化语言的优点。
附图说明
图1为本发明实施例提供的金融量化分析数据传输方法的流程图。
具体实施方式
以下结合附图及具体实施例对本发明作进一步说明。
参照图1。本实施例提供的金融量化分析数据传输方法,包括以下步骤:
发送方对第一数据结构进行描述,生成描述文件;
其中,所述描述的信息包括数据结构中各个成员变量的数据类型及其位置;
发送方保存该描述文件,并将该描述文件提供至接收方;
这里,发送方将描述文件提供至接收方的方法为:通过线下物理介质的方式;
发送方根据所述描述文件,生成所述第一数据结构的序列化代码;
发送方计算所述第一数据结构当前各个成员变量所包含的第一数据序列化后所占用的总内存大小。
所述计算总内存大小的方法为:
规定各个金融量化语言都支持的基本数据类型以及数据类型所占用的内存大小,对数据类型用一个数字进行标示。
目前金融量化后台系统软件主要采用C++语言开发,金融量化分析前端软件主要采用matlab语言开发,现以C++、matlab交互举例。
matlab支持的数据类型有int、double、int64、string等,C++亦支持上述数据类型,因此这几种数据类型可用于C++、matlab之间的数据传输。
各个类型所占的字节数分别为:int=4字节,double=8字节,int64=8字节,string=2字节+字符串内容的长度。
根据以上的规定,计算内存占用总大小的C++代码举例如下:
第一数据结构为:
总字节数量,根据之前约定的double占用8个字节,字符串string的字节数量为2+字符串长度(注:这里的wstring是utf16编码因此所占用的字节数量为字符串长度乘以2),可计算出当前第一数据demo所占用的字节数为:8+2+5*2=20。
采用以上所述计算总内存大小的方法,具有以下优点:内存占用精确到字节,不会占用过多的内存及带宽。
发送方根据所述计算的总内存大小申请相应内存;
发送方将所述第一数据及所申请的内存作为参数传入序列化代码,将当前各个成员变量所包含的第一数据进行序列化,序列化后生成的第二数据保存在所述申请的内存;
其中,将当前各个成员变量所包含的第一数据进行序列化的方法为:将第一数据的内容拷贝到申请到的内存里面,并且明确标识出所拷贝的内容大小。
采用该序列化的方法具有以下优点:序列化后的数据的排列是按照1字节紧密排列,发送时不占用过多的内存和带宽。
将数据进行序列化为二进制数据后进行传输,相对于将数据序列化为字符串进行传输,由于二进制数据相对于字符串的可读性更低,因此本方法传输数据更安全。
将第一数据序列化为二进制数据、再将序列化为二进制的数据反序列化解析出第一数据,该序列化以及反序列化均使用二进制进行操作,相对于使用字符串进行序列化以及反序列化的方法,具有速度快、内存占用小的优点。
以C++为例:
对double的序列化的C++代码为:
从上面代码可看出,对double序列化时只占用了8个字节,同时把占用的字节数作为返回值返回给调用方。
对wstring的序列化为:
从上面代码可看出,对wstring序列化占用2个字节加上字节长度,又因为wstring的字符集编码为utf16,因此所占用的字节数量必须乘以2。同时把所占用的字节数返回给调用方。
对Demo的序列化代码为:
从上面代码可看出,序列化Demo时,根据序列化wstring和double的返回值调整下一个成员变量将内容序列化到buffer的位置,从而达到1字节紧密排列的目的。
发送方将所述第二数据发送至接收方。
接收方根据所述描述文件生成第二数据结构以及反序列化代码;
接收方将所述第二数据作为参数传入所述反序列化代码,进行反序列化后解析出第一数据,将所述解析出的第一数据保存在第二数据结构。
上述计算内存占用总大小的C++代码中的数据结构Demo生成的描述文件,以接收方采用Matlab语言的举例,接收方根据所述描述文件生成第二数据结构以及反序列化代码;接收方将所述第二数据作为参数传入所述反序列化代码,进行反序列化后解析出第一数据,将所述解析出的第一数据保存在第二数据结构的两个步骤的Matlab代码举例如下:
综上,本实施例提供的金融量化分析数据传输方法,具有以下优点:
1.内存占用精确到字节,不会占用过多的内存及带宽。
2.序列化后的数据的排列是按照1字节紧密排列,发送时不占用过多的内存和带宽。
3.将数据进行序列化为二进制数据后进行传输,相对于将数据序列化为字符串进行传输,由于二进制数据相对于字符串的可读性更低,因此本方法传输数据更安全。
4.将第一数据序列化为二进制数据、再将序列化为二进制的数据反序列化解析出第一数据,该序列化以及反序列化均使用二进制进行操作,相对于使用字符串进行序列化以及反序列化的方法,具有速度快、内存占用小的优点。
5.序列化代码和反序列化代码在数据传输之前已生成,因此对数据进行列化及反序列化时不需要再生成序列化代码和反序列化代码,因此因此对数据进行列化及反序列化的速度快。
6.发送方生成描述文件之后,一方面自身保存该描述文件,另一方面该描述文件通过线下物理介质转存至接收方,由此描述文件非线上传输至接收方,从而避免线上传输描述文件时该描述文件泄漏等安全问题。
7.接收方收到该描述文件之后,根据该描述文件生成第一数据结构的反序列化代码。由于接收方本地存在反序列化代码,故发送方在发送序列化后的第二数据的时候,不需要再向接收方发送反序列化信息,由此减少数据的发送量,并且避免了反序列化信息线上传输泄漏的问题,从而提高了数据传输的安全性。
8.发送方采用线下物理介质的方式将描述文件提供至接收方,故描述文件不会在线上传输时外泄,序列化后的数据内不包含任何反序列化信息,因此在没有描述文件的情况下,从序列化后的数据中难以反序列出数据,因此传输的数据安全性高。
9.由于发送方生成的描述文件的信息包括数据结构中各个成员变量的数据类型及其位置,因此,接收方可以根据描述文件生成反序列化代码以及存储反序列化后的数据的数据结构。
10.通过规定各个金融量化语言都支持的基本数据类型以及数据类型所占用的内存大小,对数据类型用一个数字进行标示,由此该金融量化分析数据传输方法同时支持matlab,python,R等常用的金融量化语言。
Claims (3)
1.金融量化分析数据传输方法,其特征在于,包括以下步骤:
发送方对第一数据结构进行描述,生成描述文件;
其中,所述描述的信息包括数据结构中各个成员变量的数据类型及其位置;
发送方保存该描述文件,并将该描述文件提供至接收方;
发送方根据所述描述文件,生成所述第一数据结构的序列化代码;
发送方计算所述第一数据结构当前各个成员变量所包含的第一数据序列化后所占用的总内存大小;
发送方根据所述计算的总内存大小申请相应内存;
发送方将所述第一数据及所申请的内存作为参数传入序列化代码,将当前各个成员变量所包含的第一数据进行序列化,序列化后生成的第二数据保存在所述申请的内存;
发送方将所述第二数据发送至接收方;
接收方根据所述描述文件生成第二数据结构以及反序列化代码;
接收方将所述第二数据作为参数传入所述反序列化代码,进行反序列化后解析出第一数据,将所述解析出的第一数据保存在第二数据结构。
2.如权利要求1所述的金融量化分析数据传输方法,其特征在于,所述计算所述第一数据结构当前各个成员变量所包含的第一数据序列化后所占用的总内存大小的方法为:
规定各个金融量化语言都支持的基本数据类型以及数据类型所占用的内存大小,对数据类型用一个数字进行标示。
3.如权利要求1所述的金融量化分析数据传输方法,其特征在于,将当前各个成员变量所包含的第一数据进行序列化的方法为:将第一数据的内容拷贝到申请到的内存里面,并且明确标识出所拷贝的内容大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690773.5A CN108876628A (zh) | 2018-06-28 | 2018-06-28 | 金融量化分析数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690773.5A CN108876628A (zh) | 2018-06-28 | 2018-06-28 | 金融量化分析数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108876628A true CN108876628A (zh) | 2018-11-23 |
Family
ID=64296562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810690773.5A Pending CN108876628A (zh) | 2018-06-28 | 2018-06-28 | 金融量化分析数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108876628A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673856A (zh) * | 2019-09-30 | 2020-01-10 | 新华三大数据技术有限公司 | 一种数据处理方法、装置及机器可读存储介质 |
CN110932916A (zh) * | 2019-12-20 | 2020-03-27 | 惠州市德赛西威汽车电子股份有限公司 | 一种改进的oma dm协议数据编码方法 |
CN111343612A (zh) * | 2020-02-20 | 2020-06-26 | 杭州涂鸦信息技术有限公司 | 一种物联网数据方法及系统 |
CN111478898A (zh) * | 2020-04-03 | 2020-07-31 | 爱瑟福信息科技(上海)有限公司 | Someip协议通信数据的序列化和反序列化方法及其系统 |
CN114116074A (zh) * | 2021-11-02 | 2022-03-01 | 山东新一代信息产业技术研究院有限公司 | 一种高性能的数据序列化及反序列化系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077335A (zh) * | 2013-05-07 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种结构化数据的序列化、反序列化方法、装置和系统 |
CN104360865A (zh) * | 2014-11-28 | 2015-02-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
US9350595B1 (en) * | 2007-12-27 | 2016-05-24 | Emc Corporation | System and method for serializing and deserializing data objects into a single binary stream |
CN106775638A (zh) * | 2016-11-22 | 2017-05-31 | 北京皮尔布莱尼软件有限公司 | 一种对象序列化方法、装置和计算设备 |
-
2018
- 2018-06-28 CN CN201810690773.5A patent/CN108876628A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9350595B1 (en) * | 2007-12-27 | 2016-05-24 | Emc Corporation | System and method for serializing and deserializing data objects into a single binary stream |
CN104077335A (zh) * | 2013-05-07 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种结构化数据的序列化、反序列化方法、装置和系统 |
CN104360865A (zh) * | 2014-11-28 | 2015-02-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
CN106775638A (zh) * | 2016-11-22 | 2017-05-31 | 北京皮尔布莱尼软件有限公司 | 一种对象序列化方法、装置和计算设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673856A (zh) * | 2019-09-30 | 2020-01-10 | 新华三大数据技术有限公司 | 一种数据处理方法、装置及机器可读存储介质 |
CN110673856B (zh) * | 2019-09-30 | 2023-03-28 | 新华三大数据技术有限公司 | 一种数据处理方法、装置及机器可读存储介质 |
CN110932916A (zh) * | 2019-12-20 | 2020-03-27 | 惠州市德赛西威汽车电子股份有限公司 | 一种改进的oma dm协议数据编码方法 |
CN110932916B (zh) * | 2019-12-20 | 2022-11-15 | 惠州市德赛西威汽车电子股份有限公司 | 一种改进的oma dm协议数据编码方法 |
CN111343612A (zh) * | 2020-02-20 | 2020-06-26 | 杭州涂鸦信息技术有限公司 | 一种物联网数据方法及系统 |
CN111343612B (zh) * | 2020-02-20 | 2023-09-22 | 杭州涂鸦信息技术有限公司 | 一种物联网数据方法及系统 |
CN111478898A (zh) * | 2020-04-03 | 2020-07-31 | 爱瑟福信息科技(上海)有限公司 | Someip协议通信数据的序列化和反序列化方法及其系统 |
CN111478898B (zh) * | 2020-04-03 | 2022-03-11 | 爱瑟福信息科技(上海)有限公司 | Someip协议通信数据的序列化和反序列化方法及其系统 |
CN114116074A (zh) * | 2021-11-02 | 2022-03-01 | 山东新一代信息产业技术研究院有限公司 | 一种高性能的数据序列化及反序列化系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108876628A (zh) | 金融量化分析数据传输方法 | |
US20190073719A1 (en) | Offload Processing of Data Packets Containing Financial Market Data | |
CN109902274B (zh) | 一种将json字符串转化为thrift二进制流的方法及系统 | |
US9223765B1 (en) | Encoding and decoding data using context model grouping | |
US9300764B2 (en) | High efficiency binary encoding | |
US9087070B2 (en) | System and method for applying an efficient data compression scheme to URL parameters | |
WO2008042716A2 (en) | Knowledge based encoding of data with multiplexing to facilitate compression | |
CN107040334A (zh) | 用于通信网络的丢失复原协议 | |
CN102541926B (zh) | 一种数据交换处理方法、设备和系统 | |
CN100493002C (zh) | 一种统计在网络传输中丢失数据的方法 | |
CN106851733A (zh) | 一种针对移动网络应用的自适应http消息压缩方法 | |
CN105450359A (zh) | 自定义二进制结构化协议数据的发送和接收方法 | |
US10097602B2 (en) | Channel-aware caching-aided coded multicast | |
CN107615810A (zh) | 用于在线网络代码的包头压缩系统和方法 | |
US10355823B2 (en) | System and method for block-coding transcoding | |
WO2023179800A1 (zh) | 通信接收方法及其装置 | |
US9235610B2 (en) | Short string compression | |
CN106648934B (zh) | 一种Impala与HBase之间的高效数据传输方法及系统 | |
CN110535562A (zh) | 一种过滤式降维译码方法 | |
CN103929404B (zh) | 一种解析HTTP chunked编码数据的方法 | |
US10742783B2 (en) | Data transmitting apparatus, data receiving apparatus and method thereof having encoding or decoding functionalities | |
CN105103491A (zh) | 数据传输方法和装置 | |
WO2023179632A1 (zh) | 一种数据处理方法及装置 | |
CN109379342A (zh) | 基于udp网络协议的上位机与dsp数据传输方法 | |
US20100046548A1 (en) | Multi-purpose pdu container for delineating pdu datagrams and pdu datagram attributes in an 8b/10b coded system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181123 |