ES2650498T3 - Método y aparato para entrada de órdenes en un sistema de negociación electrónico - Google Patents

Método y aparato para entrada de órdenes en un sistema de negociación electrónico Download PDF

Info

Publication number
ES2650498T3
ES2650498T3 ES14184147.8T ES14184147T ES2650498T3 ES 2650498 T3 ES2650498 T3 ES 2650498T3 ES 14184147 T ES14184147 T ES 14184147T ES 2650498 T3 ES2650498 T3 ES 2650498T3
Authority
ES
Spain
Prior art keywords
message
queue
server
queues
confrontation
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
ES14184147.8T
Other languages
English (en)
Inventor
Michael Merold
John Schoen
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.)
Intercapital Services North America LLC
Original Assignee
Intercapital Services North America LLC
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
Application filed by Intercapital Services North America LLC filed Critical Intercapital Services North America LLC
Application granted granted Critical
Publication of ES2650498T3 publication Critical patent/ES2650498T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/08Auctions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Un método computarizado para gestionar la entrada de órdenes a un sistema de negociación electrónico, incluyendo los pasos de: iniciar (400) en un ordenador servidor un conjunto de colas de espera; recibir (402), en el servidor, de una o varias partes que negocian en el sistema de negociación electrónico, mensajes de orden electrónicos (210) para negociar un instrumento; y asignar (412) cada mensaje recibido (210) a una cola de espera aleatoria dentro del conjunto de colas de espera; donde el método se caracteriza además porque, si el mensaje (210) es el primer mensaje asignado al conjunto de colas de espera, el método incluye además el paso de iniciar (428), en el ordenador servidor, un temporizador que tiene una duración aleatoria entre duraciones mínimas y máximas definidas para el conjunto de colas de espera; e incluyendo además el método transferir (432), al final de la duración aleatoria para el conjunto de colas de espera, mensajes (210) secuencialmente desde cada cola de espera del conjunto de colas de espera a un motor de confrontación del sistema de negociación electrónico y confrontar mensajes de orden compatibles en el motor de confrontación.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Método y aparato para entrada de órdenes en un sistema de negociación electrónico Campo de la invención
Esta invención se refiere a sistemas de negociación electrónicos. Se refiere en concreto a gestionar la entrada de órdenes colocadas por negociadores o brókeres en tales sistemas de negociación.
Antecedentes de la invención
Durante los últimos veinte años, los sistemas de negociación electrónicos se han convertido en algo común en los mercados financieros para negociar una amplia variedad de instrumentos tales como acciones, productos de divisas (FX), mercancías y derivados, así como productos de renta fija y otros muchos instrumentos financieros.
Existen muchos tipos de sistemas de negociación electrónicos, que usan diferentes modelos de negociación. Los ejemplos incluyen sistemas basados en RFQ (Petición de Cotización), sistemas anónimos de confrontación y sistemas basados en subasta. Un ejemplo de sistema anónimo de confrontación se describe en US-A6.996.541 de Togher y colaboradores. Togher describe un sistema distribuido de confrontación en el que los negociadores conectados al sistema a través de una red de comunicaciones envían órdenes al sistema para comprar o vender instrumentos financieros. Las órdenes creadoras se visualizan para otros negociadores en el sistema, los cuales pueden responder a esas órdenes con sus propias órdenes que serán confrontadas con las órdenes creadoras visibles según reglas de confrontación para ejecutar una negociación. Típicamente, el sistema recibirá órdenes creadoras de todas las partes y construirá un libro de órdenes basado, por ejemplo, en el precio de la orden y la hora de recepción de la orden. Para facilitar la interpretación solamente la mejor orden o unas pocas mejores órdenes se visualizarán para los otros negociadores en sus pantallas y los negociadores de contraparte responden a las mejores órdenes que ven.
Muchos sistemas de negociación se basan en un ordenador servidor centralizado que confronta las órdenes creadoras y tomadoras, lleva los libros de órdenes y administra los límites de crédito. El ordenador servidor puede también ser responsable de distribuir los datos relacionados con el mercado, generar tickets de transacción después de que una negociación se haya ejecutado y llevar los registros de actividad en el sistema. Algunos sistemas de negociación como el descrito en Togher y colaboradores mencionado anteriormente, operan como un modelo distribuido en el que el motor de confrontación está dividido en un número de motores de confrontación separados. Este enfoque es atractivo en un sistema de negociación global donde los problemas de latencia pueden afectar a la imparcialidad del acceso a un sistema centralizado desde diferentes partes del mundo. El sistema distribuido de Togher, tal como ha sido implementado por ICAP Pic en su plataforma de negociación EBS, tiene un número de motores de confrontación situado cada uno geográficamente en un mercado financiero principal. Dado que estos mercados operan en diferentes horas del día, muchas de las operaciones serán entre partes que están operando en la misma región geográfica y la confrontación puede realizarse localmente en el motor de confrontación regional. Otras negociaciones pueden implicar dos motores separados de confrontación en dos regiones geográficas separadas. Un ejemplo sería una negociación realizada por la tarde en Londres entre un negociador ubicado en Londres y un negociador ubicado en Nueva York durante la mañana cuando los mercados están abiertos.
Los problemas de latencia están presentes en cualquier sistema sensible al tiempo que conecta partes a grandes distancias. La arquitectura distribuida resuelve en cierta medida los problemas de latencia. Los problemas de imparcialidad son una preocupación y los sistemas distribuidos proporcionan una imparcialidad mejorada en comparación con los sistemas centralizados. Sin embargo, el aumento de la negociación algorítmica ha resaltado los problemas de latencia. La negociación algorítmica, también conocida como Negociación de Alta Frecuencia (HFT), sustituye a los negociadores humanos por plataformas electrónicas que introducen órdenes automáticamente según un algoritmo de negociación. Las órdenes se generan en respuesta a datos de mercado recibidos tales como el precio o el tamaño de las órdenes del mercado. En un sistema distribuido como el sistema EBS, las vistas de mercado se envían a cada entidad de negociación, tal como una sala de transacciones de un banco, dando periódicamente a esa entidad negociadora una actualización del libro de mercado. Estas vistas de mercado se distribuyen por turno a cada sala dando a las primeras salas de negociación que reciben las vistas de mercado una ligera ventaja sobre las salas que reciben las vistas más tarde y en particular sobre la última sala de negociación que recibe la actualización de mercado. Los problemas de latencia provocados por la proximidad relativa de las salas de negociación a los ordenadores que distribuyen las vistas de mercado pueden exacerbar esta ventaja. Este problema se aborda, en cierta medida, por el método de distribución y el aparato descrito en US 8.446.801 (Howorka y colaboradores). Howorka introduce un componente aleatorio en la orden en el que las actualizaciones de mercado se distribuyen de modo que el momento en el que una sala de negociación dada recibe datos de mercado cambia gradualmente a lo largo del tiempo en relación a otras salas de negociación. Este enfoque acaba de algún modo con la parcialidad a lo largo del tiempo.
Así, los sistemas de negociación electrónicos conocidos han utilizado algunas medidas para abordar los problemas de latencia y para abordar la parcialidad en el acceso al sistema. Sin embargo, son incapaces de tratar
5
10
15
20
25
30
35
40
45
50
55
60
65
discrepancias en la velocidad a la que las partes que negocian en el sistema pueden introducir órdenes en el sistema. Éste es un problema que en gran parte está fuera de control del operador del sistema de negociación. A la vista de la velocidad a la que operan muchos mercados financieros, hay una fuerte motivación para que las entidades de negociación como fondos de inversión y bancos inviertan en hardware, software y tecnología de comunicaciones que asegure que sus órdenes lleguen al sistema de negociación lo más rápidamente posible. Este enfoque requiere una gran inversión financiera por parte de las entidades negociadoras e introduce un fuerte elemento de parcialidad en el sentido de que da una ventaja a entidades más grandes que son más capaces de hacer la inversión requerida. El problema puede ser menos severo en sistemas que operan en una red de comunicaciones privada, pero peor en sistemas que usan una red pública, como Internet, para comunicaciones entre las entidades negociadoras y el sistema de negociación.
US 7.461.026 asignada a Trading Technologies, Inc intenta resolver este problema. Los datos de mercado se envían desde un sistema servidor a dispositivos cliente a través de servicios sincronizados de comunicación local de modo que los datos pueden visualizarse simultáneamente o casi simultáneamente en cada dispositivo cliente. Los datos de transacción enviados desde los dispositivos cliente al sistema servidor se reciben también mediante los servidores de comunicación local y la ordenación de esos datos de transacción se basa, al menos en parte, en cuándo los servidores de comunicación local recibieron los datos de transacción de los dispositivos cliente. Los datos de transacción pueden incluir información de orden y los mensajes de transacción pueden priorizarse determinando un tiempo de recorrido desde un primer dispositivo de red hasta la central host y luego determinar un tiempo de recorrido similar para un segundo dispositivo. Cuando un mensaje de transacción se envía desde un primer dispositivo cliente, se determina el tiempo de recepción. Igualmente, se mide el tiempo de recepción de mensajes desde el segundo dispositivo y el sistema servidor puede usar entonces los tiempos de recorrido conocidos de los dos dispositivos para priorizar el primer y segundo mensaje de transacción en la central host.
Aunque este enfoque hace algo por resolver el problema, es complejo y se basa en un conocimiento previo de los tiempos de recorrido y una constancia del tiempo de recorrido para transacciones repetidas desde el mismo dispositivo. El enfoque puede no ser capaz de afrontar bien órdenes enviadas desde dispositivos móviles tales como tabletas o teléfonos que están comenzando a usarse en los mercados dado que el tiempo de recorrido variará dependiendo de la ubicación del dispositivo.
Por lo tanto, se necesita un enfoque mejorado del problema de imparcialidad en la entrada de órdenes en los sistemas de negociación electrónicos.
US 5983308 se refiere a un sistema de interrupción para combinar interrupciones de E/S usando un motor de confrontación de decisiones que puede usar una cola de espera de decisiones. US 2004/0090974 describe la selección de una cola de espera, teniendo niveles las colas de espera y teniendo cada nivel una prioridad diferente; las colas de espera son confrontadas para una salida en orden de prioridad. US 6047000 se refiere a un sistema de programación de paquetes con una pluralidad de memorias intermedias primera en entrar-primera en salir que contienen paquetes de datos que se transmiten desde las memorias intermedias en base a valores asignados de crédito. US 6603772 describe un aparato para dirigir tráfico multidifusión con mejor rendimiento asignando el tráfico a múltiples colas de espera de salida virtuales.
Resumen de la invención
Un aspecto de la invención proporciona un método computarizado para gestionar la entrada de órdenes en un sistema de negociación electrónico. Los mensajes de orden electrónicos para negociar un instrumento se reciben en un servidor de dicho sistema de negociación electrónico de las partes que negocian en el sistema de negociación electrónico. Se inicia un conjunto de colas de espera. Los mensajes de orden electrónicos recibidos se almacenan en un dispositivo de almacenamiento del servidor tal como una memoria. Las órdenes se almacenan en dicho dispositivo de almacenamiento en un orden no relacionado con el orden en el que se recibieron en el sistema de negociación electrónico. Si el mensaje es el primer mensaje asignado al conjunto de colas de espera, el método inicia, en el servidor, un temporizador que tiene una duración aleatoria entre duraciones definidas mínimas y máximas para el conjunto de colas de espera. Después de terminar la duración aleatoria para el conjunto de colas de espera, los mensajes de orden almacenados son transferidos secuencialmente desde cada cola de espera del conjunto de colas de espera a un motor de confrontación del sistema de negociación electrónico y el motor de confrontación confronta mensajes de orden compatibles.
Enviando mensajes de orden almacenados al motor de confrontación en un orden no relacionado con el orden en que fueron recibidos en el sistema de negociación electrónico, se reduce la importancia del recorrido de transmisión entre las partes y el sistema de negociación electrónico. Esto a su vez reduce la necesidad de sistemas altamente sofisticados para asegurar el envío de órdenes lo más rápido posible desde las salas de negociación, en las que residen las partes en el sistema, al sistema de negociación electrónico. Así, se aumenta la imparcialidad del acceso al sistema incrementando la probabilidad de que participantes más pequeños tengan confrontadas sus órdenes incluso si fueron enviadas usando sistemas menos sofisticados que las órdenes enviadas por instituciones más grandes.
5
10
15
20
25
30
35
40
45
50
55
60
65
En una realización de la invención, al recibirse un mensaje de orden, se determina el origen del mensaje de orden. Se determina si otro mensaje de orden procedente del mismo origen está almacenado en el dispositivo de almacenamiento para el conjunto de colas de espera y, si otro mensaje está almacenado, el mensaje se pone en cola de espera detrás del mensaje almacenado anterior, por lo que, a la terminación de la duración aleatoria, el mensaje almacenado anterior procedente del mismo origen se envía para la confrontación por delante del mensaje recibido más tarde del mismo origen.
El origen del mensaje puede incluir un grupo de salas de negociación relacionadas y el origen de los mensajes recibidos antes y después puede compararse para determinar si proceden del mismo grupo de salas de negociación.
En una realización de la invención, se aleatoriza el orden en el que los mensajes de orden se almacenan en el dispositivo de almacenamiento.
En una realización de la invención, el sistema de negociación electrónico negocia una pluralidad de instrumentos y un conjunto de colas de espera incluye mensajes de orden relativos al mismo instrumento.
El paso de iniciar un conjunto de colas de espera puede incluir examinar un mensaje de orden electrónico recibido para determinar a qué instrumento se refiere y asignar el mensaje a un conjunto de colas de espera apropiado que se refiera al instrumento determinado.
El primer aspecto de la invención también proporciona un sistema de negociación computarizado para confrontar órdenes enviadas por partes negociadoras. El sistema de negociación computarizado incluye un sistema de entrada de órdenes que tiene un servidor para recibir mensajes de orden electrónicos para negociar un instrumento de partes negociadoras en el sistema de negociación electrónico. El servidor está configurado para iniciar un conjunto de colas de espera. El servidor incluye una zona de almacenamiento o memoria para almacenar los mensajes de orden electrónicos recibidos. La zona de almacenamiento guarda los mensajes de orden electrónicos en un orden no relacionado con el orden en que fueron recibidos en el servidor. Si el mensaje es el primer mensaje asignado al conjunto de colas de espera, el servidor está configurado para iniciar un temporizador que tiene una duración aleatoria entre duraciones mínimas y máximas definidas para el conjunto de colas de espera. El servidor está configurado además para enviar los mensajes de orden almacenados, después de terminar la duración aleatoria para el conjunto de colas de espera, a un motor de confrontación que forma parte del sistema de negociación electrónico, donde el motor de confrontación está configurado para confrontar mensajes de orden compatibles.
El primer aspecto de la invención proporciona también un medio tangible y no transitorio legible por ordenador, que incluye instrucciones ejecutables por ordenador que, cuando se ejecutan en un sistema de negociación computarizado, hacen que el sistema de negociación computarizado inicie en un ordenador servidor del sistema de negociación computarizado un conjunto de colas de espera; reciba, en el ordenador servidor, de partes que negocian en el sistema de negociación electrónico, mensajes de orden electrónicos para negociar un instrumento, y asigne el mensaje recibido a una cola de espera aleatoria dentro del conjunto de colas de espera. Si el mensaje es el primer mensaje asignado al conjunto de colas de espera, las instrucciones hacen que el servidor inicie un temporizador que tiene una duración aleatoria entre duraciones mínimas y máximas definidas para el conjunto de colas de espera; al final de la duración aleatoria para el conjunto de colas de espera, las instrucciones hacen que el servidor transfiera mensajes secuencialmente desde cada una del conjunto de colas de espera a un motor de confrontación del sistema de negociación electrónico y para que el motor de confrontación confronte mensajes de orden compatibles.
Un segundo aspecto de la invención reside en un método computarizado para gestionar la entrada de órdenes a un sistema de negociación electrónico. Un conjunto de colas de espera se inicia en un ordenador servidor. En el servidor, los mensajes de orden electrónicos para negociar un instrumento se reciben de una o más partes que negocian en el sistema de negociación electrónico. Cada mensaje recibido se asigna a una cola de espera aleatoria dentro del conjunto de colas de espera. Si el mensaje es el primer mensaje asignado al conjunto de colas de espera, el método inicia, en el servidor, un temporizador que tiene una duración aleatoria entre duraciones mínimas y máximas definidas para el conjunto de colas de espera. Al final de la duración aleatoria para el conjunto de colas de espera, los mensajes se transfieren secuencialmente desde cada una del conjunto de colas de espera a un motor de confrontación del sistema de negociación electrónico y el motor de confrontación confronta mensajes de orden compatibles.
En una realización, los mensajes de orden recibidos incluyen una indicación de la identidad de la parte originante. Se realiza una determinación en el servidor del código de sala virtual de la parte que envía el mensaje recibido, siendo el código de sala virtual una identidad de un grupo de partes relacionadas que negocian en el sistema.
El código de sala virtual del mensaje recibido puede compararse con los códigos de sala virtuales de cualesquiera de los mensajes ya asignados a las colas de espera del conjunto de colas de espera. Si los códigos de sala virtuales coinciden, el nuevo mensaje se asigna a la misma cola de espera que el mensaje anterior con el mismo código de sala virtual.
5
10
15
20
25
30
35
40
45
50
55
60
65
El nuevo mensaje puede asignarse a la misma cola de espera que el mensaje anterior que tenga el mismo código de sala virtual en una posición detrás del mensaje anterior de tal manera que el mensaje anterior se envíe a la función de confrontación antes que el nuevo mensaje.
En una realización, el paso de asignar el mensaje recibido a una cola de espera aleatoria incluye seleccionar una cola de espera aleatoria, determinar si esa cola de espera tiene un mensaje ya asignado a ella y, si lo tiene, asignar el mensaje a la siguiente cola de espera vacía. En ausencia de cualquier cola de espera, el mensaje se asigna preferiblemente a la cola de espera original asignada aleatoriamente.
Preferiblemente, la información de mensaje puede adjuntarse al mensaje después de que haya sido asignado a una cola de espera. La información de mensaje puede incluir al menos uno de los siguientes: un número de conjunto de cola de espera, tiempo de recepción de mensaje, número de mensaje dentro del conjunto de colas de espera y número de cola de espera asignado.
En una realización, los pasos de recibir, iniciar y almacenar se realizan por un hilo de enrutamiento de dicho ordenador servidor. El servidor además tiene un hilo de confrontación para realizar el paso de envío, iterando el hilo de confrontación a través de las colas de espera secuencialmente para eliminar y procesar mensajes de las colas de espera uno a la vez. Preferiblemente, el hilo de confrontación puede añadir el tiempo en el que un mensaje se movió desde el conjunto de colas de espera al mensaje.
El segundo aspecto de la invención proporciona también un sistema de negociación computarizado para gestionar la entrada de órdenes para negociar instrumentos. El sistema incluye un sistema de entrada de órdenes incluyendo un ordenador servidor que está configurado para iniciar un conjunto de colas de espera relativas a un instrumento de una pluralidad de instrumentos negociados en el sistema de negociación electrónico. El servidor está configurado para recibir, desde partes que negocian en el sistema de negociación electrónico, mensajes de orden electrónicos para negociar la pluralidad de instrumentos. El servidor está configurado para asignar un mensaje recibido al conjunto de colas de espera a las que se refiere el instrumento y a una cola de espera aleatoria dentro del conjunto de colas de espera. Si el mensaje es el primer mensaje asignado al conjunto de colas de espera, el ordenador servidor está configurado para iniciar un temporizador que tiene una duración aleatoria entre duraciones mínimas y máximas definidas para el conjunto de colas de espera. El servidor está configurado además para transferir mensajes, al final de la duración aleatoria para el conjunto de colas de espera, secuencialmente desde cada cola de espera del conjunto de colas de espera a un motor de confrontación del sistema de negociación electrónico y el motor de confrontación está configurado para confrontar mensajes de orden compatibles.
El segundo aspecto de la invención proporciona también un medio tangible y no transitorio legible por ordenador, que incluye instrucciones ejecutables por ordenador que, cuando se ejecutan en un sistema de negociación electrónico, hacen que el sistema de negociación reciba en un servidor del sistema de negociación electrónico mensajes de orden electrónicos para negociar un instrumento, de partes que negocian en el sistema; inicie un conjunto de colas de espera y almacene mensajes de orden electrónicos en un dispositivo de almacenamiento tal como una memoria del servidor. Las órdenes se almacenan en el dispositivo de almacenamiento en un orden no relacionado con el orden en que fueron recibidas en el sistema de negociación electrónico. Si el mensaje es el primer mensaje asignado al conjunto de colas de espera, el ordenador servidor está configurado para iniciar un temporizador que tiene una duración aleatoria entre duraciones mínimas y máximas definidas para el conjunto de colas de espera. Después de terminar la duración aleatoria para el conjunto de colas de espera, los mensajes de orden almacenados se envían a un motor de confrontación del sistema de negociación electrónico y el motor de confrontación confronta mensajes de orden compatibles.
Breve descripción de los dibujos
A continuación se describirán realizaciones de la invención, solamente a modo de ejemplo, y con referencia a los dibujos acompañantes, en los que:
La figura 1 ilustra, esquemáticamente, un ejemplo de un sistema de negociación electrónico distribuido conocido.
Las figuras 2a y 2b ilustran la red de arbitraje en el sistema de la figura 1.
La figura 3 ilustra el Servidor de Vista en Tiempo Real.
La figura 4 es una captura de pantalla que ilustra la interfaz de usuario que se muestra a un negociador manual en una estación de trabajo de negociación.
La figura 5 ilustra comunicaciones entre el negociador manual y automatizado y el sistema.
La figura 6 representa cómo los tickets de transacción son manejados por el sistema.
La figura 7 representa una vista general de los componentes de enlace de la red de comunicaciones del sistema.
5
10
15
20
25
30
35
40
45
50
55
60
65
Las figuras 8 a 11 son ilustraciones esquemáticas que representan una realización de la presente invención y que ilustran las etapas en la recepción de un lote de órdenes y su comunicación con el motor de confrontación.
Y la figura 12 es un diagrama de flujo de los pasos de una realización de la presente invención.
Descripción de realizaciones preferidas
En la realización ilustrada en las figuras, el sistema de negociación se usa en un sistema de corretaje electrónico para facilitar la compra y venta de instrumentos financieros tales como productos de divisas (FX) al contado o metales preciosos. Aunque la presente invención se describe en el contexto de FX al contado y la negociación de metales, la invención no está vinculada a la negociación de ningún instrumento financiero particular y es aplicable a negociación de cualquier instrumento financiero incluyendo, aunque sin limitación, productos de divisas, metales preciosos, acciones, derivados, mercancías, instrumentos de dinero en efectivo, garantías, deuda a largo y corto plazo y contratos de recompra. Además, el uso de la invención no se limita a la negociación de productos financieros o no financieros y es aplicable a cualquier sistema en el que es importante el tiempo relativo de acceso a un sistema informático.
La realización del sistema a describir es un sistema de negociación distribuido anónimo. De nuevo, la invención no se limita a ninguna arquitectura de sistema particular y puede usarse con un sistema basado en servidor tal como el de US 7.461.026 o cualquier otra arquitectura de sistema. Un sistema anónimo es uno en el que la identidad de las partes de una negociación no se da a conocer a los participantes hasta que se ha acordado una negociación. La invención también se puede usar en sistemas que no son anónimos. En el sistema Togher mencionado anteriormente, y el sistema descrito aquí, se envían órdenes firmes para ejecución. Estas órdenes serán tramitadas a menos que la orden no cumpla alguno de varios criterios predeterminados tales como la disponibilidad de crédito suficiente para la negociación en una de las partes potenciales de la negociación. Sin embargo, el uso de la invención no se limita a sistemas que envían órdenes firmes para ejecución y puede usarse con cualquier otro sistema de entrada de órdenes incluyendo sistemas que operan en base a RFQs o en los que las confrontaciones se negocian entre partes siguiendo una identificación inicial de una posible confrontación.
Con referencia a la figura 1, el sistema de negociación ilustrado es similar al descrito en US 6.996.541 mencionado anteriormente. El sistema 100 puede dividirse en una jerarquía de cuatro niveles con una red de árbitros 110 en la parte superior de la jerarquía y formando el núcleo 105 del sistema. Los árbitros son servidores o agrupaciones de servidores y funcionan como motores de confrontación y son responsables de llevar los libros de órdenes y confrontar propuestas, ofertas, aceptaciones de ofertas para ejecutar negociaciones o transacciones. Con el objeto de facilitar la comprensión, la figura 1 representa un componente único en cada nivel de la jerarquía. En la práctica hay varios árbitros tal como se describirá y luego múltiples componentes en cada nivel conectando con cada uno de los componentes en el nivel anterior. Los motores de confrontación, o árbitros, tienen una vista global del mercado y facilitan liquidez global. El nivel de núcleo soporta también persistencia transaccional centralizada y análisis e incluye un elemento de alimentación de tipo de mercado MRF 120 que puede enviar datos de mercado a los abonados.
El segundo nivel 125 incluye una pluralidad de brókeres 130 que forman un centro de distribución regional. Los brókeres gestionan interacciones entre los árbitros y estaciones de trabajo de negociadores. Cada bróker representa un grupo de salas de negociación ante los árbitros y cada bróker tiene una base de datos que conserva los parámetros de configuración específicos de la sala y el historial de las transacciones. Estas configuraciones incluirán datos de crédito incluyendo los límites de crédito extendidos por una sala de negociación dada a todas las otras posibles salas de negociación de contraparte. Los límites de crédito incluyen una matriz sí/no de crédito que se usa para filtrar información de mercado recibida de los árbitros. Como resultado, la vista del mercado que se envía a cada sala de negociación se adapta individualmente para mostrar solamente esas órdenes de contraparte de partes a quien la parte negociadora ha extendido el crédito y viceversa. Los brókeres están típicamente situados en ciudades principales, de las que algunas tendrán también árbitros.
El tercer nivel 135 es la sala de acceso a banco que incluye estaciones de trabajo de negociadores 140. Las estaciones de trabajo de negociadores se usan por negociadores manuales para comunicarse con los árbitros mediante su bróker dedicado. La estación de trabajo incluye un PC estándar u otro ordenador con una pantalla que muestra al negociador su vista de la sala de negociación del mercado y permite al negociador negociar enviando órdenes visibles (propuestas u ofertas) o invisibles (aceptaciones de oferta) al mercado usando un dispositivo de entrada tal como un teclado o un ratón. Típicamente, los negociadores usarán un teclado dedicado de negociación que está diseñado para una entrada de órdenes rápida y eficaz. También en el nivel de acceso hay un servidor AI (Interfaz Automatizado) 150 que es un servidor basado en sala de negociación que soporta negociación automatizada exponiendo una interfaz XML al sistema de negociación. Las estaciones de trabajo 140 y el servidor AI 150 se comunican ambos directamente con su bróker dedicado y también con servidores RTV (Vista en Tiempo Real) 160 que residen también en un banco o una sala de negociación institucional. Los servidores RTV gestionan de forma eficiente el almacenamiento en caché y la totalización de datos entre salas y se comunican con un servidor de alimentación de transacciones 170 para distribuir información de transacciones completadas en forma de tickets de transacción. El servidor de alimentación de transacciones 170 es responsable de comunicar esa información a los
5
10
15
20
25
30
35
40
45
50
55
60
65
sistemas de procesamiento de transacciones de bancos e instituciones para la liquidación de negociaciones en las que ha entrado el banco o institución.
El cuarto nivel 165 del sistema es el sitio del cliente. Físicamente, este nivel puede estar en la misma ubicación que la sala de acceso de nivel 3, pero en términos de arquitectura está fuera de los cortafuegos del sistema de negociación. Componentes en esto incluyen motores de tarificación de cliente, encargados de gestión de riesgo, procesadores STP (procesamiento directo), clientes de datos de mercado y clientes de negociación modelo. En la figura, los clientes de negociación modelo se representan como cliente AI 180 que se comunica mediante el servidor AI 150 para colocar órdenes generadas por los algoritmos de negociación del cliente en el mercado. El sistema STP de banco 190 recibe datos de ticket de negociación desde los servidores de alimentación de transacciones 170 para permitir la reconciliación de las actividades de negociación de la institución como el sistema y la liquidación de sus responsabilidades comerciales. El cliente de vista de mercado 200 se comunica con el alimentador de tipo de mercado 120 para proporcionar a los clientes datos de mercado, tales como parámetros de referencia e información de tipo histórica.
Las figuras 2a y 2b ilustran la red de arbitraje. En este ejemplo, hay tres árbitros vinculados uno con otro y situados en diferentes regiones de negociación con árbitro 110(a) en Londres, árbitro 110(b) en Nueva York y árbitro 110(c) en Tokio. Naturalmente, un sistema podría usar un número diferente de árbitros. Aunque no se representa, cada árbitro tiene un árbitro de respaldo en espera en caso de fallo del árbitro principal. Como se apreciará por la figura 1, diferentes entidades de negociación enviarán órdenes mediante sus respectivos brókeres a los diferentes árbitros dependiendo de su posición geográfica. Los tres árbitros activos están constantemente sincronizados de modo que las órdenes enviadas en una sola región están disponibles globalmente casi al instante. Esta arquitectura logra las ventajas de rendimiento de un mercado local manteniendo al mismo tiempo la liquidez global. Además de llevar el libro de órdenes global y los libros de crédito para su región, el árbitro propone transacciones confrontando órdenes invisibles compatibles de crédito (aceptaciones de ofertas) con cotizaciones visibles (propuestas y ofertas). El árbitro distribuye también datos de mercado a otros árbitros y componentes descendentes tales como brókeres.
Las transacciones de cada árbitro persisten sincrónicamente en archivos de registro redundantes. Como se ilustra en la figura 2(b) cada uno de los árbitros 110 está conectado a una pluralidad de brókeres 130(i) a 130(n) y también a un servidor gestor de registros 210 y un dispositivo de almacenamiento persistente 220. Esto garantiza que nunca se pierdan datos transaccionales. Los datos transaccionales también se pasan al sistema de alimentación de tipo de mercado 120 en tiempo real para su análisis y archivo.
Los brókeres 130 que están situados entre las salas de negociación y los árbitros son cada uno un agente electrónico, que representan a una sala de negociación en el sistema de negociación. Los parámetros de configuración de la sala de negociación, incluyendo titulaciones, límites de crédito e instrucciones de liquidación persisten en una base de datos que está asociada con cada bróker. Estos parámetros pueden ser ajustados por un administrador de sala de negociación (TFA) que tiene derechos para establecer variables tales como límites de crédito en nombre de una sala de negociación. Una sala de negociación consta de uno o más negociadores manuales o automatizados o una mezcla de ambos, aunque según se ve en la figura 1, los terminales automatizados acceden al bróker mediante el servidor AI 150. Los brókeres construyen vistas de mercado para cada sala de negociación en base a información de crédito almacenada y diseminan estas vistas de mercado y noticias a las salas de negociación. Los brókeres gestionan también el ciclo de vida de órdenes y transacciones para cada una de sus salas. Durante el proceso de negociación, cuando el árbitro realiza una confrontación, los brókeres manejan el proceso final de comprobación de crédito que determinará si una transacción puede proseguir y, si es así, si la cantidad de la transacción tiene que reducirse si no hay suficiente crédito para toda la cantidad de la transacción. Los brókeres también almacenan e intercambian instrucciones de liquidación para sus salas y para salas contraparte. Así, los brókeres realizan los roles de control de acceso, cálculo y distribución de vista de mercado, gestión del ciclo de vida de las órdenes/transacciones, gestión de crédito, distribución de noticias, aplicación de las reglas de transacción del sistema y gestión de la configuración de sala de negociación.
Un solo bróker representa a un número de salas de negociación en su proximidad geográfica. Algunos brókeres están situados en los mismos lugares que los árbitros, aunque éste no tiene que ser el caso, así como en otros centros que tienen altas concentraciones de salas de negociación, tales como Zurich y Singapur. Como con los árbitros, cada uno tiene un respaldo que proporciona recuperación de desastres.
El servidor de vista en tiempo real 160 se ilustra en la figura 3 y existe localmente en una sala de banco. Así, cada sala de negociación en el sistema tiene un servidor de vista en tiempo real 160. RTV conserva el tráfico de red y mejora la velocidad y la escalabilidad del sistema. El servidor está basado en la sala de negociación y realiza servicios para todas las salas para las entidades de negociación incluyendo tanto las estaciones de trabajo del negociador y los servidores AI en su sala. Estos servidores incluyen agregación de datos, almacenamiento en caché y distribución. RTV también es responsable de la entrega de la información de transacción completada al servidor de alimentación de transacciones 170 en su sala.
Las estaciones de trabajo usadas por negociadores manuales proporcionan a los negociadores una interfaz gráfica de usuario intuitiva tal como la que se ilustra en la figura 4. Esto permite a un negociador personalizar el entorno de
5
10
15
20
25
30
35
40
45
50
55
60
65
negociación a su estilo particular de negociación e instrumentos de negociación. La esencia de la visualización es una serie de paneles de precio 300 que ilustran el mercado en una serie de instrumentos disponibles para el negociador. El negociador puede seleccionar de una pluralidad de páginas de paneles mediante una pestaña de página 302 y puede seleccionar qué paneles aparecen en qué página. Los paneles de precio muestran cada uno el actual mejor precio en todo el sistema para tanto la propuesta como la oferta, así como el mejor precio transaccionable, que es el mejor precio que está disponible para ese negociador para su transacción. Este precio puede no ser tan bueno como el mejor precio del sistema si, por ejemplo, la institución del negociador no ha extendido crédito al propietario del mejor precio en el sistema.
En la parte inferior derecha de la pantalla hay un panel de cotizaciones 304 que permite a los negociadores enviar propuestas y ofertas. El panel de cotizaciones está vinculado al panel de precios activo 300(a) que en este caso es el par de divisas USD/JPY. Un negociador puede hacer clic en cualquier otro panel de precios para hacer que ese sea el panel activo actual en cuyo caso el panel de cotizaciones visualizará los parámetros de ese par de divisas y permitirá la entrada de cotización para el mercado en ese par de divisas. En la parte superior derecha de la pantalla hay un panel de tipos 306 que enumera los mejores tipos que están disponibles en el sistema para todos los instrumentos disponibles independientemente de si el negociador tiene crédito para negociar esos precios. Encima de los paneles de negociación hay dos paneles de aviso de crédito 308 que muestran mensajes de aviso a negociadores indicando que los niveles de crédito están alcanzando los niveles predeterminados con ciertas contrapartes o grupos de contrapartes. El color de los avisos puede variar según la severidad del aviso. Un mensaje en rojo puede indicar, por ejemplo, la inminente terminación de crédito. Debajo del panel de tipos 306 hay un panel de transacciones de negociador 308 que muestra todas las transacciones que el negociador ha ejecutado. Esto es el registro del negociador y proporciona una vista práctica de la posición del negociador permitiendo una fácil negociación.
Debajo del panel de transacciones de negociador 308 hay un panel de transacciones de sistema 310. Este panel muestra todas las transacciones que se han ejecutado satisfactoriamente en el sistema en el par de divisas seleccionado. El panel identifica solamente el par de divisas, el tiempo de la transacción, el tipo y si la transacción se pagó o produjo. No identifica las partes de las transacciones. En contraste, el panel de transacciones de negociador muestra adicionalmente la cantidad de una transacción y el código de sala de cuatro letras de la contraparte.
Debajo de los paneles activos descritos hay un panel de noticias 320 que presenta eventos financieros de todo el mundo que pueden ser de interés para el negociador y afectan a su estrategia de negociación.
Además de proporcionar una interfaz entre negociadores y el sistema de negociación, la estación de trabajo del negociador proporciona validación de órdenes introducidas por los negociadores, gestión y agregación de datos, gestión de interrupción de cotizaciones que permite a los negociadores sacar cotizaciones introducidas en el mercado antes de que sean negociadas, personalización del perfil del negociador e impresión de tickets de transacción.
La figura 5 ilustra la interfaz automatizada de negociación y muestra cómo aplicaciones de negociación de cliente o clientes AI 180 se comunican con el sistema de negociación mediante un servidor AI basado en sala que comunica, a su vez, con el bróker asignado de esas salas. El servidor AI 150 proporciona integración directa entre un motor de negociación del cliente y el sistema y puede usarse para ejecutar modelos matemáticos, modelos de arbitraje o modelos de gestión de riesgo.
Así, el servidor AI intermedia entre el cliente AI y el sistema de negociación. En términos de arquitectura, el servidor puede ser similar a la estación de trabajo del negociador excepto en que el servidor AI pasa de un XML o un protocolo de mensajería similar al protocolo de sistema, mientras que la estación de trabajo del negociador intermedia entre una GUI y los mensajes de negociación de sistema. El servidor AI, similar a la estación de trabajo del negociador, realiza también las tareas de autenticación de usuario y validación de entrada. Los mensajes XML son validados tanto para la conformidad con el protocolo XML como para el cumplimento con las reglas de negociación del sistema. Además, un puede incluirse un regulador para restringir el número de transacciones que pueden imitarse por un solo cliente automatizado para evitar que se sobrecargue el sistema.
El componente de alimentación de transacciones 170 se ilustra en la figura 6 y entrega automáticamente información post-transacción a los sistemas internos del cliente para mantenimiento de posición, gestión de riesgo y liquidación de negociaciones. Los tickets de transacción pueden producirse en uno de un número de estándares de industria en la selección del administrador de sala de negociación. Estos formatos incluyen Reuters TOF (Formato de Alimentación de Salida de Ticket) y EBS ASI (Interfaz de Sistema Automatizado). Los tickets de transacción pueden también imprimirse localmente. La disposición de alimentación de transacción se muestra en la figura 6 que representa el servidor de alimentación de transacciones 170 en cada sala de negociación conectado a una impresora 172 y a la base de datos de alimentación de transacción 174 así como el cliente STP 190. El servidor de alimentación de transacciones recibe información de transacción desde el componente Vista en Tiempo Real RTV 160 que recibe, a su vez, información de transacción desde la estación de trabajo del negociador o AI 140 o 180. El servidor de alimentación de transacciones reside en una sala de negociación del banco para minimizar la latencia post-transacción al sistema STP de cliente. Una línea de puntos 162 se muestra entre el RTV 160 y el bróker 130
5
10
15
20
25
30
35
40
45
50
55
60
65
indicando un protocolo de recuperación de transacción entre el RTV y el bróker que puede activarse automáticamente si hay una desconexión de componente en uno de los componentes que participan en la entrega de tickets. El depósito alimentador de transacción 174 es una base de datos que guarda tickets y soporta la consulta de transacción y la recuperación de ticket en caso de un apagón en la aplicación STP del cliente.
En el núcleo del sistema 105, un alimentador de tipo de mercado 120 recibe datos directamente de un árbitro y calcula varios datos de mercado a partir del alimentador de datos en tiempo real. Estos datos son distribuidos después a clientes de datos de mercado 200. Los datos de mercado pueden incluir un alimentador de datos de mercado al contado, precios al contado para los pares de divisas negociados en el sistema y datos de mercado históricos.
La figura 7 representa la red central del sistema con los árbitros y sus brókeres asociados interconectados por cuatro circuitos T1. Un circuito T1 es uno que tiene una tasa máxima de transmisión de datos de 1,544 megabits por segundo. Las conexiones entre árbitros y cada bróker remoto se realiza mediante una red de distribución usando un par de circuitos de acceso T3 o E3 dependiendo de donde están situados los componentes. Los circuitos T3 tienen una tasa máxima de transmisión de datos de 44,766 Mbps y son adecuados para transmisión de datos a larga distancia. Un circuito E3 es un equivalente europeo que se usa en otros países distintos de EEUU, Japón y Singapur.
Las conexiones entre brókeres y las estaciones de trabajo de bróker se realiza mediante un circuito T1 o E1 en base a la ubicación o, para terminales más antiguos, mediante un circuito de 56 o 64 kb.
En una implementación física el sistema incluye una red jerárquica distribuida de componentes interconectados por una red de alta velocidad. En una realización, esta red es una red propietaria. Los árbitros, que alojan los motores de confrontación y distribuyen los libros de órdenes pueden ser servidores HP Itanium proporcionados por la compañía Hewlett-Packard ejecutando un sistema operativo Open VMS. Los ordenadores de bróker 130, que incluyen centros de distribución regionales, pueden implementarse como servidores IBM 3550 M4 usando un sistema operativo Linux. En los centros de acceso, los servidores Ai 150 son típicamente servidores IBM 3550 M1/2 que funcionan en una plataforma Linux y las estaciones de trabajo de negociador son cualquier PC conveniente tal como una CPU Dell Inc, Hewlett-Packard ejecutando un sistema operativo como Windows (RTM) proporcionado por Microsoft, Inc.
En el pasado, las órdenes enviadas por negociadores, tanto manuales como automatizados, se procesan por el motor de confrontación en el árbitro en una prioridad precio/tiempo. Esto es, para determinar en qué orden se confronta, cada uno de los árbitros prioriza los que tienen el mejor precio y entonces, en ese precio, confronta en base al tiempo en que fueron recibidos. Se ha reconocido que la prioridad precio/tiempo puede dar lugar a una carga de las partes negociadoras para invertir fuertemente en tecnología de alto rendimiento para asegurar que sus órdenes tienen la mejor posibilidad de ejecutarse. Pequeñas mejoras, incluso en términos de microsegundo, en el tiempo de entrega de la orden puede dar lugar a la diferencia entre una confrontación o una negociación perdida. Como resultado, ha habido una tendencia de las instituciones participantes a enfrentarse en una carrera de inversión incremental dado que lo consideran esencial para tener éxito en el sistema. Hemos apreciado que sería deseable eliminar la necesidad de mecanismos de entrada de orden de coste elevado y asegurar que el acceso imparcial al sistema puede lograrse por todos los participantes.
Es además deseable asegurar que, cuando se mejora el acceso imparcial al sistema, ninguna modificación incrementa negativamente la sobrecarga de procesamiento e incrementa la latencia más de lo necesario. A este respecto, el problema afrontado por el sistema puede verse en cómo proporcionar un sistema justo para enviar mensajes recibidos de orden electrónica para negociar un instrumento a un sistema de negociación electrónico para la confrontación manteniendo al mismo tiempo la eficiencia de procesamiento.
Las figuras 8 a 11 ilustran la forma en que se cambia el manejo de órdenes entrantes para mejorar la imparcialidad. Las figuras ilustran cómo se reciben órdenes de los brókeres y se procesan por cada uno de los árbitros. En esencia, las órdenes entrantes son agrupadas en lotes después enviadas al árbitro para confrontación en un orden aleatorizado. El árbitro define una ventana de lote, típicamente de unos pocos milisegundos y preferiblemente menos de 10ms y todavía más preferiblemente de 1 a 3ms. Este tamaño de ventana es configurable por el administrador del sistema. Cualquier mensaje de orden que llega durante este intervalo se almacena en una memoria intermedia en el árbitro hasta que la ventana expire
Las órdenes entrantes son aleatorizadas de modo que el orden en el que se leen de la memoria intermedia es típicamente diferente del orden en el que fueron introducidas al sistema. De esta forma, la primera orden recibida no es necesariamente la primera que se lee y se pasa al árbitro para confrontación. Así, como todas las órdenes entrantes se retrasan durante un período de tiempo en grupos en lotes con las órdenes en un lote dado que se procesa conjuntamente, ya no existe una prima en la respuesta ultrarrápida y la entrada de órdenes. Como se ha mencionado anteriormente, aunque se ha descrito en relación a un sistema basado en árbitro, las realizaciones de las figuras 8 a 11 pueden usarse para la entrada de órdenes en cualquier tipo de sistema de negociación.
5
10
15
20
25
30
35
40
45
50
55
60
65
Es actualmente preferible aleatorizar las órdenes cuando se reciben de modo que se almacenen en un orden aleatorio. Esto permite ventajosamente al sistema procesar la aleatorización a medida que las órdenes se reciben durante la ventana de lote. Alternativamente, las órdenes podrían almacenarse y después leerse en un orden aleatorio al final de la ventana de lote, pero esto aumentaría la sobrecarga de procesamiento e aumenta la latencia.
El proceso se explica con más detalle en las figuras 8 a 11. En el paso 1, se selecciona una ventana de lote aleatoria. En este ejemplo está entre 1 y 3 ms, aunque esto es configurable. Alternativamente, la ventana podría tener una duración fija. En las figuras 8 a 11, el progreso de la ventana de lote se indica mediante la barra 200.
En el paso 2, los mensajes de orden se reciben desde bancos o instituciones participantes. Un mensaje ejemplar se muestra en 210. Este mensaje es una orden de compra o venta a un precio indicado y puede ser para una cantidad indicada o una cantidad por defecto. La orden se asigna a una de 1 a n filas o colas de espera en la memoria intermedia donde n es preferiblemente un número primo. La determinación del número de fila se realiza por un proceso aleatorio o pseudoaleatorio por el árbitro. La figura 9 representa cómo 14 mensajes de banco, u órdenes, ya se han asignado a diferentes colas de espera o filas. Se observará que cada cola de espera o fila puede contener una o más órdenes y que esas varias colas de espera o puestos tienen múltiples órdenes del mismo banco. Éstas pueden venir de la misma o única sala de negociación diferente de una institución en la misma región, que es la región que introduce órdenes al mismo árbitro. Las órdenes de la misma institución están colocadas en una cola de espera en la misma fila de modo que ninguna institución puede obtener una ventaja o impactar a otras. Así, en la figura 9, las órdenes en cada una de las filas 1, 2, 8, 10 y 23 son de la misma institución, pero no necesariamente la misma sala de negociación dentro de la misma institución.
La figura 10 representa el proceso del final del tiempo de lote. Ahora hay siete filas con órdenes y las filas 1, 2, 8, 10 y 23 tienen más de una orden en cola de espera de la misma institución. Las órdenes en una fila dada no serán necesariamente de las mismas instituciones ya que la distribución es aleatoria, pero una vez que una primera orden se ha asignado a una fila, todas las demás órdenes de esa institución serán asignadas a la misma fila. Como se explica con más detalle a continuación, es preferible asignar un nuevo mensaje de una nueva institución a una nueva fila, pero esto puede no ser posible si todas las filas están ocupadas.
El árbitro consultará el código de banco de cuatro letras que forma parte de la orden e identificará el origen de la orden. Comparará entonces ese código de banco con un registro de otros códigos de banco que han sido recibidos en esa ventana de lote. Si encuentra una coincidencia, consultará el número de fila de ese código de banco para esa ventana y asignará la orden posterior a la misma fila. La manera en que esto se realiza, de modo que los códigos relacionados puedan identificarse, se explica a continuación. Las salas de negociación de un banco pueden compartir el mismo código de banco, conocido como un código de sala virtual incluso aunque sus códigos de sala reales sean diferentes. Esto permite al sistema asignar órdenes de diferentes salas de negociación de la misma institución negociadora a la misma fila.
Un ejemplo de esto se muestra en la fila 10 donde el sombreado diferente muestra órdenes de dos salas de negociación diferentes de la misma institución.
La figura 11 representa cómo, al final de la ventana de lote, todas las órdenes recibidas se descargan y pasan al árbitro para su confrontación. Las órdenes se descargan en orden de fila, por ejemplo, comenzando con la fila 1, aunque esto no tiene que ser así. El sistema descarga la primera orden de cada fila, pasando a través de las filas en secuencia, seguida por la segunda orden de cada fila y así hasta que todas las filas se hayan vaciado.
Se apreciará que, en lugar de aleatorizar las filas en la entrada, las órdenes podrían almacenarse en orden de recepción y después aleatorizar el orden de salida, aunque como se ha mencionado anteriormente esto no es preferible.
Se apreciará que una vez las órdenes se han descargado en el paso 4, se abre una nueva ventana para nuevas órdenes de modo que el proceso es continuo con una nueva ventana de orden abriéndose a medida que se cierra la anterior.
La realización descrita no ha diferenciado entre tipos de orden o tipos de instrumento. Sin embargo, un sistema de negociación tal como el Sistema EBS Spot FX negocia muchos instrumentos diferentes, en el caso de la plataforma EBS, muchos pares de divisas, operaciones a futuro sin entrega y metales preciosos. Las ventanas de lote pueden establecerse para cada instrumento negociado en el sistema o una ventana de lote puede establecerse para múltiples instrumentos. Por ejemplo, un árbitro puede operar en proceso por lotes continuo para negociaciones USD:EUR y procesos por lote separados y paralelos para todos y cada uno de los instrumentos negociados en el sistema.
Como se ha explicado anteriormente, la mayoría de las negociaciones se originan desde partes conectadas al mismo árbitro debido a la temporización de los mercados globales. El proceso por lotes se aplica a todas las órdenes que se reciben en un árbitro dado y se ejecuta por separado en cada árbitro. Sin embargo, se entenderá que el enfoque por lote no está confinado a sistemas de negociación distribuidos tales como el sistema EBS, pero
5
10
15
20
25
30
35
40
45
50
55
60
65
puede usarse en cualquier sistema, tanto centralizado como distribuido y donde la ruta de envío de órdenes se realiza mediante una red pública tal como Internet o una red de comunicaciones privada.
La figura 12 es un diagrama de flujo que muestra los pasos realizados por el árbitro. En una realización preferida, el árbitro usa códigos de transacción virtuales para identificar una sala de negociación conectada a la misma institución. Los códigos de transacción virtuales se describen en US 7.660.760. Un código de transacción virtual representa un grupo de códigos de transacción de negociación real para salas de negociación de una institución. Así, una institución XYZ que tiene salas de negociación 1XYZ, 2XYZ y 3XYZ puede representarse por el código virtual XYZA, cuando un mensaje de orden se recibe de una de estas salas reales, el árbitro lo reconoce como perteneciente al código virtual XYZA y se asegura que se asigna a la misma posición que mensajes de otras salas que tienen el mismo código virtual. La figura 12 representa los pasos realizados por un hilo de enrutamiento del árbitro que es responsable de la entrada de mensajes de orden recibidos desde brókeres al árbitro para la confrontación por un hilo de confrontación.
Cada uno de los árbitros crea un nuevo conjunto de cola de espera para cada par de divisas u otro instrumento que puede negociarse en el sistema. El ejemplo de las figuras 8 a 11 es un conjunto de cola de espera formado para la entrada de órdenes de un instrumento, por ejemplo, un par de divisas, sobre una ventana de lote. Un hilo de enrutamiento inicia cada conjunto de cola de espera en 400 asignando el lote inicial. Cuando un mensaje se recibe en 402, el hilo de enrutamiento en 404 consulta el instrumento asociado con el mensaje para determinar en qué conjunto de cola de espera colocar el mensaje. Si el conjunto de colas de espera se ha inhabilitado, es decir, el intervalo de lote se ha establecido a cero, el mensaje se pone en cola directamente en el hilo de confrontación de árbitro. Este ejemplo muestra los pasos solamente para un solo instrumento al objeto de facilitar la comprensión.
En 406, el hilo de enrutamiento consulta después el código de sala que envía el mensaje para determinar su código de transacción virtual. El identificador de sala, que es la sala de negociación desde la cual el mensaje fue enviado, es una parte del mensaje recibido y el árbitro incluye una tabla de consulta en una memoria de la relación entre los códigos de sala reales y los códigos de transacción virtuales.
El hilo de enrutamiento en 408 localiza después datos de control para la sala virtual y el conjunto de cola de espera para determinar en 410 si se ha recibido algún mensaje desde este código de transacción virtual para el lote. En caso negativo, el hilo de enrutamiento en 412 elige un número aleatorio de cola de espera dentro del conjunto de cola de espera y lo guarda para usarse para futuros mensajes desde ese código de transacción virtual.
El hilo determina después en 414 si la cola de espera elegida ya está en uso y contiene mensajes. Si la cola de espera elegida aleatoriamente ya está en uso con otro código de transacción, el hilo de enrutamiento en 416 busca una cola de espera vacía, comenzando en la cola de espera siguiente secuencialmente y ciclando a través de las colas de espera disponibles. Si el hilo determina en 418 que no existe una cola de espera vacía, se usará, en 420 la cola de espera elegida inicialmente, así, un número de cola de espera dado puede usarse para poner en cola mensajes desde más de un código de transacción virtual.
En el paso 422 el hilo de enrutamiento captura el tiempo en el que el mensaje se recibió, el número de mensaje dentro del lote, el número de serie de lote y el número de cola de espera y adjunta esta información al mensaje. El hilo de enrutamiento inserta después, en el paso 424 el mensaje al final de la cola de espera seleccionada de modo que es el último mensaje en la cola de espera.
Si en el paso 426 se determina que el mensaje es el primero enviado al conjunto de cola de espera, el hilo de enrutamiento crea un temporizador de lote en el paso 428 para una cantidad aleatoria de tiempo entre los intervalos mínimo y máximo definidos para el conjunto de cola de espera. En el paso 430, el hilo determina si este temporizador ha expirado, y si lo ha hecho el hilo de enrutamiento envía el lote actual al paso 432, en orden de fila, al hilo de confrontación para confrontar e incrementa después el número de serie del conjunto de cola de espera y asigna un nuevo lote. Si el mensaje no es el primero en el conjunto de cola de espera, se evita el paso 428 y el proceso salta del paso 426 al paso 430.
En el hilo de confrontación del árbitro, no representado, cuando un lote de mensajes se está recibiendo, el hilo itera a través de todas las filas, o colas de espera, eliminando y procesando repetidamente un mensaje de cada cola de espera en cada pasada hasta que todas las colas de espera están vacías. El hilo de confrontación captura el tiempo en el que cada mensaje se ha eliminado del lote y añade este tiempo junto con la información adjuntada por el hilo de enrutamiento al mensaje y escribe el mensaje en un archivo de registro. Así, en el ejemplo de la figura 10, se lee el primer mensaje de la fila 1, seguido por el primer mensaje de la fila 2, después el primer mensaje de la fila 5, etc. Después de la fila final, el proceso vuelve a la fila 1 y lee el segundo mensaje en cada fila secuencialmente para estas filas que tienen mensajes pendientes. Una vez que el proceso se ha completado, el siguiente lote se inicializa y se inicia el temporizador. El proceso es continuo.
Así, las realizaciones de la invención agrupan mensajes entrantes que son después transferidos al hilo de confrontación del árbitro en una manera aleatoria. Esto reduce la necesidad de sistemas altamente sofisticados para asegurar el envío de órdenes más rápido posible desde las salas de negociación al sistema. Así, el sistema
incrementa la imparcialidad de acceso incrementando la probabilidad de que los participantes más pequeños tendrán confrontadas sus órdenes, aunque fueran enviadas usando sistemas menos sofisticados que las órdenes enviadas por instituciones más grandes, sin incrementar materialmente la latencia del sistema.
5 Varias modificaciones de las realizaciones descritas son posibles y se les ocurrirán a los expertos en la técnica sin apartarse de la invención reivindicada.

Claims (14)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Un método computarizado para gestionar la entrada de órdenes a un sistema de negociación electrónico, incluyendo los pasos de:
    iniciar (400) en un ordenador servidor un conjunto de colas de espera;
    recibir (402), en el servidor, de una o varias partes que negocian en el sistema de negociación electrónico, mensajes de orden electrónicos (210) para negociar un instrumento; y
    asignar (412) cada mensaje recibido (210) a una cola de espera aleatoria dentro del conjunto de colas de espera; donde el método se caracteriza además porque, si el mensaje (210) es el primer mensaje asignado al conjunto de colas de espera, el método incluye además el paso de iniciar (428), en el ordenador servidor, un temporizador que tiene una duración aleatoria entre duraciones mínimas y máximas definidas para el conjunto de colas de espera; e incluyendo además el método transferir (432), al final de la duración aleatoria para el conjunto de colas de espera, mensajes (210) secuencialmente desde cada cola de espera del conjunto de colas de espera a un motor de confrontación del sistema de negociación electrónico y confrontar mensajes de orden compatibles en el motor de confrontación.
  2. 2. Un sistema computarizado para gestionar la entrada de órdenes a instrumentos de comercio a un sistema de negociación electrónico, incluyendo el sistema un sistema de entrada de órdenes incluyendo:
    un ordenador servidor configurado para iniciar un conjunto de colas de espera con relación a un instrumento de una pluralidad de instrumentos negociados en el sistema de negociación electrónico;
    estando configurado el servidor para recibir, de partes que negocian en el sistema de negociación electrónico, mensajes de orden electrónicos (210) para negociar la pluralidad de instrumentos; y
    estando configurado el servidor para asignar un mensaje recibido (210) a una cola de espera aleatoria dentro del conjunto de colas de espera a las que se refiere el instrumento; donde el sistema se caracteriza además porque, si el mensaje (210) es el primer mensaje asignado al conjunto de colas de espera, el ordenador servidor está configurado además para iniciar un temporizador que tiene una duración aleatoria entre duraciones mínimas y máximas definidas para el conjunto de colas de espera; y
    estando configurado además el servidor para transferir mensajes (210), al final de la duración aleatoria para el conjunto de colas de espera, secuencialmente desde cada cola de espera del conjunto de colas de espera a un motor de confrontación del sistema de negociación electrónico, estando configurado el motor de confrontación para confrontar mensajes de orden compatibles.
  3. 3. Un método o sistema computarizado según la reivindicación 1 o 2 respectivamente, donde los mensajes de orden recibidos (210) incluyen una indicación de la identidad de la parte originante, incluyendo determinar (406), en el servidor, el código de sala virtual de la parte que envía el mensaje recibido (210), siendo el código de sala virtual una identidad de un grupo de partes relacionadas que negocian en el sistema.
  4. 4. Un método o sistema computarizado según la reivindicación 3, incluyendo comparar, en el servidor, el código de sala virtual del mensaje recibido (210) con los códigos de sala virtuales de cualesquiera mensajes (210) ya asignados a colas de espera del conjunto de colas de espera, y, si los códigos de sala virtuales concuerdan, asignar el nuevo mensaje (210) a la misma cola de espera que el mensaje anterior (210) con el mismo código de sala virtual.
  5. 5. Un método o sistema computarizado según la reivindicación 4, donde el nuevo mensaje (210) es asignado (424), por el servidor, a la misma cola de espera que el mensaje anterior (210) que tiene el mismo código de sala virtual en una posición detrás del mensaje anterior (210) de tal manera que el mensaje anterior (210) sea enviado al motor de confrontación antes que el nuevo mensaje (210).
  6. 6. Un método o sistema computarizado según la reivindicación 1 o 2 respectivamente, donde el paso de asignar (412), por el servidor, el mensaje recibido (210) a una cola de espera aleatoria incluye seleccionar una cola de espera aleatoria, determinar (414) si dicha cola de espera ya tiene un mensaje asignado a ella y, si lo tiene, asignar el mensaje (210) a la cola de espera vacía siguiente.
  7. 7. Un método o sistema computarizado según la reivindicación 6, donde en la ausencia de colas de espera vacías, el mensaje (210) es asignado (420), por el servidor, a la cola de espera asignada aleatoriamente original.
  8. 8. Un método o sistema computarizado según la reivindicación 1 o 2 respectivamente, incluyendo adjuntar (422) información de mensaje al mensaje (210) después de haber sido asignado, por el servidor, a una cola de espera.
    5
    10
    15
    20
    25
  9. 9. Un método o sistema computarizado según la reivindicación 8, donde la información de mensaje incluye al menos uno del número de conjunto de cola de espera, el tiempo de recepción de mensaje, el número de mensaje dentro del conjunto de colas de espera y el número de cola de espera asignado.
  10. 10. Un método o sistema computarizado según la reivindicación 1 o 2 respectivamente, donde dichos pasos de recibir, iniciar y almacenar son realizados por un hilo de enrutamiento de dicho servidor, teniendo además el servidor un hilo de confrontación para realizar el paso de envío, estando configurado el hilo de confrontación para ciclar a través de las colas de espera secuencialmente para quitar y procesar mensajes (210) de las colas de espera de uno en uno.
  11. 11. Un método o sistema computarizado según la reivindicación 10, donde el hilo de confrontación está configurado para añadir (422) al mensaje (210) el tiempo en el que se quitó un mensaje (210) del conjunto de colas de espera.
  12. 12. Un método o sistema computarizado según la reivindicación 1 o 2 respectivamente, donde el sistema de negociación electrónico está configurado para negociar una pluralidad de instrumentos y un conjunto de colas de espera está configurado para incluir mensajes de orden (210) relativos al mismo instrumento.
  13. 13. Un método o sistema computarizado según la reivindicación 1 o 2 respectivamente, donde el paso de iniciar un conjunto de colas de espera, en el servidor, incluye examinar (404) un mensaje de orden electrónico recibido (210) para determinar a qué instrumento se refiere y asignar el mensaje (210) a un conjunto apropiado de colas de espera que se refiere al instrumento determinado.
  14. 14. Un medio tangible y no transitorio legible por ordenador, incluyendo instrucciones ejecutables por ordenador que, cuando son ejecutadas en un sistema de negociación electrónico, realizan los pasos de la reivindicación 1 o cualquiera de las reivindicaciones 3 a 13 en cuanto dependientes de la reivindicación 1.
ES14184147.8T 2013-09-09 2014-09-09 Método y aparato para entrada de órdenes en un sistema de negociación electrónico Active ES2650498T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361875263P 2013-09-09 2013-09-09
US201361875263P 2013-09-09

Publications (1)

Publication Number Publication Date
ES2650498T3 true ES2650498T3 (es) 2018-01-18

Family

ID=51494174

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14184147.8T Active ES2650498T3 (es) 2013-09-09 2014-09-09 Método y aparato para entrada de órdenes en un sistema de negociación electrónico

Country Status (4)

Country Link
US (5) US10102577B2 (es)
EP (1) EP2858318B1 (es)
DK (1) DK2858318T3 (es)
ES (1) ES2650498T3 (es)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10127612B2 (en) 2012-05-03 2018-11-13 Tamer Trading Technologies Llc System, method, and computer-readable medium for improving the efficiency and stability of financial markets
CA3160095A1 (en) 2012-09-12 2014-03-20 Iex Group, Inc. System, apparatuses, and methods for managing orders with minimum quantity instructions in electronic trading systems
US10325317B2 (en) * 2013-11-05 2019-06-18 Refinitiv Us Organization Llc Ideal latency floor
US11144993B2 (en) 2013-11-05 2021-10-12 Refinitiv Us Organization Llc Delay-free matching for deemphasizing effects of speed differentials among price-makers
US10909621B2 (en) * 2013-11-05 2021-02-02 Refinitiv Us Organization Llc Systems and methods for quantifying temporal fairness on electronic trading venues
WO2015138544A1 (en) 2014-03-11 2015-09-17 Chicago Mercantile Exchange Inc. Improved market operation through regulation of incoming order match allocation and/or dynamic resting order match allocation priorities
JP6542800B2 (ja) * 2014-04-16 2019-07-10 アイイーエックス グループ,インコーポレーテッド トランザクションの最新情報を提供するシステム及び方法
WO2016054721A1 (en) * 2014-10-08 2016-04-14 Tsx Inc. Selective delayed and undelayed database updating
US9456039B2 (en) * 2014-10-31 2016-09-27 Qualcomm Incorporated Exchanging floor arbitration history information during a communication session
US11257153B2 (en) * 2015-05-06 2022-02-22 Chicago Mercantile Exchange Inc. Tokens, and the use thereof, for public distribution of messages having a private association with a subset of the message recipients
US10417709B2 (en) 2015-08-12 2019-09-17 Chicago Mercantile Exchange Inc. Mitigation of latency disparity in a transaction processing system
US20170124649A1 (en) * 2015-10-29 2017-05-04 Stephen R. Schonberg Techniques for real-time order prioritization and matching
US11416912B2 (en) * 2016-05-13 2022-08-16 Digital River, Inc. High volume transaction queueing with machine learning
US10748210B2 (en) * 2016-08-09 2020-08-18 Chicago Mercantile Exchange Inc. Systems and methods for coordinating processing of scheduled instructions across multiple components
US20180077227A1 (en) * 2016-08-24 2018-03-15 Oleg Yeshaya RYABOY High Volume Traffic Handling for Ordering High Demand Products
US10776428B2 (en) * 2017-02-16 2020-09-15 Nasdaq Technology Ab Systems and methods of retrospectively determining how submitted data transaction requests operate against a dynamic data structure
US10938705B2 (en) * 2017-02-16 2021-03-02 Refinitiv Us Organization Llc Low-cost, realistic, performance test bed for an electronic trading venue
US10789097B2 (en) 2017-02-16 2020-09-29 Nasdaq Technology Ab Methods and systems of scheduling computer processes or tasks in a distributed system
US9929743B1 (en) * 2017-03-13 2018-03-27 Chicago Mercantile Exchange Inc. Data compression of electronic data transaction request messages
US11295382B2 (en) 2017-09-12 2022-04-05 Mark Gimple System and method for global trading exchange
US10511520B1 (en) * 2018-05-29 2019-12-17 Ripple Labs Inc. Multi-hop path finding
US10861094B1 (en) * 2018-08-23 2020-12-08 Chicago Mercantile Exchange Inc. Asynchronous computational engine
CN110209690B (zh) * 2019-05-30 2021-07-20 北京奇艺世纪科技有限公司 数据获取方法、装置及电子设备
US20200402170A1 (en) * 2019-06-19 2020-12-24 Chicago Mercantile Exchange Inc. Deterministic Message Processing in a Distributed Network
US11961140B2 (en) 2019-08-13 2024-04-16 Chicago Mercantile Exchange Inc. Randomization of orders at matching in electronic trading systems
CN111324473B (zh) * 2020-02-07 2023-03-14 广东跑合中药材电子商务有限公司 可实现高并发处理交易信息的拍卖交易***
US11928731B1 (en) * 2020-04-09 2024-03-12 Cboe Exchange, Inc. Virtual trading floor
US20220301053A1 (en) 2021-03-19 2022-09-22 Chicago Mercantile Exchange Inc. Efficient resource allocation in latency floor implementation
US20230177604A1 (en) * 2021-12-06 2023-06-08 Jonathon FLETCHER Dynamic allocation of locations of matching engines in a cloud-based exchange
US20230388246A1 (en) * 2022-05-25 2023-11-30 Softiron Limited Resource-Sharing System with Cryptographically Enforced Fair Access

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375055A (en) 1992-02-03 1994-12-20 Foreign Exchange Transaction Services, Inc. Credit management for electronic brokerage system
US6985883B1 (en) 1992-02-03 2006-01-10 Ebs Dealing Resources, Inc. Credit management for electronic brokerage system
DE69630456T2 (de) * 1995-08-28 2004-07-29 Ebs Dealing Resources, Inc. Anonymes börsenhandelssystem mit verbesserten eingabemöglichkeiten für quoten
US6356551B1 (en) 1997-02-14 2002-03-12 Advanced Micro Devices, Inc. Method and network switch having dual forwarding models with a virtual lan overlay
US6047000A (en) * 1997-07-24 2000-04-04 The Hong Kong University Of Science & Technology Packet scheduling system
US6603772B1 (en) 1999-03-31 2003-08-05 Cisco Technology, Inc. Multicast routing with multicast virtual output queues and shortest queue first allocation
US7080050B1 (en) * 1999-08-05 2006-07-18 Barter Securities Electronic bartering system
US6874010B1 (en) * 1999-10-01 2005-03-29 Accenture Llp Base service architectures for netcentric computing systems
US7840474B1 (en) 2000-12-11 2010-11-23 Icor Brokerage, Inc. Method and system for managing requests for proposals for electronic trading of financial instruments
US6823191B2 (en) * 2001-01-08 2004-11-23 Lucent Technologies Inc. Apparatus and method for use in paging mode in wireless communications systems
US20030097217A1 (en) * 2001-05-07 2003-05-22 Wells Charles Hilliary AVL software specifications
US7724760B2 (en) * 2001-07-05 2010-05-25 Broadcom Corporation Method and apparatus for bandwidth guarantee and overload protection in a network switch
AU2003210706A1 (en) 2002-01-28 2003-09-02 Siemens Building Technologies, Inc. Building system with reduced wiring requirements and apparatus for use therein
US7174394B1 (en) * 2002-06-14 2007-02-06 Cisco Technology, Inc. Multi processor enqueue packet circuit
US7124110B1 (en) 2002-07-15 2006-10-17 Trading Technologies International Inc. Method and apparatus for message flow and transaction queue management
US7752115B2 (en) 2002-10-02 2010-07-06 Trading Technologies International, Inc. Method and apparatus for a fair exchange
US7418422B2 (en) * 2002-11-13 2008-08-26 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
GB2415070A (en) 2003-03-28 2005-12-14 Ebs Group Ltd Processing of deal tickets
US7469324B2 (en) 2005-01-07 2008-12-23 Azul Systems, Inc. System and method for concurrent compacting self pacing garbage collection using loaded value and access barriers
US8345701B1 (en) * 2003-08-26 2013-01-01 F5 Networks, Inc. Memory system for controlling distribution of packet data across a switch
US8655755B2 (en) 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
US7942421B1 (en) * 2004-11-23 2011-05-17 Melanie Franklin Container with message inside and related method for promoting social interaction
US20060294228A1 (en) 2005-05-16 2006-12-28 Cinnober Financial Technology Ab Systems and methods for preventing server overload
US8353452B2 (en) * 2005-10-03 2013-01-15 Teletech Holdings, Inc. Virtual retail assistant
EP1777655A1 (en) 2005-10-14 2007-04-25 Hotspot FX, Inc. System, method, and software for assessing temporal stability of a trading platform
JP2007193864A (ja) 2006-01-17 2007-08-02 Sony Corp 読み出し装置および方法、プログラム並びにプログラム記録媒体
US7716118B2 (en) 2007-01-16 2010-05-11 Peter Bartko System and method for providing latency protection for trading orders
US7809841B1 (en) 2007-03-29 2010-10-05 Trading Technologies International, Inc. System and method for communicating with an electronic exchange in an electronic trading environment
US8315187B1 (en) * 2008-09-02 2012-11-20 Marvell International Ltd. Dynamic head of line allocation
EP2389656A4 (en) 2009-01-23 2014-04-30 Cfph Llc MULTI-COMPUTERIZED DISTRIBUTED TREATMENT TECHNIQUES TO PREVENT INFORMATION LEAKAGE
WO2011067408A1 (en) * 2009-12-04 2011-06-09 Napatech A/S An apparatus and a method of receiving and storing data packets controlled by a central controller
WO2011067405A1 (en) * 2009-12-04 2011-06-09 Napatech A/S Distributed processing of data frames by mulitiple adapters using time stamping and a central controller
BR112012013357A2 (pt) * 2009-12-04 2016-03-01 Napatech As conjunto para receber e encaminhar pacotes de dados, aparelho para receber e armazenar dados para uso no conjunto e método para operar o conjunto
US8719146B2 (en) * 2010-03-22 2014-05-06 Lars-Ivar Sellberg Micro auction
US20120054084A1 (en) * 2010-08-27 2012-03-01 Wolf Brian M Delta Neutral Futures Allocation
US10263888B2 (en) 2010-09-30 2019-04-16 Trading Technologies International, Inc. Sticky order routers
WO2012079041A1 (en) 2010-12-09 2012-06-14 Exegy Incorporated Method and apparatus for managing orders in financial markets
WO2013006439A1 (en) 2011-07-01 2013-01-10 Cürex Innovations, Llc Systems and methods for open execution auction trading of financial instruments
US8533104B2 (en) * 2011-10-07 2013-09-10 Trading Technologies International, Inc Multi-broker order routing based on net position
US10127612B2 (en) * 2012-05-03 2018-11-13 Tamer Trading Technologies Llc System, method, and computer-readable medium for improving the efficiency and stability of financial markets
US20140067565A1 (en) * 2012-08-29 2014-03-06 Jennifer C. Brown Securities based card spending settlement management system and method
US9106721B2 (en) * 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US20150006349A1 (en) * 2013-06-28 2015-01-01 D. E. Shaw & Co., L.P. Electronic Trading Auction With Orders Interpreted Using Future Information
US10325317B2 (en) 2013-11-05 2019-06-18 Refinitiv Us Organization Llc Ideal latency floor

Also Published As

Publication number Publication date
US20190251628A1 (en) 2019-08-15
US10102577B2 (en) 2018-10-16
EP2858318B1 (en) 2017-11-08
US11636544B2 (en) 2023-04-25
US10614523B2 (en) 2020-04-07
US20220180439A1 (en) 2022-06-09
US11295384B2 (en) 2022-04-05
US20200193518A1 (en) 2020-06-18
US20230222587A1 (en) 2023-07-13
EP2858318A1 (en) 2015-04-08
DK2858318T3 (en) 2018-02-12
US20150073970A1 (en) 2015-03-12

Similar Documents

Publication Publication Date Title
ES2650498T3 (es) Método y aparato para entrada de órdenes en un sistema de negociación electrónico
US11030692B2 (en) System and method for a semi-lit market
US7895118B2 (en) Global electronic trading system
US6058379A (en) Real-time network exchange with seller specified exchange parameters and interactive seller participation
US7970689B2 (en) Single-period auctions network decentralized trading system and method
US11552913B2 (en) Message encoding and transmission across multiple platforms
US11556988B2 (en) Secure deterministic tokens for electronic messages
US10853879B2 (en) Systems and methods for reducing data lookups within a set of queues
EP3813004A1 (en) Client specific data distribution