栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

基于金融FIX协议的上交所FAST行情数据介绍以及解析方法,另附C++解析方法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于金融FIX协议的上交所FAST行情数据介绍以及解析方法,另附C++解析方法

基于金融FIX协议的上交所FAST行情数据介绍以及解析方法,另附C++解析方法(未完成,预计十月中旬完成)
  • 一 引言
    • 涉及的协议名称介绍
  • 二 解析FAST协议压缩过的消息
    • FAST字段属性关键字,方便大家去去文档里直接搜
      • 1.字段类型
        • 整形
        • 十进制数
        • 字符串
        • 字节向量
        • 序列
        • 分组
      • 2.操作类型
        • 常量
        • 缺省
        • 拷贝
        • 递增
        • 插值
        • 接尾
      • 3.必要性
        • 必要
        • 非必要
    • FAST非字段属性介绍(非常重要)
      • 存在位图
    • 去解析一条上交所行情消息的流程
    • C++实现各种字段属性
  • 三 第三方库
  • 四 联系方式

一 引言

写本文的原因是目前网络上似乎没有较为完整的针对基于金融FIX协议的上交所FAST行情数据的文章,目前只能找到一些介绍较为表面的文章(但是这些文章当时对我的工作也有极大的帮助,非常感谢),当时第一份工作涉及到了对上交所行情的解析,当时就拿着官方的一个文档,大约花了我2个月时间才手撸了一份对上交所FAST协议的解析(当时的老板不让我用第三方库,说是自己写的更快更方便,这大概就是一大错觉“我比xxx更高效”,如果你的老板没有这些限制,那么本文你就不需要详细的看了,因为已经有第三方库支持了对FAST协议的解析了,我放在文章的最后了,大家如果时间紧张可以直接跳到本文的最后去用第三方库)。

涉及的协议名称介绍
  1. FIX协议
    FIX(Financial Information eXchange)协议是一种主要用于证券交易过程交换的公开协议,它定义每条交易信息的内容和格式,这些信息内容与证券交易流程相对应,以保证交易信息安全准确地传送。FIX主要用于在各类参与者之间建立起实时的电子化通讯协议。
    其是由key-value组成,有可读性好,扩展性强,适应性丰富等优点,然而由于它是非压缩过的,因此相比于压缩过的消息,在相同速度传输相同信息的情况下有传输时间长的缺点。

  2. STEP协议.
    STEP协议相当于是中国的FIX协议,是根据FIX4.4版本的基础上定制出来的,也是简单的key-value形式,其中不同的key-value之间是由SOH(start of head)这一个字符来作为间隔符的,16进制表示是0x01。
    上交所和深交所《轻量级STEP会话协议接口规范》.

  3. Binary协议.
    这个是二进制协议,目前被用在深交所行情中,不过马上上交所也要支持这个binary协议了(2021年10月)。
    需要注意的是,binary协议中整型值都是高字节序(Big-Endian),解析的时候需要转换一下。
    本文不对binary协议展开讲,因为这个挺简单的,如果有朋友有需要可以留言,我找时间写一下如果解析。

  4. FAST协议.
    FAST - FIX Adapted For Streaming 面向流的信息交换协议
    其核心是一个压缩算法,将按照fix规范定义的数据经过压缩以后,其形式已经不是key-value形式了,是给出一个一个key的模板文件,然后在传输过程中只传输value,其很大程度上降低发送、接收双方的带宽。

二 解析FAST协议压缩过的消息

在我们解析一段FAST消息之前,我们必定会拿到两样东西,一样是消息的模板(上交所行情网关会提供的),另一个就是消息内容了。那么首先要看懂模板,其实模板很容易看懂,它就是一个xml文件,这边只需要对FAST协议一些名词做简单的介绍,看完介绍再看个例子,立马能看懂大部分模板文件了。

FAST字段属性关键字,方便大家去去文档里直接搜

这一部分如果有不懂的可以直接关键字去文档里搜,我这边就不赘述了。

1.字段类型 整形 十进制数 字符串 字节向量 序列 分组 2.操作类型 常量 缺省 拷贝 递增 插值 接尾 3.必要性 必要 非必要 FAST非字段属性介绍(非常重要) 存在位图 去解析一条上交所行情消息的流程

由于上交所发来的一条消息并不仅仅是一条FAST消息,其外层可能还包含其他格式的,例如STEP,在STEP中间一个key-value中的value的值才是FAST消息,也就是我们要解析的内容。

C++实现各种字段属性

由于排列组合种类过多,因此只举例有代表性的以及特殊性的

三 第三方库
  1. quickfast.
    基于C++对FAST解析的第三方库
  2. openfast
    基于JAVA对FAST解析的第三方库

注:我并未使用过这些第三方库,因此第三方库出现的问题我可能不太了解

四 联系方式
  1. QQ:2778028200
  2. 微信:暂不透露,请优先加qq
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号