QuickFix/J (1):如何创建第一个程序

FIX简介

    在正式开始的时候,我们应该介绍点背景。技术人员最缺的是什么?是什么?什么?么》!表达。
    FIX的英文全称为Financial Information eXchange(金融信息交换协议),1992年多个致力于提升其相互间交易流程效率的金融机构和经纪商共同发起制定。这些企业把他们及他们的行业视为一个**整体**,认为能够从对交易指示,交易指令及交易执行的高效电子数据交换的驱动中获利。FIX由此诞生,一个不受单一实体控制的开放消息标 准,一个能够被调整组建适用于任何一个企业的商务需求的协议。
    FIX业务消息有一系列预定义类型与格式。目前标准的 消息类型(类比于证券柜台的功能号)有5、60个,函盖了交易、行情、结算等投资管理的各个环节。FIX应用基本上就是对FIX业务消息的编程。
**说白了就是,不要你一套我一套,我们做一个协议1,2.3,4,5多简洁! 就像 404:网页没了 囧**
    FIX协议规范由FIX组织维护([FIX组织官网](www.fixprotocol.org)
QuickFIX

QuickFix 是Fix开源引擎,目前很多Fix解决方案都是根据或参考QuickFix实现的,尤其在中国市场,基本全部或大部分都是QuickFix的包装产品,所以QuickFix是作为学习Fix 的一个非常好的一个工具, 其官方网址为:http://www.quickfixengine.org , 目前有java,.Net,C++,Python和Ruby五种语言实现,可以说基本满足大部分的客户需求。

FIX创建过程

【FIX有两种应用模式】initiator和acceptor。
    initiator是TCP连接的发起方,acceptor是侦听方。initiator 和acceptor类似但不等同于客户端与服务端的概念。标准的FIX应用(如CTS FIX网关)可以同时支持两种模式,也就是说既可以发起连接,也可以接受连接请求。
    我们通常意义上的服务端一般是部署在经纪商(卖方)一侧的,仅接受投资 者(买方)发起连接。但在FIX应用中,这个经纪商服务端应用可以反过来向投资者端发起连接,也就是采用initiator模式。这点要特别注意。
【FIX接收的消息格式】“标记1=值<分隔符>标记2=值 ”
    Eg:8=FIX.4.49=22735=834=849=OKSERVER52=20160225-02:46:12.26056=LeiZhiGangCool6=428.4311=de656ed05a004a5b82cb723ff3204ab112=014=115=btc_usd17=156038218337=156038218338=139=240=144=428.4354=155=next_weel150=2151=0898=10911=110=126

【FIX通讯建立流程】1. 通信双方,一方叫Initiator(客户端),另一方叫Acceptor(服务器),各自维护2个递增的序列号(发送消息序列号–每发送一个消息加1,接受消息序列号–每收到一个消息加1)。
2. 通信首先由Initiator开始发起建立一个网络连接 , Acceptor(服务器),接受网络连接建立。
3. Initiator 发起登录消息请求。
4. Acceptor 收到登录请求后,经过一系列消息检查,合格后,返回登录确认。Initiator 收到登录确认后,经过一系列消息检查,合格后,双方Fix 会话层连接成功。
5. 双方交换消息
6. 退出(任意一方均可发退出消息)

服务器端DEMO

    本系类文章主要介绍QuickFIX/J 的实现。Eclipse, Maven(也可不用,楼主的DEMO是MAVEN版本源码)
   <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.quickfix</artifactId>
            <version>1.5.3_1</version>
        </dependency>
JAVA服务器端代码
/**
 * 服务启动主类(线程)
 * @author FLY.ZHANG
 */
public class FIXServer {
   
    private static ThreadedSocketAcceptor acceptor = 
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值