FIX-Protokoll

FIX-Protokoll
Bestandteile des FIX-Protokolls

Das FIX-Protokoll (Financial Information eXchange) ist ein offener Standard zum Austausch von Informationen, welcher von Banken, Brokern, Börsen und sonstigen Dienstleistern geschaffen wurde.

Durch die Verwendung eines gemeinsamen Standards wird der Austausch von Informationen zwischen den Anwendungen der verschiedenen Hersteller erheblich vereinfacht.

Die FIX-Schnittstelle entstand im Jahr 1990 durch die Zusammenarbeit von Banken, Brokern, Börsen und Dienstleistern und hat sich als offene Schnittstelle schnell durchgesetzt.

Inhaltsverzeichnis

Standardisierung

Einige Unternehmen und Organisationen haben sich im Jahr 1998 in einer Non-Profit-Organisation, der FIX Protocol Limited zusammengeschlossen, um gemeinsam die Entwicklung des FIX-Protokoll-Standards voranzutreiben. Heutzutage umfasst diese Organisation mehr als 170 Unternehmen.

Die neueste Spezifikation ist derzeit Version 5.0, dennoch sind in der Praxis auch ältere Versionen durchaus noch in Gebrauch.

Implementierung

Das FIX-Protokoll umfasst eine Schnittstelle, diese kann von Software-Herstellern ohne Lizenzierungskosten implementiert werden.

Das FIX-Dictionary enthält den verwendeten Sprachschatz. Alle FIX-Nachrichten sind nach gewissen Regeln und Strukturen aufgebaut, die dort festgelegt sind.

In der Regel wird nur ein Teil des Sprachschatzes implementiert, der Umfang der Implementierung wird zwischen den Kommunikationspartnern (Handelspartnern) abgestimmt und beim hauseigenen Software-Entwickler in Auftrag gegeben. Bei Bedarf kann der Sprachschatz (das FIX-Dictionary) auch ohne großen Aufwand erweitert werden, in der Regel wird man jedoch auf den standardisierten Sprachschatz zurückgreifen.

Durch die Standardisierung der Schnittstelle können später, nach Vereinbarung zwischen den Handelspartnern, mit geringem Aufwand Änderungen und Erweiterungen vorgenommen werden.

Auch ist der Einsatz von Standard-Software möglich, diese kann dann bei Bedarf mit geringem Aufwand an die Anforderungen des Handelspartners angepasst werden.

FIX Datenformat

FIX Nachrichten sind auf der Basis eines ASCII Bytestroms definiert. Jedes Telegramm besteht aus einer Reihe von Schlüsselnummer-Wert Paaren, die einzelnen Wertpaare werden durch ein Byte mit Wert 1 (ASCII SOH) getrennt. Die Schlüsselnummern (Tag (Informatik)) sind in ASCII-Demimaldarstellung kodiert, durch ein Gleichheitszeichen (ASCII 61) getrennt folgt der Wert. Numerische Werte werden ebenfalls in ASCII-Dezimaldarstellung kodiert während ASCII-Zeichenketten direkt verwendet werden. Für jeden Basisdatentyp gibt es eine vorgeschriebene ASCII-Kodierung für die Wertdarstellung, die die üblichen Darstellungen für die Terminalformatierung (sprintf/sscanf) übernimmt.

Je nach Version des FIX-Protokoll sind eine Reihe von Wertpaaren vorgeschrieben - jedes Telegramm beginnt mit einem Kopfblock, in dem das erste Wertpaar die Versionsnummer nennt ("8=4.2") und ein Wertpaar den Nachrichtentyp kodiert ("35=8"). Aus dem Nachrichtentyp folgern entsprechend der FIX-Version nachfolgend zwingende oder optionale Wertpaare, die im mittleren Nachrichtblock dem Kopfblock folgen. Das Telegram wird mit einem Schlussblock (Trailer) mit geforderten Wertpaaren beendet, dass als letztes Wertpaar eine Prüfsumme enthält ("10=128").

Ein Gesamttelegramm für einen "Execution Report" (Bestätigung der Transaktionen z.B. des Aktienkaufs) sieht so aus:

  • 8=FIX.4.2 | 9=178 | 35=8 | 49=PHLX | 56=PERS | 52=20071123-05:30:00.000 | 11=ATOMNOCCC9990900 | 20=3 | 150=E | 39=E | 55=MSFT | 167=CS | 54=1 | 38=15 | 40=2 | 44=15 | 58=PHLX EQUITY TESTING | 59=0 | 47=C | 32=0 | 31=0 | 151=15 | 14=0 | 6=0 | 10=128 |

Behelfsweise wurde hier "|" für das Trennzeichen SOH eingesetzt. In FIX4 erfordert der Kopfblock drei Wertpaare - BeginString(8), BodyLength(9) und MsgType(35). In FIX5 besteht der Kopfblock aus fünf zwingenden Wertpaaren plus einem optionalen Wertpaar - BeginString(8), BodyLength(9), MsgType(35), SenderCompID(49), TargetCompID(56) und optional ApplVerID(1128). Die BodyLength errechnet sich aus der Zahl der Bytes von einschließlich MsgType(35) bis ausschließlich Prüfsumme(10) wobei die SOH Trenner mitzählen. Die Prüfsumme wird über ebendiesen Block gebildet, in dem die Bytes aufsummiert werden und der Byte-Rest (modulo 255) genommen wird.

Bei dem Versand von FIX-Telegrammen per UDP muss der Kopfblock am Paketanfang beginnen, Telegramme dürfen nicht über mehrere UDP Pakete gesplittet werden.

FAST Datenformat

Die Datendarstellung per ASCII mit der Auszeichnung jedes Werts mit einer Schlüsselnummer ist für einen bandbreitenintensiven Datenstrom sehr aufwändig, etwa die Darstellung aller Marktdaten an einem liquiden Handelsplatz. Daher wurde eine alternative byte-orientierte binäre Kodierung definiert als "FIX Adapted for STreaming", kurz FAST (gleichbedeutend mit englisch "fast" für "schnell").

Bei FAST ist zur Interpretation des Datenstroms auf der Empfängerseite neben dem FIX-Verzeichnis zusätzlich ein Template (Schablonenbeschreibung) notwendig, die von der Sendeseite (dem Handelsplatz) veröffentlicht wird. Die wesentliche Optimierung besteht darin, dass im Template ein Großteil der Schlüsselnummern mit einem Grundwert (Default) belegt wird, sodass diese nicht mehr in jedem Telegramm mitgesendet werden müssen (z.B. die FIX-Version) und statt Namenswerte nur Indexwerte einer Liste (Enum) übersandt werden. Die Zahlenwerte (auch Indexwerte) werden binär kodiert. Das Template definiert dann eine zwingende Anordnung von Feldern, sodass die Schlüsselnummern (Tags) nicht mehr mitgesendet werden müssen, und schließlich es kann für die Wertkodierung angeben, dass nur noch die Differenz zum Wert des vorhergehenden Schlüsselpaars kodiert wird.

Durchgesetzt hat sich, das FAST Template als XML-Text zu veröffentlichen, wobei das XML-Schema (FIXML) durch das FIX Standardisierungsgremium definiert ist. FIXML geht auf eine Initiative der CME vom Juni 2002 zurück, die finale Version für FIX 4.4 wurde im Januar 2004 veröffentlicht.[1]

Einzelnachweise

  1. FIXML 4.4 Schema Overview Presentation 20040109 (16. August 2004). Abgerufen am 15. November 2011.

Weblink


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • FIX — bezeichnet: eine Figur des deutschen Comic Magazins Fix und Foxi eine Figur des DDR Comic Fix und Fax das Beheben eines Funktionsfehlers bei der Entwicklung und dem Einsatz von Software, siehe Bugfix die englische Bezeichnung radio fix für… …   Deutsch Wikipedia

  • Fix — bezeichnet: eine Figur des deutschen Comic Magazins Fix und Foxi eine Figur des DDR Comic Fix und Fax das Beheben eines Funktionsfehlers bei der Entwicklung und dem Einsatz von Software, siehe Bugfix die englische Bezeichnung radio fix für… …   Deutsch Wikipedia

  • OMX — AB Rechtsform Aktiebolag (AB) Gründung 2003 Sitz Stockholm Schweden  Schw …   Deutsch Wikipedia

  • Lotus Notes — Entwickler IBM Aktuelle Version 8.5.3 (Stand: 4. Oktober 2011) Betriebssystem Plattformunabhängig Kategorie Groupware Lizenz …   Deutsch Wikipedia

  • Universal Serial Bus — Der Universal Serial Bus (USB) [ˌjuːnɪˈvɜːsl ˈsɪɹiəl bʌs] ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden (Hot… …   Deutsch Wikipedia

  • EHCI — Der Universal Serial Bus (USB) [ˌjuːnɪˈvɜːsl ˈsɪɹiəl bʌs] ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden (Hot… …   Deutsch Wikipedia

  • Enhanced Host Controller Interface — Der Universal Serial Bus (USB) [ˌjuːnɪˈvɜːsl ˈsɪɹiəl bʌs] ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden (Hot… …   Deutsch Wikipedia

  • UHCI — Der Universal Serial Bus (USB) [ˌjuːnɪˈvɜːsl ˈsɪɹiəl bʌs] ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden (Hot… …   Deutsch Wikipedia

  • USB — Der Universal Serial Bus (USB) [ˌjuːnɪˈvɜːsl ˈsɪɹiəl bʌs] ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden (Hot… …   Deutsch Wikipedia

  • USB-Hub — Der Universal Serial Bus (USB) [ˌjuːnɪˈvɜːsl ˈsɪɹiəl bʌs] ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden (Hot… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”