QuickFIX是一个开源的金融信息交换协议(FIX)的实现。在FIX协议中,消息大体上可以分为两大类:
-
应用级(Application Level)消息:这类消息用于业务数据的交换,比如证券买卖、订单状态更新、市场数据请求与回应等。应用级消息直接支持交易流程,是交易参与者之间进行交易和信息交流的主要方式。
-
会话级(Session Level)消息:这类消息用于管理和维护通信会话的状态,比如登录(logon)、心跳(heartbeat)、测试请求(test request)、注销(logout)等。会话级消息确保了数据交换的正确性和连贯性,但它们不携带业务层面的交易信息。
通过这种划分,FIX协议能够同时处理业务数据交换和通信会话管理,确保金融交易的高效和可靠。
在QuickFIX中,消息处理主要通过几个关键的回调函数来实现,其中toAdmin和toApp分别处理会话级(Session Level)消息和应用级(Application Level)消息:
-
toAdmin:这个回调函数用于处理发送到对手方之前的所有会话级消息。这包括心跳、登录、注销等控制会话状态的消息。开发者可以在这个函数内部修改或增强即将发送的会话级消息,比如添加自定义的头信息。
-
toApp:这个回调函数处理的是应用级消息,即那些包含交易或业务数据的消息。在消息发送到对手方之前,
toApp会被调用,允许开发者对消息进行最后的修改或检查。这些应用级消息直接关系到交易流程,如订单创建、执行报告等。
通过这两个函数,QuickFIX提供了灵活的接口来处理和修改FIX协议中的消息,确保了消息的正确性与适应性。开发者可以利用这些回调来实现特定的业务逻辑或符合特定交易所的要求。