博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IB Fix开发 之 Quickfix 解读
阅读量:6107 次
发布时间:2019-06-21

本文共 1867 字,大约阅读时间需要 6 分钟。

Quickfix 是开源的FIX引擎,支持JAVA, C#等语言

官网地址:

阅读下面文字之前假设用户已经看过了Quickfix官网并且已经对fix协议的基本内容有了了解。

下面主要介绍Quickfix(C#版本的)核心要点:

(1)Quickfix 到底是什么?

      可以将Quickfix 理解为一套实现fix协议的工具,利用这个工具用户可以向对手方发送fix消息,同时可以及时接收并响应对手方发送来的消息

   用户同时也可以扩展这个工具(在IB 条件单中会简单介绍)

(2)Quickfix源码在哪里?

  

(3)怎么使用Quickfix?

  用户可以直接下载源码,编译后可以引用生成的QuickFix 动态库或者直接在官网下载最新版的QuickFix动态库

(4)Quickfix关键接口-----IApplication

  Quickfix的核心就是该接口,用户在引用QuickFix 动态库后,最主要的工作就是根据自己的需求实现该接口中的方法。

  为了叙述的方便,假设A公司和IB 互为对手方,A公司作为Fix回话的发起方主动去连接IB, 即A公司为initator, IB为acceptor

  除此之外, IB FIX消息可分为两类:应用类(application msg)的消息和管理类(administrative msg)的消息

  

  A公司的程序员需要实现IApplication接口的下面几个方法:

  public void FromApp(Message msg, SessionID sessionID)

  方法说明:当A公司应用程序收到IB发来的应用类消息时会调用该方法,A公司程序员需要在该方法中处理不同的应用类消息

     public void OnCreate(SessionID sessionID)

  方法说明:当Quickfix根据配置文件创建会话成功后会调用该方法,一般在这个方法中不做特别的事情      

     public void OnLogon(SessionID sessionID

  方法说明:当A公司应用程序和IB Fix服务连接成功的时候会调用该方法,一般在这个方法中不做特别的事情

    public void OnLogout(SessionID sessionID

  方法说明:当A公司应用程序和IB Fix服务连接断开时会调用该方法,一般需要在该方法中实现断开重连机制

       public void FromAdmin(Message msg, SessionID sessionID)

  方法说明:当A公司应用程序收到IB发来的管理类消息时会调用该方法,

     public void ToAdmin(Message msg, SessionID sessionID)

  方法说明:当A公司向IB发送管理类消息前会调用该方法(用户可以在消息发送前修改msg)

       public void ToApp(Message msg, SessionID sessionID

  方法说明:当A公司向IB发送应用类消息前会调用该方法(用户可以在消息发送前修改msg)

  官网有很详细的示例可以参考

 (5)FIX消息序号的管理

  FIX 会话是由不同的消息构成的,每个消息都包含有一个递增字段MsgSeqNum(tag#34)

  即用户发送第一个msg的时候MsgSeqNum=1,发送第二个msg的时候MsgSeqNum=2 ,后面发送的消息以此类推

  假设用户收到第一个msg的时候MsgSeqNum=1,接收到第二个msg的时候MsgSeqNum应该是2,后面接收的消息以此类推

  即在调用Quickfix的时候用户必须要维护两个序号队列,一个是用户自己发出消息的序号队列,一个是用户收到消息的序号队列。

  假设用户收到收到的前一个消息的序号是30, 那下一个接收到的消息序号应该是31,假设下一个消息的序号变成了40,则代表用户漏掉了某些消息,这个时候用          户需告诉IB 重发丢失的消息。

  用户维护自己发送消息的序号可在ToAdmin和ToApp两个函数中实现,用户维护收到消息的序号可在FromAdmin和FromApp两个函数中实现。

(6)Quickfix的配置

  用户在使用Quickfix之前需要做一些配置,这些配置都很简单,可参考官网()

  

转载于:https://www.cnblogs.com/010bj/p/8304302.html

你可能感兴趣的文章
centos7.0 64位系统安装 nginx
查看>>
数据库运维平台~自动化上线审核需求
查看>>
注解开发
查看>>
如何用 Robotframework 来编写优秀的测试用例
查看>>
Django之FBV与CBV
查看>>
Vue之项目搭建
查看>>
app内部H5测试点总结
查看>>
Docker - 创建支持SSH服务的容器镜像
查看>>
[TC13761]Mutalisk
查看>>
三级菜单
查看>>
Data Wrangling文摘:Non-tidy-data
查看>>
加解密算法、消息摘要、消息认证技术、数字签名与公钥证书
查看>>
while()
查看>>
常用限制input的方法
查看>>
Ext Js简单事件处理和对象作用域
查看>>
IIS7下使用urlrewriter.dll配置
查看>>
12.通过微信小程序端访问企查查(采集工商信息)
查看>>
WinXp 开机登录密码
查看>>
POJ 1001 Exponentiation
查看>>
HDU 4377 Sub Sequence[串构造]
查看>>