[go: up one dir, main page]

DE112009002716B4 - Verbessertes automatisches Handelssystem - Google Patents

Verbessertes automatisches Handelssystem Download PDF

Info

Publication number
DE112009002716B4
DE112009002716B4 DE112009002716.4T DE112009002716T DE112009002716B4 DE 112009002716 B4 DE112009002716 B4 DE 112009002716B4 DE 112009002716 T DE112009002716 T DE 112009002716T DE 112009002716 B4 DE112009002716 B4 DE 112009002716B4
Authority
DE
Germany
Prior art keywords
messages
communication interface
message
engine
sequence number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112009002716.4T
Other languages
English (en)
Other versions
DE112009002716T5 (de
Inventor
Matthew Chapman
John Matthew Hurd
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Psonic Pty Ltd Au
Original Assignee
Psonic Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2008905788A external-priority patent/AU2008905788A0/en
Application filed by Psonic Pty Ltd filed Critical Psonic Pty Ltd
Publication of DE112009002716T5 publication Critical patent/DE112009002716T5/de
Application granted granted Critical
Publication of DE112009002716B4 publication Critical patent/DE112009002716B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/323Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Technology Law (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Eine Kommunikationsschnittstelle (1) für ein automatisches Handelssystem, wobei die Kommunikationsschnittstelle (1) Folgendes umfasst:- eine dedizierte hardwaretechnische Schnittstelle der physikalischen Schicht (12), welche zur Kommunikation von Nachrichten zu und von Kunden durch ein externes Netzwerk (2) ausgelegt ist, wobei die Schnittstelle der physikalischen Schicht (12) dazu ausgelegt ist, Nachrichten direkt von dem externen Netzwerk (2) zu empfangen, wobei jede der empfangenen Nachrichten eine Mehrzahl von Nachrichtenfeldern umfasst, und- eine Parsing- und Validierungs-Engine (10), die in dedizierter Hardware (1) implementiert und dazu ausgelegt ist, einige der in jeder der Nachrichten enthaltenen Nachrichtenfelder synchron mit dem Empfang der entsprechenden Nachrichtenfelder zu verifizieren, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, die Nachrichtenfelder unabhängig von dem Empfangen der gesamten Nachricht zu verifizieren, indem sie die Nachrichtenfelder mit einer Referenz vergleicht während sie empfangen werden.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf Verbesserungen in automatischen Handelssystemen für Markthandelsaktivitäten und insbesondere, jedoch nicht ausschließlich, auf eine Kommunikationsschnittstelle für ein automatisches Handelssystem.
  • Hintergrund der Erfindung
  • Automatische Handelssysteme (Automated Trading Systems - ATSs) sind bereits bekannt, welche das Echtzeit-Matching von Käufern und Verkäufern in einem Markt erleichtern, wo ein oder mehrere börsennotierte Instrumente (z. B. Aktien, Wertpapiere usw.) gehandelt werden.
  • Bei den aktuellen ATSs kommt ein elektronisches Kommunikationsnetzwerk (Electronic Communication Network - ECN) zum Einsatz. Das ECN implementiert ein Central Limited Order Book (CLOB), welches eine Standard-Doppelauktion zwischen Verkäufern, die ein Finanzinstrument zu einem bestimmten Preis verkaufen wollen, und Käufern, die ein oder mehrere Finanzinstrumente zu einem bestimmten Preis kaufen wollen, umfasst.
  • Auf den wichtigsten Handelsmärkten, wie beispielsweise Nasdaq, ASX und anderen, sind leistungsstarke Computersysteme erforderlich, um die zahlreichen Handelsaktivitäten zu implementieren, die während der Handelszeit durchgeführt werden.
  • Dabei ist die Geschwindigkeit der Computersysteme von großer Bedeutung. Es gibt zwei wichtige Faktoren bei der Durchführung einer Handelsaktivität, das sind Preis-Priorität und Zeit-Priorität. Preis-Priorität bedeutet, dass beim Handel die Person die Priorität erhält, die zum besten Preis verkaufen will oder die zum besten Preis kaufen will. Zeit-Priorität bedeutet, dass in dem Fall, dass es zwei oder mehr Verkäufer bzw. zwei oder mehr Käufer mit demselben Preis gibt, der Handel mit dem ersten der Käufer oder Verkäufer durchgeführt wird, dessen Auftrag das CLOB zuerst erreicht und zuerst ausgeführt wird. Deshalb ist die Verarbeitungsgeschwindigkeit des ECN von entscheidender Bedeutung.
  • Kunden des ECN erteilen elektronisch Aufträge zum Kaufen oder Verkaufen einer bestimmten Menge eines börsennotierten Instruments, unter Angabe bestimmter Bedingungen wie z. B. eines maximalen/minimalen Preises. Diese Aufträge werden in einer Warteschlange platziert. Zunächst wird der Kunde darüber benachrichtigt, dass sein Auftrag bestätigt wurde.
  • Werden ein Käufer und ein Verkäufer gefunden, die miteinander gematcht werden können, weil deren Preisbedingungen übereinstimmen, erfolgt eine Handelsaktivität. Käufer und Verkäufer werden beide benachrichtigt, dass ihre Aufträge erfolgreich ausgeführt wurden.
  • Eine anonymisiere Zusammenfassung der Auftragspreise und Handelsaktivitäten („Marktdaten“) wird auch an andere interessierte Kunden verbreitet.
  • Zu den Kennziffern der ECN-Leistung zählen Latenz und Durchsatz. Die Latenz charakterisiert die Reaktionszeit der Börse. Diese kann in vielen unterschiedlichen Kontexten gemessen werden: von der Erteilung eines Auftrags bis zum Empfang einer Anfangsbestätigung, von der Erteilung eines Auftrags bis zum Empfang einer Ausführungsbenachrichtigung oder von der Erteilung eines Auftrags bis zu dessen Verbreitung in den Marktdaten. Der Durchsatz bezeichnet die maximale Anzahl von Aufträgen oder Handelsaktivitäten, die vom ECN pro Sekunde unterstützt werden können.
  • Viele Kunden von ECNs wünschen sich eine niedrige Latenz und einen hohen Durchsatz, so dass sie häufig und vertrauensvoll handeln können, weniger Unsicherheit in Bezug auf den Status ihrer Aufträge erleben und in der Lage sind, schnell auf sich ändernde Bedingungen zu reagieren.
  • Aus dem Stand der Technik bekannte automatische Handelssysteme sind den Druckschriften US 2005/0267836 A1 , US 2008/0243675 A1 , US 2007/0294157 A1 und US 7,251,629 B1 zu entnehmen. Eine Kommunikationsschnittstelle mit speziell optimierter Architektur zur Beschleunigung des Kommunikationsflusses ist in Druckschrift US 5,115,432 A gezeigt.
  • Die aktuellen ECNs werden als Software auf Architekturen mit Allzweck-Prozessoren implementiert, und typischerweise auch mit Allzweck-Betriebssystemen. Das vereinfacht zwar die Implementierung, führt aber dazu, dass diese Lösungen hohe Latenzen aufweisen - bestenfalls in der Größenordnung von Hunderten von Mikrosekunden und typischerweise in der Größenordnung von Millisekunden. Wird ein Allzweck-Betriebssystem genutzt, wächst damit auch die Wahrscheinlichkeit, dass ein feindlicher Angreifer den Computer beeinträchtigt, auf dem die ECN-Software ausgeführt wird; aus diesem Grund wird oft ein zusätzliches Firewall-System zwischen den Kunden und dem ECN-System eingefügt, was die Latenz weiter erhöht.
  • Zusammenfassung der Erfindung
  • Gemäß einem ersten Aspekt stellt die vorliegende Erfindung eine Kommunikationsschnittstelle für ein automatisches Handelssystem bereit, wobei die Kommunikationsschnittstelle für die Kommunikation von Nachrichten zu und von einem externen Netzwerk ausgelegt ist, wobei die Kommunikationsschnittstelle zum externen Netzwerk weisende dedizierte Hardware umfasst, die dazu ausgelegt ist, Nachrichten direkt vom externen Netzwerk zu empfangen, und eine in dedizierter Hardware implementierte Parsing-Engine umfasst, die dazu ausgelegt ist, die Nachrichten zu verarbeiten, die zur Übertragung an eine Matching-Engine im automatischen Handelssystem vorgesehen sind.
  • In einer Ausführungsform handelt es sich bei der dedizierten Hardware um einen PLD (Programmable Logic Device - programmierbarer Logikbaustein), der für die Verarbeitung der Finanztransaktionsnachrichten programmiert ist. In einer Ausführungsform wird die dedizierte Hardware durch einen PGA (Programmable Gate Array - programmierbare Logikanordnung) implementiert, wobei es sich in einer Ausführungsform um einen FPGA (Field Programmable Gate Array - frei programmierbare Logikanordnung) handelt.
  • In einer Ausführungsform kann durch den Einsatz dedizierter Hardware vorteilhafterweise die Verarbeitung eingehender und abgehender Nachrichten mit Hardware-Geschwindigkeiten erfolgen, was die Gesamtgeschwindigkeit des automatischen Handelssystems erhöht, wobei es sich in einer Implementierung um ein elektronisches Kommunikationsnetzwerk (Electronic Communications Network - ECN) handelt.
  • In einer Ausführungsform wird durch die dedizierte Hardware eine Parsing- und Validierungs-Engine implementiert, die dazu ausgelegt ist, eingehende Nachrichten (z. B. Aufträge von Brokern) in ein Anforderungsformat zu konvertieren, das in einer Ausführungsform einfacher ist und für die Matching-Engine geeignet ist.
  • In einer Ausführungsform ist die dedizierte Hardware dazu ausgelegt, eine Benachrichtigungs-Engine zu implementieren, die dem Empfang von Transaktionsinformationen von der Matching-Engine und dem Zusammenstellen entsprechender Nachrichten dient, welche in das Netzwerk ausgesendet werden sollen.
  • In einer Ausführungsform ist die dedizierte Hardware dazu ausgelegt, eine Sicherheitsfunktion zu implementieren, und sie ist dazu ausgelegt zu überprüfen, ob die eingehenden Nachrichten authentisch sind. In einer Ausführungsform ist die Sicherheitsfunktion durch die Implementierung einer Prüfsummen-Überprüfung der eingehenden Nachrichten implementiert, welche börsenspezifische Protokolle verwenden.
  • Die Verwendung dedizierter Hardware-Prozesse ermöglicht vorteilhafterweise einen sehr hohen Datendurchsatz bei geringer Latenz. Außerdem kann die Schnittstellenanbindung von Hardware wie PLDs an Netzwerke relativ einfach bewerkstelligt werden. Durch die Platzierung des PLD als der dem Kunden zugewandter Bestandteil eines ECN kann eine Kundenkommunikation mit hoher Bandbreite und geringer Latenz realisiert werden. Außerdem ist in einer Ausführungsform, da ein PLD eine sehr minimale und verifizierbare Netzwerkimplementierung aufweist, die Angriffsfläche für potenzielle Angreifer minimal, was die Funktion einer Firewall subsumiert.
  • In einer Ausführungsform wird für Redundanz gesorgt, indem eine weitere Kommunikationsschnittstelle und eine weitere Matching-Engine bereitgestellt werden, wobei die weitere Kommunikationsschnittstelle und die Kommunikationsschnittstelle miteinander verbunden sind. In einer Ausführungsform sind die weitere Kommunikationsschnittstelle und die Kommunikationsschnittstelle über eine serielle Verbindung miteinander verbunden. In einer Ausführungsform wird noch eine weitere Kommunikationsschnittstelle und eine Matching-Engine bereitgestellt, um für weitere Redundanz zu sorgen. Die weitere Kommunikationsschnittstelle ist mit den anderen Kommunikationsschnittstellen verbunden, in einer Ausführungsform durch eine serielle Verbindung.
  • In einer Ausführungsform kann auch eine Matching-Engine durch dedizierte Hardware implementiert sein. In einer Ausführungsform kann die Matching-Engine durch einen PLD implementiert werden, und in einer Ausführungsform durch einen FPGA.
  • Gemäß einem zweiten Aspekt stellt die vorliegende Erfindung ein Verfahren zur Abwicklung der Kommunikation zwischen einem automatischen Handelssystem und einem externen Netzwerk bereit, welches die folgenden Schritte umfasst:
    • - das direkte Empfangen von Nachrichten von dem externen Netzwerk mit Hardware- oder Beinahe-Hardware-Geschwindigkeiten und das Verarbeiten der Nachrichten, was den Schritt der Syntaxanalyse (Parsing) der Nachrichten mit Hardware- oder Beinahe-Hardware-Geschwindigkeiten einschließt, die zur Übertragung an eine Matching-Engine im automatischen Handelssystem vorgesehen sind.
  • In einer Ausführungsform erfolgt die Verarbeitung durch eine dedizierte Hardware-Anordnung, die durch einen PLD (Programmable Logic Device - programmierbarer Logikbaustein) implementiert sein kann.
  • Gemäß einem dritten Aspekt stellt die vorliegende Erfindung eine Matching-Engine für ein automatisches Handelssystem bereit, wobei die Matching-Engine dedizierte Hardware umfasst, die dazu ausgelegt ist, einen Standard-Doppelauktionsprozess zum Handel von börsennotierten Instrumenten auszuführen.
  • In einer Ausführungsform handelt es sich bei der dedizierten Hardware um einen PLD (Programmable Logic Device - programmierbarer Logikbaustein). In einer Ausführungsform handelt es sich bei der dedizierten Hardware um einen FPGA (Field Programmable Gate Array - frei programmierbare Logikanordnung).
  • Gemäß einem vierten Aspekt stellt die vorliegende Erfindung eine Sicherheitsanordnung für ein automatisches Handelssystem bereit, wobei die Sicherheitsanordnung eine Kommunikationsschnittstelle umfasst, die dazu ausgelegt ist, von einem externen Netzwerk an das automatische Handelssystem gerichtete Nachrichten zu empfangen, und die dedizierte Hardware enthält, welche dazu ausgelegt ist, die eingehenden Nachrichten zu verifizieren.
  • In einer Ausführungsform erfolgt die Verifizierung durch eine Prüfsummen-Überprüfung.
  • In einer Ausführungsform handelt es sich bei der dedizierten Hardware um einen PLD (Programmable Logic Device - programmierbarer Logikbaustein). In einer Ausführungsform handelt es sich bei dem programmierbaren Logikbaustein um einen FPGA (Field Programmable Gate Array - frei programmierbare Logikanordnung.
  • Figurenliste
  • Die Merkmale und Vorzüge der vorliegenden Erfindung werden aus der nachfolgenden Beschreibung von erfindungsgemäßen Ausführungsformen deutlich, die lediglich anhand von Beispielen erfolgt, und unter Bezug auf die beiliegenden Zeichnungen, die folgende Bedeutung haben:
    • 1 ist ein allgemeines Blockdiagramm eines automatischen Handelssystems, das eine Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung umfasst;
    • 2 ist ein detaillierteres Blockdiagramm des Systems aus 1;
    • 3 ist ein Blockdiagramm einer Vorrichtung gemäß einer weiteren Ausführungsform der Erfindung.
  • Detaillierte Beschreibung der Ausführungsformen
  • Bezug nehmend auf 1 wird dort eine mit der Bezugsziffer 1 gekennzeichnete Kommunikationsschnittstelle für ein automatisches Handelssystem dargestellt. Die Kommunikationsschnittstelle 1 ist durch dedizierte Hardware implementiert, wobei es sich - in diesem Beispiel - um einen FPGA 1 (Field Programmable Gate Array - frei programmierbare Logikanordnung) handelt, die dafür programmiert ist, eine Schnittstelle zwischen einem externen Netzwerk 2 und einer Matching-Engine 3 zu bilden, die in diesem Beispiel durch Software auf Allzweck-Prozessoren (z. B. einem Allzweck-Server- und Computerprogramm zur Implementierung einer Standard-Doppelauktion für Markthandelsaktivitäten) implementiert ist.
  • Gemeinsam bilden die Kommunikations- und Messaging-Schnittstelle 1, welche durch den FPGA implementiert ist, und die Matching-Engine, die durch das Allzweck-System und die darauf ausgeführte Software implementiert ist, ein elektronisches Kommunikationsnetzwerk (Electronic Communications Network - ECN), welches ein automatisches Handelssystem (Automated Trading System - ATS) implementiert.
  • Die Funktion der Kommunikations- und Messaging-Schnittstelle 1 besteht darin, Nachrichten vom Netzwerk 2 zu empfangen, diese zu verarbeiten und an die Matching-Engine 3 zu übergeben. Außerdem besteht ihre Funktion darin, Nachrichten von der Matching-Engine 3 zu empfangen, diese zu verarbeiten und zurück an das Netzwerk 2 zu übergeben.
  • Die Kunden des ECN, z. B. Broker, Händler und dergleichen, erteilen Aufträge zum Kaufen oder Verkaufen einer bestimmten Menge eines börsennotierten Instruments, z. B. einer Aktie oder eines Wertpapiers. Die Erteilung dieser Aufträge erfolgt in Form der ORDER-Nachrichten 4. Die ORDER-Nachricht hat üblicherweise ein bekanntes Format entsprechend der jeweiligen Handelsbörse. Ein typisches Format für eine ORDER-Nachricht 4 wird später detailliert beschrieben.
  • Als Reaktion auf den Empfang einer ORDER-Nachricht 4, stellt ein ECN üblicherweise eine Quittierung (Acknowledgement), die ACK-Nachricht 5, bereit, mit der quittiert wird, dass das ECN die ORDER-Nachricht 4 empfangen hat. Außerdem wird durch das ECN eine CONFIRM-Nachricht 6 als Bestätigung bereitgestellt, wenn der Auftrag verarbeitet und an die Matching-Engine übergeben wurde, um in den Standard-Doppelauktionsprozess einbezogen zu werden.
  • Wenn eine Handelsaktivität erfolgte, d. h. wenn die Matching-Engine einen Match zwischen einem Kauf und einem Verkauf hergestellt und deshalb eine Handelsaktivität durchgeführt hat, wird eine EXECUTE-Nachricht 7 zurück an das externe Netzwerk 2 geleitet, sodass der Kunde über die Handelsaktivität unterrichtet wird. Wenn eine Handelsaktivität erfolgt ist werden sowohl der Käufer als auch der Verkäufer durch eine EXECUTE-Nachricht 7 darüber informiert, dass ihre Aufträge erfolgreich ausgeführt wurden.
  • Die Reaktionszeit des ECN ist ein wichtiges Leistungskriterium. Diese schließt die Reaktionszeit für das Bereitstellen einer ACK-Nachricht 5 und auch die Reaktionszeit für das Bereitstellen einer CONFIRM-Nachricht 6 ein. Ein Kriterium kann auch die Zeit von der Erteilung eines Auftrags bis zum Empfang einer EXECUTE-Nachricht 7 sein.
  • Wie bereits erwähnt wurde, werden aktuelle ECNs auf Allzweck-Prozessoren unter Verwendung typischer Software ausgeführt. Diese aktuellen Lösungen weisen hohe Latenzen auf, die bestenfalls in der Größenordnung von Hunderten von Mikrosekunden und typischerweise in der Größenordnung von Millisekunden liegen. Und in einem Bereich, indem Zeit entscheidend ist (wo buchstäblich gilt „Zeit ist Geld“), müssen derartige Latenzen verbessert werden.
  • In dieser Ausführungsform ist der FPGA 1 entweder direkt oder über einen oder mehrere Sende-Empfangs-Einrichtungen auf der physikalischen Schicht mit dem Netzwerk 2 (z. B. dem Ethernet) verbunden. In dieser Ausführungsform werden High-End-PLDs, wie beispielsweise Virtex 5 FPGAs von Xilinx eingesetzt, um einen sehr hohen Datendurchsatz bei geringer Latenz zu erzielen. Die Anmelderin hat festgestellt, dass durch die Platzierung des PLD als der dem Kunden zugewandter Bestandteil eines ECN eine Kundenkommunikation mit hoher Bandbreite und geringer Latenz realisiert werden kann.
  • Neben der Kommunikation und dem Matching führt die Ausführungsform aus 1 auch die anderen Funktionen eines ECN durch, beispielsweise die Speicherung der verarbeiteten Informationen und die Erstellung von Marktdaten aus den verarbeiteten Handelsaktivitäten.
  • 2 zeigt das ECN aus 1 mit weiteren Details.
  • Der FPGA 1 umfasst eine Parsing- und Validierungs-Engine 10 sowie eine Benachrichtigungs-Engine 11, die über die Schnittstelle 12 der physikalischen Schicht mit dem Netzwerk verbunden ist. Die Kunden (z. B. Broker usw.) senden über das Netzwerk 2 Nachrichten an das ECN-System. Es gibt je nach Operation unterschiedliche Nachrichtentypen, beispielsweise zum Erteilen eines neuen Auftrags und zum Ändern eines zuvor erteilten Auftrags.
  • Die Parsing- und Validierungs-Engine 10 konvertiert diese Nachrichten in ein einfacheres Anforderungsformat. Bei diesem Prozess verifiziert sie auch, dass die Nachricht von einem autorisierten Kunden stammt und legitime Daten enthält, wozu beispielsweise eine Prüfsummen-Überprüfung durchgeführt wird. Der Auftrag wird dann an eine Matching-Engine 13 für das angeforderte börsennotierte Instrument gesendet. In dieser Ausführungsform befindet sich die Matching-Engine auf einem Allzweck-Prozessor und ist durch typische Software implementiert.
  • Die Matching-Engine aktualisiert ihre Notierungswarteschlangen entsprechend der Anforderung.
  • Die Matching-Engine 13 kommuniziert ein Set daraus resultierender Transaktionen an die Benachrichtigungs-Engine 11 (durch FPGA implementiert) und auch an eine Speicher-Engine 14 (die ebenfalls auf einem Allzweck-Prozessor unter Verwendung typischer Software implementiert ist).
  • Die Benachrichtigungs-Engine 11 sendet Benachrichtigungsnachrichten (z. B. die EXECUTE-Nachricht 7) an den anfordernden Kunden und an alle anderen Kunden, mit denen der Auftrag möglicherweise gematcht wurde. Sie verbreitet auch die Marktdaten an andere Kunden.
  • Die Speicher-Engine 14 stellt sicher, dass alle Transaktionen auf Festplatten oder anderen stabilen Speichermedien sicher gespeichert werden.
  • Die Verwendung eines FPGA zur Implementierung der Parsing- und Validierungs-Engine 10 und der Benachrichtigungs-Engine 11 führt im ECN zu einer viel geringeren Latenz und kann bei den Nachrichten CONFIRM 6 und ACK 5 zu sehr kurzen Zeitperioden (in der Größenordnung von wenigen Mikrosekunden oder noch weniger) führen, und sie verbessert auch die Ausführungen, da der Auftrag schneller zur Matching-Engine gelangt als bei herkömmlichen Systemen. Und auch die EXECUTE-Nachrichten 7 werden schneller zurückgeschickt.
  • Bei dieser Ausführungsform sind die Parsing- und Validierungs-Engine 10 sowie die Benachrichtigungs-Engine 11 durch FPGA implementiert. Das heißt, dass die Kommunikations- und Messaging-Schnittstelle 1 durch FPGA implementiert ist.
  • In einer anderen Ausführungsform kann auch die Matching-Engine 13 durch einen FPGA (oder eine andere programmierbare oder Logik-Einrichtung oder durch dedizierte Hardware) implementiert sein, was die Geschwindigkeit weiter erhöht. In einer anderen Ausführungsform kann auch die Speicher-Engine durch dedizierte Hardware implementiert sein, z. B. durch PLDs, FPGAs oder dergleichen. Im Allgemeinen kann der Funktionsumfang des ECN unterschiedlich auf das PLD und den Allzweck-Prozessor aufgeteilt sein, was vom gewünschten Kompromiss zwischen Leistung und Einfachheit der Implementierung abhängt.
  • Die folgende Beschreibung ist eine etwas detailliertere Beschreibung der Verarbeitung durch den FPGA 1 unter Verwendung von Beispielnachrichten.
  • Parsing-/Validierungs-E-Mail
  • Die Parsing-/Validierungs-Engine 10 im FPGA 1 ist so ausgelegt, dass sie synchron zum Netzwerkempfang arbeitet. Für ein Gigabit Ethernet Netzwerk ist eine FPGA-Taktrate von 125 MHz wünschenswert, was in jedem Taktzyklus den Empfang und die Verarbeitung von 8 Bit (ein Byte) an Daten ermöglicht.
  • Es gibt zwei Typen von ECN-Nachrichten, die in diesem Beispiel durch den FPGA 1 verarbeitet werden: eine Nachricht bei neuen Aufträgen und eine Nachricht zum Ändern/Stornieren bestehender Aufträge. Die ECN-Nachrichten sind in standardmäßige Internet-Protokoll-Paketen (UDP/IP) eingekapselt. Eine Nachricht bei einem neuen Auftrag sieht beispielsweise folgendermaßen aus:
    Ethernet- Protocol-Header : 112 Bit / 14 Byte
    IP-Protocol-Header : 160 Bit / 20 Byte (Minimum)
    UDP-Protocol-Header : 64 Bit / 8 Byte
    ---
    Sitzungs-ID : 16 Bit / 2 Byte
    Sequenznummer : 16 Bit / 2 Byte
    Instrument-Code : 32 Bit / 4 Byte
    Nachrichtentyp : 8 Bit / 1 Byte (0 = NEUER AUFTRAG)
    Transaktionstyp : 8 Bit / 1 Byte (0 = kaufen, 1 = verkaufen)
    (Reserviert für künftige Nutzung) : 16 Bit / 2 Byte
    Menge : 16 Bit / 2 Byte
    Preis : 16 Bit / 2 Byte
    Kundenreferenz : 32 Bit / 4 Byte
  • Zuerst werden die Ethernet-, IP- und UDP-Protocol-Header übersprungen, was ziemlich einfach ist, obwohl der IP-Header eine variable Länge haben kann. Dann werden die ECN-Protokollfelder empfangen.
  • Das erste Feld - die Sitzungs-ID - ist ein nicht-transparentes Token, das die Sitzung zwischen einem Kunden und der Börse repräsentiert. Unter Verwendung dieses ersten Felds können Daten, die mit dem Kunden im Zusammenhang stehen, in einem im FPGA gespeicherten Kundeninformations-Array nachgeschlagen werden. Wenn das Feld „Sequenznummer“ empfangen wird, verifiziert der FPGA, dass die Sequenznummer mit der für den Kunden erwarteten Sequenznummer übereinstimmt. Wenn diese Überprüfung erfolglos ist, wird der Rest der Nachricht ignoriert, und es wird sofort eine Benachrichtigungsnachricht an den Kunden zurückgesendet. Andernfalls wird die erwartete Sequenznummer in Vorbereitung auf die nächste Nachricht um 1 erhöht, und die Verarbeitung geht weiter. Die Sitzungs-ID wird in einen kompakteren „Kunden-Index“ umgewandelt, der den Kunden identifiziert, und diese beiden Felder werden ansonsten verworfen.
  • Die folgenden vier Byte geben den Finanzinstrument-Code an, auf den sich die Nachricht bezieht. Dabei kann es sich um einen Aktiencode wie z. B. „MSFT“ handeln oder um eine andere Kennung. Der FPGA ermittelt unter Verwendung effizienter Nachschlagetabellen (Look-Up Tables - LUTs), ob der Finanzinstrument-Code gültig ist. Wenn das der Fall ist, wandelt er ihn in eine kompaktere Form um, nämlich in einen Finanzinstrument-Index. Eine solche Form macht die spätere Verarbeitung viel effizienter, aber diese Nummer ist möglicherweise nur für kurze Zeit gültig, wogegen es für Kunden wünschenswert ist, einen Standard-Finanzinstrument-Code zu verwenden.
  • Die anderen Felder in der Nachricht teilen den Transaktionstyp (kaufen oder verkaufen), den Preis, die Menge und die Kundenreferenz mit (ein vom Kunden geliefertes Feld, das in jeder Korrespondenz zu einem Auftrag an den Kunden gesendet wird). Beim Empfang von jedem der restlichten Felder wird eine interne Darstellung erzeugt, was nach dem Schema unten erfolgt. Viele der Eingabefelder können wörtlich durchgelassen werden. Die Felder werden jedoch einer Validierung unterzogen, um sicherzustellen, dass sie sinnvolle Werte enthalten; dass beispielsweise der Transaktionstyp entweder „kaufen“ oder „verkaufen“ ist. Damit wird die Validierung minimiert, die später in der Matching-Engine durchgeführt werden muss. Einige Felder, wie beispielsweise das Reserviert-Feld, befinden sich nur für künftige Erweiterungszwecke im Protokoll und können aus dem internen Formular ausgelassen werden.
  • Sobald alle Felder empfangen wurden, wird eine interne Sequenznummer angehängt. Der resultierende interne 16-Byte-Datensatz wird in einen Ringpuffer in einem Speicherbereich geschrieben, der gemeinsam mit der Matching-Engine verwendet wird.
    Kunden-Index : 1 Byte
    Instrument-Index : 1 Byte
    Nachrichtentyp : 1 Byte (0 = NEUER AUFTRAG)
    Transaktionstyp : 1 Byte (0 = kaufen, 1 = verkaufen)
    Menge : 2 Byte
    Preis : 2 Byte
    Kundenreferenz : 4 Byte
    (Nicht verwendet) : 2 Byte
    Interne Sequenznummer : 2 Byte
  • Dieselbe Bearbeitung erfolgt auch für die Ändern-/Stornieren-Meldung:
    Ethernet-Protocol-Header : 112 Bit / 14 Byte
    IP-Protocol-Header : 160 Bit / 20 Byte
    UDP-Protocol-Header : 64 Bit / 8 Byte
    ---
    Sitzungs-ID : 16 Bit / 2 Byte
    Sequenznummer : 16 Bit / 2 Byte
    Finanzinstrument -Code : 32 Bit / 4 Byte
    Nachrichtentyp : 8 Bit / 1 Byte (1 = AUFTRG ÄNDERN/STORNIEREN)
    (Reserviert für künftige Nutzung) : 8 Bit / 1 Byte
    Neue Menge : 16 Bit / 2 Byte
    Auftragsreferenz : 32 Bit / 4 Byte
    Kundenreferenz : 32 Bit / 4 Byte
  • Diese Nachricht enthält gleiche Felder wie die Nachricht für neue Aufträge und wird in gleicher Weise verarbeitet. Anstelle von Transaktionstyp und Preis wird jetzt eine Auftragsreferenz verwendet, um den Bezug zum bereits erteilten Auftrag herzustellen. Diese wird wörtlich in den internen 16-Byte-Datensatz übernommen, der in diesem Fall folgendermaßen aussieht:
    Kunden-Index : 1 Byte
    Instrument-Index : 1 Byte
    Nachrichtentyp : 1 Byte (1 = AUFTRG ÄNDERN/STORNIEREN)
    (Nicht verwendet) : 1 Byte
    Auftragsreferenz : 4 Byte
    Kundenreferenz : 4 Byte
    Neue Menge : 2 Byte
    Interne Sequenznummer : 2 Byte
  • Matching-Engine
  • Die Matching-Engine greift auf die 16-Byte-Datensätze zu, die durch die Parsing-/Validierungs-Engine erzeugt wurden. Für jeden Datensatz, den sie liest, führt sie die erforderlichen Aktualisierungen an ihren internen Warteschlangen durch, und erzeugt 16-Byte-Datensätze in einem Ausgangs-Ringpuffer (der Benachrichtigungswarteschlange). Das Benachrichtigungsformat wird weiter unten beschrieben.
  • Wenn der Nachrichtentyp AUFTRAG ÄNDERN/STORNIEREN ist, verwendet die Matching-Engine die Auftragsreferenz zur Suche nach einem vorhandenen Auftrag und aktualisiert dessen Menge anhand des Felds „Neue Menge“. Wird der Auftrag nicht gefunden, gehört er zu einem anderen Kunden oder ist die Angabe in „Neue Menge“ größer als die bisherige Menge, wird eine ÄNDERN-ABGELEHNT-Benachrichtigung in der Warteschlange platziert. Andernfalls wird eine ÄNDERN-AKZEPTIERT-Benachrichtigung in der Warteschlange platziert.
  • Wenn der Nachrichtentyp NEUER AUFTRAG ist, überprüft die Matching-Engine, ob der neue Auftrag mit einem in der Warteschlange befindlichen Auftrag auf der Gegenseite gematcht werden kann (z. B. überprüft sie für einen Kaufauftrag, ob in den Warteschlangen Verkäufer für das Instrument vorhanden sind). Wenn das der Fall ist, werden AUFTRAG-AUSGEFÜHRT-Benachrichtigungen für beide Seiten in die Warteschlange aufgenommen. Wenn sich der Preis bei weitem vom aktuellen Marktpries unterscheidet, führt das zu einer AUFTRAG-ABGELEHNT-Benachrichtigung.
    Andernfalls wird der Auftrag zur Warteschlange hinzugefügt und eine AUFTRAG-AKZEPTIERT-Benachrichtigung erzeugt.
  • Die Benachrichtigungen folgen einem einfachen Datensatzformat, das dem Eingabeformat der Matching-Engine gleicht.
    Kunden-Index : 1 Byte
    Instrument-Index : 1 Byte
    Benachrichtigungstyp : 1 Byte (0 = AUFTRAG-ABGELEHNT, 1 = AUFTRAG-AKZEPTIERT,
    2 = AUFTRAG-AUSGEFÜHRT, 3 = ÄNDERN-ABGELEHNT, 4 = ÄNDERN-AKZEPTIERT)
    Transaktionstyp : 1 Byte
    Menge : 2 Byte
    Preis : 2 Byte
    Kundenreferenz : 4 Byte
    Auftragsreferenz : 4 Byte
  • Benachrichtigungs-Engine
  • Eine Benachrichtigungs-Engine im FPGA liest die Datensätze aus der Benachrichtigungswarteschlange und sendet die Nachrichten an die Kunden. Der Kunden-Index wird verwendet, um die Indizierung in einen Kundeninformations-Index durchzuführen, der die Ethernet-Adresse, die IP-Adresse und die UDP-Portnummer zur Kontaktierung des Kunden enthält sowie die nächste abgehende Sequenznummer. Der interne Instrument-Index wird wieder dem 4-Byte-lnstrument-Code zugeordnet, der von den Kunden verwendet wird. Die andere Felder werden wörtlich übernommen.
  • Die abgehenden Nachrichten werden durch die FPGA-Logik erzeugt, die synchron zur Netzwerkübertragung ausgeführt wird, wobei jedes Ausgangs-Byte je nach Bedarf erzeugt wird, anstatt eine vorkonstruierte Nachricht im Speicher halten zu müssen. Die Felder aus dem Benachrichtigungsdatensatz werden an den entsprechenden Stellen in die abgehende Nachricht eingesetzt. Eine abgehende Nachricht sieht beispielsweise folgendermaßen aus:
    Ethernet-Protocol-Header : 112 Bit / 14 Byte
    IP-Protocol-Header : 160 Bit / 20 Byte
    UDP-Protocol-Header : 64 Bit / 8 Byte
    ---
    Sequenznummer : 16 Bit / 2 Byte
    Benachrichtigungstyp : 8 Bit / 1 Byte
    Transaktionstyp : 8 Bit / 1 Byte
    Instrument-Code : 32 Bit / 4 Byte
    Menge : 16 Bit / 2 Byte
    Preis : 16 Bit / 2 Byte
    Kundenreferenz : 32 Bit / 4 Byte
    Auftragsreferenz : 32 Bit / 4 Byte
  • Es lässt sich leicht nachvollziehen, dass es sich bei den Nachrichten in der obigen Beschreibung lediglich um Beispiele handelt, und auch Nachrichten mit anderen Formaten oder andere Nachrichten können durch Anordnungen gemäß anderen Ausführungsformen der vorliegenden Erfindung verarbeitet werden.
  • In einer Ausführungsform kann ein System wie bei der oben beschriebenen Ausführungsform mehrfach reproduziert sein, um Redundanz zu erzielen. Es lässt sich leicht nachvollziehen, dass Redundanz in einem solchen System wichtig sein kann, um sicherzustellen, dass die Markthandelsaktivitäten fortgesetzt werden können (im Falle des Ausfalls eines Teils oder des gesamten Systems) und dass dabei die Handelsdatensätze bewahrt werden.
  • 3 zeigt ein Blockdiagramm eines Systems gemäß einer weiteren Ausführungsform der vorliegenden Erfindung. Das System umfasst in diesem Beispiel drei Systemeinheiten 30, 31 und 32. Jede der Systemeinheiten umfasst eine Kommunikations- und Messaging-Schnittstelle 1 und eine Matching-Engine sowie Vorrichtungen zur Durchführung der anderen ECN-Funktionen 3. Mit anderen Worten: Die Systemeinheiten 30, 31 und 32 sind drei Reproduktionen des Systems aus 1.
  • In dieser Ausführungsform sind die FPGAs 1 von jeder Systemeinheit 30, 31 und 32 über die Verbindungen 33 und 34 seriell miteinander verbunden. Damit wird sichergestellt, dass es für alle Nachrichten, die in die Systeme kommen oder von diesen abgehen, Sicherungssysteme gibt. Fällt beispielsweise System 30 aus, dann verfügen die Systeme 31 und 32 über sämtliche verfügbaren Informationen, um die Verarbeitung der Markthandelsdaten fortzusetzen.
  • Ausführungsformen, wie sie oben beschrieben wurden, können zum Handel mit jedem börsennotierten Instrument verwendet werden, einschließlich, jedoch ohne Beschränkung auf Aktien, Wertpapiere, Optionen, Termingeschäfte, Anleihen, andere Derivate, CFDs, Commodities, Halbleiterchips und anderes.
  • In den obigen Ausführungsformen erfolgt die Implementierung der Kommunikationsschnittstelle durch einen FPGA. Sie kann jedoch auch durch jeden programmierbaren Logikbaustein implementiert werden, und kann in der Tat durch jede dedizierte Hardware implementiert werden. Beispielsweise kann ein angepasster Chip verwendet werden, um den Funktionsumfang der Kommunikationsschnittstelle zu implementieren. In gleicher Weise können, wo andere Teile des ECN durch dedizierte Hardware implementiert werden (z. B. die Matching-Engine und/oder die Speicher-Engine), diese auch durch jeden Typ von dedizierter Hardware implementiert werden, beispielsweise durch angepasste Schaltkreise, durch jede Art von PLDs und durch FPGAS.
  • In den nachfolgenden Patentansprüchen und in der oben erfolgten Beschreibung der Erfindung wird, sofern vom Kontext nicht anders durch ausdrückliche Formulierungen oder notwendige Implikationen verlangt, das Wort „umfassen“ oder Varianten davon wie „umfasst“ oder „umfassend“ in einem einbeziehenden Sinne gebraucht, d. h. um das Vorhandensein des angegebenen Merkmals festzulegen, jedoch nicht, um das Vorhandensein oder die Hinzufügung weiterer Merkmale in den verschiedenen Ausführungsformen der Erfindung auszuschließen.
  • Für Fachleute auf dem Gebiet der Technik wird es leicht nachvollziehbar sein, dass zahlreiche Variationen und/oder Änderungen an der in den konkreten Ausführungsformen gezeigten Erfindung vorgenommen werden können, ohne dabei vom Gedanken und Umfang der Erfindung abzuweichen, die umfassend beschrieben wurden. Die vorliegenden Ausführungsformen sollten deshalb in jeder Hinsicht als beispielhaft und nicht als einschränkend angesehen werden.

Claims (28)

  1. Eine Kommunikationsschnittstelle (1) für ein automatisches Handelssystem, wobei die Kommunikationsschnittstelle (1) Folgendes umfasst: - eine dedizierte hardwaretechnische Schnittstelle der physikalischen Schicht (12), welche zur Kommunikation von Nachrichten zu und von Kunden durch ein externes Netzwerk (2) ausgelegt ist, wobei die Schnittstelle der physikalischen Schicht (12) dazu ausgelegt ist, Nachrichten direkt von dem externen Netzwerk (2) zu empfangen, wobei jede der empfangenen Nachrichten eine Mehrzahl von Nachrichtenfeldern umfasst, und - eine Parsing- und Validierungs-Engine (10), die in dedizierter Hardware (1) implementiert und dazu ausgelegt ist, einige der in jeder der Nachrichten enthaltenen Nachrichtenfelder synchron mit dem Empfang der entsprechenden Nachrichtenfelder zu verifizieren, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, die Nachrichtenfelder unabhängig von dem Empfangen der gesamten Nachricht zu verifizieren, indem sie die Nachrichtenfelder mit einer Referenz vergleicht während sie empfangen werden.
  2. Kommunikationsschnittstelle (1) gemäß Anspruch 1, wobei die Kommunikationsschnittstelle (1) ferner eine Benachrichtigungs-Engine (11) umfasst, die dazu ausgelegt ist, Benachrichtigungsnachrichten zu erzeugen zur Übertragung an Kunden über das externe Netzwerk (2).
  3. Kommunikationsschnittstelle (1) gemäß Anspruch 2, wobei die Benachrichtigungs-Engine (11) dazu ausgelegt ist, Transaktionsinformationen von einer Matching-Engine (13) zu empfangen und entsprechende Benachrichtigungsnachrichten zum Aussenden an das Netzwerk (2) zusammenzustellen.
  4. Kommunikationsschnittstelle (1) gemäß Anspruch 3, wobei die Benachrichtigungs-Engine (11) dazu ausgelegt ist, Transaktionsinformationen von der Matching-Engine (13) zu empfangen und synchron zur Netzwerkübertragung Benachrichtigungsnachrichten zur Übertragung an Kunden zu erzeugen.
  5. Kommunikationsschnittstelle (1) gemäß Anspruch 3, wobei die Matching-Engine (13) in dedizierter Hardware (1) implementiert ist, wobei die dedizierte Hardware (1) ein Programmable Logic Device umfasst.
  6. Kommunikationsschnittstelle (1) gemäß Anspruch 5, wobei die dedizierte Hardware, in der die Matching-Engine (13) implementiert ist, ein Field Programmable Gate Array umfasst.
  7. Kommunikationsschnittstelle (1) gemäß einem der Ansprüche 3 bis 6, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, synchron zu dem Empfang eines Sequenznummernfelds für neue Nachrichten eine Nachrichten-Sequenznummer zu verifizieren, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, die Nachrichten-Sequenznummer mit einer Referenz-Sequenznummer für einen entsprechenden Kunden zu vergleichen.
  8. Kommunikationsschnittstelle (1) gemäß Anspruch 7, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, den Rest der empfangenen Nachrichten von der Matching-Engine (13) zu ignorieren, wenn die Kunden-Sequenznummer und die Referenz-Sequenznummer für einen entsprechenden Kunden nicht übereinstimmen.
  9. Kommunikationsschnittstelle (1) gemäß einem der vorhergehenden Ansprüche, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, eingehende Nachrichten in ein für die Matching-Engine (13) geeignetes Anforderungsformat umzuwandeln und zu verifizieren.
  10. Kommunikationsschnittstelle (1) gemäß Anspruch 9, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, das Anforderungsformat einer empfangenen Nachricht synchron mit dem Empfang zu erzeugen.
  11. Kommunikationsschnittstelle (1) gemäß Anspruch 9 oder Anspruch 10, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, aus einer Kunden-Sequenznummer, die in einer empfangenen Nachricht enthalten ist, einen kompakten Kunden-Index zur Aufnahme in das Anforderungsformat zu erzeugen.
  12. Kommunikationsschnittstelle (1) gemäß einem der Ansprüche 9 bis 11, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, aus einem Finanzinstrument-Code, der in einer empfangenen Nachricht enthalten ist, einen für kurze Zeit gültigen Finanzinstrument-Index in kompakterer Form zur Aufnahme in das Anforderungsformat zu erzeugen.
  13. Kommunikationsschnittstelle (1) gemäß einem der Ansprüche 9 bis 12, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, aus empfangenen Nachrichten einen Preis, eine Menge und eine Kundenreferenz zur Aufnahme in das Anforderungsformat zu extrahieren.
  14. Kommunikationsschnittstelle (1) gemäß einem der vorhergehenden Ansprüche, wobei die Parsing- und Validierungs-Engine (10) dazu ausgelegt ist, eine Prüfsummen-Überprüfung eingehender Nachrichten zu implementieren.
  15. Ein automatisches Handelssystem, umfassend: eine Kommunikationsschnittstelle (1) gemäß einem der vorhergehenden Ansprüche; und eine Matching-Engine (13).
  16. Automatisches Handelssystem gemäß Anspruch 15, ferner eine weitere Kommunikationsschnittstelle (1) gemäß einem der Ansprüche 1 bis 14 und eine weitere Matching-Engine (13) umfassend, wobei die Kommunikationsschnittstelle (1) und die weitere Kommunikationsschnittstelle (miteinander verbunden sind, um dadurch eine Systemredundanz für das automatische Handelssystem bereitzustellen.
  17. Automatisches Handelssystem gemäß Anspruch 16, ferner eine weitere Kommunikationsschnittstelle (1) gemäß einem der Ansprüche 1 bis 14 und eine weitere Matching-Engine (13) umfassend, um dadurch eine weitere Systemredundanz bereitzustellen.
  18. Ein Nachrichtenverifizierungsprozess für ein automatisches Handelssystem, umfassend: - das Empfangen von Nachrichten von Kunden in einer dedizierten hardwaretechnischen physikalischen Schicht, die ein automatisches Handelssystem mit einem externen Netzwerk (2) verbindet, wobei jede der Nachrichten eine Mehrzahl von Nachrichtenfeldern umfasst, - das Verifizieren einiger der Nachrichtenfelder für jede der Nachrichten in einer dedizierten hardwaretechnischen Parsing- und Validierungs-Engine (10) synchron zu dem Empfang der entsprechenden Nachrichtenfelder, wobei die Nachrichtenfelder, während sie empfangen werden, unabhängig von dem Empfangen der gesamten Nachricht durch Vergleichen der Nachrichtenfelder mit einer Referenz verifiziert werden.
  19. Prozess nach Anspruch 18, umfassend das Erzeugen von Benachrichtigungsnachrichten zur Übertragung an Kunden in einer dedizierten hardwaretechnischen Benachrichtigungs-Engine (11).
  20. Prozess nach Anspruch 19, umfassend, dass die Benachrichtigungsnachrichten aus Transaktionsinformationen erzeugt werden, die von einer Matching-Engine (13) in dem automatischen Handelssystem empfangen werden.
  21. Prozess nach Anspruch 20, umfassend das Empfangen von Transaktionsinformationen von der Matching-Engine (13) und das Erzeugen von Benachrichtigungsnachrichten zur Übertragung an Kunden synchron zur Netzwerkübertragung.
  22. Prozess nach einem der Ansprüche 18 bis 21, umfassend das Verifizieren einer Nachrichten-Sequenznummer synchron zu dem Empfang eines Sequenznummernfeldes für neue Nachrichten, wobei die Sequenznummer neuer Nachrichten mit einer Referenz-Sequenznummer für einen entsprechenden Kunden verglichen wird.
  23. Prozess nach Anspruch 22, umfassend das Ignorieren des Rests der empfangenen Nachrichten von der Matching-Engine (13), wenn die Kunden-Sequenznummer und die Referenz-Sequenznummer für einen entsprechenden Kunden nicht übereinstimmen.
  24. Prozess nach einem der Ansprüche 18 bis 23, umfassend das Umwandeln empfangener Nachrichten in ein Anforderungsformat zur Übertragung an die Matching-Engine (13), wobei das Anforderungsformat Daten aus den empfangenen Nachrichten in eine kompakte Form verdichtet.
  25. Prozess nach Anspruch 24, umfassend das Erzeugen eines kompakten Kunden-Index zur Aufnahme in das Anforderungsformat aus einer Kunden-Sequenznummer, die in einer empfangenen Nachricht enthalten ist.
  26. Prozess nach Anspruch 24 oder Anspruch 25, umfassend das Erzeugen eines für kurze Zeit gültigen Finanzinstrument-Index in kompakterer Form aus einem Finanzinstrument-Code, der in einer empfangenen Nachricht enthalten ist.
  27. Prozess nach einem der Ansprüche 24 bis 26, umfassend das Extrahieren eines Preises, einer Menge und einer Kundenreferenz aus empfangenen Nachrichten zur Aufnahme in das Anforderungsformat.
  28. Prozess nach einem der Ansprüche 18 bis 27, umfassend das Inkrementieren einer Referenz-Sequenznummer, die durch die Parsing- und Validierungs-Engine (10) für einen Kunden aufrechterhalten wird, wenn eine von dem Kunden empfangene Nachricht verifiziert ist.
DE112009002716.4T 2008-11-10 2009-07-02 Verbessertes automatisches Handelssystem Active DE112009002716B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2008905788 2008-11-10
AU2008905788A AU2008905788A0 (en) 2008-11-10 Improved Automated Trading System
PCT/AU2009/000849 WO2010051575A1 (en) 2008-11-10 2009-07-02 Improved automated trading system

Publications (2)

Publication Number Publication Date
DE112009002716T5 DE112009002716T5 (de) 2013-02-07
DE112009002716B4 true DE112009002716B4 (de) 2023-02-23

Family

ID=42152380

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112009002716.4T Active DE112009002716B4 (de) 2008-11-10 2009-07-02 Verbessertes automatisches Handelssystem

Country Status (10)

Country Link
US (1) US8706606B2 (de)
JP (1) JP5670341B2 (de)
KR (1) KR101711675B1 (de)
CN (1) CN102246194B (de)
AU (1) AU2009311242B2 (de)
BR (1) BRPI0921524A2 (de)
CA (1) CA2743221C (de)
DE (1) DE112009002716B4 (de)
GB (1) GB2478093B (de)
WO (1) WO2010051575A1 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320336A1 (en) * 2010-06-29 2011-12-29 Omx Technology Ab System and a method for generating market input
EP2641185A4 (de) * 2010-11-19 2014-06-11 Deutsche Bank Ag Überwachung und steuerung der übertragungsgeschwindigkeit in elektronischen finanztransaktionen
US8832211B1 (en) * 2010-11-24 2014-09-09 Nyse Arca Llc Messaging methods and apparatus for use with an exchange system and/or client devices
US9792649B1 (en) 2010-11-24 2017-10-17 Nyse Arca Llc Methods and apparatus for performing risk checking
AU2011200733B2 (en) * 2011-02-21 2015-08-13 Zomojo Pty Ltd A market access system and method
US8548900B1 (en) * 2012-12-19 2013-10-01 Nyse Group, Inc. FPGA memory paging
GB2512061A (en) * 2013-03-18 2014-09-24 Rapid Addition Ltd Transactional message format data conversion
CN103425746A (zh) * 2013-07-18 2013-12-04 大连理工大学 基于fpga的实时金融指数行情并行计算方法
US20150032590A1 (en) * 2013-07-25 2015-01-29 The Nasdaq Omx Group, Inc. Apparatus and a method for creating a high speed financial market data message stream
US9691102B2 (en) 2013-11-07 2017-06-27 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US10332206B2 (en) 2013-11-07 2019-06-25 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US11037239B2 (en) 2013-11-07 2021-06-15 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US10467693B2 (en) 2013-11-07 2019-11-05 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US10366452B2 (en) 2013-11-07 2019-07-30 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US10692143B2 (en) 2013-11-07 2020-06-23 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US10929926B2 (en) 2013-11-07 2021-02-23 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US20150127509A1 (en) 2013-11-07 2015-05-07 Chicago Mercantile Exchange Inc. Transactionally Deterministic High Speed Financial Exchange Having Improved, Efficiency, Communication, Customization, Performance, Access, Trading Opportunities, Credit Controls, and Fault Tolerance
EP3130107B1 (de) 2014-08-13 2019-11-06 Metamako Technology LP Vorrichtung und verfahren zum schalten mit niedriger latenz
CA2944925C (en) * 2014-10-08 2017-04-25 Tsx Inc. Selective delayed and undelayed database updating
US9848025B2 (en) 2014-12-12 2017-12-19 Services Development Company LLC Data transmission via a high frequency radio band
CN104599185A (zh) * 2015-02-02 2015-05-06 恒生电子股份有限公司 交易方法、终端及系统
CN105989538B (zh) * 2015-07-28 2021-11-02 盛立安元科技(杭州)股份有限公司 一种金融产品自动交易系统及自动交易方法
CN105989539B (zh) * 2015-09-22 2019-10-25 盛立金融软件开发(杭州)有限公司 一种金融交易行情获取系统以及获取方法
US11164248B2 (en) 2015-10-12 2021-11-02 Chicago Mercantile Exchange Inc. Multi-modal trade execution with smart order routing
US11288739B2 (en) 2015-10-12 2022-03-29 Chicago Mercantile Exchange Inc. Central limit order book automatic triangulation system
US12406318B2 (en) 2016-06-06 2025-09-02 Chicago Mercantile Exchange Inc. Data payment and authentication via a shared data structure
US10580100B2 (en) 2016-06-06 2020-03-03 Chicago Mercantile Exchange Inc. Data payment and authentication via a shared data structure
US11514448B1 (en) 2016-07-11 2022-11-29 Chicago Mercantile Exchange Inc. Hierarchical consensus protocol framework for implementing electronic transaction processing systems
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
US10943297B2 (en) 2016-08-09 2021-03-09 Chicago Mercantile Exchange Inc. Systems and methods for coordinating processing of instructions across multiple components
US10748210B2 (en) 2016-08-09 2020-08-18 Chicago Mercantile Exchange Inc. Systems and methods for coordinating processing of scheduled instructions across multiple components
US20180075530A1 (en) * 2016-09-09 2018-03-15 Chicago Mercantile Exchange Inc. Message cancelation based on data transaction processing system latency
WO2020159089A2 (ko) * 2019-02-01 2020-08-06 비씨카드(주) 복수의 디바이스 간 통신을 지원하는 인터페이스 관리 시스템 및 방법
US11463560B2 (en) 2021-01-20 2022-10-04 Jump Algorithms, Llc Network interface architecture having a directly modifiable pre-stage packet transmission buffer
US11729240B2 (en) 2021-06-09 2023-08-15 Bgc Partners, L.P. Fanout processor
US11915315B1 (en) 2022-08-10 2024-02-27 Bgc Partners, L.P. Method, apparatus and system for time stamping and sequencing data items
TWI880151B (zh) * 2022-12-30 2025-04-11 致茂電子股份有限公司 具備逾時檢核功能的下單主機及逾時檢核的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115432A (en) 1989-12-12 1992-05-19 At&T Bell Laboratories Communication architecture for high speed networking
US20050267836A1 (en) 1996-03-25 2005-12-01 Cfph, Llc Method and system for transacting with a trading application
US7251629B1 (en) 1999-10-14 2007-07-31 Edge Capture, Llc Automated trading system in an electronic trading exchange
US20070294157A1 (en) 2006-06-19 2007-12-20 Exegy Incorporated Method and System for High Speed Options Pricing
US20080243675A1 (en) 2006-06-19 2008-10-02 Exegy Incorporated High Speed Processing of Financial Information Using FPGA Devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024A (en) * 1851-04-08 Bbick-pbess
US4903201A (en) * 1983-11-03 1990-02-20 World Energy Exchange Corporation Automated futures trading exchange
CA2223766A1 (en) * 1995-06-07 1996-12-19 Citibank, N.A. Method and system for providing integrated brokerage and other financial services through customer activated terminals
US7130823B1 (en) * 1995-09-14 2006-10-31 Citibank Aktiengesellschaft Computer system for data management and method for operation of the system
GB9910588D0 (en) * 1999-05-08 1999-07-07 Tullett Financial Information Automated trading system
US7356499B1 (en) * 2000-02-09 2008-04-08 Dean Amburn Method and apparatus for automated trading of equity securities using a real time data analysis
WO2002003302A1 (en) * 2000-06-30 2002-01-10 Enron Net Works Llc Buying and selling goods and services using automated method and apparatus
US20020156722A1 (en) * 2001-03-21 2002-10-24 Greenwood Ken M. Automated securities trading system
US8005743B2 (en) 2001-11-13 2011-08-23 Intercontinentalexchange, Inc. Electronic trading confirmation system
EP1546968A4 (de) * 2002-07-17 2008-03-19 Ubs Ag Computerimplementiertes system für automatisierten handel
US7483854B2 (en) * 2003-01-24 2009-01-27 Liu Michael C Method and system for intelligent automated security trading via the internet
EP1627284B1 (de) * 2003-05-23 2018-10-24 IP Reservoir, LLC Intelligente datenspeicherung und verarbeitung unter verwendung von fpga-einrichtungen
US20050228741A1 (en) * 2004-04-08 2005-10-13 Hotspot Fx, Inc. Financial instrument trading system and method
US20050283427A1 (en) * 2004-06-21 2005-12-22 Fx Engines, Inc. Automated trading system and software for financial markets
EP1952330A1 (de) * 2005-11-21 2008-08-06 Saxo Bank A/S Finanz-handelssystem
US7515986B2 (en) * 2007-04-20 2009-04-07 The Boeing Company Methods and systems for controlling and adjusting heat distribution over a part bed
CN101217551A (zh) * 2008-01-14 2008-07-09 中国科学院计算技术研究所 本地存储协议接口和网络存储协议接口间的数据传输方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115432A (en) 1989-12-12 1992-05-19 At&T Bell Laboratories Communication architecture for high speed networking
US20050267836A1 (en) 1996-03-25 2005-12-01 Cfph, Llc Method and system for transacting with a trading application
US7251629B1 (en) 1999-10-14 2007-07-31 Edge Capture, Llc Automated trading system in an electronic trading exchange
US20070294157A1 (en) 2006-06-19 2007-12-20 Exegy Incorporated Method and System for High Speed Options Pricing
US20080243675A1 (en) 2006-06-19 2008-10-02 Exegy Incorporated High Speed Processing of Financial Information Using FPGA Devices

Also Published As

Publication number Publication date
AU2009311242B2 (en) 2015-05-21
US20110264578A1 (en) 2011-10-27
JP2012508409A (ja) 2012-04-05
GB2478093A (en) 2011-08-24
US8706606B2 (en) 2014-04-22
CA2743221A1 (en) 2010-05-14
DE112009002716T5 (de) 2013-02-07
JP5670341B2 (ja) 2015-02-18
KR20110101148A (ko) 2011-09-15
WO2010051575A1 (en) 2010-05-14
GB2478093B (en) 2013-07-24
GB201109707D0 (en) 2011-07-27
CA2743221C (en) 2016-08-16
CN102246194B (zh) 2014-05-21
BRPI0921524A2 (pt) 2018-05-29
CN102246194A (zh) 2011-11-16
HK1161762A1 (en) 2012-08-03
AU2009311242A1 (en) 2011-06-23
KR101711675B1 (ko) 2017-03-02

Similar Documents

Publication Publication Date Title
DE112009002716B4 (de) Verbessertes automatisches Handelssystem
DE69023705T2 (de) Verteiltes System und Verfahren zum Herstellen von Geschäftsbeziehungen zwischen Käufern und Verkäufern.
DE69933902T2 (de) System zur Bereitstellung verbesserten Sicherheit für Transaktionen die über ein verteiltes Netzwerk übertragen werden
DE69309905T2 (de) Kreditverwaltung für ein elektronisches maklergebührensystem.
EP2417550A1 (de) Verfahren zur durchführung einer applikation mit hilfe eines tragbaren datenträgers
DE112010002178T5 (de) Verfahren und vorrichtung für id-basierte ströme über pci-express
EP3576001B1 (de) Computerimplementiertes verfahren zum übergeben eines datenstrings von einer anwendung an eine datenschutzeinrichtung
DE102015112634A1 (de) Unterstützen von RMA-API über aktive Message
US20140164205A1 (en) Market access system and method
EP1326216A1 (de) Verfahren und Vorrichtung zur elektronischen Zahlung durch mobile Kommunikationsgeräte
WO2015184557A1 (de) Börsenhandelsplattform
DE112013003924B4 (de) Nichttransitorisches computerlesbares Medium, Verfahren und prozessorbasiertes System zur Verarbeitung von Nachrichtenkanal-Transaktionen in einem Prozessorbasiertem System ohne Durchführung von Blockierungsoperationen
DE102004035843B4 (de) Router-Netzwerkprozessor
DE10040644A1 (de) Verfahren zur Übertragung von Datensätzen an Datenverarbeitungsanlagen
EP3058537A1 (de) Protokoll und system mit einer anpassbaren bestelleingabe auf makrobasis
DE102004001323B3 (de) Verfahren und Vorrichtung zur Überwachung des Datenaustausches zwischen Anwendungssystemen
DE102009019050B4 (de) Verfahren und Datenträger zur Sicherung von Transaktionsdaten
DE102020116354A1 (de) Datenbank, Abfragevorrichtung und System
EP1826718A1 (de) Computerimplementiertes System zur Bewirtschaftung eines Datenbanksystems mit strukturierten Datensätzen
DE102004017843B4 (de) Tastatur-Bildschirm-Maus-Umschalter für Vielfachverbindungen und Verfahren hierfür
EP3021236B1 (de) Telekommunikationsverfahren zur erzeugung und übermittlung von ergebnisdokumenten aus tabellarisch gespeicherten daten
DE202022102759U1 (de) Ein System zur Entwicklung einer auf globalen Finanzmärkten basierenden Social-Media-Plattform
EP1296261A2 (de) Börsenhandelssystem
EP1413966A1 (de) EDV-System und Verfahren zur Abwicklung von Handelsgeschäften über Datenleitungen
der Supply Chain et al. Winfried Krieger

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06Q0040000000

Ipc: H04L0029100000

R081 Change of applicant/patentee

Owner name: PSONIC PTY LTD., AU

Free format text: FORMER OWNER: ZOMOJO PTY LTD, SYDNEY, AU

R082 Change of representative

Representative=s name: ANWALTSKANZLEI MEISSNER & MEISSNER, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029100000

Ipc: H04L0069320000

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final