{"id":7230,"date":"2022-03-07T14:43:51","date_gmt":"2022-03-07T14:43:51","guid":{"rendered":"https:\/\/bjftradinggroup.com\/?p=7230"},"modified":"2026-09-25T16:16:39","modified_gmt":"2026-09-25T16:16:39","slug":"how-fix-protocol-works","status":"publish","type":"post","link":"https:\/\/bjftradinggroup.com\/pt\/how-fix-protocol-works\/","title":{"rendered":"Como funciona o protocolo FIX"},"content":{"rendered":"<p><\/p>\n<h3><strong>Introdu\u00e7\u00e3o<\/strong><\/h3>\n<p><strong> <\/strong>A hist\u00f3ria da negocia\u00e7\u00e3o nas bolsas de valores mudou drasticamente desde o seu in\u00edcio. As primeiras bolsas surgiram h\u00e1 cerca de quatrocentos anos. Naquela \u00e9poca, os neg\u00f3cios eram fechados verbalmente, e as regras de negocia\u00e7\u00e3o estavam apenas come\u00e7ando a se formar. Mas o mundo n\u00e3o ficou parado e, acompanhando os tempos, as bolsas adotaram todas as ferramentas t\u00e9cnicas que estavam dispon\u00edveis em cada \u00e9poca.<\/p>\n<p>Assim, em meados do s\u00e9culo XIX, as ordens de negocia\u00e7\u00e3o feitas a dist\u00e2ncia da bolsa passaram a ser transmitidas por linhas telegr\u00e1ficas. Depois, o telefone substituiu o tel\u00e9grafo. E, por fim, chegou o momento em que as primeiras ordens dos traders passaram a trafegar pelas comunica\u00e7\u00f5es da internet.<\/p>\n<p>Para ser justo, a negocia\u00e7\u00e3o por telefone ainda acontece hoje em algumas corretoras. E, para uma parte delas, \u00e9 a \u00fanica forma garantida de realizar uma opera\u00e7\u00e3o. Al\u00e9m disso, desde o surgimento das primeiras bolsas at\u00e9 o in\u00edcio do s\u00e9culo XXI, as opera\u00e7\u00f5es realizadas diretamente no recinto das bolsas eram feitas de viva voz. Esses preg\u00f5es eram chamados de stock pits e ofereciam um espet\u00e1culo que conhecemos dos filmes de Hollywood sobre o tema.<\/p>\n<h3><strong>Hist\u00f3ria do protocolo FIX<\/strong><\/h3>\n<p><strong> <\/strong>Um dos protocolos digitais de negocia\u00e7\u00e3o mais antigos \u00e9 o protocolo FIX. A sigla significa \u201cFinancial Information Protocol\u201d ou \u201cFInancial eXchange protocol\u201d \u2014 as duas defini\u00e7\u00f5es s\u00e3o encontradas. A especifica\u00e7\u00e3o do protocolo FIX foi criada em 1992 para a troca de informa\u00e7\u00f5es sobre negocia\u00e7\u00e3o de a\u00e7\u00f5es entre a Fidelity Investments e a Salomon Brothers. Corretoras e fundos de investimento queriam acelerar o processo de negocia\u00e7\u00e3o na bolsa. O resultado foi um padr\u00e3o aberto de transmiss\u00e3o eletr\u00f4nica de informa\u00e7\u00f5es que n\u00e3o \u00e9 controlado por nenhuma grande organiza\u00e7\u00e3o. Hoje, o FIX tornou-se o padr\u00e3o do setor, usado por participantes do mercado financeiro de diversos pa\u00edses para conectar seus produtos.<\/p>\n<p>Inicialmente, esse protocolo de comunica\u00e7\u00e3o era usado apenas entre as duas empresas mencionadas acima, chamava-se SBX (Salomon Brothers Exchange) e era usado apenas para negocia\u00e7\u00e3o de a\u00e7\u00f5es. Depois, segundo conta a hist\u00f3ria, os l\u00edderes dessas empresas, percebendo a import\u00e2ncia de sua inven\u00e7\u00e3o, convidaram a Goldman Sachs e a Putman a participar do desenvolvimento. Desde ent\u00e3o, o protocolo recebeu seu nome atual.<\/p>\n<p>Inicialmente, o protocolo suportava apenas 17 tipos de mensagem e 103 tags. A ideia teve tanto sucesso que, em 1995, mais de 70% de todas as corretoras dos EUA usavam o protocolo. Isso se deveu \u00e0 economia de custos, a despesas menores e \u00e0 redu\u00e7\u00e3o de erros de negocia\u00e7\u00e3o. Afinal, o fator humano tem uma influ\u00eancia muito grande na negocia\u00e7\u00e3o por telefone. Com o tempo, o protocolo se expandiu significativamente. Foi adicionado suporte \u00e0 negocia\u00e7\u00e3o de derivativos, t\u00edtulos e moedas. A especifica\u00e7\u00e3o FIX atual descreve 168 mensagens e 7.868 tags e abrange todas as classes de valores mobili\u00e1rios. Em 1998, o desenvolvimento do protocolo FIX e de suas especifica\u00e7\u00f5es, bem como das tecnologias relacionadas, foi transferido para o cons\u00f3rcio FIX Protocol Ltd. Mais tarde, o cons\u00f3rcio foi renomeado para FIX Trading Community. Hoje, mais de 270 institui\u00e7\u00f5es financeiras l\u00edderes s\u00e3o membros da organiza\u00e7\u00e3o.<\/p>\n<h2><strong>Como funciona o protocolo FIX<\/strong><\/h2>\n<p><strong> <\/strong>O protocolo FIX funciona sobre TCP. Atualmente, o modelo do protocolo FIX \u00e9 definido em dois n\u00edveis \u2014 o n\u00edvel de sess\u00e3o ou de controle (cria\u00e7\u00e3o da sess\u00e3o, entrega dos dados) e o n\u00edvel de aplica\u00e7\u00e3o (descri\u00e7\u00e3o do conte\u00fado dos dados). A camada de controle \u00e9 respons\u00e1vel pelos par\u00e2metros b\u00e1sicos da sess\u00e3o FIX: abrir e fechar a conex\u00e3o e recuperar mensagens perdidas. A camada de aplica\u00e7\u00e3o controla o envio e o recebimento de dados: ordens, execu\u00e7\u00f5es, rejei\u00e7\u00f5es, dados de mercado e solicita\u00e7\u00f5es de informa\u00e7\u00f5es de status. O protocolo em si \u00e9 textual, ou seja, usa caracteres da tabela ASCII. Ele tem 2 representa\u00e7\u00f5es \u2014 a tradicional, no formato Tag=Value (Tag=Value ou Key=Value), e a representa\u00e7\u00e3o em XML (FIXML). A vers\u00e3o mais recente atualmente \u00e9 a 5.0, mas as mais comuns s\u00e3o as vers\u00f5es 4.2 e 4.4. Corretoras e bolsas diferentes podem usar vers\u00f5es diferentes do protocolo, \u00e0s vezes v\u00e1rias ao mesmo tempo.<\/p>\n<p>Sintaxe  Tag=Value<\/p>\n<p>A mensagem tem esta apar\u00eancia:<\/p>\n<p>8=FIX.4.2 | 9=178 | 35=D | 34=1234567 | 49=TESTER | 56=PHLX | 52=20071123-05:30:00.000 | 11=ATOMNOCCC9990900 | 54=1 | 167=FUT | 55=MSFT | 38=15 | 40=2 | 44=15 | 59=0 | 10=128 |<\/p>\n<p>Trata-se de uma sequ\u00eancia de texto composta por v\u00e1rias partes separadas por uma barra vertical. Essas partes s\u00e3o chamadas de campos. Por sua vez, cada parte consiste em um par chave-valor separado pelo sinal de igual. \u00c0 esquerda do sinal est\u00e1 a chave, \u00e0 direita est\u00e1 o valor. Na especifica\u00e7\u00e3o FIX, as chaves s\u00e3o chamadas de tags.  Uma tag \u00e9 sempre um n\u00famero inteiro positivo que, na pr\u00e1tica, aponta para o nome de um campo. Todos os nomes de campos e seus valores poss\u00edveis s\u00e3o descritos na documenta\u00e7\u00e3o de cada bolsa. A maioria desses campos \u00e9 padr\u00e3o e pode ser encontrada na documenta\u00e7\u00e3o de qualquer bolsa. Existem tamb\u00e9m campos personalizados, que s\u00e3o definidos e s\u00f3 t\u00eam significado dentro de uma bolsa espec\u00edfica. Enquanto a descri\u00e7\u00e3o dos campos padr\u00e3o pode ser encontrada na especifica\u00e7\u00e3o geral do protocolo FIX, os campos personalizados devem ser descritos na especifica\u00e7\u00e3o do protocolo FIX da bolsa. H\u00e1 tamb\u00e9m campos obrigat\u00f3rios, opcionais e condicionalmente obrigat\u00f3rios (obrigat\u00f3rios dependendo da presen\u00e7a de outros campos na mensagem). O s\u00edmbolo SoH (Start of Header) \u00e9 usado como separador entre os campos. Na verdade, ele n\u00e3o \u00e9 vis\u00edvel, por isso foi substitu\u00eddo por uma barra vertical neste exemplo. Na codifica\u00e7\u00e3o UNICODE, esse caractere tem o c\u00f3digo \u201c\\u0001\u201d.<\/p>\n<p>Por sua vez, al\u00e9m de ser dividida em campos, a mensagem se organiza em mais 3 componentes:<\/p>\n<ul>\n<li>Cabe\u00e7alho (Message Header)<\/li>\n<li>Corpo (Message Body)<\/li>\n<li>Trailer da mensagem (checksum)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>No FIXT.1.1\/FIX 5.0, o cabe\u00e7alho cont\u00e9m 5 campos obrigat\u00f3rios e um campo opcional: 8 (BeginString), 9 (BodyLength), 35 (MsgType), 49 (SenderCompID), 56 (TargetCompID) e 1128 (ApplVerID &#8211; se presente, deve estar na 6\u00aa posi\u00e7\u00e3o). H\u00e1 dois grupos principais de mensagens \u2014 administrativas e de aplica\u00e7\u00e3o. As mensagens administrativas tratam dos elementos b\u00e1sicos de uma sess\u00e3o FIX. Elas permitem iniciar e encerrar uma sess\u00e3o, bem como recuperar mensagens perdidas. As mensagens de aplica\u00e7\u00e3o est\u00e3o relacionadas ao envio e recebimento de informa\u00e7\u00f5es de negocia\u00e7\u00e3o, como o envio de uma ordem ou informa\u00e7\u00f5es sobre o status atual e a posterior execu\u00e7\u00e3o dessa ordem.<\/p>\n<p>Vamos analisar esta mensagem:<\/p>\n<ul>\n<li>8=FIX.4.2 &#8211; BeginString. A vers\u00e3o do protocolo utilizada. Indica ao programa do trader quais regras aplicar para interpretar os campos desta mensagem.<\/li>\n<li>9=178 &#8211; BodyLength. O comprimento do corpo da mensagem \u00e9 de 178 bytes, incluindo o cabe\u00e7alho. \u00c9 calculado como o n\u00famero de caracteres da tag 35 (inclusive) at\u00e9 a tag 10 (exclusive). O separador SoH tamb\u00e9m \u00e9 contado.<\/li>\n<li>35=D &#8211; MsgType. Tipo de mensagem. Neste caso, D significa o envio de uma ordem de negocia\u00e7\u00e3o. Por exemplo, um campo 35=V indica que est\u00e3o sendo solicitados dados de mercado sobre o instrumento.<\/li>\n<li>34=1234567 &#8211; MsgSeqNum. N\u00famero da mensagem. Se os MsgSeqNum das mensagens enviadas n\u00e3o diferirem em 1 na sequ\u00eancia, o servidor retorna um erro e n\u00e3o processa a mensagem.<\/li>\n<li>49=TESTER &#8211; SenderCompID. ID do remetente. Emitido pela bolsa. Pode ser um nome de usu\u00e1rio ou o nome de uma corretora, se a mensagem for enviada por uma corretora.<\/li>\n<li>56=PHLX &#8211; TargetCompID. ID do destinat\u00e1rio. Tamb\u00e9m emitido pela bolsa.<\/li>\n<li>52=20071123-05:30:00.000 &#8211; SendingTime. Data e hora do envio da mensagem.<\/li>\n<li>11=ATOMNOCCC9990900 &#8211; ClOrdID. N\u00famero da ordem no sistema de negocia\u00e7\u00e3o da corretora.<\/li>\n<li>54=1 &#8211; Side. A\u00e7\u00e3o de compra do ativo<\/li>\n<li>167=FUT &#8211; SecurityType. O ativo \u00e9 um contrato futuro<\/li>\n<li>55=MSFT &#8211; Symbol. A\u00e7\u00f5es da Microsoft. Os tickers podem variar de uma bolsa para outra.<\/li>\n<li>38=15 &#8211; OrderQty. O volume da opera\u00e7\u00e3o \u00e9 de 15 lotes ou contratos.<\/li>\n<li>40=2 &#8211; OrdType. Compra com pre\u00e7o limitado, ordem limitada.<\/li>\n<li>44=15 &#8211; Price. Pre\u00e7o de compra &#8211; 15<\/li>\n<li>59=0 &#8211; TimeInForce. A ordem \u00e9 v\u00e1lida at\u00e9 o fim do dia \u00fatil.<\/li>\n<li>10=128 &#8211; CheckSum. Checksum da mensagem. \u00c9 sempre o \u00faltimo campo da mensagem. \u00c9 calculado por uma f\u00f3rmula especial descrita na especifica\u00e7\u00e3o do protocolo. Obt\u00e9m-se somando os valores ASCII de todos os caracteres da mensagem, exceto os caracteres do pr\u00f3prio campo de checksum. Em seguida, o valor \u00e9 dividido por 256 e toma-se o resto da divis\u00e3o. O checksum deve ter sempre tr\u00eas caracteres. Assim, se o resto for 22, acrescenta-se um zero antes do n\u00famero &#8211; \u201c022\u201d.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Descrevendo esta mensagem de forma geral, trata-se de uma ordem de compra de futuros de a\u00e7\u00f5es da Microsoft na quantidade de 15 contratos ao pre\u00e7o limite de 15, com validade at\u00e9 o fim do dia.<\/p>\n<p>Para oferecer mais flexibilidade, o protocolo FIX cont\u00e9m os chamados campos definidos pelo usu\u00e1rio (User Defined Fields). Eles s\u00e3o usados para a troca de dados entre organiza\u00e7\u00f5es financeiras parceiras. Os n\u00fameros de tag de 5000 a 9999 foram reservados para campos personalizados, que podiam ser registrados no site oficial do padr\u00e3o. Esses n\u00fameros acabaram sendo todos usados, ent\u00e3o foi alocado um novo intervalo, de 20.000 a 39.999.<\/p>\n<h3><strong>Sintaxe FIXML<\/strong><\/h3>\n<p>O trabalho nessa sintaxe come\u00e7ou em 1998, e a primeira vers\u00e3o foi lan\u00e7ada em 1999. Ela \u00e9 semanticamente equivalente \u00e0s mensagens codificadas com tags, mas usa a tecnologia de an\u00e1lise XML. Uma nova ordem no formato FIXML fica assim:<\/p>\n<p>&lt;FIXML&gt;<\/p>\n<p>&lt;Order ClOrdID=&#8221;123456&#8243; Side=&#8221;2&#8243; TransactTm=&#8221;2001-09-11T09:30:47-05:00&#8243; OrderTyp=&#8221;2&#8243; Px=&#8221;93.25&#8243;<\/p>\n<p>Acct=&#8221;26522154&#8243;&gt;<\/p>\n<p>&lt;Instrmt Sym=&#8221;IBM&#8221; ID=&#8221;459200101&#8243; IDSrc=&#8221;1&#8243;\/&gt;<\/p>\n<p>&lt;OrdQty Qty Qty=&#8221;1000&#8243;\/&gt;<\/p>\n<p>&lt;\/Order&gt;<\/p>\n<p>&lt;\/FIXML&gt;<\/p>\n<p>No formato XML, um bloco espec\u00edfico de c\u00f3digo \u00e9 delimitado pela chamada tag (outra tag, n\u00e3o aquela usada pelo pr\u00f3prio protocolo). Por exemplo, existe a tag de n\u00edvel superior &lt;FIXML&gt;. Toda tag delimita um trecho espec\u00edfico de c\u00f3digo ou mensagem e o fecha com a mesma tag, mas com uma barra na borda esquerda interna. Assim, a tag mencionada fecha o bloco da seguinte forma: &lt;\/FIXML&gt;.<\/p>\n<p>Em seguida, dentro dessa tag, vemos a seguinte tag:<\/p>\n<p>&lt;Order ClOrdID=&#8221;123456&#8243; Side=&#8221;2&#8243; TransactTm=&#8221;2001-09-11T09:30:47-05:00&#8243; OrderTyp=&#8221;2&#8243; Px=&#8221;93.25&#8243;<\/p>\n<p>Acct=&#8221;26522154&#8243;&gt;.<\/p>\n<p>Aqui vemos o nome da tag &#8211; Order, e dentro dos sinais h\u00e1 informa\u00e7\u00f5es adicionais (os mesmos campos, pares chave=valor, como na sintaxe Tag=Value).<\/p>\n<p>Neste caso:<\/p>\n<p>ClOrdID=&#8221;123456&#8243; &#8211; id da ordem no sistema de negocia\u00e7\u00e3o da corretora<\/p>\n<p>Side=&#8221;2&#8243; &#8211; ordem de venda<\/p>\n<p>TransactTm=&#8221;2001-09-11T09:30:47-05:00&#8243; data e hora da opera\u00e7\u00e3o<\/p>\n<p>OrdTyp=&#8221;2&#8243; &#8211; tipo de ordem &#8211; ordem limitada<\/p>\n<p>Px=&#8221;93.25&#8243; &#8211; o pre\u00e7o do ativo para compra ou venda<\/p>\n<p>Acct=&#8221;26522154&#8243; &#8211; n\u00famero da conta do usu\u00e1rio<\/p>\n<p>Assim como a tag XML anterior, esta tag XML \u00e9 fechada com uma barra &#8211; &lt;\/Order&gt;<\/p>\n<p>O conte\u00fado entre a tag XML de abertura e a de fechamento \u00e9 chamado de corpo da tag. Assim, a tag Order \u00e9 o corpo da tag FIXML. Dentro da tag Order, como corpo, h\u00e1 mais duas tags: Instrmt e OrdQty.<\/p>\n<p>Pr\u00f3xima tag:<\/p>\n<p>&lt;Instrmt Sym=&#8221;IBM&#8221; ID=&#8221;459200101&#8243; IDSrc=&#8221;1&#8243;\/&gt;<\/p>\n<p>Aqui vemos que ela \u00e9 de abertura e de fechamento ao mesmo tempo: no final h\u00e1 uma barra. Isso acontece quando a tag n\u00e3o tem corpo e n\u00e3o faz sentido criar uma tag de fechamento separada. Esta tag cont\u00e9m informa\u00e7\u00f5es sobre o ticker do instrumento, seu id etc.<\/p>\n<p>Na tag &lt;OrdQty Qty=&#8221;1000&#8243;\/&gt; vemos informa\u00e7\u00f5es sobre o volume da opera\u00e7\u00e3o; ela tamb\u00e9m \u00e9 uma tag de fechamento sem corpo.<\/p>\n<p>&nbsp;<\/p>\n<p>O FIXML costuma ser usado em aplica\u00e7\u00f5es de back-office e compensa\u00e7\u00e3o, e n\u00e3o para negocia\u00e7\u00e3o.<\/p>\n<h3><strong>Camada de sess\u00e3o FIX<\/strong><\/h3>\n<p><strong> <\/strong>Os exemplos anteriores descreveram a camada de aplica\u00e7\u00e3o. A especifica\u00e7\u00e3o define tipos especiais de campos respons\u00e1veis pelo n\u00edvel de sess\u00e3o entre o cliente e a bolsa:<\/p>\n<ul>\n<li>35=A &#8211; Logon. Usado para autenticar o usu\u00e1rio no sistema da bolsa ao se conectar. Esta mensagem \u00e9 enviada primeiro e sinaliza \u00e0 bolsa o in\u00edcio da sess\u00e3o de dados. Em caso de envio bem-sucedido, chega uma mensagem de resposta. Se a conex\u00e3o falhar, um erro \u00e9 retornado.<\/li>\n<li>35=5 &#8211; Logout. Esta mensagem \u00e9 usada para encerrar a autoriza\u00e7\u00e3o no servidor e fechar a sess\u00e3o de negocia\u00e7\u00e3o com a bolsa.<\/li>\n<li>35=0 &#8211; Heartbeat. Batimento card\u00edaco, ou pulso. Esta mensagem \u00e9 trocada entre os dois lados da conex\u00e3o e indica que ambos est\u00e3o prontos para receber e enviar mensagens. A frequ\u00eancia do heartbeat \u00e9 definida na primeira mensagem de Logon.<\/li>\n<li>35=1 &#8211; Test Request. Esta \u00e9 uma mensagem de teste, enviada quando a contraparte n\u00e3o enviou uma mensagem de heartbeat dentro de um per\u00edodo definido. A sess\u00e3o ser\u00e1 encerrada se esta mensagem ficar sem resposta.<\/li>\n<li>35=2 &#8211; Resend Request. Esta mensagem \u00e9 uma solicita\u00e7\u00e3o de reenvio caso alguma informa\u00e7\u00e3o tenha sido perdida.<\/li>\n<li>35=3 &#8211; Reject, ou rejei\u00e7\u00e3o. Enviada pela contraparte se a mensagem anterior estiver malformada ou n\u00e3o puder ser executada.<\/li>\n<li>35=4 &#8211; Sequence Reset, ou redefini\u00e7\u00e3o da sequ\u00eancia de envio de mensagens. Pode ter duas formas.<\/li>\n<\/ul>\n<p>&#8211; 123=&#8221;Y&#8221; &#8211; H\u00e1 uma tag GapFillFlag com o valor especificado. Indica uma solicita\u00e7\u00e3o para ignorar mensagens administrativas caso estejam sendo reenviadas.<\/p>\n<p>&#8211; usada para zerar o contador MsgSeqNum<\/p>\n<h3><strong>Implementa\u00e7\u00e3o do FAST como aprimoramento da FIX API<\/strong><\/h3>\n<p>Grandes volumes de dados FIX sofriam atrasos significativos no processamento, o que dificultava aos traders desenvolver estrat\u00e9gias de negocia\u00e7\u00e3o eficazes. Logo ap\u00f3s a identifica\u00e7\u00e3o desse problema, foram dados os primeiros passos para corrigir a situa\u00e7\u00e3o. O objetivo do protocolo FAST era permitir a transmiss\u00e3o de grandes volumes de dados, evitando atrasos na obten\u00e7\u00e3o das informa\u00e7\u00f5es. FAST (FIX Adapted for STreaming, ou seja, FIX adaptado para streaming) \u00e9 um padr\u00e3o tecnol\u00f3gico desenvolvido pela FIX Protocol Ltd. especificamente para otimizar a representa\u00e7\u00e3o dos dados na rede. Trata-se essencialmente de um formato bin\u00e1rio do protocolo FIX, que permite transferir grandes volumes de informa\u00e7\u00f5es sobre opera\u00e7\u00f5es e sobre o ambiente de mercado de forma compacta. Isso possibilita seu uso em sistemas de negocia\u00e7\u00e3o de alta velocidade que exigem baixos atrasos de transmiss\u00e3o. O Fast foi desenvolvido no California Institute of Technology, em Pasadena. Atualmente, a vers\u00e3o mais recente \u00e9 a FAST 1.2. A aplica\u00e7\u00e3o mais comum \u00e9 a conex\u00e3o direta \u00e0s bolsas, sem passar pelo sistema de negocia\u00e7\u00e3o das corretoras. O protocolo FAST \u00e9 o protocolo padronizado de distribui\u00e7\u00e3o de informa\u00e7\u00f5es de mercado e o mais popular do mundo. Antes, todo o tr\u00e1fego da internet era baseado no Transmission Control Protocol (TCP), desenvolvido nos anos setenta do s\u00e9culo passado. O TCP \u00e9 uma conex\u00e3o por socket que exige confirma\u00e7\u00e3o da entrega dos pacotes. Ele divide arquivos e mensagens grandes em pacotes de 1500 bytes, cada um contendo os endere\u00e7os de origem e destino.  O remetente aguarda a confirma\u00e7\u00e3o de que o pacote enviado foi entregue com sucesso e s\u00f3 ent\u00e3o envia o pr\u00f3ximo. Se a entrega falhar ou o sinal de entrega n\u00e3o chegar dentro do tempo limite especificado, o pacote \u00e9 reenviado, mas a uma taxa menor. E isso pode continuar indefinidamente, com a velocidade caindo exponencialmente, at\u00e9 chegar o sinal de entrega bem-sucedida. Fica claro que at\u00e9 pequenos problemas na linha podem afetar seriamente a taxa de dados, j\u00e1 que cada envio malsucedido \u00e9 uma perda de preciosos milissegundos. Por isso, o FAST introduziu uma solu\u00e7\u00e3o alternativa: o sistema monitora constantemente os pacotes e as mensagens recebidas quanto \u00e0 entrega correta, para detectar imediatamente problemas na linha e definir o pr\u00f3ximo envio a uma taxa est\u00e1vel, ainda que ligeiramente reduzida. Essa abordagem elimina, na maioria dos casos, a necessidade de reenviar pacotes, pois n\u00e3o se perde tempo sondando a queda de desempenho. Em algumas bolsas, a interface de conex\u00e3o \u00e9 implementada por dois tipos de conex\u00e3o: UDP e TCP. Enviar todos os dados pelo socket UDP n\u00e3o faz sentido, pois esse tipo de conex\u00e3o n\u00e3o exige confirma\u00e7\u00e3o de entrega, e os pacotes simplesmente desapareceriam sem que nenhuma das partes soubesse. Por isso, a maior parte dos dados \u00e9 transmitida pelo socket UDP, e apenas os conjuntos de dados n\u00e3o entregues s\u00e3o transmitidos por TCP. Em mercados de movimenta\u00e7\u00e3o r\u00e1pida, o atraso associado \u00e0 retransmiss\u00e3o costuma ser indesej\u00e1vel, levando a oportunidades perdidas ou a maus neg\u00f3cios.<\/p>\n<h3><strong>Como o FAST funciona<\/strong><\/h3>\n<p>Como j\u00e1 sabemos, o protocolo FIX \u00e9 uma sequ\u00eancia de campos que, por sua vez, consistem em pares chave=valor. Al\u00e9m de o formato de texto ser essencialmente redundante, \u00e9 poss\u00edvel notar que cada mensagem tem elementos duplicados, como nomes de campos e caracteres \u201c=\u201d. O FAST elimina a redund\u00e2ncia usando um template que descreve toda a estrutura da mensagem. Esse m\u00e9todo \u00e9 chamado de marca\u00e7\u00e3o impl\u00edcita (implicit tagging). Como as tags FIX nos dados transmitidos ficam apenas \u201cimpl\u00edcitas\u201d, a sintaxe Tag = Value muda da seguinte forma:<\/p>\n<ul>\n<li>Um template descreve um conjunto estruturado de campos com seus operadores;<\/li>\n<li>A sequ\u00eancia de campos na mensagem corresponde \u00e0 sequ\u00eancia de tags no template;<\/li>\n<li>Somente as altera\u00e7\u00f5es nos dados s\u00e3o enviadas na mensagem.<\/li>\n<\/ul>\n<p>Cada valor de tag tem um comprimento fixo em bytes. Conhecendo o comprimento de um campo espec\u00edfico e a ordem em que os campos s\u00e3o colocados na mensagem, n\u00e3o \u00e9 dif\u00edcil identificar os valores desses campos. Por isso, os templates permitem transmitir diretamente apenas os pr\u00f3prios dados, sem precisar transferir caracteres redundantes. Essa codifica\u00e7\u00e3o \u00e9 chamada de simple binary encoding, ou SBE. Assim, a codifica\u00e7\u00e3o e a decodifica\u00e7\u00e3o das mensagens t\u00eam lat\u00eancia muito menor do que nos protocolos de caracteres, pois n\u00e3o \u00e9 necess\u00e1rio converter os dados para um formato que os computadores possam usar. Como os campos correspondentes ficam em posi\u00e7\u00e3o fixa na mensagem, \u00e9 muito mais f\u00e1cil acessar o valor desejado. Basta conhecer seu deslocamento em rela\u00e7\u00e3o ao in\u00edcio da mensagem e o comprimento do seu valor. Ao contr\u00e1rio do formato de tags e do FIXML, uma mensagem SBE n\u00e3o \u00e9 autodescritiva. Apenas os dados, com um cabe\u00e7alho m\u00ednimo que identifica o template que rege a mensagem, s\u00e3o enviados pela rede. Os metadados (templates) que descrevem a estrutura da mensagem s\u00e3o trocados fora do canal principal de comunica\u00e7\u00e3o. Depois de receber os templates necess\u00e1rios, o servidor de negocia\u00e7\u00e3o sabe em que formato enviar os dados ao cliente no \u00e2mbito dessa sess\u00e3o conectada. Assim, antes de transferir os dados, os sistemas combinam entre si como v\u00e3o se comunicar dali em diante. O esquema de mensagens normalmente \u00e9 enviado em formato XML. Ele pode conter qualquer n\u00famero de templates de mensagem. O template descreve os campos que comp\u00f5em a mensagem. Al\u00e9m disso, o esquema fornece uma lista de tipos de dados simples e complexos que podem ser reutilizados em qualquer n\u00famero de campos.<\/p>\n<p>Implementa\u00e7\u00f5es abertas do protocolo FIX para diferentes linguagens<\/p>\n<p>Java &#8211; QuickFIX\/J &#8211; http:\/\/www.quickfixj.org\/<\/p>\n<p>.NET\/C# &#8211; QuickFIX\/N &#8211; http:\/\/quickfixn.org\/<\/p>\n<p>Parser on-line gratuito de mensagens FIX &#8211; FIX Parser &#8211; https:\/\/fix.aprics.net\/<\/p>\n<p>Implementa\u00e7\u00f5es abertas do FAST para diferentes linguagens<\/p>\n<p>Para C &#8211; implementa\u00e7\u00e3o de refer\u00eancia da FPL &#8211; www.fixprotocol.org\/fastdownload<\/p>\n<p>Para C# &#8211; implementa\u00e7\u00e3o de refer\u00eancia da FPL &#8211; www.fixprotocol.org\/fastdownload<\/p>\n<p>Para Java &#8211; OpenFAST &#8211; www.openfast.org<\/p>\n<p>www.sourceforge.net\/projects\/openfastdotnet\/<\/p>\n<p>Para C++ &#8211; QuickFAST &#8211; www.quickfast.org<\/p>\n<p>Para Golang &#8211; goFAST &#8211; www.github.com\/co11ter\/goFAST<\/p>\n<p>Outras codifica\u00e7\u00f5es do protocolo FIX<\/p>\n<p>A comunidade FIX tamb\u00e9m desenvolveu mapeamentos padr\u00e3o entre o protocolo FIX e outros protocolos de serializa\u00e7\u00e3o de dados, como:<\/p>\n<ul>\n<li>JSON<\/li>\n<li>Google (Protocol buffers)<\/li>\n<\/ul>\n<p>|ASN.1<\/p>\n<h2><strong>\u00c1reas de aplica\u00e7\u00e3o do protocolo FIX\/FAST<\/strong><\/h2>\n<p>Em geral, a sigla aparece justamente com as duas palavras juntas. \u00c9 usado para obter diversas informa\u00e7\u00f5es financeiras das bolsas: tabelas de instrumentos financeiros (pre\u00e7os, volumes etc.), cota\u00e7\u00f5es, todas as opera\u00e7\u00f5es, \u00edndices, bem como informa\u00e7\u00f5es sobre todas as ordens an\u00f4nimas. O conjunto de dados obtidos pode variar conforme a bolsa. Os principais usu\u00e1rios do FIX\/FAST s\u00e3o:<\/p>\n<ul>\n<li>Traders privados, para negocia\u00e7\u00e3o [<a href=\"\/fix-api-forex-trading\/\">FIX API Forex Trading<\/a>]<\/li>\n<li>Programadores que criam produtos baseados nessa tecnologia, como <a href=\"https:\/\/bjftradinggroup.com\/product\/fix-api-trader-software\/\">plataformas de trading via FIX API<\/a>, conectores para diferentes bolsas, sistemas de negocia\u00e7\u00e3o, sistemas de coleta de dados e estat\u00edsticas.<\/li>\n<li>Troca de informa\u00e7\u00f5es entre bolsas<\/li>\n<li>Obten\u00e7\u00e3o dos dados mais atualizados por diversas ag\u00eancias de informa\u00e7\u00e3o<\/li>\n<\/ul>\n<p>O uso mais comum \u00e9 por traders de alta frequ\u00eancia, para obter vantagem sobre outros participantes do mercado por meio do Direct Market Access (DMA). Esse protocolo pode ser incorporado ao ecossistema de negocia\u00e7\u00e3o por bolsas de valores, bancos e corretoras forex. As exchanges de criptomoedas, segundo dados amplamente conhecidos, n\u00e3o usam essa tecnologia. Historicamente, essas exchanges usam principalmente conex\u00f5es WebSocket para obter informa\u00e7\u00f5es de mercado e conex\u00f5es HTTP REST API para realizar opera\u00e7\u00f5es de negocia\u00e7\u00e3o, oferecendo conex\u00f5es diretas aos servidores de negocia\u00e7\u00e3o dos traders. Se a tecnologia WebSocket ainda \u00e9 compar\u00e1vel em velocidade a uma conex\u00e3o TCP, a HTTP REST API perde muito. Conhe\u00e7a a <a href=\"\/sharptrader-easyfix-api\/\">SharpTrader Easy FIX API<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o A hist\u00f3ria da negocia\u00e7\u00e3o nas bolsas de valores mudou drasticamente desde o seu in\u00edcio. As primeiras bolsas surgiram h\u00e1 cerca de quatrocentos anos. Naquela \u00e9poca, os neg\u00f3cios eram fechados verbalmente, e as regras de negocia\u00e7\u00e3o estavam apenas come\u00e7ando a se formar. Mas o mundo n\u00e3o ficou parado e, acompanhando os tempos, as bolsas adotaram todas as ferramentas t\u00e9cnicas que estavam dispon\u00edveis em cada \u00e9poca. Assim, em meados do s\u00e9culo XIX, as ordens de negocia\u00e7\u00e3o&hellip;<\/p>\n","protected":false},"author":1,"featured_media":7236,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[221],"tags":[],"class_list":["post-7230","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-forex-trading"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.6 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Como o protocolo FIX funciona<\/title>\n<meta name=\"description\" content=\"Como o protocolo FIX funciona no trading: estrutura de mensagens, sess\u00f5es, por que \u00e9 baseado em texto e como possibilita execu\u00e7\u00e3o de baixa lat\u00eancia. Guia t\u00e9cnico claro.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bjftradinggroup.com\/pt\/how-fix-protocol-works\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como o protocolo FIX funciona\" \/>\n<meta property=\"og:description\" content=\"Como o protocolo FIX funciona no trading: estrutura de mensagens, sess\u00f5es, por que \u00e9 baseado em texto e como possibilita execu\u00e7\u00e3o de baixa lat\u00eancia. Guia t\u00e9cnico claro.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bjftradinggroup.com\/pt\/how-fix-protocol-works\/\" \/>\n<meta property=\"og:site_name\" content=\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/bjftradinggroup\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-07T14:43:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-25T16:16:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2022\/03\/fix-api-protocol-fast.png\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"702\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Boris Fesenko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Boris Fesenko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/\"},\"author\":{\"name\":\"Boris Fesenko\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\"},\"headline\":\"Como funciona o protocolo FIX\",\"datePublished\":\"2022-03-07T14:43:51+00:00\",\"dateModified\":\"2026-09-25T16:16:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/\"},\"wordCount\":23728,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/fix-api-protocol-fast.png\",\"articleSection\":[\"Forex trading\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/#respond\"]}],\"name\":\"Como o protocolo FIX funciona\",\"description\":\"Como o protocolo FIX funciona no trading: estrutura de mensagens, sess\u00f5es, por que \u00e9 baseado em texto e como possibilita execu\u00e7\u00e3o de baixa lat\u00eancia. Guia t\u00e9cnico claro.\",\"publisher\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/\",\"name\":\"Como o protocolo FIX funciona\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/fix-api-protocol-fast.png\",\"datePublished\":\"2022-03-07T14:43:51+00:00\",\"dateModified\":\"2026-09-25T16:16:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\"},\"description\":\"Como o protocolo FIX funciona no trading: estrutura de mensagens, sess\u00f5es, por que \u00e9 baseado em texto e como possibilita execu\u00e7\u00e3o de baixa lat\u00eancia. Guia t\u00e9cnico claro.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/fix-api-protocol-fast.png\",\"contentUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/fix-api-protocol-fast.png\",\"width\":900,\"height\":702},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/how-fix-protocol-works\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bjftradinggroup.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How FIX protocol works\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"name\":\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\",\"description\":\"FX Software pioneer since 2000\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bjftradinggroup.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\",\"name\":\"Boris Fesenko\",\"pronouns\":\"He\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g\",\"caption\":\"Boris Fesenko\"},\"description\":\"Born in 1971 in Ukraine, I graduated from East Ukrainian State University and later completed postgraduate studies at the same university, where I also wrote my PhD dissertation. In 2006, I moved to Canada. I am the founder of BJF Trading Group and specialize in the development and implementation of advanced arbitrage trading systems for the Forex and cryptocurrency markets, as well as other trading solutions.\",\"sameAs\":[\"https:\\\/\\\/bjftradinggroup.com\\\/about-boris-fesenko\",\"https:\\\/\\\/www.facebook.com\\\/bjftradinggroup\",\"https:\\\/\\\/www.instagram.com\\\/bjftradinggroup\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/bjftradinggroup\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCapi2ct0Iv7axHJ93wN_bsQ\"],\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/pt\\\/author\\\/boris\\\/\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#organization\",\"name\":\"BJF Trading Group Inc.\",\"legalName\":\"BJF Trading Group Inc.\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/logo.png\",\"width\":512,\"height\":512},\"foundingDate\":\"2000\",\"founder\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/about-boris-fesenko\\\/#person\"},\"address\":{\"@type\":\"PostalAddress\",\"addressRegion\":\"Ontario\",\"addressCountry\":\"CA\"},\"contactPoint\":[{\"@type\":\"ContactPoint\",\"contactType\":\"customer support\",\"email\":\"support@bjftradinggroup.com\",\"availableLanguage\":[\"English\",\"German\",\"Japanese\",\"Korean\",\"Spanish\",\"Portuguese\",\"Arabic\",\"Indonesian\",\"Vietnamese\"]}],\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/bjftradinggroup\",\"https:\\\/\\\/twitter.com\\\/BjfGroup\",\"https:\\\/\\\/www.youtube.com\\\/@bjftradinggroup\",\"https:\\\/\\\/t.me\\\/bjftradinggroup\",\"https:\\\/\\\/instagram.com\\\/bjftradinggroup\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/bjf-trading-group\\\/\"],\"knowsAbout\":[\"Forex arbitrage\",\"Cryptocurrency arbitrage\",\"Latency arbitrage\",\"News trading\",\"FIX API trading\",\"High-frequency trading\",\"Lock arbitrage\",\"Hedge arbitrage\",\"Pair trading\",\"Algorithmic trading software\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como o protocolo FIX funciona","description":"Como o protocolo FIX funciona no trading: estrutura de mensagens, sess\u00f5es, por que \u00e9 baseado em texto e como possibilita execu\u00e7\u00e3o de baixa lat\u00eancia. Guia t\u00e9cnico claro.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bjftradinggroup.com\/pt\/how-fix-protocol-works\/","og_locale":"pt_PT","og_type":"article","og_title":"Como o protocolo FIX funciona","og_description":"Como o protocolo FIX funciona no trading: estrutura de mensagens, sess\u00f5es, por que \u00e9 baseado em texto e como possibilita execu\u00e7\u00e3o de baixa lat\u00eancia. Guia t\u00e9cnico claro.","og_url":"https:\/\/bjftradinggroup.com\/pt\/how-fix-protocol-works\/","og_site_name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","article_author":"https:\/\/www.facebook.com\/bjftradinggroup","article_published_time":"2022-03-07T14:43:51+00:00","article_modified_time":"2026-09-25T16:16:39+00:00","og_image":[{"width":900,"height":702,"url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2022\/03\/fix-api-protocol-fast.png","type":"image\/png"}],"author":"Boris Fesenko","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Boris Fesenko","Tempo estimado de leitura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/#article","isPartOf":{"@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/"},"author":{"name":"Boris Fesenko","@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9"},"headline":"Como funciona o protocolo FIX","datePublished":"2022-03-07T14:43:51+00:00","dateModified":"2026-09-25T16:16:39+00:00","mainEntityOfPage":{"@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/"},"wordCount":23728,"commentCount":0,"image":{"@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/#primaryimage"},"thumbnailUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2022\/03\/fix-api-protocol-fast.png","articleSection":["Forex trading"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/#respond"]}],"name":"Como o protocolo FIX funciona","description":"Como o protocolo FIX funciona no trading: estrutura de mensagens, sess\u00f5es, por que \u00e9 baseado em texto e como possibilita execu\u00e7\u00e3o de baixa lat\u00eancia. Guia t\u00e9cnico claro.","publisher":{"@id":"https:\/\/bjftradinggroup.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/","url":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/","name":"Como o protocolo FIX funciona","isPartOf":{"@id":"https:\/\/bjftradinggroup.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/#primaryimage"},"image":{"@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/#primaryimage"},"thumbnailUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2022\/03\/fix-api-protocol-fast.png","datePublished":"2022-03-07T14:43:51+00:00","dateModified":"2026-09-25T16:16:39+00:00","author":{"@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9"},"description":"Como o protocolo FIX funciona no trading: estrutura de mensagens, sess\u00f5es, por que \u00e9 baseado em texto e como possibilita execu\u00e7\u00e3o de baixa lat\u00eancia. Guia t\u00e9cnico claro.","breadcrumb":{"@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/#primaryimage","url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2022\/03\/fix-api-protocol-fast.png","contentUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2022\/03\/fix-api-protocol-fast.png","width":900,"height":702},{"@type":"BreadcrumbList","@id":"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bjftradinggroup.com\/"},{"@type":"ListItem","position":2,"name":"How FIX protocol works"}]},{"@type":"WebSite","@id":"https:\/\/bjftradinggroup.com\/#website","url":"https:\/\/bjftradinggroup.com\/","name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","description":"FX Software pioneer since 2000","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bjftradinggroup.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9","name":"Boris Fesenko","pronouns":"He","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g","caption":"Boris Fesenko"},"description":"Born in 1971 in Ukraine, I graduated from East Ukrainian State University and later completed postgraduate studies at the same university, where I also wrote my PhD dissertation. In 2006, I moved to Canada. I am the founder of BJF Trading Group and specialize in the development and implementation of advanced arbitrage trading systems for the Forex and cryptocurrency markets, as well as other trading solutions.","sameAs":["https:\/\/bjftradinggroup.com\/about-boris-fesenko","https:\/\/www.facebook.com\/bjftradinggroup","https:\/\/www.instagram.com\/bjftradinggroup\/","https:\/\/www.linkedin.com\/in\/bjftradinggroup\/","https:\/\/www.youtube.com\/channel\/UCapi2ct0Iv7axHJ93wN_bsQ"],"url":"https:\/\/bjftradinggroup.com\/pt\/author\/boris\/"},{"@type":"Organization","@id":"https:\/\/bjftradinggroup.com\/#organization","name":"BJF Trading Group Inc.","legalName":"BJF Trading Group Inc.","url":"https:\/\/bjftradinggroup.com\/","logo":{"@type":"ImageObject","url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/logo.png","width":512,"height":512},"foundingDate":"2000","founder":{"@id":"https:\/\/bjftradinggroup.com\/about-boris-fesenko\/#person"},"address":{"@type":"PostalAddress","addressRegion":"Ontario","addressCountry":"CA"},"contactPoint":[{"@type":"ContactPoint","contactType":"customer support","email":"support@bjftradinggroup.com","availableLanguage":["English","German","Japanese","Korean","Spanish","Portuguese","Arabic","Indonesian","Vietnamese"]}],"sameAs":["https:\/\/www.facebook.com\/bjftradinggroup","https:\/\/twitter.com\/BjfGroup","https:\/\/www.youtube.com\/@bjftradinggroup","https:\/\/t.me\/bjftradinggroup","https:\/\/instagram.com\/bjftradinggroup","https:\/\/www.linkedin.com\/company\/bjf-trading-group\/"],"knowsAbout":["Forex arbitrage","Cryptocurrency arbitrage","Latency arbitrage","News trading","FIX API trading","High-frequency trading","Lock arbitrage","Hedge arbitrage","Pair trading","Algorithmic trading software"]}]}},"_links":{"self":[{"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/posts\/7230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/comments?post=7230"}],"version-history":[{"count":18,"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/posts\/7230\/revisions"}],"predecessor-version":[{"id":13935,"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/posts\/7230\/revisions\/13935"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/media\/7236"}],"wp:attachment":[{"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/media?parent=7230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/categories?post=7230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/pt\/wp-json\/wp\/v2\/tags?post=7230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}