Financial Information eXchange (FIX) (do inglês, Troca de Informação Financeira) é um protocolo criado em 1992 para o câmbio internacional de informação relacionada a transações em mercados financeiros, e padrão de facto na indústria.
A especificação do protocolo FIX foi criada em 1992 por Robert "Bob" Lamoureux e Chris Morstatt.[1] Em 2009, o protocolo encontrava-se na versão 5.0.[2] O protocolo FIX tornou-se o padrão de facto para a troca de mensagens de negociações em mercados de capitais nos EUA,[3] e de acordo com a FIX Trading Comunity, a organização sem fins lucrativos formada por membros da indústria, tem visto seu uso em operações pós-negociação expandido.[4][5] O FIX ou protocolos baseado nele são usados em bolsas de valores ao redor do mundo, como a NYSE[6] e a B3.[7]
Uma mensagem FIX é uma string ASCII constituída de campos tag=valor
separados pelo caractere SOH. As mensagens possuem um cabeçalho, um corpo, e um rodapé.
Até a versão 4.4, o cabeçalho era composto por três campos, de tags 8 (BeginString
), 9 (BodyLength
), e 35 (MsgType
). O último campo da mensagem possui tag 10, e é o checksum da mesma. Este é definido como a soma dos valores ASCII de todos os caracteres da mensagem até o campo de checksum (exclusive), incluindo delimitadores, módulo 256. BeginString
define a versão do protocolo, MsgType
indica o tipo da mensagem, e BodyLength
é o número de caracteres iniciando na tag 35 (inclusive), até a tag 10 (exclusive). Os delimitadores SOH são incluídos na contagem. Por exemplo (os delimitadores SOH foram substituídos pelo caractere |
):
8=FIX.4.2|9=65|35=A|49=SERVER|56=CLIENT|34=177|52=20090107-18:15:16|98=0|108=30|10=062| 0 + 0 + 5 + 10 + 10 + 7 + 21 + 5 + 7 + 0 = 65
O valor de BodyLength
é 65, enquanto que a soma dos valores ASCII da mensagem resulta em 4158. Realizando-se o módulo com 256 tem-se o valor de 62. Como o checksum é representado por três caracteres, tem-se o valor 062 para o campo de tag 10.