Fix协议的连接建立和基本应用

网络 网络管理
文章中我们主要对Fix协议的基本结构和主要连接建立模式进行了分析和讲解。结合它的具体应用,希望大家能够全面掌握这个协议的要点。

Fix协议是我们网络金融交易必不可少的协议之一。它的操作很简单,而且安全性也高。那么对于它的基本概念我们在这里就不在进行讲解了。我们主要针对Fix协议的结构以及它的连接建立进行详述。希望能够帮助大家理解这部分的知识。

FIX协议结构

当前,FIX协议的格式存在着两种结构:"标记(Tag)〉=〈值(Value)"域结构和 FIXML 结构。下面针对域结构模式对FIX协议的组成,连接建立、信息交换方法等进行简要说明,以便于了解FIX协议的概念。

FIX信息格式

(1) 信息格式

 一条FIX协议信息的基本格式是:

《标准头》+《信息正文域》+《标准尾》

每条信息都是由一系列带有〈标记(Tag)〉=〈值(Value)〉的域组成的。在每个域之间通过"< >"分开。除了一些特殊规定外,信息中的域可按照任意顺序排列。所有域在都以"定界符"(#001;0x01H,文档中写为<SOH>)表示终止。

(2) 标准的信息标题

每条命令或应用信息都有一个标准的标题。标题表明了信息类型、长席、目的地、序号、起始点和时间。

(3) 标准的信息尾部

所有的信息,无论是命令类的,还是应用类的,以一个标准结尾终止。尾部被用来把信息分离,并包括含有3位数的"检验和"值。

(4) 数据类型

各域所使用的数据类型包括以下几种:整数、浮点数、布尔数、字符串、多元值串、货币、交易所字符串域、国际标准时时间戳、国际标准时时间、本地市场日期等。

(5) 数据完整性

信息数据内容是否完整可以通过"检查信息长度"和字符的简单"检验和"两个方法进行检查。

(6) 加密

为了保证信息安全,对传递的信息需要加密,加密方法的选择由传送中的有关双方协议而定。任何域都可被加密并被添加于"密码"的域内,不过,被确信可被清楚识别的域必须以非加密方式进行传送,这些公开的域(非加密)能在密码的域内被重复以完整地检验公开的数据。

FIX协议的连接建立

建立一个FIX连接包括:电信层面连接的创立、经由接收方对发起方的确认、信息同步三个步骤。#p#

FIX信息交换过程的实施

FIX信息交换过程的定义为:

在两方之间,一个连续的序号系列范围内的双向定单信息传送。每条信息都有独特的序号识别。在每次FIX交换过程开始时,就是序号的开始,首先从1开始,并依次增加直至贯穿整个交换过程。当在FIX交换过程中重新进行连接的时候,监控序号将能使各方能识别错过的信息,并能做出反应,来使应用方达到一致地同步。

在整个信息没有被激活的时期里,信息交换方将在有规则的时间间隔里产生"心跳信息"。通过"心跳信息"可监控通信连接的状况,识别进入的序号缺口,并确认是否接收到最后的信息串。"心跳间隔"是由交换过程发起人使用"心跳指令"域在"登录"信息中宣布的。

当信息交换连接的任何一方在"心跳指令"的时间内都不发送任何数据的时候,"心跳信息"将被传送。当连接的任何一方在"心跳指令"+"合理的传输时间"的时间内仍没有收到"心跳信息",那么,可以认为此次连接失败,而且需开始实施修正操作。如果"心跳指令"被设置为零,将不会生成定期的"心跳信息"。

FIX的连接注销

信息交换过程的正常结束是通过双方互相发送"注销"(Logout)信息来完成。"注销"信息是开始或确认一个FIX过程终止的信息,未经"注销"信息的交换而断开的连接是反常情况,并应按错误来处理。

FIX通信协议的应用

针对国内的证券交易模式的分布式结构,即证券公司的各营业部、分支机构数据分布存放,各自独立,直接与交易所联系,国内券商正在探讨并逐步推出集中交易系统,集中交易系统可以带来集中风险控制、提高系统效率等优势,可以在集中交易系统的构建、规划过程中,借鉴应用FIX标准化协议,构建具有数据层、核心业务层+FIX通信层、应用层的广义三层结构。用FIX金融信息交换协议包取代过去的文件或通信包交换的模式。

在FIX协议的应用过程中应该注意到,由于亚洲地区的证券交易方式与FIX协议的主导地区美洲和欧洲国家有一定的差异,因此直接利用现有的FIX协议,特别是证券业务流程上的规范有一定的困难。

例如FIX协议在日本证券行业的应用就遇到了信息定义内容和信息流程顺序上的问题。因此国内的FIX的开展首先要关注FIX及其在中国的适用性,吸收其它市场的经验,将国内外不同的交易程序加以比较,分析协议的使用方法以及协议使用环境,结合国内证券市场的实际,使得该项协议既能成为一项标准又能为中国证券市场服务,为中国证券交易的标准化过程中发挥作用。

责任编辑:佟健 来源: IT运维网
相关推荐

2010-03-03 10:03:55

Python连接Sql

2013-12-12 16:10:21

Lua脚本语言

2010-07-08 15:24:17

SNMP trap

2010-06-23 15:19:35

eMule协议

2010-07-02 12:15:16

2010-06-23 14:27:04

Fix协议

2009-11-23 11:03:12

php_curl库

2010-02-25 10:52:29

WCF响应服务

2010-03-03 16:40:55

Python HTTP

2010-03-04 14:57:08

Python解密VBS

2010-02-26 13:40:28

WCF消息头

2010-02-02 14:45:35

C++ typeof

2010-03-04 09:27:34

调用Python脚本

2010-03-03 14:40:37

Python打包方法

2010-03-01 15:40:04

WCF实例停用

2010-03-03 14:30:05

Python set类

2010-03-01 11:24:31

WCF面向服务

2010-02-23 15:58:57

WCF Session

2010-02-25 18:04:02

WCF IIS宿主

2010-03-01 09:48:23

WCF会话服务
点赞
收藏

51CTO技术栈公众号