2013-08-12 22 views
7

Ho un processo tra il client lato vendita e uno scambio che esegue conversioni di valuta. Ci sono due adattatori FIX: uno che riceve i messaggi dal lato della vendita e che serve i messaggi al processo. E un altro motore FIX che prende i messaggi dal processo e li invia in FIX allo scambio.Numeri sequenza interna FIX

Ogni messaggio FIX ha un numero di sequenza unificato dal tag 34. Tuttavia, sembra che ciascuno di questi motori FIX abbia un numero di SEQUENZA INCOMING (quale motore FIX si aspetta per la controparte) e un NUMERO DI SEQUENZA IN USCITA (quale FIX il motore sta inviando alla controparte).

Questi numeri di sequenza interni sono indipendenti dal tag 34?

In questa configurazione, i numeri di sequenza interni di FIX ENGINE sul lato vendita vengono reimpostati su 1,1 al momento dell'accesso. I numeri di sequenza interni di FIX ENGINE allo scambio non vengono ripristinati su 1,1.

Immagino che questo sia dovuto al fatto che potrebbero esserci degli ordini GTC che riposano allo scambio e che i due motori potrebbero "affondare" su questi ordini a riposo su un accesso riuscito.

Tuttavia, non capisco la relazione tra tag 34 e numeri di sequenza interni.

risposta

16

Qualsiasi applicazione FIX deve mantenere due serie di numeri di sequenza per sessione: l'entrata e l'uscita. Questi numeri di sequenza sono indipendenti l'uno dall'altro.

  • Ogni volta che l'applicazione invia un messaggio, incrementa il numero di sequenza in uscita e metterlo in tag 34.
  • Ogni volta che l'applicazione riceve un messaggio, incrementa il numero in entrata previsto e si assicura che il messaggio in arrivo del il tag 34 lo corrisponde.

Se si dispone di due sessioni FIX, ciascuna sessione traccia una coppia di sequenze.

Spesso un provider desidera mantenere i numeri di sequenza tra le disconnessioni. Questo è particolarmente importante per le connessioni di gestione degli ordini, dove, per esempio, si desidera assolutamente conoscere i riempimenti di ordini che si sono persi se la connessione si è interrotta per qualche motivo.

Questo non è così importante per i feed di dati di mercato. Se la connessione si interrompesse per un minuto, non ti importa quale fosse il prezzo mentre eri giù - devi solo sapere l'ultimo prezzo ora. Pertanto, la sequenza si reimposta all'accesso.

Tuttavia, non capisco la relazione tra tag 34 e numeri di sequenza interni.

Questa domanda sembra specifica per il motore. Non hai specificato il motore che stai utilizzando.

Ma non dovrebbe importare molto. Ogni messaggio che invii dovrebbe incrementare 34; la memoria interna è usata per questo. Ogni messaggio che ricevi dovrebbe avere 34 essere 1 più alto dell'ultimo; ancora una volta, la memoria interna è mantenuta in modo che l'applicazione può tenere traccia di questo.

Se si sta utilizzando uno qualsiasi dei motori QuickFix, allora si dovrebbe non devono preoccuparsi di questo. QF gestisce tutto questo per te. (Se pensi di aver bisogno di pasticciare con il numero di sequenza in QuickFIX, probabilmente hai torto. È una domanda principiante.Basta impostare correttamente la configurazione e il motore farà il resto.)

+0

grazie uomo - Scoprirò quale motore di correzione stiamo usando. – capser

+0

grazie per la spiegazione chiara e dettagliata! – Sherlock