Saturday, January 27, 2018

Textual description of firstImageUrl

Finanzinformationen eXchange - Wikipedia


Das Protokoll Financial Information eXchange ( FIX ) ist ein elektronisches Kommunikationsprotokoll, das 1992 für den internationalen Echtzeit-Informationsaustausch initiiert wurde im Zusammenhang mit den Wertpapiertransaktionen und -märkten. Allein mit der Billionen von Dollar, die jährlich an der NASDAQ gehandelt werden, investieren Finanzdienstleister massiv in die Optimierung des elektronischen Handels und den direkten Marktzugang (DMA), um ihre Geschwindigkeit an den Finanzmärkten zu steigern. Um die Bereitstellung von Handelsanwendungen zu verwalten und die Latenz immer niedriger zu halten, ist ein Verständnis des FIX-Protokolls erforderlich.

History [ edit ]

Die Spezifikation des FIX-Protokolls wurde 1992 von Robert "Bob" Lamoureux und Chris Morstatt verfasst, um die elektronische Kommunikation von Aktienhandelsdaten zwischen Fidelity Investments und Salomon zu ermöglichen Brüder. FIX befasste sich zunächst mit Informationen zwischen Broker-Dealern und ihren institutionellen Kunden. Zu dieser Zeit wurden diese Informationen mündlich über das Telefon übermittelt. Fidelity erkannte, dass Informationen von ihren Broker-Händlern an den falschen Händler weitergeleitet werden konnten oder einfach verloren gingen, wenn die Parteien ihre Telefone auflegten. Diese Kommunikation sollte durch maschinenlesbare Daten ersetzt werden, die dann von Händlern geteilt, analysiert, bearbeitet und gespeichert werden können. Zum Beispiel rufen Broker-Dealer mit einem Interest of Interest (IOI) an, um einen Aktienblock zu kaufen oder zu verkaufen. Die FIX-Initiative hat neue Nachrichten erstellt, z. B. das IOI.

Laut der FIX-Handelsgemeinschaft ist FIX der De-facto-Messaging-Standard für Pre-Trade- und Trade-Kommunikation auf den globalen Aktienmärkten geworden und expandiert in den Post-Trade-Bereich, um die direkte Verarbeitung sowie die direkte Verarbeitung zu unterstützen weitere Expansion in Devisen-, Renten- und Derivatemärkte. [1]

[ edit ]

Die FIX-Handelsgemeinschaft ist eine gemeinnützige, branchenorientierte Standardisierungsorganisation, die sich mit dem Unternehmen befassen will und regulatorische Probleme, die sich auf den weltweiten Handel mit Multi-Asset-Systemen auswirken, durch die verstärkte Verwendung von Standards, einschließlich der Messaging-Sprache FIX Protocol, für operative Effizienz, erhöhte Transparenz und geringere Kosten und Risiken für alle Marktteilnehmer. [2]

FIX ist weit verbreitet sowohl von der Verkaufsseite (Institute) als auch von der Kaufseite (Broker / Dealer) der Finanzmärkte genutzt. Zu seinen Nutzern zählen Investmentfonds, Investmentbanken, Broker, Börsen und ECNs. Eine ausführliche Liste der wichtigsten FIX-Benutzer finden Sie unter FIX Trading Community Organization.

FIX ist das elektronische Standardprotokoll für die Kommunikation vor dem Handel und die Ausführung des Handels geworden. Obwohl es hauptsächlich für Aktientransaktionen im Front-Office-Bereich eingesetzt wird, sind auch Anleihen-, Derivate- und FX-Transaktionen möglich. Man könnte sagen, während SWIFT der Standard für Back Office-Nachrichten ist, ist FIX der Standard für Front-Office-Nachrichten. Heute erweitert die Mitgliedschaft bei FIX Protocol Ltd. jedoch FIX um die Block Trade Allocation und andere Phasen des Handelsprozesses in jedem Markt für praktisch jede Anlageklasse.

Technische Spezifikationen [ edit ]

Ursprünglich war der FIX-Standard monolithisch, einschließlich Anwendungsschicht-Semantik, Nachrichtencodierung und Sitzungsschicht in einer einzigen technischen Spezifikation. Es blieb bis FIX Version 4.2 [3] monolithisch. Danach wurden die Nachrichtenverschlüsselungen und die Spezifikationen für die Sitzungsschicht in getrennte Dokumente aufgeteilt, und schließlich entwickelte sich FIX zu einer Familie verwandter technischer Standards [4].

Nachrichtenverschlüsselung [ edit ]

Die Nachrichtenverschlüsselung, im Open Systems Interconnection-Modell (OSI-Modell) als Presentation Layer bezeichnet, ist für das Drahtformat der Nachrichten verantwortlich.

Tagvalue-Codierung (classic FIX) [ edit ]

Die ursprüngliche FIX-Nachrichtencodierung wird als Tagvalue-Codierung bezeichnet. Jedes Feld besteht aus einem eindeutigen numerischen Tag und einem Wert. Das Tag identifiziert das Feld semantisch. Daher sind Nachrichten selbsterklärend. Die Tagvalue-Codierung erfolgt zeichenbasiert und verwendet ASCII-Codes.

FIX-Tagvalue-Nachrichtenformat [ edit ]

Die Nachrichtenfelder werden mit dem Zeichen ASCII 01 getrennt. Sie bestehen aus einem Header, einem Body und einem Trailer.

Bis zu FIX.4.4 enthielt der Header drei Felder: 8 ( BeginString ), 9 ( BodyLength ) und 35 ( MsgType ).

Ab FIXT.1.1 / FIX.5.0 enthält die Kopfzeile fünf Pflichtfelder und ein optionales Feld: 8 ( BeginString ), 9 ( BodyLength ), 35 [ MsgType ), 49 ( SenderCompID ), 56 ( TargetCompID ) und 1128 ( ApplVerID - falls vorhanden, muss sich die 6. Stelle befinden).

Der Inhalt im Nachrichtentext wird durch den im Header definierten Nachrichtentyp (Tag 35, MsgType ) angegeben.

Das letzte Feld der Nachricht ist Tag 10, FIX Message Checksum. Sie wird immer als dreistellige Zahl ausgedrückt (z. B. 10 = 002 ).

Header + Body + Trailer: FIX Content

Beispiel einer FIX-Nachricht: Ausführungsbericht (Pipe-Zeichen werden zur Darstellung von SOH-Zeichen verwendet)

 8 = FIX.4.2 | 9 = 176 | 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 |  

In der obigen FIX-Nachricht ist Körperlänge 9 korrekt, und die Prüfsumme 10 wurde mithilfe der von QuickFIX verfügbaren Quelle, einer Open-Source-FIX-Implementierung, überprüft.

Body [ edit ]

FIX-Nachrichten werden aus einer Reihe von Feldern gebildet. Jedes Feld ist eine Tag-Wert-Paarung, die durch ein Trennzeichen SOH (0x01) vom nächsten Feld getrennt wird. Das Tag ist eine Ganzzahl, die die Bedeutung des Feldes angibt. Der Wert ist ein Array von Bytes, die eine bestimmte Bedeutung für das bestimmte Tag haben (z. B. Tag 48 ist securityID, eine Zeichenfolge, die die Sicherheit identifiziert; Tag 22 ist IDSource, eine Ganzzahl, die die verwendete Bezeichnerklasse angibt). Die Werte können im Klartext oder als reine Binärwerte codiert sein (in diesem Fall ist dem Wert ein Längenfeld vorangestellt). Das FIX-Protokoll definiert Bedeutungen für die meisten Tags, lässt jedoch eine Reihe von Tags für den privaten Gebrauch zwischen den beteiligten Parteien übrig.

Das FIX-Protokoll definiert auch Feldsätze, die eine bestimmte Nachricht bilden. In den Feldern sind einige obligatorisch und andere optional. Die Reihenfolge der Felder innerhalb der Nachricht ist im Allgemeinen unwichtig, jedoch wird vor sich wiederholenden Gruppen eine Zählung vorangestellt, und verschlüsselten Feldern wird deren Länge vorangestellt. Die Botschaft ist in drei Abschnitte unterteilt: Kopf, Körper und Schwanz. Felder müssen innerhalb des korrekten Abschnitts bleiben und innerhalb jedes Abschnitts kann die Position wichtig sein, da Felder als Trennzeichen fungieren können, die verhindern, dass eine Nachricht in die nächste einläuft. Das letzte Feld in einer beliebigen FIX-Nachricht ist Tag 10 (Prüfsumme).

Es gibt zwei Hauptgruppen von Nachrichten: Administrator und Anwendung. Die Admin-Nachrichten behandeln die Grundlagen einer FIX-Sitzung. Sie ermöglichen das Starten und Beenden einer Sitzung sowie die Wiederherstellung entgangener Nachrichten. Die Anwendungsnachrichten befassen sich mit dem Senden und Empfangen von handelsbezogenen Informationen wie einer Bestellanforderung oder Informationen zum aktuellen Zustand und der nachfolgenden Ausführung dieser Bestellung.

[ edit ]
Körperlänge [ edit ]

Die Körperlänge ist die Anzahl der Zeichen, beginnend mit Tag 35 (eingeschlossen) bis zum Tag 10 (ausgeschlossen). SOH-Trennzeichen zählen zur Körperlänge.
z Beispiel: (SOH wurde durch '|' ersetzt) ​​

 8 = FIX.4.2 | 9 = 65 | 35 = A | 49 = SERVER | 56 = KUNDEN | 34 = 177 | 52 = 20090107-18: 15: 16 | 98 = 0 | 108 = 30 | 10 = 062 |      0 + 0 + 5 + 10 + 10 + 7 + 21 + 5 + 7 + 0 = 65 

Hat eine Körperlänge von 65.
Das SOH-Trennzeichen am Ende eines Tags = Value gehört zum Tag.

Trailer: Checksum [ edit ]

Die Prüfsumme einer FIX-Nachricht ist immer das letzte Feld in der Nachricht. Es besteht aus drei Zeichen und hat das Tag 10. [5] Es wird angegeben, indem der ASCII-Wert aller Zeichen in der Nachricht mit Ausnahme derjenigen des Prüfsummenfelds selbst summiert wird und Modulo 256 über die resultierende Summation ausgeführt wird. [6] In der obigen Nachricht beispielsweise ergibt die Summe aller ASCII-Werte (einschließlich des SOH-Zeichens, das in der ASCII-Tabelle den Wert 1 hat) 4158. Die Ausführung der Modulo-Operation ergibt den Wert 62. Da setzt sich die Prüfsumme zusammen drei Zeichen, wird 062 verwendet.

FIXML [ edit ]

FIXML [7] ist ein XML-Schema für FIX-Nachrichten. Es ist semantisch äquivalent zu mit Tags versehenen Nachrichten, nutzt jedoch die XML-Parser-Technologie. FIXML wird im Allgemeinen für Back-Office- und Clearing-Anwendungen anstelle des Handels verwendet.

Einfache binäre Kodierung (SBE) [ edit ]

Einfache binäre Kodierung [8] definiert ein Drahtformat unter Verwendung primitiver Datentypen, die in Computersystemen nativ sind. Die Kodierung und Dekodierung von Nachrichten ist daher wesentlich geringer als bei zeichenbasierten Protokollen, da keine Übersetzung erforderlich ist, um Daten in ein Format zu bringen, das von Computern verwendet werden kann. Abgesehen von Latenzvorteilen ist die Leistung deterministischer, da SBE-Nachrichten durch Vorlagen eingeschränkt werden und Datenelemente mit fester Länge bevorzugt werden. Eine weitere Konsequenz ist, dass sich Felder in der Regel an einer festen Position befinden, sodass Nachrichtenfilter und Router nicht die gesamte Nachricht knacken müssen, um auf Schlüsselfelder zuzugreifen.

SBE wurde von der FIX High Performance Working Group zur Unterstützung des Hochleistungshandels entwickelt. Die Tagvalue-Codierung wurde als nicht mehr für den Zweck geeignet erachtet, da sie zeichenbasiert und nicht binär ist und ihre Felder und Nachrichten mit variabler Länge zu einer nicht deterministischen Leistung führen.

Im Gegensatz zu Tagvalue und FIXML ist eine SBE-Nachricht nicht selbstbeschreibend. Auf dem Draht werden nur Daten mit einem minimalen Header gesendet, um die Vorlage zu identifizieren, die eine Nachricht steuert. Metadaten, die ein Nachrichtenlayout beschreiben, werden außerhalb des Bandes zwischen Peers ausgetauscht.

Die FIX Trading Community veröffentlicht ein XML-Schema für SBE-Nachrichtenschemas. Ein Nachrichtenschema kann eine beliebige Anzahl von Nachrichtenvorlagen enthalten. Eine Vorlage beschreibt die Felder, aus denen eine Nachricht besteht. Darüber hinaus enthält ein Schema eine Liste einfacher und zusammengesetzter Datentypen, die von einer beliebigen Anzahl von Feldern wiederverwendet werden können.

Andere FIX-Kodierungen [ edit ]

Die FIX-Handelsgemeinschaft hat auch Standardzuordnungen zwischen FIX und anderen Nachrichtenprotokollen entwickelt, darunter:

Sitzungsprotokolle [ edit ]

Die Sitzungsschicht ist für den Nachrichtenaustausch einschließlich Checkpoint-Wiederherstellungsmechanismen verantwortlich.

FIX Transport (FIXT) [ edit ]

Das ursprüngliche FIX-Sitzungsprotokoll hatte keinen eigenen Namen, da es Teil einer monolithischen Spezifikation war, die die Anwendungsschicht-Semantik und die Codierung der Anwendung abdeckt Gut. Ab FIX Version 5.0 wurde jedoch mit der Einführung von FIXT [9] die Session-Schicht als eigenständige Spezifikation abgespalten. FIXT war weitgehend identisch mit der ursprünglichen unbenannten Sitzungsschicht in Version 4.x, bot jedoch eine bedeutende Neuerung - es bot einen Mechanismus zum Mischen von Versionen der FIX-Anwendungsschicht über eine gemeinsame Sitzungsversion. Die aktuelle FIXT-Version ist 1.1.

Theoretisch ist FIXT transportunabhängig. Es wird jedoch normalerweise über TCP (Transmission Control Protocol) eingesetzt.

FIXT ist ein Punkt-zu-Punkt-Protokoll. Es garantiert die Nachrichtenübermittlung in beide Richtungen. Nachrichten, die in jede Richtung gesendet werden, tragen eine Nachrichtennummer im Nachrichtenkopf. Wenn ein Kommunikationsfehler vorliegt, kann ein Peer die erneute Übertragung von entgangenen Nachrichten anfordern. Die Nachrichtenübermittlung wird auch im Falle einer Unterbrechung und späteren Wiederherstellung einer Sitzung unterstützt.

Um den Sitzungsaufbau und die garantierte Übermittlung zu implementieren, definieren FIXT und classic FIX 4.x die folgenden Sitzungsnachrichtentypen:

  • Heartbeat
  • Testanforderung
  • Erneut sendenAnfrage
  • Abweisen
  • SequenceReset
  • Logout
  • Logon
  • Logon
  • XMLnonFIX

FIX Performance Session Layer (FIXP)

edit ]

FIXP [10] wurde von der FIX High Performance Working Group [11] entwickelt, um die Anforderungen des Hochleistungshandels zu erfüllen. Das Hauptbedürfnis besteht in der Kodierung und Dekodierung von Nachrichten mit niedriger Latenz und der Kontrolle der Zustellungsgarantien.

Um eine niedrige Latenzzeit bereitzustellen, werden binäre Nachrichtenkodierungen sowohl für die Sitzungsebene als auch für Anwendungsnachrichten unterstützt. Das tatsächliche Drahtformat wird in der FIXP-Spezifikation abstrahiert, sodass Benutzer eine FIX-Kodierung ihrer Wahl auswählen können, sofern sich Peers auf ein zu verwendendes Protokoll einigen. Frühe Entwicklung hat Simple Binary Encoding verwendet.

FIXP deckt sowohl Point-to-Point- als auch Multicast-Anwendungsfälle mit allgemeinen Grundelementen ab.

Wenn eine Punkt-zu-Punkt-Sitzung eingerichtet ist, verhandeln Gleichgesinnte Liefergarantien unter den folgenden Optionen:

  • Wiederherstellbar: Exakt einmalige Nachrichtenübermittlung. Wenn Lücken entdeckt werden, können versäumte Nachrichten durch erneute Übertragung wiederhergestellt werden.
  • Idempotent: Zustellung bei höchstens einmal. Wenn Lücken entdeckt werden, wird der Absender benachrichtigt, die Wiederherstellung wird jedoch von der Anwendung gesteuert, sofern dies überhaupt erfolgt.
  • Unsequenz: Liefert keine Garantie. Diese Wahl ist angemessen, wenn keine Garantien erforderlich sind oder wenn die Wiederherstellung auf der Anwendungsschicht oder über einen anderen Kommunikationskanal erfolgt.
  • Keine: In einer Richtung einer Sitzung sollten keine Anwendungsnachrichten gesendet werden.

Liefergarantien können asymmetrisch sein . Beispielsweise kann ein Händler Aufträge über einen idempotenten Fluss eingeben, während Ausführungen über einen wiederherstellbaren Fluss zurückgegeben werden. In schnelllebigen Märkten ist die Verzögerung bei der Weiterverbreitung oft unerwünscht, was zu verpassten Gelegenheiten oder schlechten Trades führt.

Diagrammdarstellung des FIX-Systems [ edit ]

Nachfolgend ist ein Diagramm dargestellt, wie FIX-Nachrichten zwischen Buyside / Customer und Sellside / Supplier aussehen. [12] [12]

 Finanzinformation eXchange System Connectivity Diagram.svg

Neueste Entwicklungen im FIX-Protokoll [ edit ]

Die neueste Version des FIX-Protokolls implementiert "Transport Independence", indem es die Freigabe zulässt Mehrere Versionen von Anwendungsnachrichten, die über eine einzige Version der Transport Independent FIX-Sitzung (FIXT.1.1 und höher) übertragen werden sollen.

Die Transportunabhängigkeit ebnet auch den Weg für Transportprotokolle wie Nachrichtenwarteschlangen und Webdienste, die anstelle von herkömmlichem FIX über TCP verwendet werden.

FIX unterstützt jetzt den algorithmischen Handel mithilfe der FIX-Algorithmic Trading Definition Language (FIXatdl).

FIX Protocol Limited hat das FAST-Protokoll veröffentlicht, das für FIX Adapted for Streaming steht. FAST ist ein binäres Protokoll und wird hauptsächlich zum Senden von Multicast-Marktdaten über UDP-Verbindungen verwendet.

Testing Tools [ edit ]

Viele Unternehmen bieten FIX-Testprodukte und -Dienstleistungen an:

  • Sensiple PhiFIX [13]
  • Lefinsys Testamatiq [14]
  • B2Bit FACTS [194590174] [194590174]
  • [16]
  • Esprow ETP Studio für FIX [17]
  • Exactpro Test Tools [18]
  • FIX Flyer Ignition [19]
  • GDS Fizzer - FIX Fuzzing Framework [20]
  • Gamma Three Trading FIXSIM [21]
  • OnixS FIX Analyzer
  • Wipro FIX Examen [23]

Siehe auch [ bearbeiten ]

Externe Links [ bearbeiten ]

  • FIX Protocol Ltd. - Diese offizielle Website der FIX Trading Community enthält FIX-Standards
  • FIXimate FIX Dictionary FIX Legacy-Versionen FIX Latest
  • FIXwiki - ein Wiki für FIX. Ein Referenzwerkzeug für die Spezifikation wie FIXimate, aber weil es ein Wiki ist, erlaubt es auch Benutzernotizen und Feedback.
  • Esprow FIX Tools - ein Online-Browser für FIX-Wörterbücher für alle FIX-Versionen, einschließlich eines FIX-Nachrichtenparsers
  • Full FIX-Protokollwörterbuch für Onixs - schnelles und einfach zu verwendendes Zeitwörterbuch des FIX-Protokolls (Versionen 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0.SP1, 5.0.SP2).
  • FixSpec FIX 4.0 FIX 4.2 FIX 4.2 FIX 4.4 FIX 4.4 FIX 5.0 FIX 5.0 SP1 FIX 5.0 SP2 FIXT
  • Online-Ressource mit Verwendungshinweisen zu Rapid Addition - Online-FIX-Ressource mit detaillierten Verwendungshinweisen (Versionen 4.0, 4.2, 5.0 SP2).
  • FIXGlobal - Kostenloses globales Handelsjournal und offizielles Magazin des FIX-Protokolls.
  • Was ist das FIX-Protokoll? - Nichttechnischer Überblick über das FIX-Protokoll.

No comments:

Post a Comment