Conferencia de FPL para comercialización electrónica en América Latina 2009 Technical Stream Presentation Guide Sponsored by: El Protocolo FIX: La Sintaxis, La Sesión y La Semántica. Sesión 1: La Sintaxis El Protocolo FIX: La Sintaxis, La Sesión y La Semántica. Sesión 1: La Sintaxis Jochen Mielke de Lima FPL Comité de Bolsas Mundiales y Mercados Coordinador de Interfazes de Comercio, BM&FBovespa Jim Northey FPL Americas co-director de comité regional, FPL Liaison de las normas de la industria Co-propietario, The LaSalle Technology Group, LLC Agenda Los Elementos Básicos de FIX Campos Enumeraciónes Mensajes Componentes La sintaxis Tag=Value de FIX Formato Orden de campos Grupos repetitivos Campos de dato La Sintaxis de FIXML Reglas de Diseño Ejemplos 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 4 Los Elementos Básicos de FIX Campos Elementos de datos que suelen contener un único valor Identificados por un Numero de etiqueta de FIX 1 to 5000 – Numeros de Etiqueta de FIX estándar 5000-9999 – Campos personalizados– públicamente identificados 10000+ - Campos Privados definidos por el usuario Cada campo tiene un tipo de dato de FIX ASCII data solo no puede contener el <SOH> carácter 0x01 a excepción de determinados campos de tipo de dato data de FIX Componentes Grupas de Campos Mensajes Campos Componentes 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 5 Etiqueta = Valor Versiónes FIX4.0 FIX.4.1 Ampliamente utilizado FIX5.0 (SP2 acaba de publicar) NO UTILICE FIX4.4 Ampliamente utilizado FIX.4.3 Todavía en uso FIX.4.2 NO UTILICE Adopción inicial en curso por las bolsas FIXT1.1 Solo nivel de sesión 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 6 La Sintexis Etiqueta = Valor de FIX Compuesto de cuatro partes Etiqueta Numero de etiqueta de campo de FIX = Valor Delimitador ETIQUETA=VALOR^ No imprimible ASCII carácter conocido como Start of Header (SOH) carácter 0x01 muestra en la computadora como ^A A menudo aparece en la documentación usando uno de los siguientes : | ^ <SOH> Ejemplo del primero campo en un mensaje 8=FIX.4.1<SOH> <SOH> BeginString – identifica la versión del mensaje de FIX 44=100.5<SOH> Price – identifica el precio 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 7 No Campos Vacíos No se permite campos vacíos Todos los campos deben tener un valor Los campos opcionales sin valores no están incluidos Mensajes con los campos vacíos deben ser rechazados Envie un Rechazo de nivel de sesión en la respuesta <SOH> 2009-05-11 Sao Paolo, BR 40=1<SOH>44=<SOH> Copyright (c) FIX Protocol Ltd. 8 Reglas de Orden de Etiqueta = Valor Un campo(etiqueta) sólo puede aparecer en un mensaje uno vez EXCEPTO: Dentro un grupo repetivo (siguiente diapositiva) Campos dentros un mensaje de FIX pueden aparecer en cualquier orden EXCEPTO: Inicio de un Mensaje 8=FIX.4.2<SOH>9=182<SOH>35=D<SOH>… Los tres campos primeros en la cabecera estándar Fin de un Mensaje .... BeginString (tag 8) BodyLength (tag 9) MsgType (tag 35) <SOH> 10=xxx<SOH> El ultimo campo en el trailer estándar es CheckSum (tag 10) Aviso de ultimo carácter <SOH> Grupos repetivos El orden de los campos dentro los grupos repetivos debe ser preservado. 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 9 Contenido de Dato ASCII Carácteres campo no debe contener <SOH> <SOH> 58=12345 Carácter 0x01 <SOH> 7890 <SOH> Dato con <SOH> carácteres incorporados en el campo Text (tag 58) 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 10 Soporte para datos binarios FIX provee un tipo de dato data Puede contener datos binarios incluso tiene un campo correspondiente Longtitud <SOH> Deberá ser inmediatamente precedida por su campo Longtitud El campo puede contener un Carácter 0x01 Ejemplo: <SOH> EncodedTextLen(tag 354) tipo de dato es Longtitud EncodedText(tag 355) tipo de dato es data <SOH> 354=10<SOH>355=12345<SOH>7890<SOH>10=123<SOH> Campo de Longtitud 2009-05-11 Sao Paolo, BR Dato con <SOH> incorporado propiamente dentro el campo data Copyright (c) FIX Protocol Ltd. 11 Grupos repetitivos Grupos repetitivos permiten un conjunto de campos que se repita dentro de un mensaje Notables usos: Bloque de Parties alternativa de identificación de valores Legs of a multileg instrument Individual allocations for an order Ejemplo – El Bloque Parties 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 12 Reglas de grupos repetitivos Comenza con campo NumInGroup NoXxxxx Donde “No” es la abreviatura de “Numero” Ejemplos: El primero campo enumerado después de campo NoXxxx DEBE SER previsto Actúa como un delimitador para cada grupo repetivo Ejemplo: NoPartyIDs(tag 453) NoMiscFees(tag 136) NoLegs(tag 555) PartyID(tag 448) debe ocurrir después de NoPartyIDs(tag 453) No incluya el campo NoXxxx si hay cero entradas NoXxxx=0 se permite– NO se recomienda Campos deben ocurrir en orden dentro de un grupo repetivo 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 13 Repeating Group Example Identify the executing broker and the clearing firm on a FIX.4.4 order NoPartyIDs(tag 453)=2 PartyID(tag 448)=DEUTDEFF500 PartyIDSource(tag 447)=B note: Bank Identifier Code (BIC) ISO 9362 PartyRole(tag 452)=1 note: Executing Firm PartyID(tag 448)=GSILGB2XHUL PartyIDSource(tag 447)=B note: Bank Identifier Code (BIC) ISO 9362 PartyRole(tag 452)=4 note: Clearing Firm 453=2<SOH>448=DEUTDEFF500<SOH>447=B<SOH>452=1<SOH>448=GSILGB2XHUL<SOH>447=B<SOH>452=4<SOH> 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 14 Ejemplo de Grupos Repetivos Anidados FIX permite grupos repetivos anidados PartySubGrp es un grupo repetivo anidado dentro el grupo Parties Ejemplo: NoPartyIDs(tag 453)=2 PartyID(tag 448)=DEU PartyIDSource(tag 447)=B note: Bank Identifier Code (BIC) ISO 9362 PartyRole(tag 452)=1 note: Executing Firm PartySubID(tag 523)=A1 PartySubIDType(tag 803)=10 note: Securities account number PartyID(tag 448)=GSI PartyIDSource(tag 447)=B note: Bank Identifier Code (BIC) ISO 9362 PartyRole(tag 452)=4 note: Clearing Firm PartySubID(tag 523)=C3 PartySubIDType(tag 803)=10 note: Securities account number 453=2<SOH>448=DEU<SOH>447=B<SOH>452=1<SOH>523=A1<SOH>803=10<SOH>448=GSI<SOH>447=B<SOH>452=4<SOH>23=A1<SOH>803=10<SOH> 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 15 FIX Checksum Añada cada byte en el mensaje de FIX hasta pero sin incluir el campo checksum Calcule modulo 256 de la suma Almacene el valor en el campo CheckSum (10=nnn) No se olvide el carácter final 2009-05-11 Sao Paolo, BR <SOH> Copyright (c) FIX Protocol Ltd. 16 Estructura de mensajes de FIX Cabecera Estándar Identifica el tipo de mensaje, la longitud del mensaje, remitente o destino, número de orden, tiempo del envío, etc 8=FIXT.1.1<SOH>9=70<SOH>35=A<SOH>49=JPMC1<SOH>56=LSE <SOH>34=1<SOH>52=20090310-10:23:01.093<SOH> Cuerpo del Mensaje Contiene el contenido concreto de los mensajes de sesión o de aplicación 98=0<SOH>108=30<SOH>1137=9 Contiene la firma digital opcional y el checksum Trailer Estándar <SOH> 10=247<SOH> Copyright (c) FIX Protocol Ltd. Un Ejemplo de New Order Single Mensaje de FIX 8=FIX.4.2<SOH>9=0235<SOH>35=D<SOH>34=10<SOH>43=N<SOH>49=VENDOR<SOH>50=CUSTOMER<SOH>56=BR OKER<SOH>52=19980930-09:25:58GMT<SOH>1=XQCCFUND<SOH> 11=10<SOH>21=1<SOH> 55=EK<SOH>48=277461109<SOH>22=1<SOH>54=1<SOH>38=10000<SOH>40=2<SOH>44=76.750000<SOH>59=0< SOH>10=165 Cabecera 8=FIX.4.2 9=235 35=D 34=10 43=N 49=VENDOR 115=CUSTOMER 56=BROKER 52=19980930-09:25:58 GMT Begin String Body Length MsgType MsgSeqNum PossDupFlag SenderCompID OnBehalfOfCompID TargetCompID Sending Time Trailer 10=165 2009-05-11 Sao Paolo, BR Cuerpo 1=XQCCFUND 11=10 21=1 55=EK 48=277461109 22=1 54=1 38=10000 40=2 44=76.750000 59=0 Account (optional) ClOrdID HandInst Symbol SecurityID (optional) IDSource (optional) Side OrderQty OrdType Price (optional) TimeInForce (optional) Checksum Copyright (c) FIX Protocol Ltd. 18 Tipos de Dato Cadenas La longtitud no se especifica MultipleCharValue Campo de cadena que contiene uno o más valores de carácter únicos Ejemplo: ExecInst(Tag 18) Instrucciones de ejecución <SOH> 18=2 A F <SOH> MultipleStringValue Campo de cadena que contiene uno o más valores de carácter múltiples delimitados de espacio. <SOH> <SOH> Ejemplo: 277=AV AN A TradeCondition(Tag 277) Trade Conditions Fechas – variantes en YYYYMMDD-HH:MM:SS.sss durante un inserción del segundo de un año bisiesto, un campo UTCTimestamp puede contener "19981231-23:59:59", "19981231-23:59:60", "19990101-00:00:00" 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 19 Componentes Grupos de campos que se usan junto Ejemplos Instrument Parties Introducido en FIX.4.3 No influye el formato de alambre 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 20 Componentes 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 21 Componentes Tag 12 13 479 497 Nombre de Campo Commission CommType CommCurrency FundRenewWaiv Req'd N N N N Tag 453 Nombre de Campo NoPartyIDs Req'd N 2009-05-11 Sao Paolo, BR Comentarios Para CIV – Opcional Para CIV – Opcional Comentarios El grupo repetivo abajo debe contener combinaciones únicas de PartyID, PartyIDSource, y PartyRole 448 PartyID N Se utiliza para identificar la fuente de PartyID. Requerido si PartyIDSource está especificado. Requerido si NoPartyIDs > 0. 447 PartyIDSource N Se utiliza para identificar la fuente del clase del valor de PartyID (e.g. BIC). Requerido si PartyID está especificado. Requerido si NoPartyIDs > 0. 452 PartyRole N Identifica el tipo de PartyID (e.g. Executing Broker). Requerido si NoPartyIDs > 0. Start of Component block, expanded in line < PtysSubGrp > 802 NoPartySubIDs N 523 PartySubID N 803 PartySubIDTy N pe End of Component block, expanded in line < PtysSubGrp > Copyright (c) FIX Protocol Ltd. 22 Versión del Esquema de FIXML El esquema fue publicado para FIX.4.4, FIX.5.0, SP1, SP2 Mensajes de FIX y Componentes de FIX están representados como elementos de XML <TrdCaptRpt/> Campos de FIX están representados como Atributos de XML TradeReportID(Tag 571) se convierte @RptID Utiliza los nombres abreviados de campos de FIX 35=D 1=A <SOH> <SOH> 9 bytes para FIX <Order Acc="A"/> 2009-05-11 Sao Paolo, BR 16 bytes para FIX Copyright (c) FIX Protocol Ltd. 23 Reglas de Diseño de FIXML Abreviaturas para reducir el tamaño de los mensajes Price = Px, Currency = Ccy, etc. Mensajes de FIX están implementados como Elementos de XML Campos de FIX no repetivos están implementados como Atributos de XML del Elemento de XML de Mensaje de FIX Componentos de FIX están implementados como Elementos de XML Campos de FIX dentros Componentos de FIX están implementados como Atributos de XML Los grupos repetivos de FIX deben ser componentos de FIX Tipos de Dato de FIX están asignados al más cercano Tipo de Dato del Esquema de XML Campos de FIX están identificados por sus nombres abreviados de campos de FIX 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 24 Abreviaturas Contextuales de Campos de FIXML Campos de FIX pueden tener un nombre abreviado contextual de FIX en algunos casos Campos de FIX a menudo tienen prefijos que se asocian el campo a uno o más mensajes dentro de una Categoría de Mensaje de FIX Dentro de esa Categoría de Mensaje de FIX el campo de FIX puede ser asignado a Nombre Abreviado Contextual de campo de FIX Ejemplos: ListID(Tag 66) Abreviatura estándar : ListID Abreviatura Contextual : ID en la Categoría Allocation AllocID(tag 70) Abreviatura estándar : AllocID Abreviatura Contextual : ID en la Categoría Allocation Campos múltiples de FIX pueden compartir el mismo nombre abreviado de FIX Ejemplos: ID para PartyID(tag 448), NestedPartyID(tag 524), Nested2PartyID(tag 757),... R para PartyRole(tag 452), NestedPartyRole(tag 538) Nested2PartyRole(tag 759)… Src para PartyIDSource(tag 447), NestedPartyIDSource(tag 525) ,. … 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 25 Etiqueta = Valor en comparación con FIXML Etiqueta = Valor 8=FIX.4.1<SOH>9=154<SOH>35=6<SOH>49=BRKR<SOH>56=INVMGR<SOH>34=236<SOH>52=1998060407:58:48<SOH>23=115685<SOH>28=N<SOH>55=SPMI.MI<SOH>54=2<SOH>27=200000<SOH>44=10100.000000 <SOH>25=H<SOH>10=159<SOH> FIXML <FIXML> <IOI IOIID="115685" TransTyp="N" Side="2" Qty="200000" Px="10100.000000" QltyInd="H"> <Hdr SeqNum="236" SndgTm="1998-06-04T07:58:48"> <Snd ID="BRKR" /> <Tgt ID="INVMGR" /> </Hdr> <Instrmt Sym="SPMI.MI" /> </IOI> </FIXML> 2009-05-11 Sao Paolo, BR Copyright (c) FIX Protocol Ltd. 26 El Protocolo FIX: Sintaxis, sesión y semántica Sesión 2: La capa de sesión El Protocolo FIX: Sintaxis, sesión y semántica Sesión 2 : La capa de sesión Ryan Pierce, Director técnico de FPL, Co-presidente del grupo de trabajo de implementación y optimización, FIX Protocol Ltd Mateus Bertti, Coordinador de TI – Sistemas de comercialización BM&FBovespa Agenda Capa de sesión FIX (FIX 4.0 - 4.4 y FIXT.1.1) Panorama general Anatomía y funciones del motor FIX Mensajes y uso del nivel de sesión FIXT.1.1 Paquetes de extensión y paquetes de servicio Independencia de transporte Independencia de versión de aplicación Derechos de autor (c) FIX Protocol Ltd. Capas de sesión y aplicación FIX Aplicación de comercialización Capa de sesión •Establecimiento y finalización de la conexión •Entrega de mensajes, integridad de datos, secuencia Capa de aplicación Contenido relacionado con el negocio Orden, ejecución, IOI, etc. Protocolo FIX Derechos de autor (c) FIX Protocol Ltd. Anatomía de un motor FIX Sistema de comercialización Sistema de gestión de órdenes Sistema de gestión de ejecuciones Sistema de administración Aplicación de generación de mercados Su Aplicación Interfaz/ Interfaces de programas de aplicación Motor FIX Analizador de mensajes Contraparte 2 FIX Gestión de Sesión … Estado de Sesión Diccionario de mensajes FIX (Repositorio) Configuración de sesión Contraparte 1 FIX Registro de mensajes (Mínimo saliente) Estad de Sesión Derechos de autor (c) FIX Protocol Ltd. Contraparte N FIX Número entrante de secuencia Número saliente de secuencia Motor FIX - Funciones clave Inicio de sesión Obtener detalles de configuración de la Configuración de Sesión (ej.: dirección IP, Puerto TCP, CompIDs, etc.) Determinar los últimos números de secuencias entrantes/salientes o configurar a 1 si es la primera sesión del día Conectar a "manejadores" internos de mensajes de negocios vía un API Conectar con la contraparte de la sesión FIX Enviar inicio de sesión y realizar el apretón de manos de inicio de sesión Funciones continuas Atender mensajes entrantes FIX Descifrar (opcional), analizar y almacenar con seguridad todos los mensajes Responder mensajes de nivel administrativo Convertir y reenviar los mensajes de negocios a “manejador” vía un API Validar núm de sec., enviar solicitud de reenvío si se detecta una brecha Atender solicitudes entrantes de "manejadores" internos Interpretar un mensaje FIX, encriptar (opcional), almacenar en forma segura y enviar por sesión FIX a contraparte Funciones administrativas Enviar pulsaciones, solicitudes de pruebas, condición del sistema Terminar la sesión en el momento de "finalización" de sesión Derechos de autor (c) FIX Protocol Ltd. Funciones de nivel de sesión Inicio de una sesión (logon) Validación de mensaje Secuencia de mensaje Pulsación Finalización de sesión (Logout) Derechos de autor (c) FIX Protocol Ltd. Inicio de una sesión (Logon MsgType[35]=A) La empresa del lado comprador inicia (el Iniciador) una conexión con una empresa del lado vendedor (el Aceptador) usando el mensaje de nivel de inicio de sesión BeginString[8]=FIX.4.2<SOH> BodyLength[9]=92<SOH> MsgType[35]=A<SOH> SenderCompID[49]=BUYSIDE1<SOH> TargetCompID[56]=SELLSIDEA<SOH> SenderSubID[50]=MSO:MSO<SOH> [Opcional] TargetSubID[57]=TEST<SOH> [Opcional] MsgSeqNum[34]=106<SOH> PossDupFlag[43]=N<SOH> [Optional] SendingTime[52]=20010822-13:06:42<SOH> EncryptMethod[98]=0<SOH> HeartBtInt[108]=30<SOH> CheckSum[10]=021<SOH> Derechos de autor (c) FIX Protocol Ltd. Comienzo del día escenario nominal de inicio de sesión Logon MsgType[35]=A TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=1 SenderCompID válido El número entrante de secuencia corresponde con el valor esperado Iniciador de Logon (inicio de sesión) Logon MsgType[35]=A TargetCompID[56]=CBOE1 Aceptador de Logon SenderCompID[49]=MM1 MsgSeqNum[34]=1 El número entrante de secuencia corresponde con el valor esperado Esto es el reconocimiento del Logon (inicio de sesión) o Logon Ack ¡Hemos establecido una sesión FIX! Derechos de autor (c) FIX Protocol Ltd. Validación de mensaje Los motores FIX validan que los mensajes se formen correctamente y rechazarán el mensaje usando un mensaje de rechazo al nivel de sesión si el mensaje es inválido Las validaciones pueden incluir, entre otras: Estructura del mensaje (Tag=Value[SOH]) y CheckSum[10] Orden del campo (ej. BeginString[8] es primero, Encabezado / Cuerpo/ orden de seguimiento, grupos repitentes) MsgType[35] es válido y apoyado Se especifican todos los campos requeridos El formato de campo corresponde con el tipo especificado de datos Etiquetas especificadas sin valores (ej. Etiqueta=[SOH] no está permitida) SenderCompID[49] y TargetCompID[56] apropiados Derechos de autor (c) FIX Protocol Ltd. Secuencia de mensaje La sesión FIX garantiza que se entreguen los mensajes en el orden en que se envían Una sesión FIX puede definirse como “una corriente bidireccional de mensajes ordenados entre dos partes dentro de una serie continua de números de secuencia" Se espera que cada motor FIX mantenga el rastro de dos números de secuencia El número de secuencia entrante esperado de mensajes entrantes recibidos de la contraparte El número de secuencia saliente para enviarse a la contraparte La capa de sesión FIX proporciona un método de recuperación de mensajes perdidos, o mensajes recibidos fuera de orden Las aplicaciones FIX pueden sincronizar nuevamente números de secuencia entre motores que usan la capa de sesión FIX Derechos de autor (c) FIX Protocol Ltd. Reenviar solicitud (MsgType[35]=2) Utilizado para solicitar a la contraparte que reenvíe un conjunto de mensajes FIX Decirle a la contraparte el rango de mensajes que no recibió BeginSeqNo[7] BeginSeqNo[16] Puede pedir un rango específico, o puede solicitar todos los mensajes desde BeginSeqNo[7] a infinito (recomendado) Para FIX 4.2 y superior, infinito es EndSeqNo[16]=0 Para FIX 4,0 y 4.1, infinito es EndSeqNo[16]=999999 Respuestas aceptables: Reenviar el mensaje en cuestión con PossDupFlag[43]=Y, o Enviar restablecimiento de secuencia – Cumplimiento de brecha (MsgType[35]=4 con GapFillFlag[123]=Y) Derechos de autor (c) FIX Protocol Ltd. Escenario de inicio de sesión excepcional Número de secuencia demasiado alto Login MsgType[35]=A TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=3 SenderCompID válido Número de secuencia > Valor esperado Iniciador de sesión Entrante Esperado=1 Login MsgType[35]=A TargetCompID[56]=MM1 SenderCompID[49]=MM1 MsgSeqNum[34]=1 El número entrante de secuencia corresponde con el valor esperado ResendRequest MsgType[35]=2 TargetCompID[56]=MM1 SenderCompID[49]=MM1 MsgSeqNum[34]=2 BeginSeqNo[7]=1 EndSeqNo[16]=0 Reenvía mensajes o envía un cumplimiento de brecha Derechos de autor (c) FIX Protocol Ltd. Aceptador de sesión Escenario de inicio de sesión excepcional Número de secuencia demasiado bajo Logon MsgType[35]=A TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=1 SenderCompID válido Número de secuencia < Valor esperado Iniciador de sesión ¿Por qué detenemos el establecimiento de la sesión? Logon MsgType[35]=A TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=418 Text[58]=Número de secuencia entrante < Esperado = 220 Desconecte cerrando el puerto virtual Derechos de autor (c) FIX Protocol Ltd. Entrante Esperado=220 Aceptador de sesión Restablecimiento de secuencia (MsgType[35]=4) Para reducir la comunicación innecesaria, FIX permite a las empresas saltear o completar brechas sobre mensajes administrativos (tales como pulsaciones y solicitudes de pruebas) Esto también puede usarse para saltear mensajes pasados tales como órdenes Esto se logra usando el Mensaje Restablecer secuencia BeginSeqNo[123] GapFillFlag[123]=Y debe procesarse en orden secuencial, y se recomienda para la recuperación normal del mensaje GapFillFlag[123]=N fuerza un cambio en un número de secuencia y está previsto para emergencias o intervención manual BeginSeqNo[36] Este es el siguiente mensaje que el destinatario debe esperar Derechos de autor (c) FIX Protocol Ltd. Pulsación (MsgType[35]=0) permite a cada lado saber si la conexión está activa Inicio de sesión MsgType[35]=A TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=1 Inicio de sesión MsgType[35]=A TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=1 Iniciador Pulsación MsgType[35]=0 TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=2 de sesión Aceptador de sesión Pulsación MsgType[35]=0 TargetCompID[56]=MM1 SenderCompID[49]=MM1 MsgSeqNum[34]=2 … No se muestra el recordatorio de sesión Cierre de sesión MsgType[35]=A TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=200 Derechos de autor (c) FIX Protocol Ltd. ¿Con qué frecuencia debemos enviar mensajes de pulsaciones? Configurable Originalmente muchos sitios usaban 30 segundos Muchas empresas están usando 15 segundos “Negociado” en tiempo de inicio de sesión (Logon) HeartBtInt [108] – valor entero en segundos Ambos lados deben acordar el Intervalo de pulsaciones Optimización Sólo enviar Pulsaciones cuando la sesión esta inactiva Derechos de autor (c) FIX Protocol Ltd. Solicitud de prueba (MsgType=1) Cada una de las partes en la conexión FIX puede enviar un mensaje de solicitud de Prueba en cualquier momento durante la sesión FIX El destinatario del mensaje de Solicitud de prueba debe responder con un mensaje de Pulsaciones La solicitud de prueba contiene un campo TestReqID[112] requerido El mensaje de respuesta de pulsaciones debe contener el TestReqID[112] de la Solicitud de prueba Se envía una Solicitud de prueba si no se reciben mensajes en más de HeartBtInt[108] segundos La falta de respuesta a la Solicitud de prueba causa un cierre de sesión y desconexión Derechos de autor (c) FIX Protocol Ltd. Escenario de solicitud de prueba normal TestRequest MsgType[35]=1 TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 TestReqID[112]=AnyString Iniciador de solicitud de prueba Pulsación MsgType[35]=0 TargetCompID[49]=MM1 SenderCompID[49]=CBOE1 TestReqID[112]=AnyString Derechos de autor (c) FIX Protocol Ltd. Destinatario de solicitud de prueba Escenario de excepción de solicitud de prueba Sin respuesta de la contraparte TestRequest MsgType[35]=1 TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 TestReqID[112]=AnyString Sin respuesta del destinatario Iniciador para de Destinatario Intervalo de 2 x Pulsaciones de solicitud solicitud Cierre de sesión MsgType=5 TargetCompID[56]=CBOE1 de prueba de prueba SenderCompID[49]=MM1 Text[58]=Tiempo final de solicitud de prueba Desconecte cerrando el puerto virtual Derechos de autor (c) FIX Protocol Ltd. Finalización de sesión(Logout MsgType=5) Cada lado envía un mensaje de cierre de sesión 8=FIX.4.2<SOH> 9=82<SOH> 35=5<SOH> 49=CBOE1<SOH> 56=MM1<SOH> 34=483<SOH> 52=20010822-14:05:34<SOH> 10=176<SOH> Derechos de autor (c) FIX Protocol Ltd. Procesamiento normal de cierre de sesión Cierre de sesión MsgType[35]=A TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=50 Empresa inicia cierre de sesión Se considera mala manera cerrar la conexión antes de recibir la confirmación de cierre de sesión Aguardar un breve período de tiempo (intervalo de pulsación) para que el otro lado envíe el cierre de sesión; esto se hace en caso de que el otro lado necesite hacer procesamiento de reenvío Logon MsgType[35]=A TargetCompID[56]=CBOE1 SenderCompID[49]=MM1 MsgSeqNum[34]=103 Ambos lados se desconectan cerrando el puerto virtual Derechos de autor (c) FIX Protocol Ltd. Destinatario de cierre de sesión FIX 5.0 y FIXT.1.1 - Cambios clave En realidad 2 Protocolos: FIX 5.0 – Protocolo de nivel de aplicación, incluyendo apoyo para nueva funcionalidad de negocios FIXT.1.1 – Protocolo de nivel de sesión Independencia de transporte Independencia de versión de aplicación Primera versión impulsada completamente desde el repositorio Representación XML del protocolo FIX Legible por máquina, reduciendo el costo de la construcción de reglas de validación en motores FIX El Repositorio genera la especificación del documento Word, FIXimate, y el plan FIXML. Primera versión donde se publicó toda la documentación al mismo tiempo Primera versión usando la nueva arquitectura de „paquete de servicios‟ Los usuarios preparan paquetes de extensión y GTC los aprueba GTC empaqueta los paquetes de extensión con los paquetes de servicios GTC puede presentar Paquetes de extensión independientemente de las presentaciones de paquete de servicios, permitiendo la adopción rápida de los cambios propuestos Derechos de autor (c) FIX Protocol Ltd. Independencia de transporte FIX 5.0 es la primera versión que desacopla los mensajes de aplicación FIX de la sesión FIX FIXT.1.1 es una especificación diferenciada que no cambia con la versión FIX Se puede usar FIX 5.0 sobre otros transportes: Series MQ Servicios Web HTTP Bus mensaje Capa de sesión FIX (FIXT.1.1) Permite mayor retorno sobre la inversión sobre inversiones existentes de FIX Reduce gastos para agregar nueva funcionalidad FIX Ofrece oportunidad de elegir transporte apropiado para las circunstancias Derechos de autor (c) FIX Protocol Ltd. Independencia de versión de aplicación Mensajes de nivel de aplicación desde cualquier versión FIX que pueda mandarse sobre FIXT.1.1 Responde a las preocupaciones sobre el número de versiones FIX al permitir a las empresas que se mezclen y correspondan, todo en la misma sesión Capacidad de agregar mayor funcionalidad con desarrollo creciente, ej. puede agregar ahora asignaciones FIX 4.4 a un sistema existente de órdenes y ejecuciones de la siguiente manera: Reemplazar la sesión FIX 4.2 con una sesión FIXT.1.1 predeterminada a FIX 4.2 Escribir código para manejar las asignaciones FIX 4.4 El sistema de órdenes y ejecuciones FIX 4.2 no cambia. Sin FIXT.1.1: Esfuerzo adicional de costos, tiempos y pruebas para mejorar las órdenes y ejecuciones para FIX 4.4 Desarrollo y certificación adicional para todas las contrapartes para mejorar sus sistemas de órdenes y ejecuciones para FIX 4.4 Derechos de autor (c) FIX Protocol Ltd. FIXT.1.1 e Independencia de versión de aplicación Versión de aplicación controlada por campos nuevos: DefaultApplVerID[1137] – Solicitado en el inicio de sesión ApplVerID[1128] – Aparece en el encabezamiento, modifica DefaultApplVerID Campos adicionales agregados para apoyar los paquetes de extensión y las versiones de aplicación personalizadas El apoyo completo para muchas versiones de aplicaciones requiere trabajo importante de un motor FIX Ver especificaciones de FIXT.1.1 Muchos usuarios sólo requieren apoyo de FIX 5.0 o de un paquete de servicios de FIX 5.0 Enfoque: Usar FIXT.1.1 para apoyar sólo una versión Especificar la versión usando DefaultApplVerID[1137] El motor y aplicación sólo necesitan estar conscientes de una versión FIX y un diccionario de datos. Derechos de autor (c) FIX Protocol Ltd. El Protocolo FIX: Sintaxis, Sesión y Semántica Sesión 3 : Semántica El Protocolo FIX: sintaxis, sesión y semántica sesión 3: semántica Jim Northey, Co-presidente del Comité Regional de las Américas de FPL, Enlace de estándares de la industria de FPL, FIX Protocol Ltd., Co-fundador, The LaSalle Technology Group LLC Ryan Pierce, Director técnico de FPL, Co-presidente del grupo de trabajo de implementación y optimización, FIX Protocol Ltd ¿Por qué hablar de Semántica FIX? La semántica es el impulsor principal de costos para el desarrollo de aplicaciones que procesan los mensajes de la interfaz. Las diferencias de semántica pueden necesitar traducciones complejas entre las representaciones diferentes (no el nivel de sintaxis) Las traducciones complejas agregan esfuerzo y latencia Las diferencias en semántica pueden necesitar mantener estado a nivel de la puerta de enlace mediante una base de datos Mantener estado agrega esfuerzo y latencia FIX define una semántica estándar para la industria para reducir el costo de desarrollo y latencia 11 de mayo de 2009 Conferencia de comercialización de América Latina 3 Semántica, Sintaxis, Sesión FIX Semántica FIX Concepto Concepto Concepto Concepto Concepto Concepto Concepto Sintaxis FIX FIXatdl PRINCIPIOS La capa de semántica FIX (aplicación) consiste en uno o más conceptos para cada funcionalidad de negocio La capa de sintaxis FIX representa la codificación de la semántica FIX El sintaxis FIX puede comenzar con FIXatdl, Tag=Value (Etiqueta=Valor) o FIXML Tag=Value puede convertirse opcionalmente en FAST Tag=Value puede convertirse opcionalmente en FIXML Se provee uno de Tag=Value, FIXML o FAST a la capa de sesión Concepto FIX sobre FAST Tag=Value (etiqueta=valor) FIXML FAST Sesión [FIX] Producto Comercial FIXT Implementación registrada Red TCP/IP Multicast La capa de sesión (transporte) incluye protocolos que no son FIX Las versiones FIX anteriores a FIX 5.0 usan el Protocolo de Transporte FIX estándar ... Usualmente se usa TCP/IP para las transacciones Multicast se adapta bien a la distribución de datos Conferencia de comercialización de América Latina 11 de mayo de 2009 4 Semántica FIX – Elementos clave Modelo de transacción Modelo de estados ¿Cuáles estados pueden tener las entidades tales como pedidos y cotizaciones? ¿Qué transiciones de estados son posibles y cómo se desencadenan? Modelo de identificación ¿Cuál es el propósito de un mensaje dado? ¿Cuál es el flujo de mensajes para determinada transacción de negocios? ¿Cuántos mensajes se intercambian y en qué secuencia? ¿Cómo se identifican las órdenes, las cotizaciones y las operaciones y quién lo hace? ¿Cómo se integra el estándar de identificación ISO? Campos clave ¿Cuáles campos permiten unir solicitudes y respuestas? ¿Qué campos impulsan el comportamiento de un mensaje? ¿Cómo se informan los errores al nivel de la aplicación? 11 de mayo de 2009 Conferencia de comercialización de América Latina 5 Semántica FIX – Modelo de transacciones: Cotización masiva Emisor de cotización mercado Envía un conjunto de cotizaciones Las interpreta y las aplica al mercado cotización masiva Si se encuentra error rec. de cotización masiva Cuando se cumplimenta una Orden Execution Report 11 de mayo de 2009 Conferencia de comercialización de América Latina 6 Semántica FIX – Modelo de transacciones: Entrada de orden I.1.b – Inmediata o cancelar orden que no puede alcanzarse completamente en forma inmediata Hora Mensaje recibido (ClOrdID, OrigClOrdI D) 1 Nueva orden(X) Mensaje enviado (ClOrdID, OrigClOrdID) Ejec Tipo OrdStatus (Condición de la orden) Orden Cant. Cum Cant. Parte Cant. Última Cant. 10000 Comentario La orden es IOC 2 Ejecución(X) Rechazado Rechazado 10000 0 0 0 Si el lado vendedor (corredor, la bolsa, redes de comunicación electrónica) rechaza la orden 2 Ejecución(X) Nueva Nueva 10000 0 10000 0 Si no se agrupan los mensajes 3 Ejecución(X) Operación Completada parcialmente 10000 1000 9000 1000 Ejecución para 1000 4 Ejecución(X) Cancelada Cancelada 10000 1000 0 0 Si no se puede alcanzar la orden por completo inmediatamente 5 Nueva orden(Y) 10000 La orden es IOC 6 Ejecución(Y) Rechazada Rechazada 10000 0 0 0 Si el lado vendedor (corredor, la bolsa, redes de comunicación electrónica) rechaza la orden 6 Ejecución(Y) Operación Cancelada 10000 1000 9000 1000 Si se usa la agrupación de mensajes y la ejecución de 1000 ocurre inmediatamente al alcanzar el libro FIX soporta más de un solo concepto donde esto sea garantizado por el grupo de usuarios (lado comprador versus lado vendedor versus bolsas) o clase de activos. 11 de mayo de 2009 Conferencia de comercialización de América Latina 7 Semántica FIX – Modelo de estados para Bolsas Aceptar orden con Vencimiento inmmediato (FOK, IOC) Aceptar orden con cumplimiento completo inmediato rechazada vencimiento rechazar al entrar cumplimentad a (Reject of acc’d order) ejecución completa vencimiento Cancelar del libro cancelada ejecución completa vencimiento Campo FIX OrdStatus (39) Nueva suspendida reembolso ejecución parcial o Cancelar del libro reembolso Almacenaje durante la Noche (órdenes GT) ejecución parcial Aceptar orden Con cumplimiento parcial inmediato Parcialmente cumplimentad a Almacenaje durante la Noche (órdenes GT) Cancelar ej. Start of Day Debido a acción empresarial Activation (GT orders) Terminado por el día Start of Day Activation (GT orders) 11 de mayo de 2009 Conferencia de comercialización de América Latina 8 Semántica FIX – Modelo de Identificación (1) Órdenes (de etapa simple, de estapas múltiples) ClOrdID como identificador de entidad y mensajes del lado emisor de la orden El concepto de ClOrdID como identificador de mensajes requiere un nuevo identificador para transacciones en órdenes existentes y una referencia (OrigClOrdID) OrderID como identificador de la entidad del lado que recibe la orden Cotizaciones (cotización única, cotización masiva) Entidades usualmente identificadas implícitamente por instrumento (campos múltiples) Identificador explícito de cotizaciones (QuoteID) sólo necesario si se permite al emisor de la cotización tener muchas cotizaciones por instrumento (derivados: por series) Identificador de cotización masiva (QuoteID, QuoteSetID, QuoteEntryID) Órdenes cumplidas/Operaciones Identificador de ejecución (ExecID, FillExecID) para cumplimientos de órdenes y cotizaciones Identificador de operaciones (FirmTradeID, TradeID, SideTradeID) para nivel de entidad Identificador de informe de operaciones (TradeReportID, SideTradeReportID) para nivel de mensaje 11 de mayo de 2009 Conferencia de comercialización de América Latina 9 Semántica FIX – Modelo de Identificación (2) Instrumentos Mercados y segmentos de mercado Valores: Símbolo o SecurityID + SecurityIDSource Futuros: agregar CFICode (Código CFI) y Mes año de vencimiento Opciones: agregar StrikePrice (precio de ejercicio), opcionalmente también PutOrCall (Compra o venta) SecurityIDSource=M (mercado-asignado) para identificadores sintéticos Listas: SecurityListID, por ej., para clasificaciones del sector Grupos: SecurityGroup, por ej., para particiones específicas de bolsa MarketID definido como MIC (ISO 10383) MarketSegmentID definido como cadena arbitraria Sesiones de comercialización TradingSessionID: Día (1), medio día (2), mañana (3), tarde (4), tarde noche (5), fuera de horario comercial (6) TradingSessionSubID: Precomercialización (1), apertura (2), comercialización (3), cierre (4), después de la comercialización (5), subasta dentro del día (6), Inactivo (7) 11 de mayo de 2009 Conferencia de comercialización de América Latina 10 Semántica FIX – Modelo de Identificación (3) Identificación ISO en FIX Instrumentos: ISIN (ISO 6166), Código CFI (ISO 10962) Partes: BIC (ISO 9362) Mercados: BIC (ISO 10383) Divisas: 3 caracteres (ISO 4217) Países: 2 caracteres (ISO 3166) Idiomas: 2 caracteres (ISO 639) Marcas de tiempo: UTC (ISO 8601) 11 de mayo de 2009 Conferencia de comercialización de América Latina 11 Semántica FIX – Campos clave ¿Cuáles campos unen solicitudes y respuestas? FIX ofrece identificadores explícitos, distintivos en el cuerpo del mensaje xxxReq[uest]ID identifica un mensaje de solicitud y se devuelve en la respuesta xxxRptID o xxxReportID identifica informes (no solicitados) Excepción: manejo de órdenes (solicitud: ClOrdID, informe: ExecID) Application Sequencing (Secuencia de aplicaciones) ofrece campo genérico ApplSeqNum para informes Los mensajes xxxAck reproducen los campos de entrada para permitir copias a otras sesiones ¿Qué campos impulsan el comportamiento de un mensaje? Campos como ExecInst, TradeReportTransType, MDUpdateAction dicen al destinatario qué hacer con la entidad descrita en el mensaje Campos como ExecType, OrdStatus, TrdRptStatus dicen al remitente qué ha hecho el destinatario con la entidad descrita en el mensaje ¿Cómo se informan los errores del nivel de la aplicación? xxxStatus (con excepciones), xxxResult, xxxRej[ect]Reason confirman el éxito o fracaso y explican por qué no se aceptó una solicitud de aplicación El campo de texto es una dirección predeterminada para información de texto libre que puede usarse también para transmitir errores 11 de mayo de 2009 Conferencia de comercialización de América Latina 12 Semántica FIX – Ejemplo: Cantidad de órdenes (1) ¿Cómo transmito la información de cantidad cuando quiero modificar una orden existente? Campo FIX: OrderQty, tipo de dato int Opción 1: Cantidad Delta No FIX Agregar cierta cantidad a la cantidad de la orden actual al receptor Opción 2: Cantidad restante No FIX Asegurarse de que la orden ha dado cantidad después de la modificación por el receptor FIX Opción 3: Cantidad total Calcular compensación para la cantidad total previa y aplicar delta Sólo la opción 3 cumple con la semántica FIX 11 de mayo de 2009 Conferencia de comercialización de América Latina 13 Semántica FIX – Ejemplo: Cantidad de órdenes (2) ¿Qué mensaje/s uso cuando quiero aumentar o disminuir la cantidad de una orden existente? Opción 1: Dos mensajes diferentes No FIX Aumentar cantidad: usar cancelar/reemplazar orden Disminuir cantidad: usar cancelar orden con un campo de cantidad definido por el usuario FIX Opción 2: Un solo mensaje Usar cancelar/reemplazar orden para aumentar o disminuir la cantidad Usar cancelar orden sólo si disminuye la cantidad a cero (borrar orden) La opción 2 cumple con la semántica FIX* *FIX 4.0 soportaba la opción 1 pero se cambió la semántica con la introducción de FIX 4.1 en abril de 1998 11 de mayo de 2009 Conferencia de comercialización de América Latina 14 Semántica FIX – Ejemplo: Datos de mercado ¿Cómo transmito información de profundidad del libro de órdenes que se agrega por nivel de precio? Opción 1: Dos mensajes diferentes FIX Use MarketDataSnapshotFullRefresh para proporcionar precio y cantidad para todos los niveles de precios disponibles (el destinatario puede simplemente reemplazar su propia copia) Use MarketDataIncrementalRefresh para instruir al destinatario que haga cambios específicos a su copia (agregar, cambiar, borrar la oferta de nivel de precio o preguntar) No FIX Opción 2: Un solo mensaje Use MarketDataSnapshotFullRefresh para proporcionar precio y cantidad para todos los niveles de precios donde haya cambiado algo (destinatario para modificar información sólo para niveles de precios incluidos en el panorama) La opción 1 cumple con la semántica FIX Conferencia de comercialización de América 11 de mayo de 2009 Latina 15 Semántica FIX – Datos de referencia con FIX 5.0 SP1 FIX 5.0 SP1 mejoró significativamente el área de Datos de Referencia Mensajes de nivel de mercado (segmento) (MarketDefinition[Request][UpdateReport]) (Posibilidad de definir las reglas de comercialización en el nivel de un mercado (segmento), sesión de comercialización o instrumento individual Reglas que definen tipos de órdenes disponibles, instrucciones de ejecución, valores de tiempo en fuerza, algoritmos de correspondencia, suministros de datos de mercado Reglas que definen señales, tipos de lotes, tipos de precios, límites de precios, cantidades máximas/mínimas de órdenes Reglas que definen incrementos y estilos de ejercicios por rango de precios de ejercicios como también reglas de vencimiento Modelo habilitado FIX 5.0 SP1 de jerarquías de mercado Un mercado en el nivel superior es siempre un mercado definido por un MIC Puede haber cero o más segmentos de mercado dentro de un mercado que represente agrupaciones específicas de mercado de instrumentos que se ordenan como una jerarquía (mediante el campo ParentMktSegmID) Un segmento de mercado es un término genérico que necesita definirse por el mercado FIX 5.0 SP1 introdujo un concepto para la propagación de Reglas de Comercialización Una regla de comercialización definida en un nivel superior aplica a todas las entidades en niveles inferiores Una regla de comercialización definida en cualquier nivel modifica una regla de comercialización definida en un nivel más alto Las reglas específicas de implementación de compromiso necesitan diseñarse y definirse bien 11 de mayo de 2009 Conferencia de comercialización de América Latina 16 Semántica FIX - Reglas de comercialización Reglas de comercialización de base Grupo de reglas de sesión de comercialización <Base Trading Rules> <Trading Session Rules Grp> <TickRules> ---------------------------- NoTickRules ---------------------------- StartTickPriceRange - EndTickPriceRange - TickIncrement - TickRuleType TradingSessionID TradingSessionSubID <Trading Session Rules> <OrdTypeRules> ---------------------------- NoOrdTypeRules ----------------------------- OrdType <LotTypeRules> ---------------------------- NoLotTypeRules ----------------------------- LotType - MinLotSize <ExecInstRules> ---------------------------- NoExecInstRules ----------------------------- ExecInstValue Conferencia de <MarketData FeedTypes> ---------------------------- NoMDFeedTypes ----------------------------- MDFeedType - MarketDepth - MDBookType comercialización de - NoStrikeRules ---------------------------- StrikeRuleID - StartStrikePxRange - EndStrikePxRange - StrikeIncrement - StrikeExerciseStyle <Secondary Price Limits> <MatchRules> ---------------------------- NoMatchRules ----------------------------- MatchAlgorithm - MatchType ExpirationCycle MinTradeVol MaxTradeVol MaxPriceVaration ImpliedMarketIndicator TradingCurrency RoundLot <Strike Rules> <Maturity Rules> ---------------------------- NoMaturityRules ---------------------------- MaturityRuleID - MMYFormat - MMYIncrementUnitOfMeasure - StartMMY - EndMMY - MMYIncrement <TimInForceRules> ---------------------------- NoTimeInForceRules ----------------------------- TimeInForce <PriceLimits> ---------------------------- PriceLimitType - LowLimitPrice - HighLimitPrice - TradingReferencePrice 11 de mayo de 2009 Reglas de precio límite - SecondaryPriceLimitType - SecondaryLowLimitPrice - SecondaryHighLimitPrice - SecondaryTradingReferencePrice América Latina 17 Semántica FIX – Nivel de mercado Market Segment Request Trading Session List Request MarketID MarketSegmentID MarketID MarketSegmentID Market Segment / Market Segment Update Report Trading Session List / Trading Session List Update Report MarketID MarketSegmentID MarketID MarketSegmentID <Base Trading Rules> <OrdTypeRules> ---------------------------- NoOrdTypeRules ----------------------------- OrdTypes TradingSessionID TradingSessionSubID <Trading Session Rules> <TimInForceRules> ---------------------------- NoTimeInForceRules ----------------------------- TimeInForce <ExecInstRules> ---------------------------- NoExecInstRules ----------------------------- ExecInstValue 11 de mayo de 2009 Conferencia de comercialización de América Latina 18 Semántica FIX - Nivel de instrumento Security Defintion Request Derivative Security List Request Security List Request MarketID MarketSegmentID MarketID MarketSegmentID MarketID MarketSegmentID <Instrument > <Underlying Instrument > <Instrument> <Instrument Extension> <Derivative Instrument > <Instrument Extension> Security Definition / Security Definition Update Report <Instrument> <Instrument Extension> Derivative Security List / Derivative Security List Update Report <Underlying Instrument> <Derivative Security Definition> <Market Segment Grp> <Derivative Instrument> MarketID MarketSegmentID <Derivative Instrument Attribute> Security List / Security List Update Report MarketID MarketSegmentID <Instrument> <Instrument Extension> <Security Trading Rules> <Security Trading Rules> <Market Segment Grp> <Base Trading Rules> MarketID MarketSegmentID <Trading Session Rules Grp> <Security Trading Rules> <Nested Instrument Attribute> <Base Trading Rules> <Trading Session Rules Grp> <Nested Instrument Attribute> <Base Trading Rules> <Trading Session Rules Grp> <Strike Rules> <Nested Instrument Attribute> <Underlyiing> <Strike Rules> <InstrumentLeg> <Underlying> <Strike Rules> <InstrumentLeg> <Instrument> <Instrument Extension> 11 de mayo de 2009 <InstrumentLeg> <SecondaryPriceLimits> 19 Semántica FIX – Datos de referencia con FIX 5.0 SP2 Modelo habilitado FIX 5.0 SP2 de partes y Datos de referencia de límites de riesgo Dos nuevos mensajes: PartyDetailsListRequest [type „CF‟] PartyDetailsListReport [type „CG‟] Modos actuales de operación: Solicitud/ Respuesta Informes no solicitados Puede usarse para modelar: Un parte sola o lista de partes Las relaciones entre partes, ej., Liquidaciones para, Operaciones mediante, Miembro de Los usos incluyen: Derechos (qué operadores pueden operar con qué cuentas, relaciones de liquidaciones….) 11 de mayo de 2009 Límites de riesgo muy flexibles, incluyendo varios límites simultáneos Tipos de límites: bruto, neto, de exposición, largo, corto Alcance basado en Parte, Relación entre Partes o Instrumento Conferencia de comercialización de América Latina 20 Semántica FIX ¿Preguntas? 11 de mayo de 2009 Conferencia sobre comercialización EMEA 21 Maximización del potencial de su implementación de FIX Maximización del potencial de su implementación de FIX Ryan Pierce Co-presidente del grupo de trabajo para la implementación y optimización de FPL Director técnico de FPL FIX Protocol Ltd Grupo de trabajo para la implementación y la optimización Grupo de trabajo formado para dar repuesta a las concepciones erróneas de que FIX es lento, y para compartir mejores prácticas El protocolo FIX en sí mismo no es lento Las implementaciones y el software de la aplicaciones de FIX pueden ser lentos Co-presidentes: Ryan Pierce, Director técnico de FPL John Prewett, VP, Citi, Lava Trading El compartir las mejores prácticas redunda en beneficio para la industria Unos pocos sistemas FIX lentos pueden dar una mala reputación a todos los que usan FIX Las empresas están comenzando a tomar la iniciativa y ofrecer su asesoramiento para lograr un desempeño mejor 4/22/2009 Copyright (c) FIX Protocol Ltd. 2 Grupo de trabajo para la implementación y la optimización No podemos obligar a la implementación de las mejores prácticas Se trata de un trabajo delicado; las opiniones personales sobre las mejores prácticas pueden variar ampliamente Las mejores prácticas pueden variar basándose en el hardware, el idioma y el sistema operativo Las mejores prácticas de hoy pueden ser obsoletas el próximo mes El grupo de trabajo publicará una revista cuatrimestral revisada por colegas Distribución: En línea (inicialmente) Artículos para la 1ra edición: C# Consejos de uso, Clive Browning, Rapid Addition Mejora del desempeño de Java – Evitar la recolección de basura, Mahesh Kumaraguru Promoción de la seguridad de tipos en los programas Java, Mahesh Kumaraguru Resistencia, Cooper Noone, Counterparty Systems Reducción de la latencia de FIX – De-Nagling, John Prewett, Citi, Lava Trading Temas de Windows – Modelos de E/S y Puerto finalización de E/S, Qingjun Wei, Teraspaces Inc. Grupo de trabajo para la implementación y la optimización Aceptamos de buen grado la participación, incluyendo: Artículos de autoría Revisión por colegas de artículos presentados Para participar, mande un correo electrónico a fpl@fixprotocol.org El FAST ProtocolSM El FAST ProtocolSM Antecedentes Volúmenes incrementados de datos de mercado FIX clásico Ancho de banda grande y altos costos de procesamiento Adopción difundida Desempeño inadecuado para Datos de mercado Mercados manejados por cotizaciones Alternativas privadas Complica la integración (muchas interfaces diferentes) No se comparten costos de desarrollo y mantenimiento Adopción limitada FAST Protocol Factores que Influenciaron el diseño Eficiencia Cociente de compresión Consumo de recursos (CPU, memoria) Facilidad de uso (conceptual, implementación, operación) Costos Implementación Validación Despliegue Operación Mantenimiento FAST Protocol Características Conjunto de características básicas Validado empíricamente Optimizado para flujos de mensajes Consciente del contenido (requiere conocimiento de la estructura del mensaje) Representación binaria orientada al byte Campos de longitud variable Cada mensaje contiene uno o más campos Un mapa de presencia capacita un uso eficaz de valores por defecto Diversas maneras de obtener los valores por defecto Muy rápido procesamiento (codificación / decodificación) Altos cocientes de compresión en las alimentaciones de intercambio probadas Implementación simple Extendible Capas del FAST Protocol Mensajes de aplicación Gestión del patrón Control de sesión Codificación de campos Codificación de transferencia UDP TCP IP Vocabulario FAST Una corriente de datos consiste en una secuencia de mensajes. Un mensaje consiste en una secuencia de uno o más campos. Un campo consiste en una secuencia de uno o más bytes. Formato cable se refiere a la representación en byte que se utiliza para transferir datos por cable. Codificación es el proceso de traducir al formato cable. Decodificación es el proceso de traducir del formato cable. Un CODEC (COdificador/DECodificador) proporciona apoyo para codificar o decodificar una corriente de mensajes. Un byte consiste en siete bits de datos y un bit de parada (el „SBIT‟) que cuando está presente indica que el byte es el último byte de un campo. Un mapa de presencia („PMAP‟) es un campo que se interpreta como un vector de bits, un bit („PBIT‟) para cada campo en un mensaje. Un operador de campo permite que se vuelvan a usar valores previos. Codificación de transferencia FAST – Campos 7 bits 1 b b b b b b b 14 bits 0 b b b b b b b 1 b b b b b b b 21 bits 0 b b b b b b b 0 b b b b b b b 1 b b b b b b b nn bits Codificación de transferencia FAST – Detalle SBIT •La codificación SBIT proporciona una eficiente delimitación espacial de campos •Más compacto que un delimitador de byte para campos de menos de 7 bytes •Datos empíricos muestran un tamaño promedio de los campos FAST de ~2 bytes ~33% más compacto que un delimitador de byte a 2 bytes •La serialización de formato SBIT es simple y eficiente •Hay casos excepcionales en los que la codificación SBIT es subóptima Un vector de bytes puede utilizarse para esos casos Codificación de transferencia FAST – Mensajes pmap field field field pmap pmap field field Field: Campo El número de campos en un mensaje depende del contenido del pmap Se puede comprimir la cola de un pmap Un mensaje puede ser tan breve como un byte (un pmap vacío) Tipos de datos de campos de FAST Entero sin signo Entero con signo Decimal (conocido también como, Número escalado compuesto) String de caracteres ASCII Vector de bits Vector de bytes Tipos de datos adicionales en FAST 1.0 que probablemente sean desaprobados en una versión futura Entero sin signo y sin nulo Entero con signo y sin nulo Número escalado La representación de transporte FAST da apoyo a campos de tamaño ilimitado. Las implementaciones probablemente permitirán que el tamaño apoyado se equipare a la representación nativa de datos en las aplicaciones. Algunos recordatorios útiles Algunos valores importantes para recordar 0x80 = 128 decimal = b„10000000‟ 0x80 es un valor octeto de 0x00 con el SBIT (Bit de Parada) fijado 0x7f = 127 decimal = b‟01111111‟ Operaciones & bitwise Y operación 0x00 & 0x80 => 0x00 0x7f & 0x80 => 0x00 | bitwise O operación 0x00 | 0x80 => 0x80 0x7f | 0x80 => 0xff Para FAST el tipo fundamental de datos es el bit «datatype» Bit {documentation = b'0' or b'1'} 8 1 «type» Octet +Bits[8] : Bit StopBit +SBIT[1] : Bit = b'1' || b'0' «type» ContinuationByte +SBIT[1] : StopBit = b'0' +DBITS[7] : Bit «type» StopByte +SBIT[1] : StopBit = b'1' +DBITS[7] : Bit SBIT – El Bit de Parada es el bit de orden alto en el byte fijado como b‟1‟ (8 ° byte) Bit 7 para indicar el final de un campo, b‟0‟ en otro caso DBITS – Bits 6 a 0 contienen datos ¿Qué hay en el string? 0x54 0x68 0x61 0x6e 0x6b 0x20 0x59 0x6f 0x75 0x20 0x42 0x4d 0x46 0xa1 Más allá de la codificación de transferencia Una compactación adicional requiere información sobre afinidad y predictabilidad de los datos. Afinidad BeginStr SeqNum SenderID SendingTime Price Symbol 8=FIX.4.4|34=10000|49=CLIENT1|52=20060126-13:06:58.100|44=1200|55=FOO1 8=FIX.4.4|34=10001|49=CLIENT1|52=20060126-13:06:58.200|44=1210|55=FOO1 8=FIX.4.4|34=10002|49=CLIENT1|52=20060126-13:06:58.300|44=1190|55=BAR2 Predictabilidad Patrones Un patrón especifica como codificar un mensaje de la aplicación en la codificación de transferencia Un patrón acarrea Estructura del mensaje Tipos de datos Operadores de campo Características de los patrones FAST Semánticas definidas de manera formal e inambigua Permite un comportamiento coherente y la interoperabilidad entre implementaciones Sintaxis concreta Formato por defecto para crear, almacenar e intercambiar patrones Leíble por humanos y máquinas Sintaxis XML Apoya la evolución de la especificación del patrón Extensible – permite la inclusión de datos a la medida en los patrones Ampliamente conocido y con un buen apoyo de la herramienta Representaciones concretas alternativas Hard coded en el codificador y/o decodificador FAST codificado como lo especifica el Protocolo de Control de Sesiones [Session Control Protocol (SCP)] Data Types Strings, Entero y números decimal, Booleano, Vector de Byte Tipos restrictivos para números – tamaño de 8-bit hasta 64-bit <template name="ExampleOrder"> <messageRef name="NewOrderSingle"/> <string name="BeginStr"/> <u32 name="SeqNum"/> <string name="SenderID"/> <string name="SendingTime"/> <decimal name="Price"/> <string name="Symbol"/> </template> BeginStr SeqNum SenderID SendingTime Price Symbol 8=FIX.4.4|34=10000|49=CLIENT1|52=20060126-13:06:58.100|44=1200|55=FOO1 8=FIX.4.4|34=10001|49=CLIENT1|52=20060126-13:06:58.200|44=1210|55=FOO1 8=FIX.4.4|34=10002|49=CLIENT1|52=20060126-13:06:58.300|44=1190|55=BAR2 Sz 44 44 44 Original Size: 71 bytes Operadores de campo Constante – Siempre el mismo valor Incremental – Frecuentemente el valor previo incrementado en uno Copia – Frecuentemente el mismo que el valor previo Delta – Los valores pueden diferir ligeramente Defecto – Frecuentemente un valor específico Nombres Los nombres identifican mensajes, patrones y campos Los nombres de los mensajes son típicamente globales Los nombres de los patrones son típicamente locales Mantenidos por el dueño de un protocolo, por ejemplo FPL Mantenidos localmente por empresas que usan o implementan FAST Los patrones estándar pueden ser mantenidos por, por ejemplo, FPL Se debe evitar conflictos de nombres Los patrones usan el mismo método que en Java y XML Los nombres pertenecen a un espacio de nombres basado en el nombre del dominio de la empresa La arquitectura técnica de los sistemas de comercialización con FIX habilitado en América Latina Conferencia de FPL sobre comercialización electrónica en América Latina La arquitectura técnica de sitios de comercialización habilitados para FIX en América Latina 11 de mayo de 2009 Sitios de comercialización en Brasil que están habilitados para FIX: • BM&F Bovespa – segmento Bovespa – Valores y opciones en valores • • • • Especificaciones de MultiGateway FIX: 4.0, 4.1, 4.2, 4.3 y 4.4, pero con etiquetas de 4.2. Acceso y conectividad para las puertas de enlace 300, 310, 400, 500 y 510; Alternativa para la conectividad API; FIX a convertirse en la principal opción de conexión a la Bolsa BM&F Bovespa – segmento de BM&F – Derivados BM&F Bovespa – comercialización FX SPOT BM&F Bovespa – Ingreso fijo – Mercado secundario para bonos del gobierno Los tres siguen la misma especificación FIX – BELL – Enlace electrónico de BM&FBovespa Por medio de la misma conexión, también es posible comercializar los productos de CME GLOBEX Listo para ir con conectividad a ROFEX. No es el objetivo de esta presentación, pero vale la pena mencionar: Varios corredores listos para FIX y un número de ellos en proceso; Número creciente de comercializadores del lado comprador habilitados para FIX Arquitectura de alto nivel – Segmento Bovespa Arquitectura de alto nivel – Segmento Bovespa CLIENTE DISTRIBUCIÓ FINAL N INTERMEDIA RIO (CM/CORRED OR) ESTAÇÃO MEGABOLSA RCC F BVMTP SNEG TRANS MISIÖN SCOM SCOT MMTP RLC GLWIN GLTRADE SLC GL Selector SLE ISV / Prop FIX HUB MMTP FIX FIX Lado comprador Multi Puerta de enlace ISV / Prop FIX Web HomeBroker (Corredor desde el hogar) Proveedor es Multi Puerta de enlace MMTP RLC NUEVO HUB MMTP NSC Arquitectura de alto nivel – Segmento BM&F Arquitectura de alto nivel – Segmento BM&F Corredor BM&F BOVESPA Comercializador <<Sistema>> Motor de comercialización [HTTP-SOAP] TCP/IP Pantalla de comercialización (Client Win32) [Protocolo FIX] TCP/IP <<Sistema>> Estructuras de comercialización [Protocolo FIX] TCP/IP OMS Conectividad FIX Servidores de motores concordantes EMS <<Sistema>> Planificador CORTAFUEGOS [Protocolo FIX] TCP/IP Conectividad FIX Supervisor Pantalla de comercialización (Client Win32) DMZ <<Sistema>> Informe de orden Servidores WEB (Servicios Web) <<Sistema>> Conversor de protocolo LAN (“Firewalled”) DMA FIX mediante la infraestructura del corredor CLIENTE DMA SOCIEDAD DE BOLSA BM&FBOVESPA FIX RED FIX RCCF Puerta de enlace múltiple MegaBolsa / / Puerta de enlace FIXGateway GTS DMA FIX mediante un proveedor de DMA BM&FBOVESPA SOCIEDAD DE BOLSA CLIENTE DMA FIX FIX RCCF FIX Puerta de enlace múltiple MegaBolsa / / Puerta de enlace FIXGatewayGTS RED Proveedor de DMA DMA FIX para acceso al cliente (patrocinado por el corredor) mediante Conexión Directa CLIENTE DE DMA SOCIED AD DE BOLSA BM&FBOVESPA FIX FIX RCCF Puerta de enlace múltiple MegaBolsa / / Puerta de enlace FIXGateway GTS FIX DMA FIX para co-ubicación (patrocinado por el corredor) SOCIEDAD DE BOLSA CLIENTE DE DMA BM&FBOVESPA FIX Drop Copy RCCF FIX Drop Copy FIX Puerta de enlace múltiple MegaBolsa / / Puerta de enlace FIXGateway GTS Aplicación para co-ubicación en la Bolsa Acceso remoto para supervisión y mantenimiento RED Resumen Capacidades de FIX segmento Bovespa segmento BM&F Entrada de orden 4.0, 4.1, 4.2, 4.3, 4.4 (4.2 etiquetas) 4.4 Datos de mercado N/C En lugar de MMTP RLC Disponible en FIX 4.4 Datos de mercado en formato FIX FAST Q3/2009 Q3/2009 Preparación ISV 21 soluciones certificadas extra Proceso de certificación ahora en marcha 21 soluciones certificadas. Vea en nuestro sitio web DMA FIX mediante la infraestructura del corredor Disponible Disponible DMA FIX mediante un proveedor de DMA Q3/2009 MarcoPolo, Bloomberg TradeBook, GL NET Acceso de cliente patrocinador de DMA FIX Q2/2009 Q2/2009 DMA FIX para co ubicación en la Bolsa Q3/2009 Q3/2009 Objetivo para 2009 – Interfaz única FIX Pantalla de comercialización Entrada de orden / Datos de mercado Solución para el usuario Conectividad FIX – Pedido (FIX 5.0) + Datos de mercado (FIX FAST) Pedido encaminado hacia uno de los 3 motores de correspondencia MegaBolsa GTS Sisbex Resumen de capacidad Mercado y períodos Operaciones por día Radio RTT (ms) Eventos de pedido por segundo agregado Eventos de pedidos por segundo por instrumento Valores 2008 770,000 10 290 500 5 Valores 2009 1,500,000 15 8 4,000 125 Derivados 2008 200,000 4 25 3,750 40 Derivados 2009 200,000 15 8 4,000 125 Conceptos de capacidad • • • Planeamiento de capacidad diaria utilización promedio del 10% de la mayor parte de la infraestructura 5 indicadores clave: Operaciones por día Proporción de eventos de órdenes (número de eventos de órdenes en relación con el número de operaciones) RTT – Tempo de ida y vuelta o tiempo de respuesta Eventos de órdenes por segundo sobre utilización agregada Eventos de órdenes por segundo por instrumento único US Pedido de compra por un contracto de 500 futuros de S&P RED DE GLOBEX COMUNICACIÓN communicationDE GLOBEX network CME GROUP GLOBEX CORRESPONDENCIA Orden de venta por un contracto de 500 futuros de S&P LIQUIDACIÓN EN USD MEDIANTE COMPENSACIÓN DE CME BRASIL Pedido de venta por un contrato de ID de futuros BM&FBOVES PA GTS GTS COMMUNICATION NETWORK CORRESPONDENCIA Orden de venta por un contrato de ID de futuros LIQUIDACIÓN EN USD MEDIANTE COMPENSACIÓN DE CME US Orden de compra por un contrato de ID de futuros RED DE COMUNICACIÓN DE GLOBEX BRASIL CME GROUP GLOBEX BM&FBOVES PA GTS RED DE Enlace internacional de alta velocidad y gran capacidad COMUNICACIÓN GTS CORRESPONDENCIA Orden de venta por un contrato de ID de futuros LIQUIDACIÓN EN BRL MEDIANTE COMPENSACIÓN DE DERIVADOS DE BM&FBOVESPA, QUE PUEDE FACILITARSE POR EL BANCO DE BM&FBOVESPA US GLOBEX COMMUNICATION NETWORK BRASIL CME GROUP GLOBEX BM&FBOVES PA GTS Enlace internacional de alta velocidad y gran capacidad CORRESPONDENCIA Orden de venta por un contracto de 500 futuros de S&P LIQUIDACIÓN EN USD MEDIANTE COMPENSACIÓN DE CME GROUP, QUE PUEDE FACILITARSE POR EL BANCO DE BM&FBOVESPA Pedido de compra por un contracto de 500 futuros de S&P GTS COMMUNICATION NETWORK GRACIAS! THANK YOU! Obrigado! The Technical Architecture of FIX Enabled Trading Venues in Latin America Lunes 11 de Mayo de 2009 Agenda • Acerca de ROFEX • Servicios FIX actuales • Arquitectura física • Usuarios actuales • Modelos DMA • Certificación • Cross listing ROFEX – BM&F • Nueva plataforma ROFEX 2010 Acerca de ROFEX • Mercados habilitados • División derivados financieros • División derivados agropecuarios • Productos principales • Futuros sobre tipo de cambio dólar – peso argentino. • Indice Soja Rosafe. • Ventajas Volumen (miles de contratos) 45,000 40,000 35,000 30,000 25,000 20,000 15,000 10,000 5,000 0 2003 2004 • Contraparte Central. • Destacados plataforma electrónica • Negociación electrónica desde 1997. • Acceso vía Internet desde 2000. • Módulo para asignaciones desde 2007. • Módulo integrado para manejo de give ups 2007. 2005 2006 2007 2008 Servicios FIX actuales • Lanzamiento • Fecha: Julio 2007. Primera plataforma abierta de negociación electrónica en Argentina. • Destacados • Versión: FIX 4.2 • Pre-Trade: Market Data • Trade: Ordenes simples • Tipos de órdenes y parámetros de tiempo soportados: Standard Limit (day), Market to Limit (IOC) • Productos: Derivados (futuros y opciones) • Rendimiento • Procesamiento de órdenes: 60/seg. • Latencia media: 300 mseg. Arquitectura física Datacentre A Datacentre B Internet Clients Private Proxy 1 Private Proxy 1 Public Proxy 4 Public Proxy 1 AGRO‟ AGRO Public Proxy 2 Private Proxy 2 INTERNET Firewall Firewall Private Proxy 2 Public Proxy 5 DDF‟ DDF Private Proxy 3 Public Proxy 3 FIX Gateway FIX Gateway Public Proxy 6 FIX Gateway | Primary A Network B Network Client 1 Client 2 Rosario Client 9 Tolerancia a fallas. 99,9% disponibilidad. Línea punto a punto, VPN sobre Internet. Private Proxy 3 FIX Gateway Usuarios actuales • Vendedores de información. • Bloomberg • CMA • Thomson Reuters (*) • Vendedores independientes de Software • Primary Brokers S.A. • Agentes/Miembros • Invertir Online (*) • Unigrain (*) Certificación/pruebas en curso. Modelos DMA • Modelo tradicional • Clientes acceden al mercado utilizando terminal del Agente • Modelo de proveedor de software independiente • Clientes acceden a través de pantallas de negociación desarrolladas por terceros • Monitoreo • Acceso patrocinado • Cliente accede directo al Mercado • Monitoreo • Administración de riesgo Certificación ROFEX - FIX • Cómo certificar: 1. Descargar ROFEX RoE. 2. Reuniones con equipo de soporte para evacuar dudas relacionadas con RoE. 3. Armado de ambiente de pruebas. 4. Ejecución de diferentes casos de prueba. • Rules of Engagement (http://fixhub.primary.com.ar/certificacion.html) • Acceso flexibe tanto desde VPN como desde líneas punto a punto. • Todo el proceso es soportado por nuestro departamento de TI. • Usualmente el proceso dura seis semanas. Cross listing ROFEX – BM&F • Cross-listing de productos agropecuarios. • Concepción previa a proyecto BM&F – CME. • Integración FIX 4.2 (Rofex) – FIX 4.4 (BM&F). • Fase técnica del proyecto terminada. • Implementación temporariamente suspendida debido a limitaciones regulatorias sobre el flujo de capitales dentro-fuera de la Argentina. Nueva plataforma e-Rofex • Fecha estimada de lanzamiento. Abril 2010 • FIX 4.4-5.0 nativo plataforma Java/C++ • Rendimiento • Latencia: < 20 msec • Capacidad de procesamiento: 500 ordenes/seg/instrumento • Funcionalidades • Pre-Trade. • Multi-instrumento • Market Data • Cotización masiva / RFQ • Trade. • Ordenes simples / Estrategias • Order Crosses • Post-trade. • Give-ups • Asignaciones • Reportes de cartera/posición 11 de Mayo de 2009 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA 11 de Mayo de 2009 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA La Arquitectura Técnica de las plataformas de trading que implementan FIX en Latinoamérica FPL Latin America Electronic Trading Conference 2009 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA La Arquitectura Técnica de las plataformas de trading que implementan FIX en Latinoamérica AGENDA Antecedentes de MVM Plataforma y servicios FIX actuales Arquitectura Física Usuarios y Acceso DMA Conectividad y Certificación Mejoras planeadas 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA Antecedentes de MVM Mercado de Valores basado en Mendoza, Argentina Fundado en 1958 Negocia acciones y bonos. Derivados sobre acciones en desarrollo. 40 agentes (12 en 2007) Actualmente el único mercado de acciones que soporta FIX en Argentina 15 % es el market share actual en el volumen negociado de las principales acciones (medido en $) El volumen crece a un 50% mensual promedio acumulado desde el lanzamiento de Oasis FIX. 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA SERVICIOS FIX ACTUALES Nuevo sistema de negociación Oasis lanzado el 15 de Diciembre de 2008 Plataforma con API nativa FIX 4.4. implementada en Java y C++ Procesos de desarrollo, integración y operación certificados ISO 9001:2000 Amplia funcionalidad FIX Pre-trade Security List Market data Trade SingleOrderHandling Drop copies Status /Mass Status Request Post Trade RequestForPosition / PositionReport NMS like compliance check Perfomance 35 msec RTT 250 ordenes x seg de capacidad actual instalada. 1,5 ordenes x seg y 25 ordenes x seg es la utilización media y pico actualmente Versión actual escalable por hardware hasta 250 ordenes x seg x instrumento 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA ARQUITECTURA FISICA 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA USUARIOS ACTUALES 100 % de los usuarios acceden via la interface nativa FIX El mercado provee una aplicación cliente FIX nativa implementada en Java para ser utilizada como OMS Excel trading integrado al OMS Plataforma de distribución retail Web / Mobile trading es provista a los agentes en un modelo ASP/SaaS. Próximos pasos: Data vendors ISV’s Contraparte Central 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA DMA DMA / Acceso esponsoreado El cliente se conecta directamente al gateway FIX de Oasis El agente monitorea la actividad del cliente via la funcionalidad nativa de drop copies Se proveen herramientas de gestión de riesgo DMA via ISV’s El cliente se conecta a la red o el OMS del ISV El monitoreo / gestión de riesgo actual es análoga al DMA Puro Para Q4 2009 se planea incluir la opción de validación manual y control automático de riesgo y compliance pre-aceptación de órdenes DMA tradicional El cliente se connecta al OMS del agente y tras su aceptación las órdenes son ruteadas a Oasis Para información sobre agentes que ofrecen DMA http://oasis.primary.com.ar/dma/index.html 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA CERTIFICACION Y CONECTIVIDAD Información General http://oasis.primary.com.ar/certification/index.html ROE http://oasis.primary.com.ar/docs/index.html Fases y tiempos de realización estimados: Solicitud, Conectividad y Setup inicial(1 semana) Certificación de Market Data (3 semanas) Certificación de Order management (4 semanas) Alternativas de Conectividad VPN Líneas punto a punto 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA MEJORAS PLANEADAS DURANTE EL PROXIMO AÑO Funcionalidad Alinear fases de negociación de acuerdo estandares internacionales Incluir funcionalidades de IOI/RFQ/MassQuote Agregar órdenes de tipo conditional / reserve / pegged al motor de negociación Permitir conectividad FIX 4.x. + 5.0 Mejorar gestión nativa de riesgo y compliance Perfomance Reducir latencia RTT a menos de 20 msegs Incrementar capacidad de procesamiento a 1000 ordenes/segundo/instrumento Acceso Conectar OASIS a redes transaccionales internacionales (Radianz, Savvis, TNS) Conectar OASIS a otros mercados locales y regionales 11 de Mayo de 2009 MERCADO DE VALORES DE MENDOZA GRACIAS POR SU ATENCION PyR 11 de Mayo de 2009