西西河

主题:FIX协议 -- miketan

共:💬9 🌺41 新:
分页树展主题 · 全看首页 上页
/ 1
下页 末页
  • 家园 FIX协议

    FIX(Financial Information eXchange)协议是金融行业FrontOffice广泛,甚至可以说唯一使用的计算机通讯协议,机构客户,券商内部的系统以及券商和交易所之间的连接,都使用FIX作为传输协议。另一个金融领域广泛使用的协议是Society

    for Worldwide Interbank Financial Telecommunication(SWIFT),这个协议广泛用于交易清算,是Back Office的主要通讯协议

    在计算机广泛应用之前,电话是用户向交易员下交易指令的主要方式,甚至在计算机无处不在的今天,电话仍然是交易员的重要工具。电话通讯的缺点在于交流过程中会出现很多的人的因素带来的错误,比如把买听成了卖,把数量记录错了等待,这样就会引起交易纠纷。于是在计算机广泛应用于金融行业后,1992年Fidelity开始和他的机构客户之间使用计算机来传输交易指令,为了使交易指令能够安全可靠的传输,也便于机器理解,开发了FIX通讯协议。

    从技术的角度来说,交易指令传输协议有下面的三个需求:

    安全

    可靠

    准确

    我们就从上面的三个方面介绍一下FIX的实现方式。

    安全

    设想一下基金正在建仓某一只股票,如果这个信息被泄露出去,人们就会预期这只股票价格上涨,从而抢入这只股票,推高股价,提高基金建仓成本,因此交易指令的保密是网络传输的基本要求。FIX协议是建立在TCP协议之上的通讯协议,它可以利用成熟的基于TCP的SSL或VPN等手段来加密传输的内容,使传输的内容不会在网络上被窃听。

    FIX是点对点的连接,一方运行在接受连接模式,另一方运行在发起连接模式。一旦接受方在某个端口建立了连接,就会拒绝其他的试图在这个端口上建立新连接,这样可以一定程度上防止有意或无意的错误连接。在生产环境中经常会发生FIX配置了错误的端口,试图连接到一个已有连接上,FIX的这种特性就可以防止这种错误的配置产生严重后果。

    FIX协议需要确认信息发送方的身份,它需要确保一个电脑黑客不能随便找一台电脑,连到券商的服务器上就可以发送大量的交易单,扰乱交易。在建立FIX连接时第一条信息是登录,要提供SenderCompID和TargetCompID来确认身份,就像登录我们的网银一样,如果没有这些信息就无法建立连接。

    可靠

    FIX协议定义了信息的传输控制,用以保证信息的可靠传输:

    信息序列号(MsgSeqNum):FIX在发送信息时,每个信息都会被分配一个序列号,这个序列号连续增长。在接收方收到一条信息时,会检查这条信息的序列号,是否是上一条信息的序列号加一。比如接收方收到的上一条信息的序列号是5,那么

    如果这条信息序列号是6,那就接收并处理这条信息

    如果这条信息序列号是8,那么接收方判断有6号和7号信息没有收到。接收方就会发送一条从新传输的请求给对方,要求重新从6号信息开始传输

    如果这条信息序列号是4,那么接收方就判断对方的序列号混乱了,就会断开连接。这时需要人工干预,检查序列号为什么会错。

    心跳信息:

    在FIX引擎在一段时间(一般是30秒)不发送信息时,为了向对方确定TCP连接还是联通状态,会发送一个心跳信息。对方如果超过30秒没有收到任何信息,就判断网络连接已经断掉,就会通知应用,并且试图重新建立连接。

    准确

    为了保证交易信息的准确,FIX协议定义了很多信息种类,用户根据需要选择使用那种信息。比如如果是下单,就使用信息种类 35 -

    MsgType D,Order - Single。在交易系统中用的最多的是MsgType D (Single Order)

    和MsgType 8 (Report)。在每条信息里,FIX协议给规定的内容定义了字段,比如Order -

    Single信息里,限价放在字段44里。这样的字段定义方便了机器处理,不会出现歧义。

    FIX系统简介

    在交易系统中,FIX相关部分一般是封装在一个组件里,叫FIX引擎。应用和FIX引擎交互,发送或接收信息。FIX引擎有免费的开源软件,最流行的是QuickFIX,有C++/Java/.NET版本,可以根据自己的需要选择。QuickFIX的性能和稳定性都不错,功能齐全,推荐使用。如果需要极低的延时或极高的性能,就需要自己动手写自己的FIX引擎。

    在一个券商的系统里,还需要FIX信息的路由,FIX路由系统处在交易系统的核心位置,需要非常好的稳定性和极高的可定制性,可以对进来的FIX信息根据配置信息进行处理,然后发送到目的地去。目的地可能是一个交易算法服务器,也可能是去交易所。对交易系统来说,目前用的最多的FIX版本是4.2.

    关键词(Tags): #FIX 交易通宝推:年青是福,博客南,NoName,胡一刀,途人,
    • 家园 FIX是个大产业,每年服务商要赚走不少银子
    • 家园 这是要科普么?我倒是懂这个

      看了老兄前几篇,暗池高频低延迟,发现我们可能是同行啊

      • 家园 应该是吧
        • 家园 专家

          请教个问题,仅凭交易所提供的公开数据(tick/公告),能分析出操控股票的资金流向和行为吗?

          • 专家
            家园 在北美分析不出来

            中国经常看到这样的分析,但应该也只有相对的参考意义,不能作为资金流向的参考。其实交易是在买方和卖方之间发生的,很难说一个交易是买方资金入市还是卖方资金出逃,只能说是各取所需。如果说一个交易推动了股票价格,也不能说是主动方(Taker)就代表了市场的走向,现在算法交易很普遍,即使要出逃算法也会尽量的做被动交易

            • 家园 谢谢!

              中美股市的目的不同,表现形式也不大相同。可能美国市场的人为操纵相对小些,中国市场还是比较明显的。所以想确认从理论上来说,是没办法通过tick数据分析资金流向的。谢谢。

              由此引申出一个问题,如果无法从数据中得到真实的走向,算法交易的基础又是什么呢(或者说,算法交易是建立在沙滩上的建筑吗)?

    • 家园 太专业了

      西西河不知有几位在这方面可响应您

    • 家园 沙发
分页树展主题 · 全看首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河