MEFFGate Negociación ESPECIFICACIONES DE LA INTERFAZ FIX Versión T1.2 30 de julio de 2012 La información contenida en este documento está sujeta a modificaciones sin previo aviso. A menos que se indique lo contrario, las compañías, los nombres y los datos utilizados en los ejemplos son ficticios. Ninguna parte de este documento puede ser reproducida o transmitida de ninguna forma, ni por cualquier medio, ya sea electrónico o mecánico, con ningún propósito, sin la previa autorización por escrito. © 2008 MEFF. Todos los derechos reservados. © 2009 MEFF. Todos los derechos reservados. © 2010 MEFF. Todos los derechos reservados. © 2011 MEFF. Todos los derechos reservados. © 2012 MEFF. Todos los derechos reservados. MEFFGate Negociación - Especificaciones de la Interfaz FIX Modificaciones realizadas en la última revisión A continuación se detallan las principales modificaciones realizadas en la versión T1.2: General Nueva versión del protocolo MEFFGate FIX T1.2. Tal y como se indica en el apartado 2.7 “Identificación del protocolo MEFFGate” de este manual, si la aplicación cliente quiere recibir la nueva versión del protocolo T1.2 debe indicarlo en el tag ProprietaryFixProtocolVersion [5680] del mensaje Logon. En caso de que no se especifique ningún valor en ese campo, MEFFGate le entregará al cliente la versión indicada en la configuración de usuarios MEFFGate Se documenta el máximo número de suscripciones de cada tipo por cada conexión, que es de 40 Se ha revisado el tratamiento de las aplicaciones, estableciéndose nuevos mensajes (Trade Capture Report, Trade Capture Report Ack, Trade Capture Report Request y Trade Capture Report Request Ack). Se elimina de esta versión (T1.2) (y de todas los anteriores) el mensaje New Order-Cross Se establece la forma de identificar un contrato no estándar (flexible) en la funcionalidad de aplicaciones: SecurityID [48] + CFICode[461] + MaturityDate [541] + ContractMultiplier [231] + StrikePrice [202]. Los mensajes relacionados son Trade Capture Report y Trade Capture Report Ack Para las retrocesiones se utilizará el mensaje Execution Report con ExecType = H Nuevos campos Se añade el campo NumberOfOrders [346] al mensaje Market Data Snapshot Full Refresh Se añade el campo EventDate [866] en el mensaje Security List para informar del último día de negociación del contrato Se añade el bloque Stipulations al mensaje Security List para indicar si el contrato admite órdenes y/o aplicaciones Se añaden los campos StrikeValue [968], RoundLot [561] y MinTradeVol [562] al mensaje Security List Se añade el campo HaltReason [327] al el mensaje Security Status Se ha incluido un nuevo campo TrdMatchID [880] en el mensaje Execution Report. Contiene el número de registro de negociación (en la versión anterior esta información estaba en el campo SecondaryExecID [527]) Se añade el campo GrossTradeAmt [381] al mensaje Execution Report Se añade el campo SecondaryExecID [527] al mensaje Quote Status Report Se añaden los campos OnBehalfOfCompID [115], OnBehalfOfSubID [116], DeliverToCompID [128] y DeliverToSubID [129] en el Standard Message Header Cambios en campos Se modifica el significado del campo SecondaryExecID [527]. Ahora contiene el número de historia de la orden i MEFFGate Negociación - Especificaciones de la Interfaz FIX Se añaden dos nuevos valores (9 y M) al tag MDEntryType [269] en los mensajes Market Data Request y Market Data Snapshot Full Refresh. Se elimina el campo OpenCloseSettleFlag [286] del mensaje Market Data Snapshot Full Refresh Se amplía el tamaño de los campos OrderQty [38], BidSize [134], OfferSize [135], LastQty [32], LeavesQty [151] y CumQty [14] Se amplía el tamaño de la referencia de la orden hasta 15 caracteres. Este cambio afecta al tag Text [58] en los mensajes New Order-Single, Order Modification Request y Execution Report Se han revisado los valores del campo OrdRejReason [103] en los mensajes Execution Report y Quote Status Report Como consecuencia de la eliminación del mensaje New Order – Cross, se elimina el campo CrossType [549] en el mensaje Execution Report Principales cambios respecto a la documentación publicada el 1 de diciembre de 2008: Se elimina el campo NumberOfOrders [346] del mensaje Market Data Snapshot Full Refresh Se han revisado los valores del campo OrdRejReason [103] de los mensajes Execution Report y Quote Status Report Se ha incluido, en el apartado 8.4.4 (Modificación de órdenes – Flujo de mensajes) la situación correspondiente a la “Solicitud de modificación aceptada por MEFFGate de una orden ejecutada en el momento de la solicitud” para indicar que se envía un mensaje Order Cancel Reject como respuesta al mensaje Order Modification Request Se ha modificado, en el apartado 8.5.4 (Cancelación de órdenes – Flujo de mensajes) la situación correspondiente a la “Solicitud de cancelación aceptada por MEFFGate de una orden ejecutada en el momento de la solicitud” para indicar que se envía un mensaje Order Cancel Reject como respuesta al mensaje Order Cancel Request Se han revisado el siguiente flujo de mensajes: 10.8 (Aplicaciones) Se han revisado los siguientes mensajes: 10.10.4 (Trade Capture Report enviado por MEFFGate) y 10.10.5 (Trade Capture Report Ack) Principales cambios respecto a la documentación publicada el 11 de marzo de 2009: En el Grupo de Contratos de derivados sobre energía el tag 200 (MaturityMonthYear) podrá tener el formato YYYYMMwW para indicar los vencimientos semanales Se han revisado los valores del campo AccountType [581] de los siguientes mensajes: Trade Capture Report enviado a MEFFGate, Trade Capture Report enviado por MEFFGate y Trade Capture Report Ack Se han revisado los valores del campo NoSides [552] en el mensaje Trade Capture Report enviado a MEFFGate Principales cambios respecto a la documentación publicada el 24 de septiembre de 2009: Se han revisado los siguientes mensajes: 10.10.3 (Trade Capture Report enviado a MEFFGate), 10.10.4 (Trade Capture Report enviado por MEFFGate) y 10.10.5 (Trade Capture Report Ack). También se revisa el apartado asociado 4.5.4 (Convenciones generales en los mensajes de aplicación – Bloque instrument - Código de contrato (campo Symbol) o ii MEFFGate Negociación - Especificaciones de la Interfaz FIX usando la combinación SecurityID + CFICode + MaturityDate + ContractMultiplier + StrikePrice) Se corrige la ubicación del bloque Stipulations dentro del mensaje Security List Principales cambios respecto a la documentación publicada el 16 de marzo de 2010: Request for Quote (nueva funcionalidad): o Nuevos mensajes: Quote Request y Quote Request Reject o Los miembros que están recibiendo actualmente los mensajes Indication of Interés no notarán ningún cambio en su interface FIX o Se incluye una descripción explicativa dentro del apartado “7 - Request for Quote Petición de Interés” o Se ha añadido nuevos flujos de mesajes en el apartado 7 o Se actualiza el apartado 1.2 Mensaje Trading Session Status: Se elimina el valor 0 (Unknown) en el tag TradSesStatus [340] Mensaje Market Data Snapshot Full Refresh: Se ha actualizado la descripción del campo PriceDelta [811] Principales cambios respecto a la documentación publicada el 25 de noviembre de 2011: Se modifica el apartado “9.8.1 – Delta protection y configuración de la cuenta para quotes: Introducción“ para indicar que la funcionalidad de la delta protection no está disponible actualmente y que, en consecuencia, todos los parámetros relativos a la delta protection deber enviarse a cero El formato de los campos siguientes: MsgSeqNum [34], NextExpectedMsgSeqNum [789] y RefSeqNum [45] ha sido corregido a SeqNum (de acuerdo con el estándar FIX) Principales cambios respecto a la documentación publicada el 10 de enero de 2012: Delta protection y configuración de la cuenta para quotes: o A partir de la versión 9.50 está disponible la funcionalidad de la delta protection o Se han modificado los apartados “9.8.1 - Introducción Delta protection y configuración de la cuenta para quotes” y “9.8.2 - Delta Protection: Descripción” y los mensajes Registration Instructions / Registration Instructions Response, para incluir los nuevos motivos de de cancelación de la delta protection. Se establecen tres límites que actúan de forma independiente dentro del periodo de tiempo establecido: Volumen total de contratos ejecutados Delta: abs[Volumen de (Compra de calls + Venta de puts + Compra de Futuros) – (Venta de calls + Compra de puts – Venta de Futuros)] abs[Volumen de compras – Volumen de ventas] o Campo CFICode [461]: Se añade el valor FMXXXX para permitir time-spreads en la funcionalidad de quotes iii MEFFGate Negociación - Especificaciones de la Interfaz FIX Tabla de Contenidos 1. Introducción ...................................................................................................................................1 1.1 1.2 1.3 1.4 1.5 2. Decisiones de Implementación ....................................................................................................5 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3. Ámbito de este manual .......................................................................................................................... 1 Información pública e información privada ............................................................................................ 2 Organización del manual ....................................................................................................................... 3 Formato de las tablas de definición de mensajes .................................................................................. 4 Documentos relacionados ..................................................................................................................... 4 Descripción............................................................................................................................................ 5 Campos ignorados ................................................................................................................................ 5 Campos no soportados ......................................................................................................................... 5 Longitud del tipo String .......................................................................................................................... 5 Máxima longitud de mensaje ................................................................................................................. 5 Encriptación........................................................................................................................................... 5 Identificación del protocolo MEFFGate FIX ........................................................................................... 5 Sesión FIX.......................................................................................................................................6 3.1 Introducción ........................................................................................................................................... 6 3.2 Sesión FIX y sesión de comunicación ................................................................................................... 6 3.3 Identificación de la sesión FIX ............................................................................................................... 6 3.4 Software cliente y sesiones FIX ............................................................................................................ 7 3.5 Enrutamiento de mensajes de distintos usuarios a través de una misma sesión FIX (conexión multilogon) ...................................................................................................................................................... 7 3.6 Sincronización de la sesión FIX ............................................................................................................ 8 3.7 Sincronización a nivel de aplicación .................................................................................................... 10 3.8 Alta disponibilidad ............................................................................................................................... 10 3.9 Campo PossResend ........................................................................................................................... 11 3.10 Recepción de información de todos los operadores del miembro ....................................................... 11 3.11 Recepción de información de actuaciones realizadas en nombre del propio operador ....................... 11 3.12 Mensajes administrativos que el cliente FIX debe gestionar ............................................................... 11 3.13 Lista de mensajes ............................................................................................................................... 11 3.14 Flujo de mensajes ............................................................................................................................... 12 3.15 Acotaciones y adaptaciones de FIX 4.4 .............................................................................................. 15 3.16 Definición de mensajes ....................................................................................................................... 16 3.16.1 Standard Message Header ...................................................................................................... 16 3.16.2 Standard Message Trailer ........................................................................................................ 18 3.16.3 Logon (Msg Type = A) ............................................................................................................. 19 3.16.4 Logout (Msg Type = 5) ............................................................................................................. 20 3.16.5 Heartbeat (Msg Type = 0) ........................................................................................................ 21 3.16.6 Test Request (Msg Type = 1) .................................................................................................. 22 3.16.7 Resend Request (Msg Type = 2) ............................................................................................. 23 3.16.8 Sequence Reset (Msg Type = 4) ............................................................................................. 24 3.16.9 Reject (Msg Type = 3).............................................................................................................. 25 4. Convenciones generales en los mensajes de aplicación .......................................................26 4.1 4.2 4.3 4.4 4.5 4.6 Identificación de órdenes..................................................................................................................... 26 4.1.1 ClOrdID .................................................................................................................................... 26 4.1.2 OrderID .................................................................................................................................... 26 4.1.3 SecondaryOrderID ................................................................................................................... 26 4.1.4 SecondaryExecID .................................................................................................................... 26 Identificación de operaciones .............................................................................................................. 27 4.2.1 ExecID ..................................................................................................................................... 27 4.2.2 TrdMatchID .............................................................................................................................. 27 Bloque Parties ..................................................................................................................................... 27 Symbol y SecurityID ............................................................................................................................ 30 Bloque Instrument ............................................................................................................................... 31 4.5.1 CFICode................................................................................................................................... 31 4.5.2 Activo subyacente (campo SecurityID) .................................................................................... 32 4.5.3 Vencimiento (campo MaturityMonthYear) ................................................................................ 32 4.5.4 Código de contrato (campo Symbol) o usando la combinación SecurityID + CFICode + MaturityDate + ContractMultiplier + StrikePrice ................................................................................... 32 4.5.5 Combinación de criterios de selección ..................................................................................... 32 Formato de Error (Campo Text) .......................................................................................................... 33 iv MEFFGate Negociación - Especificaciones de la Interfaz FIX 4.7 5. Mensajes Genéricos del Nivel de Aplicación ............................................................................34 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 6. 6.3 6.4 6.5 Introducción ......................................................................................................................................... 41 Información de mercado: Estado de la sesión de negociación............................................................ 42 6.2.1 Descripción .............................................................................................................................. 42 6.2.2 Lista de mensajes .................................................................................................................... 42 6.2.3 Flujo de mensajes .................................................................................................................... 42 6.2.4 Acotaciones y adaptaciones de FIX 4.4 ................................................................................... 43 Información de mercado: Contratos .................................................................................................... 44 6.3.1 Descripción .............................................................................................................................. 44 6.3.2 Solicitud de información de contratos ...................................................................................... 44 6.3.3 Recepción de la definición de contratos .................................................................................. 45 6.3.4 Recepción del estado de contratos .......................................................................................... 45 6.3.5 Finalización de las suscripciones ............................................................................................. 45 6.3.6 Lista de mensajes .................................................................................................................... 46 6.3.7 Flujo de mensajes .................................................................................................................... 46 6.3.8 Acotaciones y adaptaciones de FIX 4.4 ................................................................................... 51 Información de mercado: Precios ........................................................................................................ 52 6.4.1 Descripción .............................................................................................................................. 52 6.4.2 Solicitud de información ........................................................................................................... 52 6.4.3 Recepción de información........................................................................................................ 52 6.4.4 Lista de mensajes .................................................................................................................... 53 6.4.5 Flujo de mensajes .................................................................................................................... 53 6.4.6 Acotaciones y adaptaciones de FIX 4.4 ................................................................................... 55 Definición de mensajes ....................................................................................................................... 56 6.5.1 Trading Session Status Request (Msg Type = g) .................................................................... 56 6.5.2 Trading Session Status (Msg Type = h) ................................................................................... 57 6.5.3 Security List Request (Msg Type = x) ...................................................................................... 58 6.5.4 Security List (Msg Type = y) .................................................................................................... 59 6.5.5 Security Status Request (MsgType = e) .................................................................................. 62 6.5.6 Security Status (MsgType = f) .................................................................................................. 63 6.5.7 Market Data Request (Msg Type = V)...................................................................................... 65 6.5.8 Market Data Request Reject (Msg Type = Y) .......................................................................... 67 6.5.9 Market Data Snapshot Full Refresh (Msg Type = W)............................................................... 68 Request for Quote - Petición de Interés ....................................................................................70 7.1 7.2 7.3 7.4 7.5 7.6 8. Introducción ......................................................................................................................................... 34 Estado de la comunicación.................................................................................................................. 34 Cambio de password de conexión al MEFFGate ................................................................................ 34 Rechazo de mensajes de aplicación ................................................................................................... 34 Lista de mensajes ............................................................................................................................... 34 Flujo de mensajes ............................................................................................................................... 35 Acotaciones y adaptaciones de FIX 4.4 .............................................................................................. 35 Definición de mensajes ....................................................................................................................... 36 5.8.1 Network Counterparty System Status Request (Msg Type = BC) ............................................ 36 5.8.2 Network Counterparty System Status Response (Msg Type = BD) ......................................... 37 5.8.3 User Request (Msg Type = BE) ............................................................................................... 38 5.8.4 User Response (Msg Type = BF) ............................................................................................ 39 5.8.5 Business Message Reject (MsgType = j) ................................................................................. 40 Información de Mercado .............................................................................................................41 6.1 6.2 7. Limitación en el máximo número de suscripciones vivas permitidas ................................................... 33 Introducción ......................................................................................................................................... 70 Descripción.......................................................................................................................................... 70 Lista de mensajes ............................................................................................................................... 70 Flujo de mensajes ............................................................................................................................... 71 Acotaciones y adaptaciones de FIX 4.4 .............................................................................................. 72 Definición de mensajes ....................................................................................................................... 73 7.6.1 Quote Request (Msg Type = R) ............................................................................................... 73 7.6.2 Quote Request Reject (Msg Type = AG) ................................................................................. 74 7.6.3 Indication of Interest (Msg Type = 6)........................................................................................ 75 Gestión de Órdenes e información de operaciones ................................................................77 8.1 8.2 8.3 Introducción ......................................................................................................................................... 77 Gestión de órdenes en nombre de otro operador ................................................................................ 77 Entrada de órdenes ............................................................................................................................. 78 8.3.1 Descripción .............................................................................................................................. 78 v MEFFGate Negociación - Especificaciones de la Interfaz FIX 8.4 8.5 8.6 8.7 8.8 8.9 9. 8.3.2 Estados de la solicitud de alta de una orden............................................................................ 78 8.3.3 Tipos de órdenes soportados y validez de las órdenes ........................................................... 78 8.3.4 Persistencia de la orden .......................................................................................................... 78 8.3.5 Instrucciones de give-up en la orden ....................................................................................... 79 8.3.6 Lista de mensajes .................................................................................................................... 79 8.3.7 Flujo de mensajes .................................................................................................................... 79 8.3.8 Acotaciones y adaptaciones de FIX 4.4 ................................................................................... 81 Modificación de órdenes...................................................................................................................... 82 8.4.1 Descripción .............................................................................................................................. 82 8.4.2 Estados de la solicitud de modificación de una orden ............................................................. 83 8.4.3 Lista de mensajes .................................................................................................................... 83 8.4.4 Flujo de mensajes .................................................................................................................... 83 8.4.5 Acotaciones y adaptaciones de FIX 4.4 ................................................................................... 85 Cancelación de órdenes ...................................................................................................................... 86 8.5.1 Descripción .............................................................................................................................. 86 8.5.2 Estados de la solicitud de cancelación de una orden .............................................................. 86 8.5.3 Lista de mensajes .................................................................................................................... 87 8.5.4 Flujo de mensajes .................................................................................................................... 87 8.5.5 Acotaciones y adaptaciones de FIX 4.4 ................................................................................... 89 Cancelación masiva de órdenes ......................................................................................................... 90 8.6.1 Descripción .............................................................................................................................. 90 8.6.2 Criterios de selección ............................................................................................................... 90 8.6.3 Estados de la solicitud de cancelación masiva ........................................................................ 90 8.6.4 Campo ClOrdID ....................................................................................................................... 90 8.6.5 Lista de mensajes .................................................................................................................... 91 8.6.6 Flujo de mensajes .................................................................................................................... 91 8.6.7 Acotaciones y adaptaciones de FIX 4.4 ................................................................................... 92 Notificación de ejecución ..................................................................................................................... 93 8.7.1 Descripción .............................................................................................................................. 93 8.7.2 Retrocesión de una operación ................................................................................................. 93 8.7.3 Lista de mensajes .................................................................................................................... 93 8.7.4 Flujo de mensajes .................................................................................................................... 93 8.7.5 Acotaciones y adaptaciones de FIX 4.4 ................................................................................... 94 Solicitud de información de situación de órdenes ............................................................................... 95 8.8.1 Descripción .............................................................................................................................. 95 8.8.2 Lista de mensajes .................................................................................................................... 95 8.8.3 Flujo de mensajes .................................................................................................................... 96 8.8.4 Acotaciones y adaptaciones de FIX 4.4 ................................................................................... 96 Definición de mensajes ....................................................................................................................... 97 8.9.1 New Order - Single (Msg Type = D) ......................................................................................... 97 8.9.2 Order Cancel Request (Msg Type = F) .................................................................................... 99 8.9.3 Order Modification Request (Msg Type = G) ......................................................................... 100 8.9.4 Execution Report (Msg Type = 8) .......................................................................................... 103 8.9.5 Order Cancel Reject (Msg Type = 9) ..................................................................................... 107 8.9.6 Order Status Request (Msg Type = H)................................................................................... 108 8.9.7 Order Mass Cancel Request (Msg Type = q) ......................................................................... 109 8.9.8 Order Mass Cancel Report (Msg Type = r) ............................................................................ 111 8.9.9 Order Mass Status Request (Msg Type = AF) ....................................................................... 112 Gestión de Quotes .....................................................................................................................114 9.1 9.2 9.3 9.4 Introducción ....................................................................................................................................... 114 Entrada de quotes ............................................................................................................................. 115 9.2.1 Descripción ............................................................................................................................ 115 9.2.2 Lista de mensajes .................................................................................................................. 115 9.2.3 Flujo de mensajes .................................................................................................................. 116 9.2.4 Acotaciones y adaptaciones de FIX 4.4 ................................................................................. 119 Modificación de quotes ...................................................................................................................... 120 9.3.1 Descripción ............................................................................................................................ 120 9.3.2 Lista de mensajes .................................................................................................................. 120 9.3.3 Flujo de mensajes .................................................................................................................. 121 9.3.4 Acotaciones y adaptaciones de FIX 4.4 ................................................................................. 122 Cancelación de quotes ...................................................................................................................... 123 9.4.1 Descripción ............................................................................................................................ 123 9.4.2 Criterios de selección ............................................................................................................. 123 9.4.3 Lista de mensajes .................................................................................................................. 123 9.4.4 Flujo de mensajes .................................................................................................................. 124 vi MEFFGate Negociación - Especificaciones de la Interfaz FIX 9.5 9.6 9.7 9.8 9.9 10. 9.4.5 Acotaciones y adaptaciones de FIX 4.4 ................................................................................. 125 Notificación de ejecución de un quote ............................................................................................... 126 9.5.1 Descripción ............................................................................................................................ 126 9.5.2 Lista de mensajes .................................................................................................................. 126 9.5.3 Flujo de mensajes .................................................................................................................. 126 9.5.4 Acotaciones y adaptaciones de FIX 4.4 ................................................................................. 126 Solicitud de información del estado de quotes .................................................................................. 127 9.6.1 Descripción ............................................................................................................................ 127 9.6.2 Lista de mensajes .................................................................................................................. 127 9.6.3 Flujo de mensajes .................................................................................................................. 127 9.6.4 Acotaciones y adaptaciones de FIX 4.4 ................................................................................. 127 Definición de mensajes ..................................................................................................................... 128 9.7.1 Quote (Msg Type = S)............................................................................................................ 128 9.7.2 Quote Cancel (Msg Type = Z) ................................................................................................ 129 9.7.3 Quote Status Request (Msg Type = a)................................................................................... 130 9.7.4 Quote Status Report (Msg Type = AI) .................................................................................... 131 Delta protection y configuración de la cuenta para quotes ................................................................ 133 9.8.1 Introducción ........................................................................................................................... 133 9.8.2 Delta Protection: Descripción ................................................................................................. 133 9.8.3 Campo RegistID..................................................................................................................... 133 9.8.4 Lista de mensajes .................................................................................................................. 135 9.8.5 Flujo de mensajes .................................................................................................................. 135 9.8.6 Acotaciones y adaptaciones de FIX 4.4 ................................................................................. 135 9.8.7 Definición de mensajes .......................................................................................................... 136 Consulta de parámetros del quote .................................................................................................... 141 9.9.1 Descripción ............................................................................................................................ 141 9.9.2 Lista de mensajes .................................................................................................................. 141 9.9.3 Flujo de mensajes .................................................................................................................. 141 9.9.4 Acotaciones y adaptaciones de FIX 4.4 ................................................................................. 142 9.9.5 Definición de mensajes .......................................................................................................... 143 Aplicaciones ...............................................................................................................................145 10.1 Introducción ....................................................................................................................................... 145 10.2 Entrada de aplicaciones entre distintos miembros ............................................................................ 145 10.3 Aceptación de aplicaciones entre distintos miembros ....................................................................... 146 10.4 Entrada de aplicaciones dentro del mismo miembro ......................................................................... 146 10.5 Precio y Efectivo total ........................................................................................................................ 147 10.6 Grupos de aplicaciones y aplicaciones de contado ........................................................................... 147 10.7 Lista de mensajes ............................................................................................................................. 147 10.8 Flujo de mensajes ............................................................................................................................. 148 10.9 Acotaciones y adaptaciones de FIX 4.4 ............................................................................................ 152 10.10 Definición de mensajes ..................................................................................................................... 153 10.10.1 Trade Capture Report Request (Msg Type = AD) ............................................................. 153 10.10.2 Trade Capture Report Request Ack (Msg Type = AQ) ...................................................... 154 10.10.3 Trade Capture Report (Msg Type = AE) enviado a MEFFGate ........................................ 155 10.10.4 Trade Capture Report (Msg Type = AE) enviado por MEFFGate ..................................... 158 10.10.5 Trade Capture Report Ack (Msg Type = AR) .................................................................... 161 11. Comunicación de Eventos ........................................................................................................164 11.1 11.2 11.3 11.4 11.5 Introducción ....................................................................................................................................... 164 Lista de mensajes ............................................................................................................................. 164 Flujo de mensajes ............................................................................................................................. 164 Acotaciones y adaptaciones de FIX 4.4 ............................................................................................ 164 Definición de mensajes ..................................................................................................................... 165 11.5.1 News (Msg Type = B) ............................................................................................................ 165 Apéndice A Tipos de Órdenes de MEFF .................................................................................. A–1 Apéndice B Campos de Usuario ................................................................................................ B-1 vii MEFFGate Negociación - Especificaciones de la Interfaz FIX Índice de Mensajes 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.16.9 5.8.1 5.8.2 5.8.3 5.8.4 5.8.5 6.5.1 6.5.2 6.5.3 6.5.4 6.5.5 6.5.6 6.5.7 6.5.8 6.5.9 7.6.1 7.6.2 7.6.3 8.9.1 8.9.2 8.9.3 8.9.4 8.9.5 8.9.6 8.9.7 8.9.8 8.9.9 9.7.1 9.7.2 9.7.3 9.7.4 10.10.1 10.10.2 10.10.3 10.10.4 10.10.5 11.5.1 Standard Message Header .................................................................................................. 16 Standard Message Trailer .................................................................................................... 18 Logon (Msg Type = A) ......................................................................................................... 19 Logout (Msg Type = 5) ......................................................................................................... 20 Heartbeat (Msg Type = 0) .................................................................................................... 21 Test Request (Msg Type = 1) .............................................................................................. 22 Resend Request (Msg Type = 2) ......................................................................................... 23 Sequence Reset (Msg Type = 4) ......................................................................................... 24 Reject (Msg Type = 3) .......................................................................................................... 25 Network Counterparty System Status Request (Msg Type = BC) ....................................... 36 Network Counterparty System Status Response (Msg Type = BD) .................................... 37 User Request (Msg Type = BE) ........................................................................................... 38 User Response (Msg Type = BF) ........................................................................................ 39 Business Message Reject (MsgType = j) ............................................................................ 40 Trading Session Status Request (Msg Type = g) ................................................................ 56 Trading Session Status (Msg Type = h) .............................................................................. 57 Security List Request (Msg Type = x) .................................................................................. 58 Security List (Msg Type = y) ................................................................................................ 59 Security Status Request (MsgType = e) .............................................................................. 62 Security Status (MsgType = f).............................................................................................. 63 Market Data Request (Msg Type = V) ................................................................................. 65 Market Data Request Reject (Msg Type = Y) ...................................................................... 67 Market Data Snapshot Full Refresh (Msg Type = W) .......................................................... 68 Quote Request (Msg Type = R) ........................................................................................... 73 Quote Request Reject (Msg Type = AG) ............................................................................. 74 Indication of Interest (Msg Type = 6) ................................................................................... 75 New Order - Single (Msg Type = D) .................................................................................... 97 Order Cancel Request (Msg Type = F) ................................................................................ 99 Order Modification Request (Msg Type = G) ..................................................................... 100 Execution Report (Msg Type = 8) ...................................................................................... 103 Order Cancel Reject (Msg Type = 9) ................................................................................. 107 Order Status Request (Msg Type = H) .............................................................................. 108 Order Mass Cancel Request (Msg Type = q) .................................................................... 109 Order Mass Cancel Report (Msg Type = r) ........................................................................ 111 Order Mass Status Request (Msg Type = AF) ................................................................... 112 Quote (Msg Type = S) ........................................................................................................ 128 Quote Cancel (Msg Type = Z)............................................................................................ 129 Quote Status Request (Msg Type = a) .............................................................................. 130 Quote Status Report (Msg Type = AI) ............................................................................... 131 Trade Capture Report Request (Msg Type = AD) ............................................................. 153 Trade Capture Report Request Ack (Msg Type = AQ) ...................................................... 154 Trade Capture Report (Msg Type = AE) enviado a MEFFGate ........................................ 155 Trade Capture Report (Msg Type = AE) enviado por MEFFGate ..................................... 158 Trade Capture Report Ack (Msg Type = AR) ..................................................................... 161 News (Msg Type = B) ........................................................................................................ 165 viii MEFFGate Negociación - Especificaciones de la Interfaz FIX 1. Introducción 1. Introducción 1.1 Ámbito de este manual Este documento contiene la definición de la interfaz ofrecida por MEFF para el desarrollo de aplicaciones relacionadas con el ámbito de negociación. Dicha interfaz está basada en el estándar FIX Protocol (Financial Information eXchange), en su versión 4.4. Para una información detallada del estándar, consúltese el documento de referencia 1 (ver 1.5) o la página www.fixprotocol.org. La interfaz sigue, tanto como es posible, las especificaciones de FIX 4.4. En la mayoría de los casos la estructura y semántica de los mensajes es idéntica al estándar. En algunos casos se han realizado extensiones del protocolo, por ejemplo para cubrir funcionalidades que no han sido consideraras por el estándar. Dichas extensiones están claramente detalladas en el documento. En otros casos el estándar es ambiguo, o indica que los detalles deben ser acordados mutuamente entre las partes. Es estos casos el manual contiene una descripción detallada que elimina las posibles ambigüedades. Todas las acotaciones y adaptaciones del estándar se han llevado a cabo siguiendo las recomendaciones especificadas por el propio estándar. Para evitar posibles duplicidades como fuente de información, este documento no incluye explicaciones de aquellos aspectos que cumplen exactamente con el estándar. Para cualquier tema que no esté explícitamente detallado en este manual, debe considerarse la documentación del estándar como fuente de información. El propósito de este documento es servir de base para los Miembros e ISVs que deseen desarrollar software que se comunique con el mercado mediante la interfaz FIX del servidor MEFFGate. 30 de julio de 2012 © MEFF 2012 1 MEFFGate Negociación - Especificaciones de la Interfaz FIX 1. Introducción 1.2 Información pública e información privada Las funcionalidades cubiertas por MEFFGate se agrupan en información pública e información privada. En la siguiente tabla se presentan las funciones públicas y los mensajes relacionados: Función pública Mensajes relacionados Obtención del estado de sesión Trading Session Status Trading Session Status Request Obtención de información de contratos Security List Request Security List Security Status Request Security Status Obtención de información de precios Market Data Request Market Data Request Reject Market Data – Snapshot / Full Refresh Obtención de información acerca de las peticiones de interés Indication of Interest (bloque Parties sin informar) En la siguiente tabla se presentan las funciones privadas y los mensajes relacionados: Función Privada Mensajes relacionados Gestión de órdenes New Order – Single Order Cancel Request Order Modification Request Execution Report Order Cancel Reject Order Status Request Order Mass Cancel Request Order Mass Cancel Report Order Mass Status Request Gestión de quotes Quote Quote Status Report Execution Report Quote Cancel Quote Status Request Execution Report Aplicaciones Trade Capture Report Request Trade Capture Report Request Ack Trade Capture Report Trade Capture Report Ack Execution Report Envío de mensajes al supervisor de mercado y recepción de mensajes del mismo 30 de julio de 2012 News © MEFF 2012 2 MEFFGate Negociación - Especificaciones de la Interfaz FIX Request for Quote 1. Introducción Quote Request Quote Request Reject Indication of Interest (bloque Parties informado) 1.3 Organización del manual El presente manual está organizado en dos partes diferenciadas. En la primera parte, formada por los primeros cuatro capítulos, se describen aspectos genéricos de esta interfaz. Éste, el primer capítulo, describe el ámbito del documento, presenta la estructura del mismo e introduce los documentos relacionados. En el capítulo 2 “Decisiones de Implementación”, se presentan aquellas acotaciones o restricciones derivadas de la implementación del protocolo que define este manual. El capítulo 3 “Sesión FIX” describe aquellos aspectos relacionados con el nivel de sesión, incluyendo la descripción detallada de los mensajes correspondientes. El capítulo 4 “Convenciones generales en los mensajes de aplicación” describe con detalle aspectos concretos que afectan a la mayoría de mensajes descritos en este manual. Dado su contenido genérico, que afecta a todos los mensajes, se recomienda una lectura previa de los capítulos 2, 3 y 4 antes de pasar al resto de capítulos. La segunda parte del manual, formada por el resto de capítulos, describe las diferentes funcionalidades soportadas por MEFFGate. En cada uno de estos capítulos se trata una funcionalidad concreta, describiendo aquellos aspectos particulares que son de interés. En cada uno de estos capítulos están presentes, entre otros, los siguientes apartados: Introducción. Presenta una breve descripción de la funcionalidad abordada en el capítulo Lista de mensajes. Relaciona los diferentes mensajes que implementan la funcionalidad tratada en el capítulo Flujo de mensajes. Describe los diferentes escenarios de intercambio de mensajes que se pueden dar. Incluye los correspondientes diagramas de flujo de mensajes Acotaciones y adaptaciones de FIX 4.4. Detalla las acotaciones y adaptaciones del protocolo estándar realizadas por MEFF para adaptarlo a sus requerimientos Definición de mensajes. Contiene una tabla para cada mensaje del capítulo, que describe de forma detallada los campos que lo conforman Finalmente, y a modo de apéndices, se presentan dos diferentes tablas de valores, referenciadas a lo largo del documento. 30 de julio de 2012 © MEFF 2012 3 MEFFGate Negociación - Especificaciones de la Interfaz FIX 1. Introducción 1.4 Formato de las tablas de definición de mensajes Tal y como se explica en el apartado anterior, en los capítulos en que sea necesario se incluye una tabla por cada mensaje, que describe de forma detallada los campos que lo conforman. Estas tablas contienen un campo por fila y presentan las siguientes columnas: Columna Significado Tag Número de campo. Los campos añadidos al mensaje en esta implementación presentan un asterisco (“*”) a continuación de este número Nombre Nombre del campo según el estándar FIX Req “S” indica que el campo es requerido, “N” significa que el campo es opcional. “S*” significa que el campo es requerido en esta implementación, pero opcional en el estándar FIX 4.4 Valores válidos Valores válidos del campo en el contexto del mensaje. Puede ser una lista de valores, o un rango de valores numéricos, p.ej. “>=3, <= 10”. En esta columna también se indica el valor por defecto del campo. Para evitar confusiones con los términos, en los valores asociados a códigos se ha respetado la descripción del valor original de FIX, y por tanto no se ha traducido Formato Tipo de dato del campo. Es uno de los tipos definidos por FIX, o uno de estos tipos con alguna restricción adicional. String(n) es un tipo String con un máximo de n caracteres, o en algunos casos con exactamente n caracteres. Para más información sobre el tipo String consúltese 2.4 Descripción Descripción del campo en el contexto del mensaje 1.5 Documentos relacionados # Título Autor Versión 1 Financial Information Exchange Protocol (FIX) 4.4 with errata 20030618 FIX Committee 18 junio 2003 2 Financial Information Exchange Protocol (FIX) 5.0 candidate release FIX Committee Octubre 2006 3 HF MEFFGate – Especificaciones de la interfaz FIX T3.3 MEFF 30 julio 2012 4 HF MEFFGate – Especificaciones de la interfaz FIX M3.3 MEFF 30 julio 2012 5 HF MEFFGate – Especificaciones de la interfaz FIX M3.0 MEFF 27 septiembre 2010 6 HF MEFFGate – Especificaciones de la interfaz FIX M2.0 MEFF 30 julio 2010 7 MEFFGate Negociación – Especificaciones de la interfaz FIX T1.1 MEFF 10 enero 2012 8 MEFFGate Negociación – Especificaciones de la interfaz FIX T1.0 MEFF 24 septiembre 2009 9 MEFFGate Liquidación – Especificaciones de la interfaz FIX C1.3 MEFF 27 septiembre 2010 10 MEFFGate Liquidación – Especificaciones de la interfaz FIX C1.2 MEFF 24 septiembre 2009 11 MEFFGate Liquidación – Especificaciones de la interfaz FIX C1.1 MEFF 24 septiembre 2009 30 de julio de 2012 © MEFF 2012 4 MEFFGate Negociación - Especificaciones de la Interfaz FIX 2. Decisiones de Implementación 2. Decisiones de Implementación 2.1 Descripción En este capítulo se presentan las decisiones de implementación tomadas por MEFF. Aquí se detallan aquellos aspectos que el estándar deja abiertos y que han sido definidos en esta implementación. 2.2 Campos ignorados En algunos casos, el contenido de ciertos campos de los mensajes de entrada puede ser ignorado por MEFFGate. Cuando éste es el caso, está claramente explicitado en la descripción del campo. 2.3 Campos no soportados Los campos que no están soportados en un mensaje no se han incluido en la descripción del mismo. Los mensajes enviados a MEFFGate no deben contener campos no soportados. Los mensajes enviados por MEFFGate nunca contienen campos no soportados. Ningún campo requerido ha sido declarado no soportado. 2.4 Longitud del tipo String El estándar FIX no impone ninguna restricción de longitud máxima sobre el tipo String. En esta implementación la longitud máxima es de 255 caracteres. En algunos campos se ha fijado una longitud máxima inferior a este valor. En estos casos el tipo se presenta como String(n), donde “n” es el número máximo de caracteres del campo. En ciertos casos “n” indica la longitud exacta del campo, en dicho caso será explícitamente mencionado en la columna de valores válidos. 2.5 Máxima longitud de mensaje La longitud máxima de los mensajes enviados o recibidos por MEFFGate es de 4096 bytes. 2.6 Encriptación MEFFGate no usa la encriptación que define el estándar FIX (mediante los campos SecureData and SecureDataLen de la cabecera del mensaje). La encriptación está implementada mediante el uso de SSL (Secure Socket Layer). 2.7 Identificación del protocolo MEFFGate FIX MEFFGate implementa una funcionalidad adicional que permite que ambas partes se pongan de acuerdo en la versión de MEFFGate FIX que van a usar. No debe confundirse la versión del protocolo FIX (en este caso “4.4”), con la versión del protocolo MEFFGate FIX (“T1.2” en esta edición). Podrá existir más de una versión del protocolo MEFFGate FIX dentro de una misma versión de FIX. Asimismo, podrá darse que una versión del protocolo MEFFGate FIX sea conforme con más de una versión del protocolo FIX. En la configuración de usuarios MEFFGate se puede indicar cuál es la versión del protocolo MEFFGate FIX que proporcionará MEFFGate por defecto. El cliente también puede indicar en el campo ProprietaryFixProtocolVersion, del mensaje Logon, la versión del protocolo MEFFGate FIX que desea usar. Este campo es una adición de y se ha implementado como opcional. Si la versión solicitada por el cliente no está disponible en el servidor MEFFGate en uso, éste responde con un mensaje Logout con el correspondiente mensaje explicativo. 30 de julio de 2012 © MEFF 2012 5 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3. Sesión FIX 3.1 Introducción El nivel de sesión FIX garantiza la entrega de mensajes, entre ambas partes, de forma completa y sin errores. MEFFGate implementa la mayoría de las funcionalidades del nivel de sesión definidas en el estándar FIX 4.4. 3.2 Sesión FIX y sesión de comunicación Tal y como se explica en el estándar, existen dos tipos de sesión: Sesión de comunicación. Se inicia cuando una petición de inicio de sesión (mensaje Logon) es aceptada. Termina cuando finaliza la comunicación, preferiblemente con el intercambio de mensajes Logout Sesión FIX. Está compuesta por un conjunto de mensajes bidireccionales identificados por una secuencia de números consecutivos. Una sesión FIX se inicia cuando la secuencia de números de ambas partes se reinicia con el valor 1. No existe una forma explícita de finalizar una sesión FIX; una sesión se acaba cuando se inicia una nueva. Una sesión FIX puede abarcar más de una sesión de comunicación Además de los dos tipos de sesión enumerados, debe considerarse el concepto de sesión de Mercado. Una sesión de Mercado empieza cada día en el momento en que el servidor MEFFGate, siguiendo el procedimiento definido por MEFF, carga de nuevo los datos del mercado y acepta conexiones para dicha sesión de Mercado. El cliente debe iniciar una nueva sesión FIX en la primera conexión de la sesión de Mercado. Dado que MEFFGate no soporta el servicio 24 horas, el campo ResetSeqNumFlag no es necesario en el mensaje Logon. 3.3 Identificación de la sesión FIX Una vez se ha establecido una sesión de comunicación, MEFFGate identifica la sesión FIX asociada a partir de cuatro campos del mensaje de Logon enviado por el iniciador: SenderCompID SenderSubID TargetCompID TargetSubID SenderCompID identifica al miembro y SenderSubID identifica al operador. TargetCompID junto con TargetSubID identifican al mercado. No puede existir más de una sesión FIX concurrente con los mismos valores en estos cuatro campos. Los campos SenderCompID, SenderSubID, TargetCompID y TargetSubID están presentes en todos los mensajes FIX. Todos los mensajes pertenecientes a una misma sesión FIX deben mantener los mismos valores en estos campos. Si se recibe un mensaje cuyos valores no se corresponden con los de la sesión, será rechazado con un mensaje Reject. 30 de julio de 2012 © MEFF 2012 6 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX Hay que tener en cuenta que los valores de estos campos se invierten, respecto a los enviados por el cliente, cuando el mensaje es enviado por MEFFGate. Supongamos que el operador “001” perteneciente al miembro “A001” tiene establecida una sesión con el grupo de contratos financiero de MEFF. Los valores serán los que se muestran a continuación: Mensaje del cliente a MEFFGate: Mensaje de MEFFGate al cliente: o SenderCompID = “A001” o SenderCompID = “MEFF” o SenderSubID = “001” o SenderSubID = “M3” o TargetCompID = “MEFF” o TargetCompID = “A001” o TargetSubID = “M3” o TargetSubID = “001” * 3.4 Software cliente y sesiones FIX Un cliente de MEFFGate es un desarrollo software que se conecta a MEFF mediante el servidor MEFFGate. Tal y como se vio en 3.3, una sesión FIX queda limitada a un operador y una plataforma. Un cliente podrá establecer varias sesiones FIX simultáneas, para acceder a más de una plataforma u operar en una plataforma con varios códigos de operador. Un servidor MEFFGate puede dar servicio a varias sesiones simultáneamente, ya sean de un mismo cliente o de varios. Cuando un cliente FIX intenta conectar con una plataforma que no está disponible, su mensaje de Logon es contestado con un mensaje Logout con la explicación pertinente. 3.5 Enrutamiento de mensajes de distintos usuarios a través de una misma sesión FIX (conexión multilogon) MEFFGate permite establecer, a través de una misma sesión FIX, el enrutamiento de mensajes de distintos usuarios que tienen los correspondientes privilegios. Esto es una conexión multilogon. Para ello se utilizan, en los mensajes aplicativos, los siguientes campos del Standard Message Header: OnBehalfOfCompID [115], OnBehalfOfSubID [116], DeliverToCompID [128] y DeliverToSubID [129]. Hay que tener en cuenta en cuenta que los campos OnBehalfOfCompID [115] y OnBehalfOfSubID [116] los utiliza la aplicación cliente en los envíos de los mensajes aplicativos a MEFFGate. En cambio los valores DeliverToCompID [128] y DeliverToSubID [129] los utiliza MEFFGate en los envíos de los mensajes aplicativos a la aplicación cliente. Mensaje aplicativo a MEFFGate: Mensaje aplicativo al cliente: o OnBehalfOfCompID = “B001” o DeliverToCompID = “B001” o OnBehalfOfSubID = “351” o DeliverToSubID = “351” * Para más detalle sobre los códigos de mercado, véase Tabla 17 en documento “Tablas de Codificación” 30 de julio de 2012 © MEFF 2012 7 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.6 Sincronización de la sesión FIX Al iniciar una sesión de comunicación (envío de mensaje Logon), el cliente puede optar por iniciar una nueva sesión FIX o continuar con una sesión previa de la misma sesión de mercado. A continuación se describe el procedimiento a seguir en cada caso. Inicio de nueva sesión FIX. Para iniciar una nueva sesión FIX se deberá usar el número 1 en el campo MsgSeqNum del mensaje Logon. Continuación de sesión FIX previa. Para continuar una sesión FIX previa se deberá usar en el campo MsgSeqNum el número consecutivo al usado en el último mensaje de la sesión que se va a continuar. Téngase en cuenta que al iniciar una nueva sesión FIX, la sesión iniciada sustituye a la anterior y por tanto esta última no podrá ser continuada posteriormente. Una aplicación cliente sólo puede continuar con una sesión FIX previa si se conecta al mismo servidor MEFFGate. En caso de que deba conectarse a otro servidor MEFFGate sólo podrá iniciar una nueva sesión FIX. Cuando se envía un mensaje Logon con MsgSeqNum diferente de 1, el número enviado puede no coincidir con el número que MEFFGate estaba esperando para esa sesión (MEFFGate espera el número consecutivo al número del último mensaje recibido de dicha sesión). A continuación se presentan las diferentes situaciones que se pueden dar respecto al número de secuencia del mensaje Logon y el mensaje esperado por MEFFGate. MsgSeqNum igual al número esperado por MEFFGate. No hay discrepancia y MEFFGate acepta la conexión. MsgSeqNum inferior al número esperado por MEFFGate. MEFFGate rechaza la conexión con un mensaje Logout con número de secuencia igual a 1. En este caso la conexión no puede ser aceptada ya que el número de secuencia usado en el mensaje Logon ya fue usado previamente por otro mensaje de la misma sesión. MsgSeqNum superior al número esperado por MEFFGate. MEFFGate acepta la conexión, y solicita el envío de los mensajes que faltan entre el número de secuencia que el estaba esperado y el número usado por el cliente. La solicitud de envío de dichos mensajes se realizará con uno de los siguientes mecanismos: o Mensaje Logon con NextExpectedMsgSeqNum. Este método se usará siempre y cuando el cliente haya usado el campo NextExpectedMsgSeqNum en su mensaje Logon o Mensaje Resend Request. En el caso que el cliente no haya usado el campo NextExpectedMsgSeqNum (mensaje Logon), el servidor tampoco hará uso de él. En este caso el servidor, después del mensaje de Logon de respuesta, notificará al cliente el error de secuencia mediante el mensaje Resend Request Cuando se continúa con una sesión FIX es aconsejable usar el campo NextExpectedMsgSeqNum (mensaje Logon), indicando el número de mensaje esperado, para facilitar la sincronización entre ambas partes. De esta forma el servidor puede detectar si el cliente dejó de recibir alguno de los mensajes, y proceder a su reenvío. Cuando no se especifica este valor, el servidor continúa el envío de mensajes a partir del último número de secuencia enviado. MEFFGate usa el campo NextExpectedMsgSeqNum en el mensaje Logon de contestación, siempre y cuando el cliente lo haya usado en su mensaje de inicio. MEFFGate sólo usa el mensaje Resend Request tal y como se ha descrito anteriormente, es decir, inmediatamente después de una petición de Logon. En cualquier otro caso, cuando se produzca discrepancia entre el número de secuencia esperado y el recibido, MEFFGate asume que existe algún problema grave y finaliza la conexión con el envío de un mensaje Logout. 30 de julio de 2012 © MEFF 2012 8 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX Cuando MEFFGate solicita al cliente un número de secuencia inferior al que éste proponía, queda a decisión del cliente repetir los mismos mensajes que envió con los números de secuencia que faltan, enviar uno o más GapFills, o simplemente darles un nuevo uso. En cualquier caso el cliente debe tener en cuenta que los mensajes serán procesados por MEFFGate en el momento de su recepción como cualquier otro mensaje. Se recomienda implementar controles para no enviar órdenes que podían haber quedado obsoletas durante el periodo que duró la desconexión. Al igual que MEFFGate, el cliente sólo puede hacer uso del mensaje Resend Request en el caso de detectar que el mensaje Logon que le ha enviado el servidor está fuera de secuencia y no contiene el campo NextExpectedMsgSeqNum. Si MEFFGate recibe un mensaje Resend Request en cualquier otro momento será considerado como un error y procederá a finalizar la conexión. Independientemente de si fue solicitada mediante el mensaje Resend Request o con el campo NextExpectedMsgSeqNum del mensaje Logon, la repetición de mensajes por parte del servidor está limitada a los mensajes pertenecientes a la Sesión de Mercado en curso. El servidor repite todos los mensajes solicitados, excepto los de información pública y los que no se correspondan con la última situación de cada quote. Dado el volumen que puede representar la información pública y la referente a la historia de cada quote, ésta no es repetible y será sustituida por mensajes GapFill. El cliente debe usar las funcionalidades de consulta disponibles para ponerse al día de esta información. Consúltese el apartado 3.7 para más información al respecto. n+1 Logon m + m 5 + m 6 + 7 ··· n + n 4 + 5 + 2 n 1 ··· + 4 5 + 3 n 2 n 1 n m 3 1 5 6 7 8 + 2 3 4 m 1 m + m 2 + m 3 + 4 A) Se continua la sesión FIX sin petición de repetición de mensajes NextExpectedMsgSeqNum=m+1 + 3 1 + m + m 2 + m 3 + 4 m m m 50 m 49 m 48 m 17 -1 m 6 m 2 -1 m n+1 Logon ··· n n 2 ··· + 4 5 n 3 1 2 n 1 + 5 6 7 8 m m 2 -1 m 2 3 4 m 1 -5 0 B) Se continua la sesión FIX con petición de mensajes NextExpectedMsgSeqNum=m-50 Mensaje del servidor al cliente Mensaje del cliente al servidor Mensaje SequenceReset-GapFill enviado del servidor al cliente para saltar los mensajes públicos (no repetibles) - Escenarios de continuación de una sesión FIX - Cuando un inicio de sesión de comunicaciones es rechazado, el servidor responde con un mensaje Logout. La aplicación cliente debe tener en cuenta que este mensaje Logout puede venir con número de secuencia 1, o con el número de secuencia correspondiente a su última comunicación. El número de secuencia usado por el cliente en su mensaje Logon no es tenido en cuenta por MEFFGate y por tanto no altera el número de secuencia esperado en próximas comunicaciones. 30 de julio de 2012 © MEFF 2012 9 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.7 Sincronización a nivel de aplicación Cuando un cliente inicia una sesión de comunicación (mensaje Logon aceptado), recibe un conjunto de información relacionada con la Sesión de Mercado actual. El conjunto de información a recibir depende de si se trata del inicio de una nueva sesión o una reconexión a una sesión FIX existente. Inicio de una sesión FIX. El cliente recibe todos los mensajes privados, no asociados a suscripciones, correspondientes a toda la sesión de mercado en curso. El total o parte de estos mensajes podrían haber sido recibidos previamente en una sesión FIX anterior. Reconexión a una sesión FIX existente. El cliente recibe todos los mensajes privados, no asociados a suscripciones, correspondientes a la sesión de mercado en curso y que no haya recibido anteriormente. En este caso MEFFGate asegura que no se produce ninguna duplicidad de mensaje (excepto cuando es solicitada explícitamente). Los mensajes que provienen de una solicitud explicita de repetición (solicitada con un mensaje Resend Request o un mensaje Logon con NextExpectedMsgSeqNum inferior al último mensaje recibido) contendrán el valor “Y” en el campo PossDupFlag indicando dicha situación. Este caso no aplica cuando se trata de una nueva sesión FIX (inicio de la sesión con número de secuencia 1). En ambos casos, tanto la información privada asociada a suscripciones, como la información pública, puede ser solicitada mediante los mensajes que implementan las funcionalidades correspondientes. Debe tenerse en cuenta que cualquier suscripción a información es cancelada al finalizarse la sesión de comunicación. Si al reconectar una sesión FIX se desea este servicio, debe volver a solicitarse. El conjunto de mensajes privados no asociados a suscripciones que se menciona en este apartado se corresponde con los siguientes mensajes: Execution Report con ExecType con valores New (“0”), Replace (“5”), Cancelled (“4”), Trade (“F”) y Trade Cancel (“H”) Execution Report con ExecType con valor Rejected (“8”) que informan del rechazo de una aplicación por parte de los sistemas centrales de MEFF News Quote Status Report correspondiente a la última situación de cada quote 3.8 Alta disponibilidad Para mejorar la disponibilidad de acceso a MEFF se dispondrá de varias instancias del servidor MEFFGate ejecutándose en equipos diferentes en las instalaciones del miembro. Todas las instancias de MEFFGate estarán conectadas con los sistemas centrales de MEFF. Por tanto, dispondrán de toda la información necesaria. Cuando falla el servidor MEFFGate al que se halla conectado un cliente, el cliente puede continuar trabajando con otro MEFFGate. En este caso, el cliente debe iniciar una nueva sesión FIX (empezando por el número de secuencia 1), ya que el estado de las sesiones no se replica entre los diferentes servidores MEFFGate. El cliente debe realizar los procesos necesarios para sincronizarse a nivel de aplicación (ver 3.6). Cuando falla una aplicación cliente que tenía establecida una sesión FIX, la aplicación cliente puede reiniciarse en otro equipo que continúe la misma sesión (usando el mismo servidor MEFFGate). En este caso, es responsabilidad del cliente recuperar el estado de la aplicación fallida. Si no fuese posible recuperar este estado, lo más recomendable es iniciar una nueva sesión FIX, si bien es posible mantener la sesión actual y consultar a nivel de aplicación todos los datos necesarios para reconstruir el estado. 30 de julio de 2012 © MEFF 2012 10 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.9 Campo PossResend La implementación FIX de MEFF no permite el uso del campo PossResend (ver 2.3 para más información sobre campos no soportados). 3.10 Recepción de información de todos los operadores del miembro Cuando un miembro lo solicite, un código de operador puede actuar como operador privilegiado, de forma que recibe los mensajes relacionados con órdenes, destinados a todos los operadores del miembro. Los mensajes afectados por este mecanismo son el mensaje Execution Report que contiene los siguientes valores en el campo ExecType: New (“0”), Cancelled (“4”), Replace (“5”), Trade (“F”) y Trade Cancel (“H”) y el mensaje Quote Status Report. Los mensajes enviados por MEFFGate a este operador, contienen la misma información que los mensajes originales, exceptuando los campos TargetCompID y TargetCompSubID. Cuando sea necesario, la información contenida en el bloque Parties permite identificar al operador destinatario del mensaje original. 3.11 Recepción de información de actuaciones realizadas en nombre del propio operador En la plataforma tecnológica de MEFF es posible que se realicen actuaciones en nombre de un operador. Esto puede ser realizado, por ejemplo, desde un MEFFStation Multi-Trader del miembro o por el pool de operadores de MEFF. En estos casos, el cliente FIX en nombre del cual se ha actuado recibe los mensajes correspondientes a dicha operativa. Por ello, las aplicaciones clientes deben estar preparadas para recibir mensajería originada a partir de actuaciones de terceros en su nombre. Téngase en cuenta que, en este caso, el número de mensajes recibidos por la aplicación cliente puede ser inferior a los que hubiera recibido en caso de haber sido ella la que enviase el mensaje equivalente. Los mensajes que no se reciben son aquellos mensajes que se generan directamente desde MEFFGate para notificar la recepción del mensaje y el envío del mismo a los sistemas centrales. Cuando sea necesario, la información contenida en el bloque Parties permite identificar al miembro y operador que realizó la actuación (véase el apartado 4.3). 3.12 Mensajes administrativos que el cliente FIX debe gestionar El cliente FIX debe ser capaz de gestionar todos los mensajes administrativos tal y como se describen en este capítulo, incluyendo el mensaje Resend Request. Es decisión del cliente el responder a éste mediante el reenvío de mensajes o simplemente enviando un GapFill (mensaje Sequence Reset). 3.13 Lista de mensajes La funcionalidad de nivel de sesión se implementa en FIX 4.4 mediante siete mensajes administrativos. Todos ellos están completamente soportados por el protocolo FIX de MEFFGate. 30 de julio de 2012 © MEFF 2012 11 MEFFGate Negociación - Especificaciones de la Interfaz FIX Mensaje 3. Sesión FIX Descripción Solicitud o confirmación del inicio de una sesión de comunicación Logon (Msg Type = A) Solicitud o confirmación de la finalización de una sesión de comunicación Logout (Msg Type = 5) Notificación periódica de que la conexión permanece viva Heartbeat (Msg Type = 0) Solicitud de envío de un mensaje Heartbeat para confirmar que la conexión permanece viva Test Request (Msg Type = 1) Solicitud de reenvío de mensajes que no han sido recibidos Resend Request (Msg Type = 2) Rellenar un hueco de mensajes restableciendo un número de secuencia superior Sequence Reset (Msg Type = 4) Rechazo de mensaje a nivel de sesión Reject (Msg Type = 3) 3.14 Flujo de mensajes Inicio de sesión de comunicación e inicio de sesión FIX Una petición de inicio de sesión de comunicación (mensaje Logon) aceptada, es contestada por el receptor con otro mensaje Logon. El iniciador no debe enviar ningún otro mensaje hasta que haya recibido esta confirmación de aceptación. MEFFGate Client MEFFGate Server Logon (“A”) MsgSeqNum [34] = 1 Logon (“A”) MsgSeqNum [34] = 1 30 de julio de 2012 © MEFF 2012 12 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX Inicio de sesión de comunicación y continuación de sesión FIX Una petición de inicio de sesión de comunicación (mensaje Logon) aceptada, es contestada por el receptor con otro mensaje Logon. El iniciador no debe enviar ningún otro mensaje hasta que haya recibido esta confirmación de aceptación. MEFFGate Client MEFFGate Server Logon (“A”) MsgSeqNum [34] = m NextExpectedMsgSeqNum [789] = n Logon (“A”) MsgSeqNum [34] = n NextExpectedMsgSeqNum [789] = m+1 Inicio de sesión de comunicación rechazado Cuando un inicio de sesión de comunicación (mensaje Logon) no es aceptado, MEFFGate contestará con un mensaje Logout. Para más detalle sobre el comportamiento de los números de secuencia de ambas partes consultar el apartado 3.6. MEFFGate Client MEFFGate Server Logon (“A”) Logout (“5”) Finalización de la sesión de comunicación iniciada por el emisor El cliente puede, en cualquier momento, finalizar la sesión de comunicación mediante el envío de un mensaje Logout. MEFFGate Client MEFFGate Server Logout (“5”) Logout (“5”) 30 de julio de 2012 © MEFF 2012 13 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX Finalización de la sesión de comunicación iniciada por el receptor En situaciones excepcionales el servidor puede terminal la sesión de comunicación mediante un mensaje Logout. MEFFGate Client MEFFGate Server Logout (“5”) Logout (“5”) Envío de mensaje con los campos de identificación de sesión (SenderCompID, SenderSubID, TargetCompID y TargetSubID) con valores diferentes a los asociados a la sesión FIX actual Todos los mensajes asociados a una sesión FIX deben incluir los mismos valores identificadores de sesión (SenderCompID, SenderSubID, TargetCompID y TargetSubID). Si un mensaje difiere con los valores indicados en el Logon de la sesión, es rechazado mediante con Reject. MEFFGate Client MEFFGate Server Any message with wrong ID Reject (“3”) SessionRejectReason [373] = 9 (CompID problem) 30 de julio de 2012 © MEFF 2012 14 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.15 Acotaciones y adaptaciones de FIX 4.4 Se ha añadido el campo opcional ProprietaryFixProtocolVersion al mensaje Logon para identificar la versión del protocolo particular de MEFF Se ha añadido el campo opcional FixEngineName al mensaje Logon. Contiene un texto descriptivo de la aplicación software Cuando una petición de inicio de sesión (mensaje Logon) es rechazada, el receptor (MEFF) siempre enviará un mensaje Logout como contestación Los campos SenderSubID [50] y TargetSubID [57] en la cabecera de los mensajes (Standard Message Header) dejan de ser opcionales y pasan a ser requeridos El campo PossResend no está soportado No se soporta el método de encriptación de FIX MEFFGate sólo acepta el mensaje ResendRequest después del mensaje Logon Los valores válidos del campo ResetSeqNumFlag del mensaje Logon quedan limitados al valor “N” 30 de julio de 2012 © MEFF 2012 15 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.16 Definición de mensajes 3.16.1 Standard Message Header Cabecera que contienen todos los mensajes FIX. Tag 8 Nombre BeginString Req S 9 BodyLength S 35 MsgType S 49 SenderCompID S String 56 TargetCompID S String 115 OnBehalfOfCompID N String 128 DeliverToCompID N String 34 MsgSeqNum S SeqNum 50 SenderSubID S* 57 TargetSubID S* 116 OnBehalfOfSubID N 30 de julio de 2012 Valores válidos FIX.4.4 Formato String Int Todos los tipos de mensajes soportados por MEFF Para más detalle sobre los códigos de grupo de contratos, véase Tabla 17 en documento “Tablas de Codificación” Para más detalle sobre los códigos de grupo de contratos, véase Tabla 17 en documento “Tablas de Codificación” String String Descripción Indica el inicio de un nuevo mensaje. Contiene la versión del protocolo FIX. Siempre es el primer campo del mensaje Longitud del mensaje en bytes, desde la finalización de este campo hasta, e incluyendo, el delimitador previo al campo CheckSum. Siempre es el segundo campo del mensaje Identifica el tipo de mensaje. Siempre es el tercer campo del mensaje Identificador de la entidad que envía el mensaje. Contiene “MEFF” cuando el mensaje es enviado por MEFFGate. Debe contener el código del miembro en los mensajes enviados por la aplicación cliente Identificador de la entidad a la que va destinado el mensaje. Debe contener “MEFF” cuando el mensaje es enviado a MEFFGate. Contiene el código del miembro en los mensajes enviados por MEFFGate Usado por el cliente cuando se envían mensajes a través de otro usuario que tiene los correspondientes privilegios Usado por MEFFGate cuando se reciben mensajes a través de otro usuario que tiene los correspondientes privilegios Número de secuencia del mensaje dentro de la sesión FIX actual En los mensajes enviados por MEFFGate contiene el código asignado al Grupo de contratos con el que se estableció la conexión. En mensajes enviados a MEFFGate debe contener el código de operador con el que se inició la sesión FIX String En los mensajes enviados por MEFFGate contiene el código de operador al que va destinado. En mensajes enviados a MEFFGate debe contener el código de Grupo de contratos con el que se estableció la conexión String Usado por el cliente cuando se © MEFF 2012 16 MEFFGate Negociación - Especificaciones de la Interfaz FIX 129 DeliverToSubID N 43 PossDupFlag N 52 SendingTime S 122 OrigSendingTime N 30 de julio de 2012 3. Sesión FIX String N = Envío del mensaje original (valor por defecto) Y = Posible duplicado Boolean UTC Timestamp UTC Timestamp © MEFF 2012 envían mensajes a través de otro usuario que tiene los correspondientes privilegios Usado por MEFFGate cuando se reciben mensajes a través de otro usuario que tiene los correspondientes privilegios Indica si se trata de la primera vez, dentro de una sesión FIX, que se envía un mensaje (“N”) o si se está enviado de nuevo el mismo mensaje (“Y”), ya sea por una petición explicita de la otra parte o por la duda de la recepción del mensaje original Hora de envío del mensaje Hora en que se envió el mensaje original. Requerido en un reenvío. Un mensaje es considerado un reenvío si el campo PossDupFlag = “Y” y el campo MsgType no es “4” (Sequence Reset) 17 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.16.2 Standard Message Trailer Parte final de todos los mensajes FIX. Tag 10 Nombre CheckSum 30 de julio de 2012 Req S Valores válidos © MEFF 2012 Formato String(3) Descripción Checksum del mensaje, calculado según lo descrito en el estándar. Siempre es el último campo del mensaje y su longitud es exactamente de 3 bytes 18 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.16.3 Logon (Msg Type = A) El mensaje Logon es usado para iniciar una sesión por el cliente y para aceptarla por el servidor. Tag Req S S S Valores válidos MsgType = A 0 = None >= 5 Formato Descripción 98 108 Nombre Standard Header EncryptMethod HeartBtInt Int Int 141 ResetSeqNumFlag N N Boolean 789 NextExpectedMsgSe qNum TestMessageIndicato r N 553 Username N String 554 Password N String 5680* ProprietaryFixProtoco lVersion N 5679* FixEngineName N Ignorado por MEFFGate Intervalo de envío de mensajes de verificación de conexión (mensaje Heartbeat) expresado en segundos. Sólo permite el valor “N”, ya que en la implementación del protocolo no es necesario Indica el siguiente número de secuencia (MsgSeqNum) que se espera recibir Indica cuando se trata de una sesión de pruebas o de producción. El cliente puede usarlo opcionalmente para indicar si desea conectarse a producción o a pruebas. El inicio de sesión se acepta si MEFFGate atiende ese entorno. Si el cliente no indica nada, no se tiene en cuenta este parámetro y MEFFGate siempre informa este campo. Identificador de usuario asignado por MEFF. Requerido cuando el mensaje es enviado por la aplicación cliente. Actualmente está formado por la combinación de código de miembro y de operador asignados por MEFF Password asignado por el usuario. Requerido cuando el mensaje es enviado por la aplicación cliente Identificación exacta de la versión del protocolo usado y esperado por el cliente. MEFFGate siempre cumplimenta este campo, independientemente de si la aplicación cliente lo informó o no. Campo opcional, donde el cliente puede incluir la denominación del software usado para la conexión FIX. Sólo usado a modo informativo. MEFFGate nunca envía este campo Standard Trailer S 464 30 de julio de 2012 N SeqNum Y = Test N = Producción T1.2 Boolean String String © MEFF 2012 19 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.16.4 Logout (Msg Type = 5) El mensaje Logout es usado por ambas partes tanto para solicitar o notificar la finalización de la sesión de comunicación como para aceptar dicha solicitud. Tag 58 Nombre Standard Header Text Standard Trailer 30 de julio de 2012 Req S N S Valores válidos MsgType = 5 © MEFF 2012 Formato Descripción String Texto explicativo 20 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.16.5 Heartbeat (Msg Type = 0) El mensaje Heartbeat es usado por ambas partes para indicar que la conexión se mantiene activa. Tag 112 Nombre Standard Header TestReqID Req S N Standard Trailer S 30 de julio de 2012 Valores válidos MsgType = 0 © MEFF 2012 Formato Descripción String Si el mensaje es la respuesta a un mensaje Test Request, debe contener el mismo valor que contenía el campo TestReqID original. En cualquier otro caso, este campo debe omitirse. 21 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.16.6 Test Request (Msg Type = 1) El mensaje Test Request es usado por ambas partes para solicitar el envío de un mensaje Heartbeat. Tag 112 Nombre Standard Header TestReqID Req S S Standard Trailer S 30 de julio de 2012 Valores válidos MsgType = 1 © MEFF 2012 Formato Descripción String Identificador de la petición. Debe ser incluido en el mensaje Hearbeat de respuesta 22 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.16.7 Resend Request (Msg Type = 2) El mensaje Resend Request puede ser usado por ambas partes para solicitar el reenvío de mensajes que no se han recibido. MEFFGate sólo hace uso de esta funcionalidad después de un mensaje Logon. En cualquier otro caso la recepción de un mensaje fuera de secuencia es considerado un error grave y se cierra la conexión. MEFFGate sólo acepta el envío de este tipo de mensaje inmediatamente después de un mensaje Logon en el que no se haya especificado el campo NextExpectedMsgSeqNum. Tag Req S S Valores válidos MsgType = 2 Número de secuencia válido Formato Descripción 7 Nombre Standard Header BeginSeqNo Int 16 EndSeqNo S 0 = Infinito Número de secuencia válido Int Número de secuencia del primer mensaje del rango de mensajes del que se solicita el reenvío. Debe contener un valor inferior al último número de secuencia recibido Número de secuencia del último mensaje del rango de mensajes del que se solicita el reenvío. Debe contener un valor inferior al último número de secuencia recibido. Si la petición es únicamente de un mensaje EndSeqNo = BeginSeqNo Si la petición es de todos los mensajes a partir de uno dado EndSeqNo = 0 Standard Trailer S 30 de julio de 2012 © MEFF 2012 23 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.16.8 Sequence Reset (Msg Type = 4) El mensaje Sequence Reset es usado por ambas partes para rellenar un hueco en los mensajes que se están enviando, mediante la reasignación del número de secuencia (ver 3.6). El estándar FIX permite otros usos de este mensaje que no están soportados por MEFF (nótese que el campo GapFillFlag se ha hecho requerido y siempre debe contener el valor “Y”). Tag Nombre Standard Header Req S Valores válidos MsgType = 4 Formato 123 GapFillFlag S* Y = Indica que el mensaje es para rellenar un hueco Boolean 36 NewSeqNo S Standard Trailer S 30 de julio de 2012 Int © MEFF 2012 Descripción Téngase presente que PossDupFlag debe contener el valor “Y” Para más información consultar la documento de especificaciones de FIX 4.4 Número de secuencia del mensaje que se enviará a continuación 24 MEFFGate Negociación - Especificaciones de la Interfaz FIX 3. Sesión FIX 3.16.9 Reject (Msg Type = 3) El mensaje Reject es usado por MEFFGate para rechazar un mensaje que no cumpla el protocolo FIX especificado por MEFF. Tag Nombre Standard Header RefSeqNum Req S S Valores válidos MsgType = 3 373 SessionRejectRe ason N 0 Invalid tag number 1 Required tag missing 2 Tag not defined for this message type 3 Undefined Tag 4 Tag specified without a value 5 Value is incorrect (out of range) for this tag 6 Incorrect data format for value 9 CompID problem 11 Invalid MsgType 13 Tag appears more than once 14 Tag specified out of required order 15 Repeating group fields out of order 16 Incorrect NumInGroup count for repeating group 17 Non "data" value includes field delimiter (SOH character) 99 Other 58 Text N Standard Trailer S 45 30 de julio de 2012 Formato Descripción SeqNum Número de secuencia del mensaje rechazado Código que indica el motivo de rechazo Int String © MEFF 2012 Contiene una descripción más específica de la razón de rechazo 25 MEFFGate Negociación - Especificaciones de la Interfaz FIX 4. Convenciones generales en los mensajes de aplicación 4. Convenciones generales en los mensajes de aplicación 4.1 Identificación de órdenes 4.1.1 ClOrdID Cualquier mensaje relacionado con una orden (entrada, cancelación, modificación) enviado por el cliente, debe contener un identificador único en el campo ClOrdID. Tal y como indica el estándar, la unicidad de estos identificadores debe ser mantenida durante la sesión de negociación. Una vez el mensaje es aceptado por MEFFGate, el cliente recibe el correspondiente mensaje de confirmación con el mismo código ClOrdID precedido de un prefijo. MEFF implementa este mecanismo para asegurar la identificación unívoca de las órdenes, independientemente de su emisor. El valor con el prefijo pasa a ser el identificador de la orden a partir de ese momento. El cliente puede identificar la orden indistintamente con cualquiera de los dos valores de ClOrdID. La única excepción a lo dicho anteriormente se da en la cancelación masiva de órdenes, donde todas las órdenes canceladas por este tipo de actuación quedan identificadas por el mismo ClOrdID. Para más información al respecto consúltese el apartado 0. El campo ClOrdID asignado por el cliente debe ser de diez caracteres de longitud como máximo. MEFFGate también acepta que los mensajes enviados por el cliente usen un ClOrdID de longitud 30, en este caso sólo las 10 últimas posiciones pueden ser fijadas libremente, ya que las 20 primeras deben coincidir con el formato que se presenta a continuación. El ClOrdID enviado por el cliente tiene el formato AAMMDDMmmmTttOoooSssNnnnnnnnnn, formado con la siguiente codificación: AAMMDD. Es la fecha de la sesión de negociación MmmmTtt. Contiene los códigos de miembro y operador de los campos SenderCompID y SenderSubID de la cabecera del mensaje original OoooSss. Contiene los códigos de miembro y operador que se indiquen en el bloque Parties bajo el rol de Originating Firm y Originating Trader (ver 4.3) Nnnnnnnnnn. Es el valor asignado por el cliente a ClOrdID en el mensaje original 4.1.2 OrderID El campo OrderID es un identificador de orden, único por miembro y operador, asignado por el servidor MEFFGate. Este identificador se mantiene asociado a la orden, aún cuando ésta sea modificada. Este campo puede ser necesario para identificar la orden en comunicaciones con el Mercado por otras vías. 4.1.3 SecondaryOrderID El campo SecondaryOrderID es un identificador de orden asignado por el sistema central de negociación. El periodo en que se garantiza la unicidad de este campo viene determinada por cada sistema central de negociación. 4.1.4 SecondaryExecID El campo SecondaryExecID informa del número de historia de la orden. Cada vez que cambia la situación de la orden el libro de órdenes del sistema central (modificación, cancelación, ejecución) se asigna un nuevo valor a este campo. 30 de julio de 2012 © MEFF 2012 26 4. Convenciones generales en los mensajes de aplicación MEFFGate Negociación - Especificaciones de la Interfaz FIX En el Sistema de negociación de MEFF, cualquier estado de una orden concreta puede ser identificada por la combinación de los campos SecondaryOrderID [198] + SecondaryExecID [527]. 4.2 Identificación de operaciones 4.2.1 ExecID El campo ExecID no es un identificador de operaciones. Es un identificador asignado a cada mensaje Execution Report, sin duplicados durante toda la sesión FIX. 4.2.2 TrdMatchID El campo TrdMatchID contiene el número de registro de negociación. Este es el código asignado por el sistema central de negociación a la operación resultado de la negociación o aplicación referenciada en el mensaje. El periodo en que se garantiza la unicidad de este campo viene determinada por cada sistema central de negociación. 4.3 Bloque Parties El bloque Parties (o el bloque NestedParties) es usado en varios mensajes de aplicación para identificar a las partes que intervienen en la transacción. En la definición detallada de los mensajes que contienen este bloque, se incorpora el bloque tal y como se muestra a continuación. La lista de valores posibles está restringida según las características particulares del mensaje. Tag 453 448 447 452 Nombre Start <Parties> NoPartyIDs PartyID Req N N PartyIDSource N PartyRole N Valores válidos Formato NumInGroup String D = Proprietary/ Custom code Char Int Descripción Código de miembro u operador asignado por MEFF Indica la codificación seguida en el campo PartyID. Siempre se usa codificación propia de MEFF Indica el rol que toma la parte referenciada en el campo PartyID End <Parties> 30 de julio de 2012 © MEFF 2012 27 MEFFGate Negociación - Especificaciones de la Interfaz FIX 4. Convenciones generales en los mensajes de aplicación En los mensajes de este manual se usan varios roles. La interpretación del campo PartyID depende del valor PartyRole tal y como se explica a continuación: 1 (Executing Firm). o Envío. No está permitido especificar este valor en el envío de mensajes. o Recepción. Cuando se especifica este valor, el campo PartyID se corresponde con el código de miembro al que pertenece el operador que envió el mensaje original (actuando en su propio nombre o en el de otro). 3 ( Give-out internal reference) Cuando se especifica este valor, el campo PartyID se corresponde con la referencia asignada por el Miembro Origen para uso interno y que se asocia al mnemotécnico de Give-out. Una misma referencia interna puede estar asociada a más de un mnemotécnico. Puede no estar informada. 7 (Entering Firm) o Envío. Cuando se especifica este valor, el campo PartyID se corresponde con el código de miembro que actúa como broker o intermediario en una aplicación. El uso de este valor sólo está permitido en el mensaje Trade Capture Report. Sólo permite especificar el código de miembro propio. o Recepción. Cuando se especifica este valor, el campo PartyID se corresponde con el código de miembro que actúa como broker o intermediario en una aplicación. MEFFGate omite el uso de este campo cuando el valor es el código de miembro del receptor. 11 (Order Origination Trader). o Envío. Por norma general no es necesario el uso de este campo en el envío de mensajes. Cuando se especifica este valor, el campo PartyID se corresponde con el código del operador en nombre del cual se está actuando. Sólo permite especificar el código de operador propio. La excepción es el mensaje Trade Capture Report, usado para la entrada de aplicaciones, donde permite indicar el operador que se asocia a las patas de la aplicación. o Recepción. Cuando se especifica este valor, el campo PartyID se corresponde con el código de operador relacionado con la orden asociada. MEFFGate omite el uso de este campo cuando el valor es el código de operador del receptor. 12 (Executing Trader) o Envío. No está permitido especificar este valor en el envío de mensajes. o Recepción. Cuando se especifica este valor, el campo PartyID se corresponde con el código de operador que envió el mensaje original (actuando en su propio nombre o en el de otro). 13 (Order Origination Firm) o Envío. Por norma general no es necesario el uso de este campo en el envío de mensajes. Cuando se especifica este valor, el campo PartyID se corresponde con el código de miembro negociador en nombre del cual se está actuando. Sólo permite especificar el código de miembro propio. La excepción es el mensaje Trade Capture Report, usado para la entrada de aplicaciones, donde permite indicar el miembro al que pertenece la cuenta. o Recepción. Cuando se especifica este valor, el campo PartyID se corresponde con el código del miembro al que pertenece la operativa de la que se está tratando. 30 de julio de 2012 © MEFF 2012 28 4. Convenciones generales en los mensajes de aplicación MEFFGate Negociación - Especificaciones de la Interfaz FIX 14 (Give-up Clearing Firm) Cuando se especifica este valor, el campo PartyID se corresponde con el Miembro Destino del Give-up. 24 ( Give-up Reference) Cuando se especifica este valor, el campo PartyID se corresponde con la referencia del Give-up. 33 ( Give-up mnemonic) Cuando se especifica este valor, el campo PartyID corresponde al mnemotécnico de Give-out. 36 (Entering Trader). o Envío. Cuando se especifica este valor, el campo PartyID se corresponde con el código de operador que actúa como broker o intermediario en una aplicación. El uso de este valor sólo está permitido en el mensaje Trade Capture Report. Sólo permite especificar el código de operador propio. o Recepción. Cuando se especifica este valor, el campo PartyID se corresponde con el código de miembro que actúa como broker o intermediario en una aplicación. MEFFGate omite el uso de este campo cuando el valor es el código de operador del receptor. A continuación se presente un diagrama de flujos donde se ejemplifica el uso del bloque Parties en una actuación por parte de Supervisión de MEFF sobre una orden del operador 301 del miembro AAAA. En este mismo ejemplo se ha considerado que el operador 305 está configurado como operador privilegiado por lo que también recibe información de la operativa del operador 301 (véase 3.10 para más información sobre el operador privilegiado). Operador privilegiado Operador Pool de MEFF miembro=AAAA operador=305 miembro=AAAA operador=301 miembro=PPPP operador=001 Sistemas MEFF Entrada de nueva orden en nombre del operador 301 del miembro AAAA Execution Report - New (Executing Firm = PPPP ; Executing Trader = 001) Execution Report - New (Executing Firm = PPPP ; Executing Trader = 001; Order Origination Trader = 301) 30 de julio de 2012 © MEFF 2012 29 4. Convenciones generales en los mensajes de aplicación MEFFGate Negociación - Especificaciones de la Interfaz FIX A continuación se presenta un diagrama de flujos con un ejemplo de uso del bloque Parties en la entrada por parte de Supervisión de MEFF de una aplicación. En dicha aplicación el operador 310 del miembro BBBB actúa como intermediario y como una de las partes, mientras que el operador 301 del miembro AAAA actúa como la otra parte. En este mismo ejemplo se ha considerado que el operador 305 del miembro AAAA está configurado como operador privilegiado por lo que también recibe información de la operativa del operador 301 del mismo miembro (véase 3.10 para más información sobre el operador privilegiado). Operador privilegiado miembro=AAAA operador=305 Operador miembro=AAAA operador=301 Intermediario Pool de MEFF miembro=BBBB operador=310 miembro=PPPP operador=001 Sistemas MEFF Entrada de una aplicación en nombre del intermediario BBBB-310 y con partes BBBB-310 y AAAA-301 Execution Report - New (Executing Firm = PPPP ; Executing Trader = 001) Execution Report - New (Executing Firm = PPPP ; Executing Trader = 001; Order Origination Firm = AAAA ; Order Origination Trader = 301) Execution Report - Trade (Executing Firm = PPPP ; Executing Trader = 001) Execution Report - Trade (Executing Firm = PPPP ; Executing Trader = 001; Order Origination Firm = AAAA ; Order Origination Trader = 301) Execution Report - Trade (Executing Firm = PPPP ; Executing Trader = 001; Entering Firm = BBBB ; Entering Trader = 310) Execution Report - Trade (Executing Firm = PPPP ; Executing Trader = 001; Entering Firm = BBBB ; Entering Trader = 310 ; Order Origination Trader = 301) 4.4 Symbol y SecurityID El significado de los campos Symbol y SecurityID de los bloques Instrument, UnderlyingInstrument y InstrumentLeg, varía dependiendo de cómo haya sido configurado el usuario asociado al cliente FIX. Las dos posibles configuraciones son: Tipo de Configuración Significado de Symbol Significado de SecurityID Por contrato Código de contrato MEFF Activo subyacente del contrato (véase Tabla 21 en documento “Tablas de Codificación”) Por activo Activo subyacente del contrato (véase Tabla 21 en documento “Tablas de Código de contrato MEFF Codificación”) 30 de julio de 2012 © MEFF 2012 30 4. Convenciones generales en los mensajes de aplicación MEFFGate Negociación - Especificaciones de la Interfaz FIX Hay que tener presente que todos los apartados y mensajes descritos en este manual se refieren al tipo de configuración “Por contrato”. 4.5 Bloque Instrument En algunas peticiones, el cliente FIX puede especificar criterios de selección de contratos. En estos casos, sólo se devuelve la información relacionada con los contratos que cumplen estos criterios. Los posibles criterios de selección se corresponden con campos del bloque Instrument. En la siguiente tabla se indican cuáles son los campos aceptados por MEFF y el tipo de petición en que pueden intervenir. Petición de información de contratos Petición de información de precios Campo Significado CFICode Codificación de instrumentos financieros según el estándar ISO 10962 X X SecurityID Activo Subyacente del contrato MEFF X X MaturityMonthYear Vencimiento del contrato X X Symbol Código de contrato MEFF - X En los siguientes subapartados se explica detalladamente el uso de estos campos. 4.5.1 CFICode El campo CFICode es el menos selectivo de los criterios. Representa un tipo de contratos, por ejemplo todos los futuros, o todas las opciones. Los valores permitidos para el campo CFICode están basados en el estándar ISO 10962. El carácter “X” actúa como comodín. Ejemplos de aplicación del campo CFICode como criterio de selección se presentan en la siguiente tabla.Téngase en cuenta que los valores deben ser de exactamente 6 caracteres. CFICode Significado XXXXXX Todos los contratos soportados por MEFF FFXXSX Todos los futuros FFSPSX Todos los futuros con entrega física FFSCSX Todos los futuros con liquidación por diferencias OXXXXS Todas las opciones OCXXXS Todas las opciones call OPXXXS Todas las opciones put XMXXXX Todos los contratos time-spread (MultiLeg) 30 de julio de 2012 © MEFF 2012 31 MEFFGate Negociación - Especificaciones de la Interfaz FIX 4. Convenciones generales en los mensajes de aplicación La lista de valores usados por MEFF se halla en la Tabla 16 del documento “Tablas de Codificación”. Para más información sobre el mensaje SecurityList consulte el capítulo 6 Información de Mercado. 4.5.2 Activo subyacente (campo SecurityID) Este código identifica el activo subyacente de un contrato (véase Tabla 21 en documento “Tablas de Codificación”). 4.5.3 Vencimiento (campo MaturityMonthYear) Para los contratos con vencimientos estándar, indica el mes y año de vencimiento de un contrato. En este caso, el formato para este campo es YYYYMM (p.ej. 200812). Para los contratos con vencimientos no estándar, indica la fecha de vencimiento de un contrato. En este caso, el formato para este campo es YYYYMMDD (p.ej. 20081219). Para contratos con vencimiento semanal estándar, el formato posible de este campo es YYYYMMwW (p.ej. 200312w3) 4.5.4 Código de contrato (campo Symbol) o usando la combinación SecurityID + CFICode + MaturityDate + ContractMultiplier + StrikePrice Éste es el más selectivo de los criterios, ya que refiere a un contrato específico. El sistema permite un código de hasta 22 caracteres. Cuando no se desee especificar un contrato concreto y usar el resto de criterios, este campo debe cumplimentarse con el valor “[N/A]”, tal y como se indica en las especificaciones del estándar FIX. Para identificar un contrato no estándar (flexible) que aún no existe en el Sistema, se debe usar la siguiente combinación en la funcionalidad de aplicaciones: SecurityID [48] + CFICode[461] + MaturityDate [541] + ContractMultiplier [231] + StrikePrice [202], con Symbol [55] = [N/A]. En este caso MEFFGate FIX asignará un código siguiendo los criterios establecidos y cumplimentará estos campos en todos los mensajes asociados (Trade Capture Report y Trade Capture Report Ack). Para el resto de situaciones se identifica el contrato de la misma forma que siempre, utilizando el campo Symbol [55]. 4.5.5 Combinación de criterios de selección Cuando se combinan varios criterios de selección, sólo se consideran seleccionados los contratos que cumplen todos los requerimientos. Cuando no se especifica un campo de selección se entiende que no se desea usar este criterio y ningún contrato es descartado por el mismo. 30 de julio de 2012 © MEFF 2012 32 4. Convenciones generales en los mensajes de aplicación MEFFGate Negociación - Especificaciones de la Interfaz FIX En la siguiente tabla se presentan algunos ejemplos de selección para el grupo de contratos financiero de MEFF. CFICode SecurityID MaturityMonthYear Symbol Significado FFXXSX FIE (omitido) [N/A] Todos los futuros sobre el índice IBEX FFSPXX BBVA (omitido) [N/A] Todos los futuros sobre BBVA con entrega física (omitido) FIE 200703 [N/A] Todos los contratos con el índice IBEX como subyacente, con vencimiento marzo de 2007 OCXXXS (omitido) 200606 [N/A] Todas las opciones call con vencimiento junio de 2006 XMXXXX TEF (omitido) [N/A] Todos los contratos time-spread que tienen a Telefónica como subyacente (omitido) (omitido) (omitido) <contrato específico> El contrato especificado (omitido) (omitido) (omitido) [N/A] Todos los contratos 4.6 Formato de Error (Campo Text) El campo Text es usado en varios mensajes para incluir la descripción de un error. En esos casos el formato del campo es: %MFsXXXXXX-Texto descriptivo Donde s indica la severidad del error (I: information, W: warning, E: Error), XXXXXX es el código de error, al cual le sigue un texto explicativo. El texto “%MF” es fijo y significa MEFF FIX. 4.7 Limitación en el máximo número de suscripciones vivas permitidas El máximo número de suscripciones vivas de cada tipo por cada conexión está limitado a 40. Ello afecta, por ejemplo, a los mensajes Security Status Request, Market Data Request, … Si, una vez alcanzado este límite, la aplicación cliente intenta establecer nuevas suscripciones (sin desuscribir de las existentes) será rechazada con un mensaje de error indicando que se han alcanzado el máximo número de suscripciones permitidas. 30 de julio de 2012 © MEFF 2012 33 MEFFGate Negociación - Especificaciones de la Interfaz FIX 5. Mensajes Genéricos del Nivel de Aplicación 5. Mensajes Genéricos del Nivel de Aplicación 5.1 Introducción En este capítulo se presentan algunos mensajes del nivel de aplicación destinados a cubrir tres funcionalidades: el control del estado de la comunicación, el cambio de password de conexión al MEFFGate y el rechazo de mensajes por parte de MEFFGate. 5.2 Estado de la comunicación MEFFGate incluye un mecanismo para informar a la aplicación cliente sobre el estado de la comunicación entre el propio MEFFGate y los sistemas centrales. Esta funcionalidad se implementa mediante los mensajes Network Status de FIX. La solicitud puede ser realizada de forma puntual o usando el método de suscripción. La información suministrada con estos mensajes sólo refiere a la conexión entre los equipos y no debe confundirse con el estado de la sesión de negociación, que es tratado en 0. 5.3 Cambio de password de conexión al MEFFGate Mediante esta funcionalidad se permite que la aplicación cliente puede cambiar su password de conexión al MEFFGate. La nueva password es válida para todas las futuras sesiones de comunicaciones que se establezcan. 5.4 Rechazo de mensajes de aplicación Cuando MEFFGate recibe un mensaje soportado y sintácticamente correcto, en una situación no soportada, y no existe un mensaje específico de rechazo, se usa el mensaje genérico Business Message Reject. En particular es usado para el rechazo del mensaje Network Counterparty System Status Request. 5.5 Lista de mensajes Mensaje Descripción Network Counterparty System Status Request (Msg Type = BC) Solicitud del estado de conexión entre MEFFGate y los sistemas centrales Network Counterparty System Status Response (Msg Type = BD) User Request (Msg Type = BE) Informe del estado de conexión entre MEFFGate y los sistemas centrales Solicitud de cambio de la password de conexión entre la aplicación cliente y MEFFGate Informe del estado de la solicitud de cambio de password User Response (Msg Type = BF) Business Message Reject (MsgType = j) 30 de julio de 2012 Rechazo de mensaje a nivel de aplicación (usado en caso de que no exista un mensaje específico) © MEFF 2012 34 MEFFGate Negociación - Especificaciones de la Interfaz FIX 5. Mensajes Genéricos del Nivel de Aplicación 5.6 Flujo de mensajes Consulta puntual del estado de la conexión MEFFGate Client MEFFGate Server Network CounterParty System Status Request (“BC”) NetworkRequestType [935] = 1 (Snapshot) Network CounterParty System Status Response (“BD”) Suscripción al estado de la conexión MEFFGate Client MEFFGate Server Network CounterParty System Status Request (“BC”) NetworkRequestType [935] = 2 (Subscribe) Network CounterParty System Status Response (“BD”) ... Cambio de password de conexión al MEFFGate MEFFGate Client MEFFGate Server User Request (“BE”) User Response (“BF”) 5.7 Acotaciones y adaptaciones de FIX 4.4 En el mensaje User Request, los campos Password [554] y NewPassword [925] han pasado a ser requeridos. 30 de julio de 2012 © MEFF 2012 35 MEFFGate Negociación - Especificaciones de la Interfaz FIX 5. Mensajes Genéricos del Nivel de Aplicación 5.8 Definición de mensajes 5.8.1 Network Counterparty System Status Request (Msg Type = BC) Mensaje enviado por la aplicación cliente para solicitar información sobre el estado de conexión entre MEFFGate y los sistemas centrales de MEFF. Tag 935 933 Nombre Standard Header NetworkRequestType Req S S NetworkRequestID Standard Trailer S S 30 de julio de 2012 Valores válidos MsgType = BC 1 = Snapshot 2 = Subscribe 4 = Stop subscribing Formato Int String(10) © MEFF 2012 Descripción Identificador del mensaje 36 MEFFGate Negociación - Especificaciones de la Interfaz FIX 5. Mensajes Genéricos del Nivel de Aplicación 5.8.2 Network Counterparty System Status Response (Msg Type = BD) Mensaje enviado por MEFFGate como respuesta a un mensaje Network Counterparty System Status Request Message. Contiene información acerca del estado de la conexión de MEFFGate con los sistemas centrales de MEFF. Tag Req S S 933 Nombre Standard Header NetworkStatusRespons eType NetworkRequestID S String 932 NetworkResponseID S String 936 NoCompIDs S 1 930 RefCompID N MEFF 931 RefSubID N 928 StatusValue N Para más detalle sobre los códigos de grupo de contratos, véase Tabla 17 en documento “Tablas de Codificación” 1 = Connected 2 = Not connected – down expected up 3 = Not connected – down expected down 929 StatusText Standard Trailer N S 937 30 de julio de 2012 Valores válidos MsgType = BD 1 = Full © MEFF 2012 Formato Descripción Int NumInGr oup String String Identificador del mensaje Network Counterparty System Status Request al que se está respondiendo Identificador único del mensaje Contiene el mismo valor que el campo SenderCompID de la cabecera (véase 3.3) Este campo siempre está presente en el mensaje Contiene el mismo valor que el campo SenderSubID de la cabecera (véase 3.3) Este campo siempre está presente en el mensaje Int Estado de la conexión Este campo siempre está presente en el mensaje String Información adicional 37 MEFFGate Negociación - Especificaciones de la Interfaz FIX 5. Mensajes Genéricos del Nivel de Aplicación 5.8.3 User Request (Msg Type = BE) Mensaje enviado por el cliente para modificar su password de conexión al MEFFGate Tag Req S S Valores válidos MsgType = BE 923 Nombre Standard Header UserRequestID 924 UserRequestType S 3 = Change Password For User 553 Username S String 554 Password S* String (10) Identificador de usuario asignado por MEFF. Actualmente está formado por la combinación de código de miembro y de operador Password anterior 925 NewPassword Standard Trailer S* S String (10) Nueva Password 30 de julio de 2012 Formato Descripción String (10) Identificador único para cada mensaje User Request Int © MEFF 2012 38 MEFFGate Negociación - Especificaciones de la Interfaz FIX 5. Mensajes Genéricos del Nivel de Aplicación 5.8.4 User Response (Msg Type = BF) Mensaje usado por MEFFGate para indicar el estado de la petición iniciada con un mensaje User Request. Este mensaje sólo es enviado al operador que realizó la solicitud relacionada. Tag 923 Nombre Standard Header UserRequestID Req S S 553 926 Username UserStatus S N 927 UserStatusText N Standard Trailer S 30 de julio de 2012 Valores válidos MsgType = BF 5 = Password Changed 6 = Other Formato Descripción String Identificador asignado por el cliente en el mensaje User Request Identificador de usuario Estado de la petición del mensaje User Request. En caso de rechazo (valor 6), el campo UserStatusText contiene un texto explicativo Cuando UserStatus = 6, contiene una descripción específica del motivo de rechazo String Int String © MEFF 2012 39 MEFFGate Negociación - Especificaciones de la Interfaz FIX 5. Mensajes Genéricos del Nivel de Aplicación 5.8.5 Business Message Reject (MsgType = j) Mensaje enviado por MEFFGate cuando recibe un mensaje soportado y sintácticamente correcto en una situación no soportada, para la que no existe un mensaje de rechazo específico. En particular es usado para el rechazo del mensaje Network Counterparty System Status Request Tag Req S S Valores válidos MsgType = j 45 Nombre Standard Header RefSeqNum 372 RefMsgType S . 379 BusinessRejectRefID N 380 BusinessRejectReason S 58 Text Standard Trailer N S 30 de julio de 2012 Formato Descripción SeqNum Int MsgSeqNum del mensaje rechazado MsgType del mensaje rechazado Identificador opcional del mensaje rechazado Motivo de rechazo. String Texto explicativo String String 0 = Other 3 = Unsupported Message Type © MEFF 2012 40 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6. Información de Mercado 6.1 Introducción Bajo el concepto de información de mercado se agrupan varias funcionalidades relacionadas con la información pública de mercado. Esta información se clasifica en tres grupos: Estado de la sesión. Estado de la sesión de negociación Información de contratos. Definición y estado de los contratos seleccionados Precios. Precios y peticiones de interés de los contratos seleccionados Cada uno de estos grupos es tratado en un apartado independiente de este capítulo. En el apartado 0 se detalla el formato de los mensajes correspondientes. 30 de julio de 2012 © MEFF 2012 41 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.2 Información de mercado: Estado de la sesión de negociación 6.2.1 Descripción Esta funcionalidad permite al cliente obtener el estado de la sesión de negociación para el mercado asociado a la sesión FIX actual, así como ser notificado de los cambios de estado que se produzcan. El cliente puede solicitar el estado actual, o solicitar el estado actual más los cambios de estado que se produzcan. Téngase en cuenta que no existe un método para solicitar las actualizaciones sin solicitar el estado actual. Esto es fundamental para garantizar la completitud de la información recibida. 6.2.2 Lista de mensajes Mensaje Descripción Trading Session Status Request (Msg Type = g) Enviado por el cliente para solicitar el estado de la sesión de negociación Trading Session Status (Msg Type = h) Enviado por el servidor para devolver información del estado de la sesión o para notificar que la solicitud ha sido rechazada 6.2.3 Flujo de mensajes Solicitud del estado de la sesión (sin actualización) Una solicitud del estado de la sesión, sin actualización, es contestada con un único mensaje Trading Session Status. MEFFGate Client MEFFGate Server Trading Session Status Request (“g”) SubscriptionRequestType [263] = 0 (Snapshot) Trading Session Status (“h”) Unsolicited Indicator [325] = N 30 de julio de 2012 © MEFF 2012 42 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado Solicitud del estado de la sesión (con actualización) Una solicitud del estado de la sesión, con actualización, es contestada con un mensaje Trading Session Status con la situación actual del mercado y un nuevo mensaje cada vez que se produce un cambio de estado. Téngase en cuenta que una petición de finalización de la suscripción sólo es contestada por MEFFGate cuando es rechazada. Trading Session Status Request (“g”) SubscriptionRequestType [263] = 1 (Subscribe) Trading Session Status (“h”) Unsolicited Indicator [325] = N Trading Session Status (“h”) Unsolicited Indicator [325] = Y ... Trading Session Status Request (“g”) SubscriptionRequestType [263] = 2 (Unsubscribe) Solicitud del estado de la sesión fallida Una solicitud del estado de la sesión fallida es contestada con un mensaje Trading Session Status con el campo TradeSesStatus = 6. MEFFGate Client MEFFGate Server Trading Session Status Request (“g”) Trading Session Status (“h”) TradeSesStatus [340] = 6 (Request Rejected) 6.2.4 Acotaciones y adaptaciones de FIX 4.4 No se han realizado acotaciones ni adaptaciones en los mensajes incluidos en este apartado. 30 de julio de 2012 © MEFF 2012 43 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.3 Información de mercado: Contratos 6.3.1 Descripción Esta funcionalidad permite obtener la información de los contratos del mercado. Los datos se agrupan en dos conjuntos: Definición de contratos. Información estática de definición de los contratos Estado de contratos. Información dinámica que refleja el estado de los contratos 6.3.2 Solicitud de información de contratos La solicitud de definición de los contratos se realiza con los mensajes Security List Request y Security Status Request, tal y como se detalla en la siguiente tabla: Contratos Snapshot Security List Request SubscriptionRequestType = 0 Contratos Actualización X Status contratos Snapshot Status Contratos Actualización X Security List Request SubscriptionRequestType = 0 NewSecuritySubscription = 1 Security List Request SubscriptionRequestType = 1 X X X X X X X X Security List Request SubscriptionRequestType = 1 NewSecuritySubscription = 1 X X Security Status Request X SubscriptionRequestType = 0 Security Status Request X SubscriptionRequestType = 1 X A continuación se detalla el significado de cada una de las columnas: Contratos - Snapshot. Se obtienen uno o más mensajes Security List con la descripción de los contratos disponibles, que cumplan los criterios de selección indicados en la solicitud Contratos - Actualización. Se obtiene un mensaje Security List con la información de un nuevo contrato, cuando éste es dado de alta en el sistema. Sólo se recibe la información de nuevos contratos que cumplan con los criterios de selección indicados en la solicitud 30 de julio de 2012 © MEFF 2012 44 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado Status Contratos - Snapshot. Se obtiene un mensaje Security Status con la información del estado de cada contrato que cumpla los criterios de selección indicados en la solicitud Status Contratos – Actualización. Se obtiene un mensaje Security Status cada vez que se produce un cambio de estado en un conjunto de contratos que cumple los criterios de selección indicados en la solicitud. Además, se recibe un mensaje Security Status cuando un nuevo contrato es dado de alta y cumple con los criterios de selección indicados en la solicitud Nótese que el campo NewSecuritySubscription ha sido añadido por MEFF al mensaje Security List Request para permitir la suscripción a la definición de contratos creados durante la sesión, típicamente nuevos strikes de opciones y contratos multileg. Para que la aplicación cliente pueda disponer de la máxima información MEFF recomienda el uso del mensaje Security List Request con NewSecuritySubscription = 1 y SubscriptionRequestType = 1. De esta forma se obtiene información sobre todos los cambios que se produzcan, incluyendo la alta de contratos. 6.3.3 Recepción de la definición de contratos La información de definición de contratos se recibe mediante el mensaje Security List. Este mensaje informa de un contrato por mensaje. El campo TotNoRelatedSym informa del total de contratos que cumplen los criterios de selección y el campo NoRelatedSym informa del número de contratos contenidos en el mensaje en cuestión. Cuando se solicita el estado actual más actualizaciones, primero se envían todos los mensajes asociados al estado actual y una vez finalizado se empieza a enviar las actualizaciones. De esta forma se asegura que no se producen confusiones con el seguimiento de la lista. Téngase en cuenta que los mensajes de actualización sólo contienen un contrato por mensaje. 6.3.4 Recepción del estado de contratos La información del estado de contratos se recibe mediante el mensaje Security Status. Cada mensaje Security Status puede contener información de una familia de contratos o de uno sólo. La respuesta a un mensaje Security Status Request a su vez puede estar formada por varios mensajes Security Status. En este caso, no existe ningún mecanismo para saber cuándo se ha recibido toda la información. Si es necesario, el cliente FIX debe solicitar primero la lista de contratos mediante un mensaje Security List Request, para determinar el número de contratos que cumplen un cierto criterio. Cuando se ha solicitado la actualización de esta información, en el momento en que se produce un cambio en el estado de un contrato se recibe un nuevo mensaje Security Status con la nueva información. Cuando en el mercado se da de alta un nuevo contrato que cumple los criterios de selección especificados en la solicitud, y la solicitud es de actualización, se recibe un mensaje Security Status con el estado del contrato, independientemente de si se estaba suscrito a la definición de dicho contrato. En este caso, las aplicaciones cliente deben estar preparadas para recibir información de estado de contratos de los cuales no han recibido la definición. No se recomienda la suscripción a actualización de estado de contratos sin suscribirse también a actualización de contratos, ya que es frecuente la creación de nuevos contratos durante la sesión. 6.3.5 Finalización de las suscripciones Para finalizar una suscripción a la definición de contratos, se usa el mensaje Security List Request con el campo NewSecuritySubscription = 2. Cuando una suscripción al estado de los contratos ha sido realizada mediante el mensaje Security List Request, puede ser finalizada con el mismo tipo de mensaje con el campo SubscriptionRequestType = 2. 30 de julio de 2012 © MEFF 2012 45 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado Cuando un mensaje Security List Request contiene al menos una solicitud de finalización de suscripción (NewSecuritySubscription = 2 o SubscriptionRequestType = 2), el sistema considera que se trata de un mensaje exclusivamente de finalización de suscripción, y por tanto no son tenidos en cuenta otros valores especificados en estos dos campos. 6.3.6 Lista de mensajes Mensaje Descripción Security List Request (Msg Type = x) Enviado por el cliente para solicitar la definición de contratos. También permite solicitar la información del estado de los mismos Security List (Msg Type = y) Enviado por el servidor para informar de la definición de contratos. También es usado para informar el rechazo de la solicitud de dicha información Enviado por el cliente para solicitar el estado de contratos Security Status Request (MsgType = e) Enviado por el servidor para informar del estado de contratos. También es usado para informar del rechazo de la solicitud de dicha información, o que no existe ningún contrato que cumpla los criterios de selección Security Status (MsgType = f) 6.3.7 Flujo de mensajes Solicitud de definición de contratos sin actualización Después de la solicitud de definición de contratos se recibe uno o más mensajes Security List. Cada uno de estos mensajes indica el total de contratos que cumplen los criterios de selección en el campo TotNoRelatedSym y el número de contratos contenidos en el mensaje en cuestión en el campo NoRelatedSym. MEFFGate Client MEFFGate Server Security List Request (“x”) SubscriptionRequestType [263] = 0 (Snapshot) Security List (“y”) ... 30 de julio de 2012 Unsolicited Indicator [325] = N TotalNoRelatedSym [393] = 350 NoRelatedSym [146] = 1 © MEFF 2012 46 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado Solicitud de definición de contratos con actualización Cuando la solicitud de definición de contratos incluye la actualización de los mismos (NewSecuritySubscription = 1) además de los mensajes explicados en el caso anterior, cuando un nuevo contrato es dado de alta en el sistema se recibe un mensaje Security List conteniendo la información de este contrato. MEFFGate Client MEFFGate Server Security List Request (“x”) SubscriptionRequestType [263] = 1 (Snapshot + Update) Security List (“y”) ... Unsolicited Indicator [325] = N TotalNoRelatedSym [393] = 350 NoRelatedSym [146] = 1 For every new contract Security List (“y”) Unsolicited Indicator [325] = Y TotalNoRelatedSym [393] = 1 NoRelatedSym [146] = 1 Symbol [55] =New Symbol 30 de julio de 2012 © MEFF 2012 47 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado Solicitud de definición de contratos con actualización y estado de los contratos con actualización Si la solicitud incluye la petición de estado de los contratos se recibe un mensaje Security Status con dicha información por cada familia de contratos que cumple los criterios de selección. Si además la solicitud incluye la actualización (SubscriptionRequestType = 1), se recibe un nuevo mensaje cada vez que se produce un cambio de estado. MEFFGate Client MEFFGate Server Security List Request (“x”) SubscriptionRequestType [263] = 1 (Snapshot + Update) NewSecuritySubscription [5682] = 1 (Updates) Security List (“y”) Unsolicited Indicator [325] = N TotalNoRelatedSym [393] = 350 NoRelatedSym [146] = 1 ... Security Status (“f”) Unsolicited Indicator [325] = N ... Security List (“y”) For every new contract Unsolicited Indicator [325] = Y TotalNoRelatedSym [393] = 1 NoRelatedSym [146] = 1 Symbol [55] =New Symbol For every group of contracts Security Status (“f”) Unsolicited Indicator [325] = Y Security List Request (“x”) SubscriptionRequestType [263] = 2 (Unsubscribe) Solicitud de estado de contratos sin actualización Una solicitud de estado de contratos es contestada con un mensaje Security Status para cada conjunto de contratos que cumple los criterios de selección. MEFFGate Client MEFFGate Server Security Status Request (“e”) SubscriptionRequestType [263] = 0 (Snapshot) Security Status (“f”) Unsolicited Indicator [325] = N ... One message for every set of contracts requested 30 de julio de 2012 © MEFF 2012 48 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado Solicitud de estado de contratos con actualización Una solicitud de estado de contratos con actualización, es contestada inicialmente con un mensaje Security Status para cada familia de los contratos existentes que cumple los criterios de selección. A partir de este punto, cuando se produce un cambio de estado en alguno de los conjuntos de contratos, se recibe un nuevo mensaje Security Status con la información correspondiente. Estos últimos mensajes contienen el valor “Y” en el campo UnsolicitedIndicator. Además, cuando en el sistema se da de alta un nuevo contrato que cumple los criterios de selección, el servidor envía el correspondiente mensaje Security Status, también con el campo UnsolicitedIndicator = “Y”. MEFFGate Client MEFFGate Server Security Status Request (“e”) SubscriptionRequestType [263] = 1 (Snapshot + Updates) Security Status (“f”) Unsolicited Indicator [325] = N ... Security Status (“f”) Unsolicited Indicator [325] = Y ... One message for every status change Security Status Request (“e”) SubscriptionRequestType [263] = 2 (Unsubscribe) Solicitud de definición de contratos, sin contratos que cumplan los criterios de selección Cuando no existen contratos que cumplan los criterios de selección indicados en una solicitud de definición de contratos, MEFFGate contesta con un mensaje Security List con el campo SecurityRequestResult = 2. Téngase en cuenta que en este caso, si la solicitud se realizó con suscripción, dicha suscripción queda activa y por tanto si se dan de alta contratos que cumplan los criterios de selección se recibirán los correspondientes mensajes. MEFFGate Client MEFFGate Server Security List Request (“x”) Security List (“y”) SecurityRequestResult [560] = 2 (No instruments found that match selection criteria) 30 de julio de 2012 © MEFF 2012 49 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado Solicitud de estado de contratos, sin contratos que cumplan los criterios de selección Cuando no existen contratos que cumplan los criterios de selección indicados en una solicitud de estado de contratos, MEFFGate responde con un mensaje SecurityStatus con el campo SecurityTradingStatus = 19. Téngase en cuenta que en este caso, si la solicitud se realizó con suscripción, dicha suscripción queda activa y por tanto si se dan de alta contratos que cumplan los criterios de selección se recibirán los correspondientes mensajes. MEFFGate Client MEFFGate Server Security Status Request (“e”) Security Status (“f”) SecurityTradingStatus [326] = 19 (Not Traded on this market) Solicitud de definición de contratos fallida Cuando una solicitud de definición de contratos es errónea, es contestada con un mensaje Security List con el campo SecurityRequestResult = 1. MEFFGate Client MEFFGate Server Security List Request (“x”) Security List (“y”) SecurityRequestResult [560] = 1 (Invalid or unsupported request) Solicitud de estado de contratos fallida Cuando una solicitud de estado de contratos es errónea, es contestada con un mensaje Security Status con el campo SecurityTradingStatus = 20. MEFFGate Client MEFFGate Server Security Status Request (“e”) Security Status (“f”) SecurityTradingStatus [326] = 20 (Unknown or Invalid) 30 de julio de 2012 © MEFF 2012 50 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.3.8 Acotaciones y adaptaciones de FIX 4.4 Se ha añadido el campo de usuario NewSecuritySubscription (5682) al mensaje Security List Request, para soportar la funcionalidad de recibir la definición de contrato cuando un nuevo contrato es dado de alta en el sistema Se ha añadido el campo UnsolicitedIndicator al mensaje Security List El máximo número de suscripciones vivas permitidas está limitada (ver capítulo 4.7 para más información) En el campo EventType [865] del mensaje Security List se han utilizado códigos de evento superiores a 100 que deberán interpretarse correctamente por las aplicaciones cliente 30 de julio de 2012 © MEFF 2012 51 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.4 Información de mercado: Precios 6.4.1 Descripción Esta funcionalidad permite solicitar la información relacionada con los precios de un conjunto de contratos. 6.4.2 Solicitud de información La solicitud de información relacionada con precios se realiza mediante el mensaje Market Data Request. Se puede seleccionar un conjunto de contratos mediante la combinación de campos del bloque Instrument tal y como se explica en 4.5. Como se puede ver en la descripción detallada del mensaje se puede incluir varios bloques Instrument para hacer más de una selección simultánea. Un contrato se considera seleccionado si cumple alguno de los criterios de selección. A continuación se relacionan los tipos de información que MEFF ofrece. Un cliente puede solicitar una combinación de estos tipos en una misma solicitud. Bid Offer Precio de la última operación Precio de apertura (incluye los precios de subasta) Precio de cierre Precio alto de la sesión Precio bajo de la sesión Precio VWAP de la sesión Volumen negociado Posición abierta al final de la sesión anterior Precio de cierre de la sesión anterior Cuando una solicitud incluye Bid o Offer, es posible especificar la profundidad en tres modos: máxima, mejores precios o una profundidad exacta. La solicitud puede ser, sólo de la situación actual (snapshot), o incluir las actualizaciones (snapshot + update). Téngase presente que no es posible solicitar sólo las actualizaciones, sin el snapshot. Esto es fundamental para garantizar la completitud de la información recibida. Además de la información aquí relacionada, la solicitud de Bid o Offer implica la recepción de las peticiones de interés sobre los contratos seleccionados (Consúltese el capítulo 7 para una explicación detallada al respecto). 6.4.3 Recepción de información MEFFGate devuelve la información solicitada mediante mensajes Market Data Snapshot Full Refresh. Siguiendo el estándar FIX, en los mensajes de respuesta de una misma solicitud no se mezclará la información Bid y Offer con el resto de información. En una solicitud de snapshot, en el caso de no producirse esta mezcla de información se recibe un único mensaje por cada contrato seleccionado. En caso que la solicitud combine Bid o Offer y otro tipo de información, la respuesta consiste en dos mensajes Market Data Snapshot Full Refresh. 30 de julio de 2012 © MEFF 2012 52 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado Si se ha solicitado la actualización de la información, cada vez que se produce un cambio se recibe un nuevo mensaje Market Data Snapshot Full Refresh. Este mensaje contiene tanto la información que ha variado como el resto de campos solicitados en la suscripción. En este caso se mantiene la restricción de no mezclar información Bid o Offer con otros campos. Téngase en cuenta que cuando no existen precios de Bid o Offer para un contrato, se notifica con un valor cero en el campo MDEntrySize. 6.4.4 Lista de mensajes Mensaje Descripción Market Data Request (Msg Type = V) Enviado por el cliente para solicitar información de precios Market Data Snapshot Full Refresh (Msg Type = W) Enviado por el servidor para devolver información de precios Market Data Request Reject (Msg Type = Y) Enviado por el servidor para notificar que una solicitud Market Data Request ha sido rechazada 6.4.5 Flujo de mensajes Solicitud de información de precios sin actualización Una solicitud de información de precios, sin actualización, es contestada por MEFFGate con un mensaje para cada uno de los contratos. Téngase presente que si se solicita información de Bid y Offer combinada con otra información, entonces MEFFGate devuelve dos mensajes para cada contrato, separando estos dos conjuntos de información. MEFFGate Client MEFFGate Server Market Data Request (“V”) SubscriptionRequestType [263] = 0 (Snapshot) Market Data - Snapshot / Full refresh (“W”) (One or two messages for every contract requested) 30 de julio de 2012 © MEFF 2012 53 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado Solicitud de información de precios con actualización Una solicitud de información de precios, con actualización, inicialmente recibe un conjunto de mensajes para los contratos seleccionados en el momento de la solicitud. A partir de este punto se reciben mensajes notificando los cambios que se producen en el mercado. MEFFGate Client MEFFGate Server Market Data Request (“V”) SubscriptionRequestType [263] = 1 (Snapshot + Updates) Market Data - Snapshot / Full refresh (“W”) Snapshot (One or two messages for every contract requested) Market Data - Snapshot / Full refresh (“W”) Updates ... Market Data Request (“V”) SubscriptionRequestType [263] = 2 (Unsubscribe) Téngase en cuenta que una petición de finalización de la suscripción, sólo es contestada en caso de error. Solicitud de información de precios errónea Cuando una solicitud de información de precios es errónea es contestada con un mensaje Market Data Request Reject. MEFFGate Client MEFFGate Server Market Data Request (“V”) Market Data Request Reject (“Y”) 30 de julio de 2012 © MEFF 2012 54 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.4.6 Acotaciones y adaptaciones de FIX 4.4 No está soportado el refresco incremental En el mensaje Market Data Request Reject, se ha ampliado el significado del valor 0 (invalid symbol) del campo MDReqRejReason para indicar un criterio de selección inválido El máximo número de suscripciones vivas permitidas está limitada (ver capítulo 4.7 para más información) 30 de julio de 2012 © MEFF 2012 55 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.5 Definición de mensajes 6.5.1 Trading Session Status Request (Msg Type = g) Usado por el cliente para solicitar el estado de la sesión de negociación. Tag Req S S Valores válidos MsgType = g 335 Nombre Standard Header TradSesReqID 263 SubscriptionRequestType S 0 = Snapshot 1 = Snapshot + Updates 2 = Unsubscribe Standard Trailer S 30 de julio de 2012 © MEFF 2012 Formato Descripción String (10) Identificador único para cada mensaje Trading Session Status Request. Si SubscriptionRequestType = 2 debe contener el identificador de la solicitud original Char 56 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.5.2 Trading Session Status (Msg Type = h) Enviado por el servidor para informar del estado de la sesión de negociación o para rechazar un mensaje Trading Session Status Request. Tag 335 Nombre Standard Header TradSesReqID Req S N 336 TradingSessionID S 338 325 TradSesMethod UnsolicitedIndicator N N 340 TradSesStatus S Valores válidos MsgType = h Formato Descripción String Identificador del mensaje Trading Session Status Request de referencia. Este campo siempre está presente en el mensaje Texto descriptivo del grupo de contrato String 1 = Electronic N = El mensaje es parte de un snapshot Y = El mensaje es enviado como resultado de una suscripción 1 = Halted 2 = Open 3 = Closed 4 = Pre-Open (Not started) 6 = Request Rejected Int Boolean Int Contiene “Y” cuando el mensaje es enviado como resultado de una suscripción Estado de la sesión. Contiene el valor 6 (Request Rejected) cuando el mensaje es usado para rechazar una solicitud. El valor 4 (Pre-Open) indica que el grupo de contrato aún no está abierto para negociación. No debe confundirse este valor con el periodo de subasta, que en MEFF es especificado por contrato. (ver campo 326, SecurityTradingStatus, del mensaje Security Status). 58 Text N Standard Trailer S 30 de julio de 2012 String © MEFF 2012 El valor 3 (Closed) se da a final de sesión, pero en condiciones excepcionales se podría volver al estado 2 (Open). Explicación del error. Presente si TradSesStatus = 6 57 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.5.3 Security List Request (Msg Type = x) Usado por el cliente para solicitar la definición de los contratos y opcionalmente para solicitar el estado de los mismos. Tag Req S S Valores válidos MsgType = x 320 Nombre Standard Header SecurityReqID 559 SecurityListRequestType S 0 = Symbol 1 = Security type and/or CFICode Int 55 Start <Instrument> Symbol S [N/A] o código de contrato String(22) 48 SecurityID N String 22 SecurityIDSource N Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol 461 CFICode N String(6) 200 MaturityMonthYear N Longitud exacta. Consúltese 4.5.1 para una lista de valores posibles YYYYMM o YYYYMMDD o YYYYMMwW MonthYear Vencimiento del contrato No permitido si SecurityListRequestType = 0 263 End <Instrument> SubscriptionRequestType N Char Indica el tipo de solicitud respecto al estado de los contratos NewSecuritySubscription N 0 = Snapshot (valor por defecto) 1 = Snapshot + Updates 2 = Unsubscribe 0 = Snapshot (valor por defecto) 1 = Updates (Suscribir) 2 = Unsubscribe Char Indica el tipo de solicitud respecto a la definición de los contratos Standard Trailer S 5682 * 30 de julio de 2012 © MEFF 2012 Formato Descripción String (10) Identificador único para cada mensaje Security List Request Si SubscriptionRequestType = 2 o NewSecuritySubscription = 2, debe contener el valor de la solicitud original Criterio de selección usado String Código de contrato si SecurityListRequestType = 0 ó [N/A] si SecurityListRequestType = 1 Activo subyacente del contrato No permitido si SecurityListRequestType = 0 Requerido si SecurityID está presente. No permitido si SecurityListRequestType = 0 Tipo de contrato No permitido si SecurityListRequestType = 0 58 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.5.4 Security List (Msg Type = y) Mensaje enviado por el servidor para informar de la definición de uno o más contratos. Tag 320 Nombre Standard Header SecurityReqID Req S S 322 SecurityResponseID S 560 SecurityRequestResult S 325* UnsolicitedIndicator N 393 TotNoRelatedSym 893 Valores válidos MsgType = y Formato Descripción String Identificador del mensaje Security List Request al que se está respondiendo Identificador único para cada mensaje Security List Resultado de la solicitud identificada por SecurityReqID. En caso de rechazo (>0) el campo 58 Text contiene un texto explicativo String 0 = Valid request 1 = Invalid or unsupported request 2 = No instruments found that match selection criteria 4 = Instrument data temporarily unavailable 5 = Request was rejected because the CFICode specified is not supported N = El mensaje es parte de un snapshot Y = El mensaje es enviado como resultado de una suscripción (nuevo contrato) Int Boolean Contiene “Y” cuando el mensaje es enviado como resultado de una suscripción N Int LastFragment N Boolean 146 NoRelatedSym N Número total de contratos que cumplen los criterios de selección de la solicitud. El número de contratos que contiene el mensaje se indica en el campo NoRelatedSym. Este campo siempre está presente cuando SecurityRequestResult = 0 Indica cuando el mensaje es el último en una secuencia de respuesta a una única solicitud. Este campo siempre está presente cuando SecurityRequestResult = 0 Indica el número de elementos contenidos en este mensaje. 55 Start <Instrument> Symbol S 48 SecurityID N 30 de julio de 2012 1 NumInGro up String(22) Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento © MEFF 2012 String Código de contrato. Presente si se ha especificado NoRelatedSym y SecurityRequestResult [560] = 0 Activo subyacente del contrato 59 MEFFGate Negociación - Especificaciones de la Interfaz FIX 22 SecurityIDSource N 454 455 456 461 NoSecurityAltID SecurityAltID SecurityAltIDSource CFICode N N N N 200 MaturityMonthYear N 541 MaturityDate N 225 IssueDate 202 “Tablas de Codificación” 8 = Exchange Symbol 6. Información de Mercado String String String String(6) Código de contrato ISIN MonthYear Vencimiento del contrato Fecha de vencimiento N LocalMktD ate UTCDate StrikePrice N Price 968 StrikeValue N Float 231 ContractMultiplier N Float 107 SecurityDesc N String 969 MinPriceIncrement N Float 864 NoEvents N 865 EventType N NumInGro up Int 866 N 711 EventDate End <Instrument> NoUnderlyings 311 Start <UnderlyingInstrument> UnderlyingSymbol 4 = ISIN number Longitud exacta. Consúltese la Tabla 16 en documento “Tablas de Codificación” para una lista de los valores posibles YYYYMM o YYYYMMDD o YYYYMMwW 101 = Último día de negociación Tipo de contrato según el estándar ISO 10962 Fecha de emisión del contrato Precio de ejercicio. Sólo presente en opciones Para derivados sobre acciones, número de acciones equivalentes por cada contrato Indica el factor multiplicativo para convertir unidades de precio a unidades monetarias Descripción del subgrupo de contrato. Consúltese la Tabla 20 en documento “Tablas de Codificación” para una lista de los subgrupos Cantidad mínima permitida en el cambio de precio. Este campo siempre está presente en el mensaje UTCDate Último día de negociación NumInGro up Presente si el contrato tiene como subyacente a otro contrato S String(22) Símbolo del contrato que actúa como subyacente 15 End <UnderlyingInstrument> Currency N Currency 555 NoLegs N NumInGro up Código de divisa. Expresada según estándar ISO 4217 Número de contratos que conforman el contrato. Sólo presente en contratos timespread Start <InstrumentLeg> 30 de julio de 2012 N 1 © MEFF 2012 60 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 600 LegSymbol N 623 LegRatioQty N Siempre entero Float 624 LegSide N 1 = Buy 2 = Sell Char 561 End <InstrumentLeg> RoundLot N Qty 562 58 MinTradeVol Text N N Qty String 232 Start <Stipulations> NoStipulations N 3 233 StipulationType N 234 StipulationValue N O = Admisión de órdenes H = Admisión aplicación durante mercado A = Admisión aplicación fuera del horario de mercado N, Y End <Stipulations> Standard Trailer S 30 de julio de 2012 String(22) © MEFF 2012 Código de contrato. Presente si se ha especificado NoLegs Número de contratos LegSymbol incluidos en un contrato Symbol Indica si el contrato LegSymbol interviene como compra o venta. Presente si se ha especificado NoLegs Tamaño de lote. Las órdenes sobre este valor deben ser múltiplos de esta cantidad Mínimo tamaño de la orden Si SecurityRequestResult [560] > 0 contiene una explicación del error NumInGro up String String Indica si el contrato admite órdenes o aplicaciones 61 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.5.5 Security Status Request (MsgType = e) Usado por el cliente para solicitar el estado de los contratos. Tag Req S S Valores válidos MsgType = e 324 Nombre Standard Header SecurityStatusReqID 55 Start <Instrument> Symbol S 48 SecurityID N 22 SecurityIDSource N 461 CFICode N 200 MaturityMonthYear N 263 End <Instrument> SubscriptionRequestType S Standard Trailer S 30 de julio de 2012 Formato Descripción String (10) Identificador único para cada mensaje Security Status Request Si SubscriptionRequestType = 2 debe contener el valor de la solicitud original [N/A] o código de conrato Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol Longitud exacta. Consúltese 4.5.1 para una lista de valores posibles YYYYMM o YYYYMMDD o YYYYMMwW String(22) Código de contrato String Activo subyacente del contrato String String(6) Requerido si SecurityID está presente Tipo de contrato Month-Year Vencimiento del contrato 0 = Snapshot 1 = Snapshot + Updates 2 = Unsubscribe Char © MEFF 2012 62 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.5.6 Security Status (MsgType = f) Mensaje enviado por el servidor para informar del estado uno o más contratos. Tag Req S N Valores válidos MsgType = f 324 Nombre Standard Header SecurityStatusReqID 55 Start <Instrument> Symbol S 48 SecurityID N 22 SecurityIDSource N 461 CFICode N 200 MaturityMonthYear N Formato Descripción String Identificador del mensaje Security Status Request al que se está respondiendo. Este campo siempre está presente en el mensaje Código de contrato String(22) Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol Longitud exacta. Consúltese la Tabla 16 en documento “Tablas de Codificación” para una lista de los valores posibles YYYYMM o YYYYMMDD o YYYYMMwW String Código de contrato. El valor es [N/A] cuando el mensaje corresponde a un conjunto de contratos. Activo subyacente del contrato. Si no se especifica significa para todos los activos subyacentes String String(6) Si no se especifica significa para todos los tipos de contrato MonthYear End <Instrument> UnsolicitedIndicator N N = El mensaje es parte de un snapshot Y = El mensaje es enviado como resultado de una suscripción Boolean 326 SecurityTradingStatus N Int 327 HaltReason N 17 = Ready to trade 18 = Not available for trading 19 = Not Traded on this Market 20 = Unknown or Invalid 21 = Pre-Open P = Suspendido por regulador M = Interrumpido por supervisión 332 HighPx N Price 333 LowPx N Price © MEFF 2012 Vencimiento del contrato. Si no se especifica significa para todos los vencimientos 325 30 de julio de 2012 Informado si SecurityID está presente Tipo de contrato según el estándar ISO 10962. Char Contiene “Y” cuando el mensaje es enviado como resultado de una suscripción, y “N” en caso contrario. Contiene “N” si SecurityTradingStatus es 19 ó 20. Este campo siempre está presente en el mensaje Informa del estado del contrato. El valor “21” indica que el contrato se halla en subasta. No debe confundirse este valor con el estado “Pre-Open” del grupo de contratos, que indica que ningún contrato es negociable. (Véase el campo 340, TradSesStatus, del mensaje Trading Session Status) Motivo de la suspensión Precio máximo aceptado para un contrato. Este valor puede variar durante una sesión de negociación Precio mínimo aceptado para un contrato. Este valor puede variar 63 MEFFGate Negociación - Especificaciones de la Interfaz FIX 58 Text N Standard Trailer S 30 de julio de 2012 6. Información de Mercado String © MEFF 2012 durante una sesión de negociación Contiene una explicación del error. Presente si SecurityTradingStatus = 19 ó 20 64 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.5.7 Market Data Request (Msg Type = V) Usado por el cliente para solicitar información de precios. Tag Req S S Valores válidos MsgType = V 262 Nombre Standard Header MDReqID 263 SubscriptionRequestType S 264 MarketDepth S 265 MDUpdateType N 0 Snapshot 1 = Snapshot + Updates 2 = Unsubscribe 0 = Full Book 1 = Top of Book n = exact depth (n>1) 0 = Full refresh 267 NoMDEntryTypes S MDEntryType S NoRelatedSym Descripción String (10) Identificador único para cada mensaje Market Data Request. Si SubscriptionRequestType = 2 debe contener el identificador de la solicitud original Char Int Int NumInGro up Profundidad de precios. Ignorado si ninguna de las ocurrencias de MDEntryType es Bid o Offer Requerido si SubscriptionRequestType = 1 Número de campos MDEntryType que contiene el mensaje Tipo de información de mercado solicitada Char S 0 = Bid 1 = Offer 2 = Trade 4 = Opening Price 6 = Settlement Price 7 = Trading Session High Price 8 = Trading SessionLow Price 9 = Trading session VWAP price B = Trade Volume (total volume for contract in session) C = Open Interest M = Prior Settle Price 1 NumInGro up Número de criterios de selección Start <Instrument> Symbol S Código de contrato String(22) Código de contrato SecurityID N String Activo subyacente del contrato SecurityIDSource N String CFICode N Requerido si se ha especificado SecurityID Tipo de contrato MaturityMonthYear N Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol Longitud exacta. Consúltese 4.5.1 para una lista de valores posibles YYYYMM o YYYYMMDD o YYYYMMwW 269 146 Formato 55 48 22 461 200 String(6) MonthYear Vencimiento del contrato End <Instrument> 30 de julio de 2012 © MEFF 2012 65 MEFFGate Negociación - Especificaciones de la Interfaz FIX Standard Trailer 30 de julio de 2012 6. Información de Mercado S © MEFF 2012 66 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.5.8 Market Data Request Reject (Msg Type = Y) Usado por MEFFGate para rechazar una solicitud Market Data Request. Tag Req S S Valores válidos MsgType = Y 262 Nombre Standard Header MDReqID 281 MDReqRejReason N 0 = Invalid selection criteria 1 = Duplicate MDReqID 4 = Unsupported SubscriptionRequestType 5 = Unsupported MarketDepth 6 = Unsupported MDUpdateType 8 = Unsupported MDEntryType 58 Text N Standard Trailer S 30 de julio de 2012 Formato Descripción String Identificador de la solicitud que se está rechazando Motivo de rechazo. Este campo siempre está presente en el mensaje Char String © MEFF 2012 Texto explicativo del motivo de rechazo 67 MEFFGate Negociación - Especificaciones de la Interfaz FIX 6. Información de Mercado 6.5.9 Market Data Snapshot Full Refresh (Msg Type = W) Usado por MEFFGate para comunicar la información de precios solicitada con un mensaje Market Data Request. Tag Req S S Valores válidos MsgType = W 262 Nombre Standard Header MDReqID Formato Descripción String Identificador del mensaje Market Data Request al que se está contestando 55 Start <Instrument> Symbol S Código de contrato String(22) Código de contrato 268 269 End <Instrument> NoMDEntries MDEntryType S S NumInGroup Char Número de entradas que siguen Tipo de información que contiene la presente entrada. Si están presentes los valores 0 o 1, el mensaje no contiene ninguno de los otros 270 MDEntryPx N Price MDEntrySize N Qty 273 MDEntryTime N UTCTimeOnly 274 TickDirection N Precio. Presente cuando MDEntryType está en (0,1,2,4,6, 7,8,9,M). En el caso que no esté presente cuando MDEntryType=6 ó M debe entenderse que el precio es 0. Volumen. Presente cuando MDEntryType está en (0,1,2,B,C) Para el valor “C” es el Open Interest al inicio de la sesión. Hora de la actualización. Sólo está presente si MDEntryType es 0,1 ó 2. En el caso de Bid (0) o Offer (1) sólo está presente para uno de los valores (MDEntryPositionNo = 1) y refiere a la actualización de Bid y Offer en general. Presente cuando MDEntryType = 2 271 290 MDEntryPositionNo N 30 de julio de 2012 0 = Bid 1 = Offer 2 = Trade 4 = Opening Price 6 = Settlement Price 7 = Trading Session High Price 8 = Trading Session Low Price 9 = Trading session VWAP price B = Trade Volume (total volume for contract in session) C = Open Interest M = Prior Settle Price 0 = Plus Tick 1 = Zero-Plus Tick 2 = Minus Tick 3 = Zero-Minus Tick Char Int © MEFF 2012 Número de orden de un precio 68 MEFFGate Negociación - Especificaciones de la Interfaz FIX 811 PriceDelta N Standard Trailer S 30 de julio de 2012 6. Información de Mercado float © MEFF 2012 dentro de los del mismo tipo (bid o offer). Numerado del más al menos competitivo, empezando por 1. Presente si MDEntryType es 0 ó 1 Puede estar presente si MDEntryType = 6 o M 69 MEFFGate Negociación - Especificaciones de la Interfaz FIX 7. Request for Quote - Petición de Interés 7. Request for Quote - Petición de Interés 7.1 Introducción La funcionalidad de petición de interés (Request for Quote) permite a los clientes de MEFFGate entrar y recibir información sobre las peticiones de interés entradas previamente desde el propio miembro o a través de Servicios de Mercado a petición de algún miembro. 7.2 Descripción Cuando un operador desea mostrar interés en que se coticen precios de un contrato, utilizará el mensaje Quote Request. Sólo se permite una petición de interés por contrato de opción para cada conexión cliente a MEFFGate. Si se quiere modificar una petición de interés sobre un determinado contrato de opción se debe cancelar previamente la petición existente y enviar posteriormente la nueva petición. Para cancelar una petición de interés se enviará un mensaje Quote Request con el campo volumen a cero. Una vez se ha producido la petición de interés, MEFFGate informa de esta situación mediante un mensaje Indication of Interest. Cada mensaje se refiere a un único contrato e indica el volumen acumulado de las diferentes peticiones de interés que se han realizado sobre el contrato. Por ello, debe considerarse que cada mensaje sustituye a los mensajes previos sobre el mismo contrato. Cuando un operador solicita la cancelación de la petición de interés, los clientes son informados con el volumen restante. Si no queda volumen, los clientes reciben un mensaje con volumen cero. Un cliente sólo recibe información de las peticiones de interés de aquellos contratos para los que ha solicitado información de precios (Offer o Bid) mediante el mensaje Market Data Request (véase 0). El modo de recepción de esta información (snapshot o snapshot + update) será la misma que se especifique en el mensaje Market Data Request. Todas las peticiones de interés quedan canceladas al final de la sesión de negociación. 7.3 Lista de mensajes Mensaje Descripción Quote Request (Msg Type = R) Mensaje enviado por el cliente MEFFGate para solicitar o cancelar una petición de interés sobre un contrato en concreto Quote Request Reject (Msg Type = AG) Mensaje enviado por MEFFGate para rechazar un mensaje Quote Request Indication of Interest (Msg Type = 6) Mensaje enviado por MEFFGate para informar de una petición de interés sobre un contrato 30 de julio de 2012 © MEFF 2012 70 MEFFGate Negociación - Especificaciones de la Interfaz FIX 7. Request for Quote - Petición de Interés 7.4 Flujo de mensajes Envío de una petición de interés correcta y posterior cancelación de la misma El cliente envía una peticiones de interés de 100x sobre el contrato A (habían 4900x previos). Una vez aceptada la petición, el cliente recibe un mensaje Indication of Interest (IOI) privado, con el bloque Parties informado, indicándole que se le han aceptado los 100x y otro mensaje IOI público (sin informar el bloque Parties) con el volumen acumulado de petición de interés sobre este contrato (5000x). A continuación se desea retirar la petición de interés anterior. Una vez aceptada la petición se divulga el volumen acumulado restante de petición de interés sobre el contrato A (4900x): MEFFGate Client MEFFGate Server Market Data Request (“V”) Request including Bid or Offer with selection criteria that includes A contract Indication of Interest (“6”) Symbol [55] = A, IOIQty [27] = 4900, IOITransType [28] = R, <Parties block not informed> Quote Request (“R”) QuoteReqID [131] = X1, Symbol [55] = A, OrderQty [38] = 100 Indication of Interest (“6”) Symbol [55] = A, IOIQty [27] = 100, IOITransType [28] = N, <Parties block informed> Indication of Interest (“6”) Symbol [55] = A, IOIQty [27] = 5000, IOITransType [28] = R, <Parties block not informed> Quote Request (“R”) QuoteReqID [131] = X2, Symbol [55] = A, OrderQty [38] = 0 Indication of Interest (“6”) Symbol [55] = A, IOITransType [28] = C, <Parties block informed> Indication of Interest (“6”) Symbol [55] = A, IOIQty [27] = 4900, IOITransType [28] = R, <Parties block not informed> Envío de una petición de interés rechazada por MEFFGate MEFFGate Client MEFFGate Server Quote Request (“R”) QuoteReqID [131] = Y1, Symbol [55] = A, … Quote Request Reject (“AG”) QuoteReqID [131] = Y2, ( Symbol [55] = A, QuoteRequestRejectReason [558] = 100 30 de julio de 2012 © MEFF 2012 71 MEFFGate Negociación - Especificaciones de la Interfaz FIX 7. Request for Quote - Petición de Interés Recepción de una petición de interés El cliente recibe una petición de interés de 100 contratos X0000001. El segundo mensaje reemplaza el primero e informa de que el volumen pasa a 150 contratos. El tercer mensaje cancela los dos previos e informa que el volumen es 0 (se han cancelado todas las peticiones de interés sobre este contrato). MEFFGate Client MEFFGate Server Market Data Request (“V”) Request including Bid or Offer with selection criteria that includes X0000001 contract Indication of Interest (“6”) Symbol [55] = X0000001 IOIQty [27] = 100 Indication of Interest (“6”) Symbol [55] = X0000001 IOIQty [27] = 150 Indication of Interest (“6”) Symbol [55] = X0000001 IOIQty [27] = 0 7.5 Acotaciones y adaptaciones de FIX 4.4 En el mensaje Quote Request, el campo OrderQty [38] ha pasado a ser requerido 30 de julio de 2012 © MEFF 2012 72 MEFFGate Negociación - Especificaciones de la Interfaz FIX 7. Request for Quote - Petición de Interés 7.6 Definición de mensajes 7.6.1 Quote Request (Msg Type = R) Mensaje enviado por el cliente MEFFGate para solicitar o cancelar una petición de interés sobre un contrato en concreto. Sólo se permite enviar una petición en el mismo mensaje. Tag 55 Nombre Standard Header QuoteReqID Start <QuotReqGrp> NoRelatedSym Start <Instrument> Symbol 38 End <Instrument> Start <OrderQtyData> OrderQty 131 146 Req S S Valores válidos MsgType = R Formato Descripción String Identificador del mensaje S 1 NumInGroup Siempre 1 S Código de contrato String (22) Código de contrato asociado a la petición de interés S* 0 – 9999, integer numbers only Qty Volumen de la petición. El valor cero (0) indica que se desea cancelar la petición de interés que el operador había realizado sobre este contrato. End <OrderQtyData> End <QuotReqGrp> Standard Trailer 30 de julio de 2012 S © MEFF 2012 73 MEFFGate Negociación - Especificaciones de la Interfaz FIX 7. Request for Quote - Petición de Interés 7.6.2 Quote Request Reject (Msg Type = AG) Mensaje enviado por MEFFGate para rechazar un mensaje Quote Request Tag 131 658 Nombre Standard Header QuoteReqID Req S S Valores válidos MsgType = AG QuoteRequestRe jectReason S 99 = Other 100 = Una sola petición activa por Miembro/Operad or/contrato 101 = Sólo se permiten peticiones en opciones 58 Text N 146 S 55 Start <QuotReqRjctGr p> NoRelatedSym Start <Instrument> Symbol 38 End <Instrument> Start <OrderQtyData> OrderQty Formato Descripción String Identificador del mensaje Quote Request que se está respondiendo Indica el estado del mensaje Quote Request. int Si 99 (Other), ver tag Text [58] para más información String Si QuoteRequestRejectReason [658] = 99 (Other), contiene un texto explicativo del rechazo 1 NumInGroup Siempre 1 S Código de contrato String (22) Código de contrato asociado a la petición de interés N 0 – 9999, integer numbers only Qty Volumen de la petición. El valor cero (0) indica que se desea cancelar la petición de interés que el operador había realizado sobre este contrato. End <OrderQtyData> End <QuotReqRjctGr p> Standard Trailer 30 de julio de 2012 S © MEFF 2012 74 MEFFGate Negociación - Especificaciones de la Interfaz FIX 7. Request for Quote - Petición de Interés 7.6.3 Indication of Interest (Msg Type = 6) Mensaje enviado por MEFFGate para informar de una petición de interés sobre un contrato en concreto. Tag 23 28 Nombre Standard Header IOIID IOITransType Req S S S Valores válidos MsgType = 6 N = New R = Replace C = Cancel Formato Descripción String Char Identificador único del mensaje Cuando este mensaje se refiere a la propia petición mandada por el operador: N = Nueva Petición C = Cancelación de la petición Cuando este mensaje se refiere al conjunto de todas las peticiones de interés realizadas sobre este contrato: R = Replace. Indica que el mensaje reemplaza la información referente al mismo contrato (si existía) 55 Start <Instrument> Symbol S Código de contrato String(22) End <Instrument> Start <Parties> 453 448 447 452 Este bloque vendrá informado cuando este mensaje se refiera a la propia petición que ha mandado el operador. Este bloque no vendrá informado cuando este mensaje se refiera al conjunto de todas las peticiones de interés realizadas sobre este contrato NoPartyIDs PartyID N N PartyIDSource N PartyRole N NumInGroup String D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader Código de miembro u operador Char Int End <Parties> Start <Parties> 54 Side S 7 = Undisclosed Char 27 IOIQty S 0 – 1000000000, integer numbers only. String 30 de julio de 2012 Código de contrato asociado a la petición de interés © MEFF 2012 Indica el rol que toma el código especificado en PartyID. Este bloque vendrá informado cuando este mensaje se refiera a la propia petición que ha mandado el operador. Este bloque no vendrá informado cuando este mensaje se refiera al conjunto de todas las peticiones de interés realizadas sobre este contrato Las peticiones de interés sólo definen el contrato y el volumen pero no si es de compra o venta Si está informado el bloque Parties: volumen de la petición enviado por el operador. Contiene 0 si IOTransType [28] = C (Cancel) 75 MEFFGate Negociación - Especificaciones de la Interfaz FIX 7. Request for Quote - Petición de Interés Si no está informado el bloque Parties: volumen acumulado de todas las peticiones de interés realizadas sobre el contrato en cuestión Standard Trailer 30 de julio de 2012 S © MEFF 2012 76 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8. Gestión de Órdenes e información de operaciones 8.1 Introducción La funcionalidad de gestión de órdenes agrupa varias funciones. Desde el punto de vista del cliente FIX, éstas son las siguientes: Entrada de órdenes Modificación de órdenes Cancelación de órdenes Cancelación masiva de órdenes Recepción del estado de las órdenes e información sobre operaciones Recepción de notificación de ejecución de órdenes Solicitud y recepción de informes del estado de órdenes Cada una de estas funciones se trata en un apartado separado dentro de este capítulo. Para cada función se describe el método de uso, la lista de mensajes relacionados, los flujos de mensajes y las adiciones o acotaciones aplicadas en esta implementación. Al final del capítulo se presenta la descripción detallada de todos los mensajes incluidos en este capítulo. Todo lo descrito en este capítulo, es válido tanto para contratos simples, como time-spreads, ya que las órdenes de time-spreads se realizan refiriendo a un contrato previamente definido (no a los contratos que lo componen). 8.2 Gestión de órdenes en nombre de otro operador MEFFGate ofrece la posibilidad, desde una conexión multi-trader, de entrar y gestionar órdenes para otros operadores autorizados del propio Miembro. 30 de julio de 2012 © MEFF 2012 77 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.3 Entrada de órdenes 8.3.1 Descripción El cliente FIX usa esta funcionalidad para solicitar el alta de órdenes en el sistema de negociación. Una vez una orden ha sido aceptada, puede ser modificada, cancelada o ejecutada. Estos temas son tratados en detalle en otros apartados de este mismo capítulo. Además de los campos habituales de una orden como el precio o la cantidad, el cliente puede incluir un texto libre en el campo Text del mensaje. Este texto permanece asociado a la orden y es incluido en los mensajes Execution Report asociados con ésta. MEFF no interpreta este campo, por lo que puede ser usado como una referencia propia del cliente para la orden. La longitud máxima permitida es de 15 caracteres, el resto son ignorados. En el sistema de negociación de MEFF cada orden está asociada a una cuenta. El cliente FIX normalmente informa de la cuenta en campo Account. Si al entrar una nueva orden no se especifica la cuenta, la orden se asigna a la cuenta diaria. Si un cliente no tiene definida una cuenta diaria, una orden que no especifique la cuenta es rechazada. La cuenta de una orden puede ser modificada durante la vida de la misma tal y como se describe en 8.4. Existen varios campos relevantes para la identificación de las órdenes. Para más información consultar el apartado “4.1 - Identificación de órdenes”. 8.3.2 Estados de la solicitud de alta de una orden Una vez la solicitud ha sido enviada a MEFFGate, ésta puede ser rechazada directamente por MEFFGate, en cuyo caso se recibe un mensaje Execution Report con el campo ExecType = 8 (Rejected). En caso contrario se recibe un mensaje Execution Report con el campo ExecType = A (Pending New). Este último caso sólo indica que la solicitud ha sido aceptada por MEFFGate y está siendo enviada a los sistemas centrales. La aplicación cliente puede adoptar un enfoque optimista y enviar modificaciones o cancelaciones sobre una orden desde el mismo momento en que ha recibido la primera notificación “Pending new”. Después de que la solicitud ha sido aceptada por MEFFGate se recibe un mensaje Execution Report con el campo ExecType = 0 (New), momento en el cual puede considerarse que la orden está activa en el mercado. Si se da alguna situación que haga que la orden sea rechazada por los sistemas centrales, igualmente se recibirá el mensaje Execution Report con el campo ExecType = 0 (New), pero en este caso irá seguido de un mensaje Execution Report con el campo ExecType = 4 (Cancelled). Si la orden introducida es de tipo Stop, al producirse el disparo de la misma, MEFFGate envía un nuevo mensaje Execution Report con el campo ExecType = 0 (New) reflejando la situación de la orden después del disparo. Para detectar si una orden ha sido disparada debe consultarse el campo WorkingIndicator del mensaje Execution Report. 8.3.3 Tipos de órdenes soportados y validez de las órdenes Al enviar una solicitud de alta de una orden, el tipo de orden se especifica mediante la combinación de los campos OrdType y TimeInForce. Consúltese el Apéndice A para obtener una lista de los tipos de órdenes soportados en MEFF y los correspondientes valores de estos dos campos para cada caso. 8.3.4 Persistencia de la orden En la entrada de la orden se puede establecer si, en caso de desconexión, se quiere que el Sistema Central de MEFF cancele automáticamente el volumen pendiente de la orden o no. Esta funcionalidad sólo es válida para ciertos tipos de orden, las cuales están detalladas en el Apéndice A. Esta funcionalidad no está permitida en una orden entrada desde un usuario privilegiado. 30 de julio de 2012 © MEFF 2012 78 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones Esta información también se encuentra disponible en los Execution Reports correspondientes a la consulta de la orden. Cuando una orden se cancela automáticamente por cualquier tipo de desconexión, se envía un Execution Report de cancelación informando además, en el tag 18 (ExecInst) con “Q” (Cancel on System Failure). 8.3.5 Instrucciones de give-up en la orden El miembro que está introduciendo o modificando una orden, puede dar la información necesaria para que, cuando se efectúe la operación, se inicie automáticamente un give-out hacia el Miembro Destino con la referencia que se indique. Esta información también se encuentra disponible en los Execution Reports correspondientes a la consulta de la orden. 8.3.6 Lista de mensajes Mensaje Descripción New Order - Single (Msg Type = D) Usado por el cliente para solicitar el alta de una orden Enviado por MEFF para confirmar o rechazar el alta de la orden Execution Report (Msg Type = 8) 8.3.7 Flujo de mensajes En los siguientes diagramas, los valores que aparecen después de “Execution Report” corresponden a los campos ExecType y OrdStatus, respectivamente. Entrada de nueva orden aceptada por MEFFGate y los sistemas centrales MEFFGate Client MEFFGate Server New Order Single (“D”) Execution Report (“8”) ExecType [ 150] = A (Pending New) OrdStatus [39] = A (Pending New) Execution Report (“8”) ExecType [ 150] = 0 (New) OrdStatus [39] = 0 (New) 30 de julio de 2012 © MEFF 2012 79 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones Entrada de nueva orden rechazada por MEFFGate Cuando un mensaje de nueva orden es rechazado directamente por MEFFGate, el cliente recibe un mensaje Execution Report con ExecType = 8 (Rejected). El valor de OrdStatus es 8 (Rejected) excepto cuando el rechazo se produce por ClOrdID duplicado, en cuyo caso se informa del estado de la orden correspondiente a ese ClOrdID. MEFFGate Client MEFFGate Server New Order Single (“D”) Execution Report (“8”) ExecType [ 150] = 8 (Rejected) OrdStatus [39] = 8 (Rejected) MEFFGate Client MEFFGate Server New Order Single (“D”) ClOrdID [11] = Duplicated ClOrdID Execution Report (“8”) ExecType [ 150] = 8 (Rejected) OrdStatus [39] = order status corresponing to the Duplicated ClOrdID Entrada de nueva orden aceptada por MEFFGate y rechazada por los sistemas centrales MEFFGate Client MEFFGate Server New Order Single (“D”) Execution Report (“8”) ExecType [ 150] = A (Pending New) OrdStatus [39] = A (Pending New) Execution Report (“8”) ExecType [ 150] = 0 (New) OrdStatus [39] = 0 (New) Execution Report (“8”) ExecType [ 150] = 4 (Cancelled) OrdStatus [39] = 4 (Cancelled) 30 de julio de 2012 © MEFF 2012 80 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones Entrada de una orden stop y disparo de la misma. MEFFGate Client MEFFGate Server New Order Single (“D”) Execution Report (“8”) ExecType [150] = A (Pending New) OrdStatus [39] = A (Pending New) Execution Report (“8”) ExecType [150] = 0 (New) OrdStatus [39] = 0 (New) WorkingIndicator [636] = N Execution Report (“8”) ExecType [ 150] = 0 (New) OrdStatus [39] = 0 (New) WorkingIndicator [636] = Y 8.3.8 Acotaciones y adaptaciones de FIX 4.4 En el mensaje New Order Single, el campo OrderQty [38] ha pasado a ser requerido 30 de julio de 2012 © MEFF 2012 81 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.4 Modificación de órdenes 8.4.1 Descripción Una vez una orden ha sido dada de alta y antes de que sea totalmente ejecutada, es posible modificar alguno de sus atributos. Los atributos modificables de una orden en MEFF son los siguientes: Cuenta Volumen Precio Precio de disparo Texto (referencia de orden asignada por el cliente) Referencia de give-up Referencia Interna de give-out Mnemotécnico de give-up La solicitud de modificación se realiza con el mensaje Order Cancel/Replace Request, también llamado Order Modification Request. En cada mensaje de modificación se debe especificar un campo ClOrdID único, tal y como se hace en el mensaje de entrada de nuevas órdenes. La orden que se desea modificar se identifica mediante el campo OrigClOrdID. Cuando una solicitud de modificación es aceptada y realizada, la orden pasa a tener como identificador el ClOrdID especificado en el mensaje de solicitud de modificación. A efectos de esta identificación, puede considerarse que una modificación reemplaza la orden previa por una nueva orden. Como regla general, los campos especificados en el mensaje de solicitud de modificación reemplazan a los campos de la orden que se está modificando. Los campos no especificados no se modifican, conservando el valor que tuvieran en este momento. Además del campo ClOrdID y los campos con valores a ser modificados, el estándar FIX requiere la presencia de algunos campos redundantes: Symbol, Side, Order Type y HandlInst. Estos campos deben estar presentes en el mensaje de solicitud de modificación con los mismos valores que la orden a modificar. Si existe discrepancia en alguno de estos valores, la solicitud es rechazada con un mensaje Order Cancel Reject con el campo CxlRejReason = 2 (Broker/Exchange Option) y una explicación en el campo Text. El flujo de mensajes aceptados por MEFF está detallado en la tabla D.2.d de las Matrices de Cambio de Estado de Órdenes en el volumen 4 de la especificación de FIX 4.4. El estándar FIX también permite, como funcionalidad opcional, modificar el volumen de una orden completamente ejecutada, generando una reapertura de la orden. Esta funcionalidad no está soportada por MEFF. Las especificaciones de FIX 4.4, presenta en los apéndices del volumen 4 un conjunto de tablas, que describen los flujos de mensajes y los efectos en el estado de la orden. Al respecto de la modificación las siguientes tablas están soportadas: C.1.a, C.1.b, C.2.a, C.3.a, C.3.b, C.3.c, D.1.a, D.1.b, D.1.c, D.2.a, D.2.b y D.2.d. La tabla C.1.c no está soportada. 30 de julio de 2012 © MEFF 2012 82 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.4.2 Estados de la solicitud de modificación de una orden Una vez se ha enviado una solicitud de modificación a MEFFGate, ésta puede ser rechazada directamente por MEFFGate, en cuyo caso se recibe un mensaje Order Cancel Reject. En caso contrario se recibe un mensaje Execution Report con el campo ExecType = E (Pending Replace). Este último caso sólo indica que la solicitud ha sido aceptada por MEFFGate y está siendo enviada a los sistemas centrales. Cuando una solicitud ha sido aceptada por MEFFGate, ésta puede ser rechazada por los sistemas centrales, en cuyo caso se recibe un mensaje Order Cancel Reject. En caso contrario se recibe un mensaje Execution Report con el campo ExecType = 5 (Replaced), momento en el cual puede considerarse que la modificación ha sido realizada. 8.4.3 Lista de mensajes Mensaje Descripción Order Modification Request (Msg Type = G) (a.k.a. Order Cancel / Replace Request) Usado por el cliente para solicitar la modificación de una orden Execution Report (Msg Type = 8) Enviado por MEFFGate para notificar el estado de la solicitud de modificación Order Cancel Reject (Msg Type = 9) Enviado por MEFFGate para notificar el rechazo de una solicitud de modificación 8.4.4 Flujo de mensajes En los siguientes diagramas, los valores que aparecen después de “Execution Report” corresponden a los campos ExecType y OrdStatus, respectivamente. Cuando OrdStatus es mostrado como “<status>” refiere al estado en que se encuentra la orden, independientemente de cual sea éste. Solicitud de modificación aceptada por MEFFGate y los sistemas centrales MEFFGate Client MEFFGate Server Order Modification Request (“G”) Execution Report (“8”) ExecType [150] = E (Pending Replace) OrdStatus [39] = E (Pending Replace) Execution Report (“8”) ExecType [150] = 5 (Replace) OrdStatus [39] = <status> 30 de julio de 2012 © MEFF 2012 83 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones Solicitud de modificación rechazada por MEFFGate MEFFGate Client MEFFGate Server Order Modification Request (“G”) Order Cancel Reject (“9”) CxlRejReason [102] = rejection reason Solicitud de modificación aceptada por MEFFGate y rechazada por los sistemas centrales MEFFGate Client MEFFGate Server Order Modification Request (“G”) Execution Report (“8”) ExecType [150] = E (Pending Replace) OrdStatus [39] = E (Pending Replace) Order Cancel Reject (“9”) CxlRejReason [102] = rejection reason Solicitud de modificación aceptada por MEFFGate de una orden ejecutada en el momento de la solicitud Si la orden a modificar es ejecutada en el intervalo de tiempo que transcurre entre el envío de la solicitud de cancelación y la recepción de la misma, el sistema informará de dicha ejecución con un mensaje Execution Report con ExecType = Trade y OrdStatus = Filled. Además, se enviará un mensaje Order Cancel Reject (como respuesta al mensaje Order Modification Request) indicando que la solicitud de modificación no ha podido ser tramitada por la ejecución de la orden habida por el camino. MEFFGate Client MEFFGate Server Order Modification Request (“G”) ClOrdID [11] = B OrigClOrdID [41] = A Execution Report (“8”) ExecType [150] = 6 (Pending Replace) OrdStatus [39] = 6 (Pending Replace) ClOrdID [11] = B OrigClOrdID [41] = A Execution Report (“8”) ExecType [150] = F (Trade) OrdStatus [39] = 2 (Filled) ClOrdID [11] = A Order Cancel Reject (“9”) 30 de julio de 2012 © MEFF 2012 84 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.4.5 Acotaciones y adaptaciones de FIX 4.4 No está permitida la reapertura de órdenes (incremento de volumen de órdenes totalmente ejecutadas) 30 de julio de 2012 © MEFF 2012 85 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.5 Cancelación de órdenes 8.5.1 Descripción Desde el momento en que una orden es dada de alta en el mercado, puede ser cancelada en cualquier momento. La solicitud de cancelación se realiza con el mensaje Order Cancel Request. El mensaje Order Cancel Request es usado para solicitar la cancelación de una orden específica. La orden se identifica mediante el campo OrigClOrdID. Además de este campo, el mensaje de cancelación debe especificar un campo ClOrdID único, tal y como se hace en los mensajes de solicitud de alta de nuevas órdenes o de modificación. El estándar FIX requiere la presencia en este mensaje de algunos campos redundantes: Symbol y Side. Estos campos deben contener los mismos valores que la orden a cancelar. Si existe discrepancia en alguno de estos valores, la solicitud es rechazada con un mensaje Order Cancel Reject con el campo CxlRejReason = 2 (Broker/Exchange Option) y una explicación en el campo Text. Téngase en cuenta que una solicitud de cancelación puede ser enviada cuando la orden a cancelar se encuentra en estado “Pending New” o “Pending Replace”. Es decir, el cliente puede enviar una cancelación sin tener que esperar la confirmación de los sistemas centrales. En este caso el cliente debe usar el ClOrdID de la solicitud que está pendiente, asumiendo que ésta será aceptada. 8.5.2 Estados de la solicitud de cancelación de una orden Una vez se ha enviado una solicitud de cancelación a MEFFGate, ésta puede ser rechazada directamente por MEFFGate, en cuyo caso se recibe un mensaje Order Cancel Reject. En caso contrario se recibe un mensaje Execution Report con el campo ExecType = 6 (Pending Cancel). Este último caso sólo indica que la solicitud ha sido aceptada por MEFFGate y está siendo enviada a los sistemas centrales. Order Cancel RejectDespués de que una solicitud ha sido aceptada por MEFFGate y, por tanto, enviada a los sistemas centrales, se producirá una de las siguientes situaciones: Cancelación de la orden. Cuando la orden es cancelada debido a la solicitud enviada, se recibe un mensaje Execution Report con ExecType = 4 (Cancelled) Cancelación de la orden por Servicios de Mercado. Si una solicitud de cancelación, sobre la misma orden, enviada por los Servicios de Mercado de MEFF llega antes a los sistemas centrales que la solicitud propia, entonces se recibirá un mensaje Execution Report con ExecType = 4 (Cancelled) proveniente de la actuación de un tercero. En la notificación que se recibirá con respecto a la orden, no habrá ninguna respuesta particular a la solicitud propia Ejecución de la orden. Si la orden a cancelar es ejecutada en el intervalo de tiempo que transcurre entre el envío de la solicitud de cancelación y la recepción de la misma, el sistema informará de dicha ejecución con un mensaje Execution Report con ExecType = Trade y OrdStatus = Filled. Además, se enviará un mensaje Order Cancel Reject (como respuesta al mensaje Order Cancel Request) indicando que la solicitud de cancelación no ha podido ser tramitada porque previamente la order ha sido totalmente ejecutada Cuando una cancelación es aceptada y realizada, a la orden se le asigna como identificador el ClOrdID del mensaje de solicitud de cancelación. 30 de julio de 2012 © MEFF 2012 86 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.5.3 Lista de mensajes Mensaje Descripción Order Cancel Request (Msg Type = F) Usado por el cliente para solicitar la cancelación de una orden Execution Report (Msg Type = 8) Enviado por MEFFGate para notificar el estado de la cancelación Order Cancel Reject (Msg Type = 9) Enviado por MEFFGate para notificar el rechazo de la solicitud de cancelación 8.5.4 Flujo de mensajes En los siguientes diagramas, los valores que aparecen después de “Execution Report” corresponden a los campos ExecType y OrdStatus, respectivamente. Cuando OrdStatus es mostrado como “<status>” refiere al estado en que se encuentra la orden, independientemente de cual sea éste. Solicitud de cancelación aceptada por MEFFGate y los sistemas centrales MEFFGate Client MEFFGate Server Order Cancel Request (“F”) Execution Report (“8”) ExecType [ 150] = 6 (Pending Cancel) OrdStatus [39] = 6 (Pending Cancel) Execution Report (“8”) ExecType [ 150] = 4 (Cancelled) OrdStatus [39] = 4 (Cancelled) 30 de julio de 2012 © MEFF 2012 87 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones Cancelación de una orden con estado “Pending Replace”´ MEFFGate Client MEFFGate Server Order Modification Request (“F”) ClOrdID [11] = B OrigClOrdID [41] = A Execution Report (“8”) ExecType [150] = E (Pending Replace) OrdStatus [39] = E (Pending Replace) ClOrdID [11] = B OrigClOrdID [41] = A Order Cancel Request (“F”) ClOrdID [11] = C OrigClOrdID [41] = B Execution Report (“8”) ExecType [150] = 6 (Pending Cancel) OrdStatus [39] = 6 (Pending Cancel) ClOrdID [11] = C OrigClOrdID [41]= B Execution Report (“8”) ExecType [150] = 5 (Replace) OrdStatus [39] = <status> ClOrdID [11] = B OrigClOrdID [41] = A Execution Report (“8”) ExecType [ 150] = 4 (Cancelled) OrdStatus [39] = 4 (Cancelled) ClOrdID [11] = C OrigClOrdID [41] = B Solicitud de cancelación rechazada por MEFFGate MEFFGate Client MEFFGate Server Order Cancel Request (“F”) Order Cancel Reject (“9”) CxlRejReason [102] = rejection reason 30 de julio de 2012 © MEFF 2012 88 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones Solicitud de cancelación aceptada por MEFFGate de una orden ejecutada en el momento de la solicitud Si la orden a cancelar es ejecutada en el intervalo de tiempo que transcurre entre el envío de la solicitud de cancelación y la recepción de la misma, el sistema informará de dicha ejecución con un mensaje Execution Report con ExecType = Trade y OrdStatus = Filled. Además, se enviará un mensaje Order Cancel Reject (como respuesta al mensaje Order Cancel Request) indicando que la solicitud de cancelación no ha podido ser tramitada porque previamente la order ha sido totalmente ejecutada. MEFFGate Client MEFFGate Server Order Cancel Request (“F”) ClOrdID [11] = B OrigClOrdID [41] = A Execution Report (“8”) ExecType [150] = 6 (Pending Cancel) OrdStatus [39] = 6 (Pending Cancel) ClOrdID [11] = B OrigClOrdID [41] = A Execution Report (“8”) ExecType [150] = F (Trade) OrdStatus [39] = 2 (Filled) ClOrdID [11] = A Order Cancel Reject (“9”) 8.5.5 Acotaciones y adaptaciones de FIX 4.4 No se han realizado acotaciones ni adaptaciones en los mensajes incluidos en este capítulo. 30 de julio de 2012 © MEFF 2012 89 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.6 Cancelación masiva de órdenes 8.6.1 Descripción Esta función permite la cancelación de un conjunto de órdenes simultáneamente. Las órdenes a cancelar pueden ser seleccionadas mediante ciertos criterios de selección. Nótese que con este mensaje de cancelación no se van a cancelar los quotes pendientes. 8.6.2 Criterios de selección Los criterios de selección de órdenes a cancelar que ofrece MEFF son los siguientes: Instrumento. Permite seleccionar las órdenes asociadas a cierto tipo de instrumento mediante el bloque Instrument, tal y como se describe en 4.5 Cuenta. Permite seleccionar las órdenes relacionadas con una cuenta en concreto o un grupo de cuentas. Esta selección se realiza mediante el campo Account. El uso del carácter comodín “?” para la selección múltiple, sólo está permitido en las cinco posiciones a la vez o en las dos últimas posiciones. En el último caso debe ser usado en ambas simultáneamente. Compra/venta. Permite seleccionar órdenes compradoras y vendedoras Cuando en una selección se combinan varios criterios, se consideran seleccionadas las órdenes que los cumplen todos. Cuando no se incluye alguno de los campos de selección, el criterio no es tenido en cuenta para la selección de órdenes. Por tanto, no especificar ningún criterio implica la selección de todas las órdenes. Dado que MEFFGate soporta más criterios de selección que los definidos en el estándar de FIX 4.4, el campo MassCancelRequestType no es usado y siempre debe contener el valor 7 (Cancel all orders). MEFF revisará los criterios de selección para decidir las órdenes a cancelar tal y como se ha explicado anteriormente. 8.6.3 Estados de la solicitud de cancelación masiva Tanto si la solicitud de cancelación masiva es aceptada o rechazada, el servidor envía un mensaje Order Mass Cancel Report. Cuando la solicitud es rechazada el campo MassCancelResponse contiene el valor “0”. En caso de ser aceptada contiene el valor “7”, incluso cuando no hay órdenes que cumplan los criterios de selección. El mensaje de aceptación no debe ser considerado como una confirmación de la cancelación. Para ello, el servidor envía un mensaje Execution Report por cada una de las órdenes canceladas. 8.6.4 Campo ClOrdID En los correspondientes mensajes Execution Report en que se notifican las cancelaciones se dispone del campo OrigClOrdID que identifica de forma unívoca a cada una de las órdenes canceladas. Nótese que, siguiendo el estándar, el campo ClOrdID de estos mensajes contendrá el mismo valor en todos ellos, que se corresponde con el ClOrdID que se asignó a la solicitud en el mensaje Order Mass Cancel Request. Por ello, deberá tenerse en cuenta que a partir de este momento las órdenes canceladas pasan todas a tener el mismo ClOrdID. Para más información sobre el campo ClOrdID puede consultarse el apartado 4.1.1. 30 de julio de 2012 © MEFF 2012 90 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.6.5 Lista de mensajes Mensaje Descripción Order Mass Cancel Request (Msg Type = q) Solicitud de cancelación de las órdenes que cumplen los criterios de selección Order Mass Cancel Report (Msg Type = r) Mensaje enviado por MEFFGate para confirmar la aceptación o rechazo de la solicitud de cancelación múltiple. No sirve para confirmar que las cancelaciones han sido procesadas Execution Report (Msg Type = 8) Mensaje enviado por MEFFGate para notificar cada una de las cancelaciones individuales que se derivan del envío de un mensaje Order Mass Cancel Request 8.6.6 Flujo de mensajes Solicitud de cancelación masiva de órdenes aceptada MEFFGate Client MEFFGate Server Order Mass Cancel Request (“q”) ClOrdID [11] = A Order Mass Cancel Report (“r”) MassCancelResponse [531] = 7 (Cancel all orders that match criteria) Execution Report (“8”) ... One message for every cancelled order ClOrdID [11] = A OrigClOrdID [41] = previous ClOrdID ExecType [150] = 4 (Cancelled) OrdStatus [39] = 4 (Cancelled) Solicitud de cancelación masiva de órdenes rechazada MEFFGate Client MEFFGate Server Order Mass Cancel Request (“q”) ClOrdID [11] = A Order Mass Cancel Report (“r”) MassCancelResponse [531] = 0 (Cancel request rejected) 30 de julio de 2012 © MEFF 2012 91 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.6.7 Acotaciones y adaptaciones de FIX 4.4 MEFF soporta más criterios de selección que los especificados por el estándar de FIX y permite el uso de comodines en algunos campos Se ha añadido el campo opcional Account al mensaje Order Mass Cancel Request Se ha añadido el bloque opcional Parties al mensaje Order Mass Cancel Request 30 de julio de 2012 © MEFF 2012 92 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.7 Notificación de ejecución 8.7.1 Descripción Cuando una orden es ejecutada total o parcialmente, MEFFGate informa de este hecho mediante un mensaje Execution Report con el campo ExecType = ”F” (Trade). Cuando el mensaje Execution Report es usado para notificar la ejecución de una orden, contiene el campo de usuario ExchangeTradeType, donde se especifica el tipo de operación. Véase Tabla 19 en documento “Tablas de Codificación” para obtener una lista de los posibles valores de este campo y su significado. En general se recibirá un mensaje Execution Report siempre que una operación quede aceptada por el Sistema Central incluyendo todas aquellas que procedan de aplicaciones. 8.7.2 Retrocesión de una operación Cuando una operación es cancelada, MEFFGate informa de este hecho mediante un mensaje Execution Report con el campo ExecType [150] = ”H” (Trade Cancel). En el campo ExecRefID [19] se informa del número de negociación (TrdMatchID) de la operación que se retrocede. 8.7.3 Lista de mensajes Mensaje Descripción Execution Report (Msg Type = 8) (ExecType = F) Enviado por MEFFGate para notificar la ejecución total o parcial de una orden 8.7.4 Flujo de mensajes Notificación de ejecución El cliente recibe un mensaje Execution Report, por cada ejecución parcial y total de una orden. MEFFGate Client MEFFGate Server New Order Single (“D”) Execution Report (“8”) ... ExecType [150] = F (Trade) OrdStatus [39] =1 (Paritially Filled) Execution Report (“8”) ExecType [150] = F (Trade) OrdStatus [39] =2 (Filled) 30 de julio de 2012 © MEFF 2012 93 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.7.5 Acotaciones y adaptaciones de FIX 4.4 Se ha añadido el campo TrdMatchID [880] al mensaje Execution Report Se ha añadido el campo de usuario ExchangeTradeType [5681] al mensaje Execution Report 30 de julio de 2012 © MEFF 2012 94 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.8 Solicitud de información de situación de órdenes 8.8.1 Descripción En este apartado se cubren dos funciones relacionadas con la consulta de la situación de las órdenes: Consulta del estado de una orden concreta. Permite la consulta de una orden concreta a partir de su ClOrdID Consulta del estado de un conjunto de órdenes. Permite la consulta de un conjunto de órdenes basándose en ciertos criterios de selección Ambas funcionalidades están limitadas a las órdenes introducidas durante la sesión de negociación en curso. En ambos casos la respuesta está formada por un único mensaje Execution Report por cada una de las órdenes, reflejando el último estado de la orden. Si la consulta es errónea, es rechazada mediante un mensaje Execution Report con ExecType = 8 (Rejected). En la consulta de una orden concreta, el ClOrdID usado deberá coincidir con el último de la orden. La consulta de un ClOrdID que ha sido sustituido, mediante una cancelación o modificación de orden, será rechazada mediante un mensaje Execution Report con ExecType = 8 (Rejected). A diferencia de la mayoría de los mensajes relacionados con la gestión de órdenes, en el mensaje Order Status Request el campo ClOrdID debe contener el valor de la orden que se está consultando. Téngase en cuenta que en la solicitud del estado de una orden, el estándar FIX requiere la presencia de dos campos redundantes: Symbol y Side. Los valores de estos campos deben coincidir con los de la orden original. La consulta del estado de una orden mediante el mensaje Order Status Request, puede devolver más de un mensaje Execution Report, cuando el ClOrdID presente en la consulta coincide con el usado en una cancelación masiva, ya que en este caso todas las órdenes canceladas por una misma solicitud comparten el identificador ClOrdID. Para más información sobre la cancelación masiva consúltese el apartado 0. 8.8.2 Lista de mensajes Mensaje Descripción Solicitud del estado de una orden específica Order Status Request (Msg Type = H) Solicitud del estado de un conjunto de órdenes Order Mass Status Request (Msg Type = AF) Execution Report (Msg Type = 8) 30 de julio de 2012 Información del estado de la orden, o notificación de solicitud errónea © MEFF 2012 95 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.8.3 Flujo de mensajes Solicitud del estado de un conjunto de órdenes MEFFGate Client MEFFGate Server Order Mass Status Request (“AF”) Execution Report (“8”) ... ExecType [150] = I (Order Status) OrdStatus [39] = order status LastRptRequested [912] = N Execution Report (“8”) ExecType [150] = I (Order Status) OrdStatus [39] = order status LastRptRequested [912] = Y Solicitud del estado de una orden concreta MEFFGate Client MEFFGate Server Order Status Request (“H”) Execution Report (“8”) ExecType [150] = I (Order Status) OrdStatus [39] = order status Solicitud del estado de una orden desconocida MEFFGate Client MEFFGate Server Order Status Request (“H”) Execution Report (“8”) ExecType [150] = 8 (Rejected) 8.8.4 Acotaciones y adaptaciones de FIX 4.4 Algunos campos han sido declarados no soportados Se ha añadido el bloque Parties al mensaje Order Mass Cancel Request 30 de julio de 2012 © MEFF 2012 96 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.9 Definición de mensajes 8.9.1 New Order - Single (Msg Type = D) Mensaje enviado por el cliente para solicitar la entrada de una orden en el sistema. Tag Nombre Standard Header ClOrdID Start <Parties> NoPartyIDs PartyID Req S S Valores válidos MsgType = D N N >0,<=2 PartyIDSource N Char PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader 1 End <Parties> Account N Longitud exacta String(5) 78 NoAllocs N 1 NumInGroup 79 AllocAccount N String Start <NestedParties> NoNestedPartyIDs N NumInGroup NestedPartyID N String 11 453 448 447 452 539 524 525 538 NestedPartyIDSour ce NestedPartyRole 30 de julio de 2012 N N D = Proprietary/ Custom code 3 = Give-out internal reference Formato Descripción String(30) Identificador único de orden NumInGroup String Código de miembro u operador Int Char Int © MEFF 2012 Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs Código de cuenta. Si no está presente se asume la cuenta diaria Número de destinos. MEFFGate sólo acepta un único destino. En este bloque el Miembro que está introduciendo la orden puede dar la información necesaria para que, cuando se efectúe la operación, se inicie automáticamente un give-out hacia el Miembro Destino con la referencia, referencia interna y mnemotécnico que se indique y por todo el volumen de la operación Este campo es requerido por el estándar si se especifica NoAllocs. Ignorado por MEFFGate Referencia interna de Give-out, Código del Miembro Destino del Give-up, referencia de Give-up o mnemotécnico de Give-out. Para la referencia interna de Give-out (NestedPartyRole=3) este campo está limitado a 18 caracteres. Para el Miembro Destino del Give-up (PartyRole = 14) este campo tiene una longitud exacta de 4 caracteres alfanuméricos. Para la referencia de Give-up (NestedPartyRole=24) este campo está limitado a 18 caracteres. Para el mnemotécnico de Give-out (NestedPartyRole=33) este campo está limitado a 10 caracteres. Requerido si se ha especificado NoNestedPartyIDs Requerido si se ha especificado NoNestedPartyIDs Requerido si se ha especificado NoNestedPartyIDs. 97 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 14 = Give-Up Clearing Firm 24 = Give-up Reference 33 = Give-up mnemonic 21 End <NestedParties> HandlInst S 18 ExecInst N 55 Start <Instrument> Symbol 54 60 El valor 3 indica que el contenido de NestedPartyID corresponde a la referencia asignada por el Miembro Origen para uso interno y que se asocia al mnemotécnico de Give-out. Una misma referencia interna puede estar asociada a más de un mnemotécnico. Puede no estar informada. El valor 14 Indica que el contenido de NestedPartyID corresponde al Miembro Destino del Give-up. El valor 24 indica que el contenido de NestedPartyID corresponde a la referencia de Give-up. El valor 33 indica que el contenido de NestedPartyID corresponde al mnemotécnico de Give-out. 1 = Automated execution order, private H = Not Cancel on System Failure (default) Q = Cancel on System Failure Char MultipleCharV alue Tipo de persistencia de la orden. Indica si, en caso de desconexión, se quiere que el sistema central de MEFF cancele automáticamente el volumen pendiente de la orden (“Q”) o no (“H” o no informado) S Código de contrato String(22) Código de contrato End <Instrument> Side S 1 = Buy 2 = Sell Char TransactTime S UTC Timestamp Hora en que se realiza la solicitud S* Qty Volumen de la orden Char Tipo de orden Precio de la orden. Requerido si OrdType es 2 ó 4 Precio de disparo. Requerido si OrdType es 3 ó 4 Periodo de validez de la orden 40 Start <OrderQtyData> OrderQty End <OrderQtyData> OrdType 44 Price N Price 99 StopPx N Price 59 TimeInForce N 58 Text N 77 PositionEffect N Standard Trailer S 38 30 de julio de 2012 S 1 = Market 2 = Limit 3 = Stop 4 = Stop Limit 0 = Day (default value) 2 = At the Opening (OPG) 3 = Immediate or Cancel (IOC) 4 = Fill or Kill (FOK) Char String (15) O=Open (default) C=Close Char © MEFF 2012 Referencia de la orden asignada por el usuario Indica si la operación resultante debe abrir o cerrar posición 98 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.9.2 Order Cancel Request (Msg Type = F) Mensaje enviado por el cliente para solicitar la cancelación de una orden. Tag Nombre Standard Header OrigClOrdID ClOrdID Req S S S Valores válidos MsgType = F Start <Parties> NoPartyIDs PartyID N N >0, <=2 PartyIDSource N Char PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader 55 End <Parties> Start <Instrument> Symbol S Código de contrato String(22) Debe contener el mismo valor que se especificó en la orden original 54 End <Instrument> Side S 1 = Buy 2 = Sell Char 60 TransactTime S Debe contener el mismo valor que se especificó en la orden original Hora en que se realiza la solicitud Standard Trailer S 41 11 453 448 447 452 30 de julio de 2012 Formato Descripción String(30) String(30) ClOrdID de la orden a cancelar Identificador de la cancelación. Pasa a ser el identificador de la orden cuando la cancelación es procesada NumInGroup String Int UTC Timestamp © MEFF 2012 Código de miembro u operador Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs 99 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.9.3 Order Modification Request (Msg Type = G) (Este mensaje también es conocido como. Order Cancel/Replace Request) Mensaje usado para solicitar la modificación de una orden. Tag Nombre Standard Header Start <Parties> NoPartyIDs PartyID Req S Valores válidos MsgType = G Formato Descripción N N >0,<=2 NumInGroup String Código de miembro u operador PartyIDSource N PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader 41 End <Parties> OrigClOrdID S String(30) 11 ClOrdID S String(30) 1 Account N Longitud exacta String(5) 78 NoAllocs N 1 NumInGroup 453 448 447 452 Char Int Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs ClOrdID de la orden a reemplazar Identificador de la modificación. Pasa a ser el identificador de la orden cuando la modificación es realizada Nuevo código de cuenta. Si no se especifica, la cuenta permanece inalterada Número de destinos. MEFFGate sólo acepta un único destino. En este bloque el Miembro que está modificando la orden puede dar la información necesaria para que, cuando se efectúe la operación, se inicie automáticamente un give-out hacia el Miembro Destino con la referencia, referencia interna y mnemotécnico que se indique y por todo el volumen de la operación Si no se especifica, este bloque permanece inalterado. 79 AllocAccount N Start <NestedParties> NoNestedPartyIDs N NumInGroup NestedPartyID N String 539 524 30 de julio de 2012 Longitud exacta String(5) © MEFF 2012 Si se especifica, hay que volver a dar toda la información referente a este bloque (tanto la que se modifica como la que no) Este campo es requerido por el estándar si se especifica NoAllocs. Ignorado por MEFFGate Referencia interna de Give-out, Código del Miembro Destino del Give-up, referencia de Give-up o mnemotécnico de Give-out. Para la referencia interna de Give-out (NestedPartyRole=3) 100 MEFFGate Negociación - Especificaciones de la Interfaz FIX 525 538 NestedPartyIDSourc e NestedPartyRole 21 End <NestedParties> HandlInst 55 este campo está limitado a 18 caracteres. Para el Miembro Destino del Give-up (PartyRole = 14) este campo tiene una longitud exacta de 4 caracteres alfanuméricos. Para la referencia de Give-up (NestedPartyRole=24) este campo está limitado a 18 caracteres. Para el mnemotécnico de Giveout (NestedPartyRole=33) este campo está limitado a 10 caracteres. Requerido si se ha especificado NoNestedPartyIDs Requerido si se ha especificado NoNestedPartyIDs Requerido si se ha especificado NoNestedPartyIDs. El valor 3 indica que el contenido de NestedPartyID corresponde a la referencia asignada por el Miembro Origen para uso interno y que se asocia al mnemotécnico de Give-out. Una misma referencia interna puede estar asociada a más de un mnemotécnico. Puede no estar informada. El valor 14 Indica que el contenido de NestedPartyID corresponde al Miembro Destino del Give-up. El valor 24 indica que el contenido de NestedPartyID corresponde a la referencia de Give-up. El valor 33 indica que el contenido de NestedPartyID corresponde al mnemotécnico de Give-out. D = Proprietary/ Custom code 3 = Give-out internal reference 14 = Give-Up Clearing Firm 24 = Give-up Reference 33 = Give-up mnemonic Char S 1 Char Debe contener el mismo valor que la orden original Start <Instrument> Symbol S Código de contrato String(22) Debe contener el mismo valor que la orden original 54 End <Instrument> Side S 1 = Buy 2 = Sell Char 60 TransactTime S UTC Timestamp Debe contener el mismo valor que la orden original Hora en que se realiza la solicitud 38 Start <OrderQtyData> OrderQty N Qty 30 de julio de 2012 N 8. Gestión de Órdenes e información de operaciones N Int © MEFF 2012 Volumen total deseado (incluido el volumen ya ejecutado). Por ejemplo, si la orden original era de 20 contratos, se ha producido una ejecución parcial por 5 contratos, y se quiere reducir en 1 la orden original, este campo deberá 101 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones cumplimentarse con el valor 19. Si no se especifica, el volumen permanece inalterado 40 End <OrderQtyData> OrdType S 44 Price 99 1 = Market 2 = Limit 3 = Stop 4 = Stop Limit Char Debe contener el mismo valor que el del Execution Report enviado por el mercado N Price StopPx N Price 58 Text N String (15) 77 PositionEffect N Precio de la orden. Si no se especifica, el precio permanece inalterado Precio de disparo. Si no se especifica, el precio permanece inalterado. Sólo permitido cuando OrdType = 4 Referencia de la orden asignada por el usuario. Si no se especifica, permanece inalterada Indica si la operación resultante debe abrir o cerrar posición. Sólo aplicable a cuentas de doble escalón. O=Open C=Close Char Si no se especifica, permanece inalterada Standard Trailer 30 de julio de 2012 S © MEFF 2012 102 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.9.4 Execution Report (Msg Type = 8) Mensaje enviado por MEFFGate para informar del estado de una orden, incluyendo la ejecución parcial y total de la misma. También usado para rechazar una solicitud inválida relacionada con órdenes. Tag Nombre Standard Header OrderID Req S Formato Descripción S String SecondaryOrder ID N String 527 SecondaryExecI D N String 11 ClOrdID N String 41 OrigClOrdID N String(30) 5681* ExchangeTrade Type N Identificador único de la orden, asignado por MEFFGate o el QuoteID enviado por el cliente. Si ExecType = 8 (Rejected) contiene “NONE” Identificador de la orden, asignado por los sistemas centrales de MEFF u otro mercado Número de historia de la orden, asignado por los sistemas centrales de MEFF u otro mercado. Cada vez que se produce un nuevo suceso en la vida de la orden (modificación, ejecución o cancelación) se asigna un nuevo valor a este campo. Identificador único de la orden (ClOrdID) (ver 4.1.1) enviado por el cliente. Sólo presente cuando el mensaje está relacionado con una orden OrigClOrdID que fue enviado por el cliente. Sólo presente cuando el mensaje relacionado es una solicitud de cancelación o modificación Sólo presente cuando ExecType = “F” (Trade) o “H” (Trade Cancel) que indica el tipo de operación que se cancela 198 790 OrdStatusReqID N String 584 MassStatusReqI D N String 911 TotNumReports N Int 912 LastRptRequest ed N Boolean NumInGroup String 37 453 448 Start <Parties> NoPartyIDs PartyID N N 447 PartyIDSource N 30 de julio de 2012 Valores válidos MsgType = 8 Para más detalle sobre los tipos de operación, véase Tabla 19 en documento “Tablas de Codificación” D = Proprietary/ String Contiene el mismo valor que se especificó en el mensaje Order Status Request relacionado. Sólo está presente si el mensaje relacionado es de este tipo, y contenía este campo Identificador del mensaje relacionado. Sólo presente cuando el mensaje relacionado es Order Mass Status Request Indica el número total de mensajes que forman la respuesta a una solicitud Order Mass Status Request. Sólo está presente cuando se trata de una respuesta a este tipo de solicitud Usado para indicar que es el último mensaje enviado como respuesta a una solicitud Order Mass Status Request Código de miembro, operador, Referencia interna de Give-out, Código del Miembro Destino del Give-up, referencia de Give-up o mnemotécnico de Give-out Char © MEFF 2012 103 MEFFGate Negociación - Especificaciones de la Interfaz FIX 452 PartyRole N 548 End <Parties> CrossID N Custom code 1 = Executing Firm 3 = Give-out internal reference 7 = Entering Firm (intermediary) 11 = Order Origination Trader 12 = Executing Trader 13 = Order Origination Firm 14 = Give-Up Clearing Firm 24 = Give-up Reference 33 = Give-up mnemonic 36 = Entering Trader (intermediary) 8. Gestión de Órdenes e información de operaciones Int Indica el rol que toma el código especificado en PartyID. String Contiene el valor del campo SecondaryTradeReportID [818] si se trata de una operación asociada a una aplicación. 17 ExecID S String 19 ExecRefID N String 150 ExecType S 39 OrdStatus 30 de julio de 2012 S 0 = New 4 = Cancelled 5 = Replace 6 = Pending Cancel 8 = Rejected A = Pending New E = Pending Replace F = Trade H = Trade Cancel I = Order Status 0 = New 1 = Partially Filled 2 = Filled 4 = Cancelled 6 = Pending Cancel 8 = Rejected A = Pending New E = Pending Replace Char Sólo presente si el mensaje relacionado es de este tipo. Identificador único del Execution Report asignado por MEFFGate. Contiene 0 si ExecType = “I” (Order Status) Número de registro de negociación (TrdMatchID) de la operación que se retrocede. Presente si ExecType [150] = “H” Indica el estado del mensaje relacionado, mientras que OrdStatus informa del estado actual de la orden. En caso de cancelación (valor 4) o rechazo (valor 8), el campo Text contiene un texto explicativo Char © MEFF 2012 Informa del estado actual de la orden En un quote el contenido de este campo no debe ser tenido en cuenta (contiene siempre “1”) 104 MEFFGate Negociación - Especificaciones de la Interfaz FIX 636 WorkingIndicator N 103 OrdRejReason N 1 8. Gestión de Órdenes e información de operaciones Y = Stop Order is currently triggered N = Stop Order is not currently triggered 0 = Exchange option 3 = Order exceeds limit (price or volume filters) 6 = Duplicate ClOrdID 12 = Surveillance option 99 = Other 100 = Desconexión de la aplicación cliente 103= No tiene permiso para entrar/gestionar órdenes 104= Delta protection Longitud exacta Boolean Indica si una orden Stop ha sido disparada Int Motivo de rechazo o cancelación. String(5) Cuenta asociada con la orden S Código de contrato String(22) Código del contrato asociado con la orden 1 = Buy 2 = Sell Char 55 Account Start <Instrument> Symbol N 54 End <Instrument> Side S 38 Start <OrderQtyData> OrderQty S Puede estar presente cuando ExecType =4ó8 Qty Volumen total de la orden, tal y como se indicó en el mensaje New Order, o en el mensaje de modificación En un quote el contenido de este campo no debe ser tenido en cuenta (contiene siempre cero) 40 End <OrderQtyData> OrdType N 44 Price N 99 59 StopPx TimeInForce 30 de julio de 2012 N N 1 = Market 2 = Limit 3 = Stop 4 = Stop Limit 0 = Day 2 = At the opening (OPG) 3 = Immediate or Cancel (IOC) 4 = Fill or Kill (FOK) Char Tipo de orden Price Precio de la orden Price Char En un quote, si aparece, el contenido de este campo no debe ser tenido en cuenta (contiene cero) Precio de disparo de la orden Periodo de validez de la orden © MEFF 2012 105 MEFFGate Negociación - Especificaciones de la Interfaz FIX 18 ExecInst N 32 LastQty N Qty 31 LastPx N Price 151 LeavesQty S Qty 14 CumQty H = Not Cancel on System Failure Q = Cancel on System Failure 8. Gestión de Órdenes e información de operaciones S MultipleValu eString Qty 6 AvgPx S Price 60 TransactTime N UTCTimesta mp 381 77 GrossTradeAmt PositionEffect N N 58 Text N 442 MultiLegReportin gType N 880* TrdMatchID N Standard Trailer S 30 de julio de 2012 Amt Char O=Open C=Close String 1=Single Security 2 = Individual leg of a multi-leg security 3 = Multi-leg security Char String(13) © MEFF 2012 Volumen de la operación. Presente si OrdStatus = 1 ó 2 Precio de la operación. Presente si OrdStatus = 1 ó 2 Volumen pendiente de la orden. Contiene 0 cuando OrdStatus = 4 (Cancelled) En un quote el contenido de este campo no debe ser tenido en cuenta (contiene siempre cero) Volumen total ejecutado Este campo no debe ser tenido en cuenta cuando vale cero Precio promedio de todas las ejecuciones de esta orden. Este campo no debe ser tenido en cuenta cuando CumQty=0 Hora en que se produjo la transacción asociada a este mensaje Execution Report. Este campo no está presente cuando ExecType es igual 6, A ó E Importe de la transacción Indica si la operación resultante debe abrir o cerrar posición. Sólo aplicable a cuentas de doble escalón Si el campo ExecType = 8 (Rejection) contiene un texto explicativo del rechazo. En cualquier otro caso contiene la referencia de la orden del cliente, entrada en el campo Text del mensaje de la orden Indica si la operación de la que se está informando es sobre un contrato simple, un contrato time-spread o una pata de un time-spread Número de registro de negociación. Identificador de la ejecución parcial o total de la orden, asignado por los sistemas centrales de MEFF u otro mercado. Presente si ExecType = “F” (Trade) o “H” (Trade Cancel) 106 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.9.5 Order Cancel Reject (Msg Type = 9) Mensaje enviado por MEFFGate para rechazar un mensaje de modificación o cancelación de orden. Tag Nombre Standard Header OrderID Req S S Valores válidos MsgType = 9 Ver 4.1.2 Formato Descripción String OrderID asociado a la orden. Contiene “NONE” si CxlRejReason = 1 (Unknown order) Start <Parties> NoPartyIDs PartyID N N >0,<=2 NumInGroup String PartyIDSource N PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader 11 41 End <Parties> ClOrdID OrigClOrdID S S 39 OrdStatus S 60 TransactTime N 434 CxlRejResponseTo S 102 CxlRejReason N 58 Text N Standard Trailer S 37 453 448 447 452 30 de julio de 2012 Char Int String(30) String(30) 0 = New 1 = Partially Filled 2 = Filled 4 = Cancelled 8 = Rejected C = Expired 1 = Order Cancel Request 2 = Order Cancel/Replace Request 0 = Too late to cancel 1 = Unknown order 2 = Exchange option 3 = Order already in Pending Cancel or Pending Replace status 6 = Duplicate ClOrdID received 99 = other © MEFF 2012 Char Código de miembro u operador Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs ClOrdID del mensaje rechazado ClOrdID de la orden que no ha podido ser modificada o cancelada. Contiene el mismo valor que OrigClOrdID del mensaje de solicitud de cancelación o modificación Estado de la orden. Contiene 8 (Rejected) si CxlRejReason = 1 (Unknown order) UTC Timestamp Char Hora en que se generó este mensaje de rechazo Tipo de mensaje al que se está respondiendo Int Motivo de rechazo. Cuando el valor es 99 el campo Text contiene un texto explicativo String Texto explicativo del motivo de rechazo 107 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.9.6 Order Status Request (Msg Type = H) Mensaje enviado por el cliente para solicitar información sobre el estado de una orden en concreto. Tag Nombre Standard Header ClOrdID Req S S Valores válidos MsgType = H Start <Parties> NoPartyIDs PartyID N N >0,<=2 PartyIDSource N PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader 790 End <Parties> OrdStatusReqID N 55 Start <Instrument> Symbol S 54 End <Instrument> Side S Standard Trailer S 11 453 448 447 452 30 de julio de 2012 Formato Descripción String(30) ClOrdID de la orden, de la cual se está solicitando el estado NumInGroup String Char Int Código de miembro u operador Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs String(10) Código opcional de identificación de la solicitud. Si está presente será devuelto en el correspondiente mensaje de respuesta Execution Report Código de contrato String(22) Debe contener el mismo valor que la orden consultada 1 = Buy 2 = Sell Char Debe contener el mismo valor que la orden consultada © MEFF 2012 108 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.9.7 Order Mass Cancel Request (Msg Type = q) Mensaje enviado por el cliente para solicitar la cancelación de las órdenes que cumplen unos ciertos criterios de selección. Tag Req S S Valores válidos MsgType = q 11 Nombre Standard Header ClOrdID 530 MassCancelRequestType S 7 = Cancel all orders that match criteria Char Start <Parties> NoPartyIDs PartyID N N >0,<=2 NumInGroup String PartyIDSource N Char PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader 55 End <Parties> Start <Instrument> Symbol S [N/A] o código de contrato String(22) 48 SecurityID N String 22 SecurityIDSource N 461 CFICode N 200 MaturityMonthYear N Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol Longitud exacta. Consúltese 4.5.1 para una lista de valores posibles YYYYMM o YYYYMMDD o YYYYMMwW 54 End <Instrument> Side N 1 = Buy 2 = Sell 60 TransactTime S 1* Account N 453* 448* 447* 452* * 30 de julio de 2012 Longitud exacta © MEFF 2012 Formato Descripción String(30) Identificador único de este mensaje Order Mass Cancel Request Ignorado por MEFFGate, ya que sólo se cancelan las órdenes que cumplen los criterios de selección Int String Código de miembro u operador Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs Código de contrato. Si contiene “[N/A]” se seleccionan las órdenes sobre todos los contratos que cumplan con el resto de criterios de selección Activo subyacente del contrato String(6) Requerido si se ha especificado SecurityID Tipo de contrato Month-Year Vencimiento del contrato Char Criterio de selección de órdenes compradoras o vendedoras Hora de generación del mensaje Código de cuenta. El uso del carácter comodín “?” para la selección múltiple, sólo está permitido en las cinco posiciones a la vez o en las dos últimas posiciones. En el último caso debe ser usado en ambas a la vez. UTC Timestamp String(5) 109 MEFFGate Negociación - Especificaciones de la Interfaz FIX Standard Trailer 30 de julio de 2012 8. Gestión de Órdenes e información de operaciones S © MEFF 2012 110 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.9.8 Order Mass Cancel Report (Msg Type = r) Mensaje de respuesta a una solicitud de cancelación masiva de órdenes. Informa de la aceptación o rechazo de la solicitud. Para asegurar que las cancelaciones han sido procesadas debe esperarse la recepción de los correspondientes Execution Report. Tag 11 Nombre Standard Header ClOrdID Req S N 37 OrderID S 530 MassCancelRequestType S 7 Char 531 MassCancelResponse S Char 532 MassCancelRejectReason N 0 = Cancel Request Rejected 7 = Cancel all orders that match criteria 1 = Invalid or unknown Security 4 = Invalid or unknown CFICode 99 = other 58 Text N Standard Trailer S 30 de julio de 2012 Valores válidos MsgType = r Formato Descripción String(30 ) ClOrdID especificado en el mensaje Order Mass Cancel Request Identificador único para el mensaje Order Mass Cancel Request asignado por MEFF Contiene el mismo valor que se especificó en la solicitud Contiene 7 si la cancelación fue aceptada. Contiene 0 si fue rechazada. Si el valor es 0, el campo MassCancelRejectReason contiene el motivo de rechazo Motivo de rechazo. Presente si MassCancelResponse = 0. Si el valor es 99, el campo Text contiene un texto explicativo del motivo de rechazo String String String © MEFF 2012 Texto explicativo del motivo de rechazo 111 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones 8.9.9 Order Mass Status Request (Msg Type = AF) Mensaje enviado por el cliente para solicitar el estado de las órdenes que cumplen unos ciertos criterios de selección. Téngase en cuenta que el bloque Parties del mensaje no es parte de los criterios de selección y refiere al originador del mensaje. Consúltese 4.3, para más información sobre el bloque Parties. Tag Req S S Valores válidos MsgType = AF 584 Nombre Standard Header MassStatusReqID 585 MassStatusReqType S 7 = Status for all orders Int Start <Parties> NoPartyIDs PartyID N N >0,<=2 NumInGroup String PartyIDSource N Char PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader 1 End <Parties> Account N Longitud exacta String(5) Código de cuenta. El uso del carácter comodín “?” para la selección múltiple, sólo está permitido en las cinco posiciones a la vez o en las dos últimas posiciones. En el último caso debe ser usado en ambas a la vez 55 Start <Instrument> Symbol S [N/A], código de contrato String(22) 48 SecurityID N String 22 SecurityIDSource N Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol Código de contrato. Si contiene “[N/A]” se seleccionan las órdenes sobre todos los contratos que cumplan con el resto de criterios de selección Activo subyacente del contrato 461 CFICode N String(6) 200 MaturityMonthYear N Longitud exacta. Consúltese 4.5.1 para una lista de valores posibles YYYYMM o YYYYMMDD o YYYYMMwW Requerido si se ha especificado SecurityID Tipo de contrato Month-Year Vencimiento del contrato 54 End <Instrument> Side N 1 = Buy 2 = Sell Char Criterio de selección de órdenes compradoras o 453 448 447 452 30 de julio de 2012 © MEFF 2012 Formato Descripción String(10) Identificador único de este mensaje Order Mass Status Request Ignorado por MEFFGate, ya que sólo se seleccionan las órdenes que cumplen los criterios de selección Char String Código de miembro u operador Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs 112 MEFFGate Negociación - Especificaciones de la Interfaz FIX 8. Gestión de Órdenes e información de operaciones vendedoras Standard Trailer 30 de julio de 2012 S © MEFF 2012 113 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9. Gestión de Quotes 9.1 Introducción La funcionalidad de un quote agrupa varias funciones: Entrada de quotes Modificación de quotes Cancelación de quotes Notificación de ejecución de quotes Solicitud de información del estado de quotes Configuración de parámetros del quote: Cuenta y delta protection Consulta de parámetros del quote Cada una de estas funciones se trata en un apartado separado dentro de este capítulo. Para cada función se describe el método de uso, la lista de mensajes relacionados, los flujos de mensajes y las adiciones o acotaciones aplicadas en esta implementación. Al final del capítulo se presenta la descripción detallada de todos los mensajes incluidos en este capítulo. 30 de julio de 2012 © MEFF 2012 114 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.2 Entrada de quotes 9.2.1 Descripción El cliente FIX usa esta funcionalidad para solicitar el alta de quotes en el sistema de negociación. Sólo se permite un quote por contrato para cada conexión cliente al MEFFGate. Si se envía un segundo quote para este mismo contrato (sea de la misma cuenta o no), MEFFGate cancelará el quote anterior y aceptará (o rechazará) el nuevo. La aplicación cliente puede enviar un quote parcial (sólo la parte compradora o vendedora). En este caso, sólo se informará la parte correspondiente del quote que se desea dar de alta (BidPx/BidSize o OfferPx/OfferSize) y en la otra parte se asumirá volumen cero, por lo que se anularía cualquier notificación previa. Una vez el quote ha sido aceptado, puede ser modificado, cancelado o ejecutado. Estos temas son tratados en detalle en otros apartados de este mismo capítulo. La aplicación cliente debe contemplar la posibilidad de que pueda recibir un quote aceptado sólo en la parte compradora o la vendedora y rechazado en la otra parte, por ejemplo debido a límites de precios. Si se produce cualquier tipo de desconexión los quotes pendientes son automáticamente cancelados por MEFFGate. 9.2.2 Lista de mensajes Mensaje Descripción Quote (Msg Type = S) Usado por el cliente para solicitar el alta de un quote Enviado por MEFF para confirmar o rechazar el alta del quote Quote Status Report (Msg Type = AI) 30 de julio de 2012 © MEFF 2012 115 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.2.3 Flujo de mensajes Entrada de un Quote completamente aceptada por MEFFGate y los sistemas centrales MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a BidPx[132], OfferPx[133], BidSize[134], OfferSize[133] Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 0 (Accepted) OrdStatus1 [39] = 0 (Accepted) OrdStatus2 [39] = 0 (Accepted) Entrada de un Quote parcialmente aceptada por el host central MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 0 (Accepted) OrdStatus1 [39] = 8 (Rejected) OrdStatus2 [39] = 0 (Accepted) 30 de julio de 2012 © MEFF 2012 116 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes Entrada de un quote parcial (sólo la parte vendedora) completamente aceptada por MEFFGate y los sistemas centrales de MEFF MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a OfferPx[133], OfferSize[133] Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 0 (Accepted) NoSides [552] = 1 Side [54] = 2 (Sell) OrdStatus [39] = 0 (Accepted) Entrada de un quote rechazada por MEFFGate MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 5 (Rejected) Entrada de un quote aceptada por MEFFGate y rechazado por los sistemas centrales MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 5 (Rejected) 30 de julio de 2012 © MEFF 2012 117 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes Entrada de un segundo quote correcta para un mismo contrato (el Sistema de MEFF cancela automáticamente el primer quote y acepta el segundo) MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a Symbol [55] = x Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 0 (Accepted) Quote (“S”) QuoteID [117] = b Symbol [55] = x Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 4 (Canceled All) Quote Status Report (“AI”) QuoteID [117] = b QuoteStatus [297] = 0 (Accepted) 30 de julio de 2012 © MEFF 2012 118 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes Entrada de un segundo quote errónea, rechazada por el Sistema central de MEFF, para un mismo contrato (el Sistema de MEFF cancela automáticamente ambos quotes) MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a Symbol [55] = x Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 0 (Accepted) Quote (“S”) QuoteID [117] = b Symbol [55] = x Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 4 (Canceled All) Quote Status Report (“AI”) QuoteID [117] = b QuoteStatus [297] = 5 (Rejected) 9.2.4 Acotaciones y adaptaciones de FIX 4.4 Se han añadido los siguientes campos opcionales al mensaje Quote Status Report: TransactTime [60], NoSides [552], Side [54], SecondaryOrderID [198], SecondaryExecID [527], OrdStatus [39], OrdRejReason [103] y LeavesQty [151] 30 de julio de 2012 © MEFF 2012 119 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.3 Modificación de quotes 9.3.1 Descripción Una vez un quote ha sido dado de alta, es posible modificar alguno de sus atributos. Los atributos modificables de un quote en MEFF son los siguientes: Precio de compra Precio de venta La solicitud de modificación se realiza con el mismo mensaje Quote que en una alta y el mismo identificador QuoteID que se usó para el quote que se quiere modificar. Como regla general, los campos especificados en el mensaje de solicitud de modificación reemplazan a los campos del quote que se está modificando. Los campos no especificados no se modifican. Una modificación de un quote rechazada por el sistema central de MEFF provoca que, además de rechazarse la modificación, se cancele automáticamente el quote existente. Las modificaciones se tratan con los mismos criterios de prioridad que se aplican para las órdenes limitadas. 9.3.2 Lista de mensajes Mensaje Descripción Quote (Msg Type = S) Usado por el cliente para solicitar la modificación de un quote Quote Status Report (Msg Type = AI) Enviado por MEFF para confirmar o rechazar la modificación del quote 30 de julio de 2012 © MEFF 2012 120 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.3.3 Flujo de mensajes Modificación de un quote rechazada por MEFFGate MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a, Symbol [55] = x Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 0 (Accepted) Quote (“S”) QuoteID [117] = a, Symbol [55] = x Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 5 (Rejected) Modificación de un Quote aceptada por MEFFGate y los sistemas centrales MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a Symbol [55] = x Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 0 (Accepted) Quote (“S”) QuoteID [117] = a Symbol [55] = x Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 0 (Accepted) 30 de julio de 2012 © MEFF 2012 121 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes Solicitud de modificación de un quote rechazada por el sistema central de MEFF (el sistema de MEFF cancela automáticamente el quote existente) MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a Symbol [55] = x Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 0 (Accepted) Quote (“S”) QuoteID [117] = a Symbol [55] = x Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 5 (Rejected) Quote Status Report (“AI”) QuoteID [117] = a QuoteStatus [297] = 4 (Cancelled All) 9.3.4 Acotaciones y adaptaciones de FIX 4.4 Se han añadido los siguientes campos opcionales al mensaje Quote Status Report: TransactTime [60], NoSides [552], Side [54], SecondaryOrderID [198], SecondaryExecID [527], OrdStatus [39], OrdRejReason [103] y LeavesQty [151] 30 de julio de 2012 © MEFF 2012 122 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.4 Cancelación de quotes 9.4.1 Descripción Esta función permite la cancelación de un quote o de un conjunto de quotes. Para cancelar un quote concreto se utiliza el mensaje Quote (Msg Type = S) especificando el mismo identificador QuoteID que se usó para el quote que se quiere cancelar y con todos los campos de precio y volumen a cero (BidPx, OfferPx, BidSize y OfferSize). Para cancelar varios quotes simultáneamente se utiliza el mensaje Quote Cancel (Msg Type = Z) mediante ciertos criterios de selección. 9.4.2 Criterios de selección Los criterios de selección de quotes a cancelar que ofrece MEFF (mediante el mensaje Quote Cancel) son los siguientes: Instrumento. Permite seleccionar los quotes asociados a cierto tipo de instrumento mediante el bloque Instrument, tal y como se describe en 4.5 Cuando no se incluye alguno de los campos de selección, el criterio no es tenido en cuenta para la selección de quotes. Por tanto, no especificar ningún criterio implica la selección de todos los quotes. 9.4.3 Lista de mensajes Mensaje Descripción Quote (Msg Type = S) Usado por el cliente para solicitar la cancelación de un quote Quote Cancel (Msg Type = Z) Solicitud de cancelación de los quotes que cumplen los criterios de selección Quote Status Report (Msg Type = AI) Enviado por MEFF para confirmar o rechazar la cancelación de uno o varios quotes 30 de julio de 2012 © MEFF 2012 123 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.4.4 Flujo de mensajes Solicitud de cancelación de un conjunto de quotes aceptada MEFFGate Client MEFFGate Server Quote Cancel (“Z”) Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteStatus [297] = 4 (Canceled All) … Solicitud de cancelación de un quote concreto aceptada MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] = a BidPx [132] = OfferPx [133] = BidSize [134] = OfferSize [135] = 0 Quote Status Report (“AI”) QuoteStatus [297] = 10 (Pending) Quote Status Report (“AI”) QuoteStatus [297] = 4 (Canceled All) 30 de julio de 2012 © MEFF 2012 124 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes Solicitud de cancelación de quotes rechazada MEFFGate Client MEFFGate Server Quote Cancel (“Z”) Quote Status Report (“AI”) QuoteStatus [297] = 5 (Rejected) 9.4.5 Acotaciones y adaptaciones de FIX 4.4 Se han añadido los siguientes campos opcionales al mensaje Quote Status Report: TransactTime [60], NoSides [552], Side [54], SecondaryOrderID [198], SecondaryExecID [527], OrdStatus [39], OrdRejReason [103] y LeavesQty [151] 30 de julio de 2012 © MEFF 2012 125 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.5 Notificación de ejecución de un quote 9.5.1 Descripción Cuando un quote es ejecutado total o parcialmente, MEFFGate informa de este hecho mediante un mensaje Execution Report con el campo ExecType = ”F” (Trade). 9.5.2 Lista de mensajes Mensaje Descripción Execution Report (Msg Type = 8) (ExecType = F) Enviado por MEFFGate para notificar la ejecución total o parcial de un quote 9.5.3 Flujo de mensajes Notificación de ejecución El cliente recibe un mensaje Execution Report, por cada ejecución parcial y total de un Quote. MEFFGate Client MEFFGate Server Quote (“S”) QuoteID [117] ... Execution Report (“8”) ExecType [150] = F (Trade), OrderID [37] = QuoteID, LastPx[31], LastQty[32] , Account [1] 9.5.4 Acotaciones y adaptaciones de FIX 4.4 No se han realizado acotaciones ni adaptaciones en los mensajes incluidos en este capítulo. 30 de julio de 2012 © MEFF 2012 126 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.6 Solicitud de información del estado de quotes 9.6.1 Descripción La solicitud de información relativa a quotes se realiza mediante el mensaje Quote Status Request. Los tipos de información ofrecidos por MEFF son: Instrumento. Permite consultar los quotes asociadas a cierto tipo de instrumento mediante el bloque Instrument, tal y como se describe en 4.5 9.6.2 Lista de mensajes Mensaje Descripción Solicitud del estado de un conjunto de quotes Quote Status Request (Msg Type = a) Información del estado de los quotes, o notificación de solicitud errónea Quote Status Report (Msg Type = AI) 9.6.3 Flujo de mensajes Solicitud de información de quotes correcta MEFFGate Client MEFFGate Server Quote Status Request (“a”) Quote Status Report (“AI”) QuoteStatus [297] = 8 (Query) Solicitud de información de quotes errónea MEFFGate Client MEFFGate Server Quote Status Request (“a”) Quote Status Report (“AI”) QuoteStatus [297] = 5 (Rejected) 9.6.4 Acotaciones y adaptaciones de FIX 4.4 No se han realizado acotaciones ni adaptaciones en los mensajes incluidos en este capítulo. 30 de julio de 2012 © MEFF 2012 127 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.7 Definición de mensajes 9.7.1 Quote (Msg Type = S) Mensaje enviado por el cliente para solicitar la entrada, modificación o cancelación de un quote en el sistema Tag Nombre Req Valores válidos Standard Header QuoteID S S MsgType = S 117 Formato Descripción String (10) Identificador único del quote. Si es una modificación el contenido de este campo será el identificador del quote que se quiere modificar 55 Start <Instrument> Symbol S Código de contrato String(22) Código de contrato. En una modificación o una cancelación debe contener el mismo valor que el quote original 132 End <Instrument> BidPx N Price Precio de compra. En una modificación, si no se especifica, el precio de compra permanece inalterado. 133 OfferPx N Price En una cancelación este campo tiene que ser cero Precio de venta. En una modificación, si no se especifica, el precio de venta permanece inalterado. 134 BidSize N Qty En una cancelación este campo tiene que ser cero Volumen de compra. En una modificación no se permite informar este campo 135 OfferSize N Qty En una cancelación este campo tiene que ser cero Volumen de venta. En una modificación no se permite informar este campo. 40 59 OrdType TimeInForce N N Standard Trailer S 30 de julio de 2012 2 = Limit 0 = Day (default value) Char Char © MEFF 2012 En una cancelación este campo tiene que ser cero Tipo de quote Periodo de validez del quote 128 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.7.2 Quote Cancel (Msg Type = Z) Mensaje enviado por el cliente para solicitar la cancelación de los quotes que cumplen unos ciertos criterios de selección. Tag Req S S Valores válidos MsgType = Z 117 Nombre Standard Header QuoteID 298 QuoteCancelType S 4 = Cancel All Quotes Int Start <Parties> NoPartyIDs PartyID N N >0,<=2 NumInGroup String PartyIDSource N Char PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader N 1 NumInGroup S [N/A] o código de contrato String(22) Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol Longitud exacta. Consúltese 4.5.1 para una lista de valores posibles YYYYMM o YYYYMMDD o YYYYMMwW String 453 448 447 452 295 55 End <Parties> NoQuoteEntries Start <Instrument> Symbol 48 SecurityID N 22 461 SecurityIDSource N CFICode N 200 MaturityMonthYear N End <Instrument> Standard Trailer S 30 de julio de 2012 Formato Descripción String (10) Identificador único de este mensaje Quote Cancel Int String Código de miembro u operador cuyos quotes se desea cancelar Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs Código de contrato. Si contiene “[N/A]” se seleccionan los quotes que cumplen con el resto de criterios de selección Activo subyacente del contrato String(6) Requerido si se ha especificado SecurityID Tipo de contrato Month-Year Vencimiento del contrato © MEFF 2012 129 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.7.3 Quote Status Request (Msg Type = a) Mensaje enviado por el cliente para consultar al estado de los quotes que cumplen unos ciertos criterios de selección. Tag 649 Nombre Standard Header QuoteStatusReq ID Req S 55 S 48 SecurityID N 22 SecurityIDSourc e CFICode N MaturityMonthYe ar N 200 453 448 447 452 Formato Descripción String(10) Identificador de la solicitud. Presente cuando la solicitud es un mensaje Quote Status Request [N/A] o código de contrato Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol Longitud exacta. Consúltese 4.5.1 para una lista de valores posibles YYYYMM o YYYYMMDD o YYYYMMwW String(22) Código de contrato. Si contiene “[N/A]” se seleccionan los quotes que cumplen con el resto de criterios de selección Activo subyacente del contrato NumInGroup String N Start <Instrument> Symbol 461 Valores válidos MsgType = a N End <Instrument> Start <Parties> NoPartyIDs PartyID N N >0,<=2 PartyIDSource N PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader End <Parties> Standard Trailer S 30 de julio de 2012 String String String(6) Requerido si se ha especificado SecurityID Tipo de contrato Month-Year Vencimiento del contrato Char Int © MEFF 2012 Código de miembro u operador propietario de los quotes Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs 130 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.7.4 Quote Status Report (Msg Type = AI) Mensaje enviado por MEFFGate para notificar el estado de uno o varios quotes. También usado para rechazar una solicitud no válida relacionada con quotes. Tag 649 Nombre Standard Header QuoteStatusReqI D Req S N Valores válidos MsgType = AI Formato Descripción String Identificador de la solicitud. 117 QuoteID S 537 QuoteType Start <Parties> NoPartyIDs PartyID N 1 = Tradeable Int N N >0,<=2 NumInGroup String PartyIDSource N Char PartyRole N D = Proprietary/ Custom code 13 = Order Origination Firm 11 = Order Origination Trader 55 End <Parties> Start <Instrument> Symbol S Código de contrato String(22) Código de contrato asociado al quote 1 132 End <Instrument> Account BidPx N N Longitud exacta String(5) Price 133 OfferPx N Price 134 BidSize N Qty 135 OfferSize N Qty 40 297 OrdType QuoteStatus N N Código de cuenta asociada al quote Precio de compra del quote tal y como se indicó en el mensaje Quote Precio de venta del quote tal y como se indicó en el mensaje Quote Volumen de compra del quote tal y como se indicó en el mensaje Quote Volumen de venta del quote tal y como se indicó en el mensaje Quote Tipo de quote Indica el estado del quote. En caso de rechazo (valor 5), el campo Text contiene un texto explicativo 58 Text N String 60* TransactTime N UTCTimesta mp 552* 54* NoSides Side N N 198* SecondaryOrderID N String 527* SecondaryExecID N String 453 448 447 452 30 de julio de 2012 String Presente cuando la solicitud es un mensaje Quote Status Request. Identificador único del quote enviado por el cliente en el mensaje Quote 2 = Limit 0 = Accepted 4 = Canceled All 5 = Rejected 8 = Query 9 = Quote not found 10 = Pending 1, 2 1 = Buy 2 = Sell Int Char Int NumInGroup Char © MEFF 2012 Código de miembro u operador Requerido si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Requerido si se ha especificado NoPartyIDs Si QuoteStatus = 5 contiene un texto explicativo del rechazo Hora en que se produjo la transacción asociada a este mensaje Quote Status Report. Este campo no está presente cuando QuoteStatus es igual a 10 Posición que toma la parte en el quote Identificador de la parte compradora o vendedora del quote tal y como se asignó por los sistemas centrales de MEFF o de otro mercado Número de historia de la parte compradora o vendedora del quote tal y como se asignó por los sistemas 131 MEFFGate Negociación - Especificaciones de la Interfaz FIX 39* OrdStatus N 103* OrdRejReason N 151* LeavesQty N 0 = New 1 = Partially Filled 2 = Filled 4 = Cancelled 6 = Pending Cancel 8 = Rejected A = Pending New E = Pending Replace 0 = Exchange option 3 = Order exceeds limit (price or volume filters) 12 = Surveillance option 99 = Other 100 = Desconexión de la aplicación cliente 101 = Sustitución por nuevo quote 102= Falta configuración parámetros Quote 103 = No tiene permiso para entrar/gestionar quotes 104= Delta protection 9. Gestión de Quotes Char Int centrales de MEFF o de otro mercado. Cada vez que se produce un nuevo suceso en la vida de la parte compradora o vendedora del quote (modificación, ejecución o cancelación) se asigna un nuevo valor a este campo. Informa del estado actual de la parte compradora o vendedora del quote Motivo de rechazo o cancelación. Presente si OrdStatus = 4 ó 8 Qty Volumen pendiente de la parte compradora o vendedora del quote. Contiene 0 cuando OrdStatus = 4 (Cancelled) Standard Trailer 30 de julio de 2012 S © MEFF 2012 132 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.8 Delta protection y configuración de la cuenta para quotes 9.8.1 Introducción Esta funcionalidad permite a los clientes de MEFFGate definir los valores que se van a tener en cuenta para la configuración de la cuenta utilizada en el mensaje Quote y de la delta protection para sus quotes y órdenes. Estos valores son: Cuenta Periodo de tiempo en que actúa la delta protection Motivos de cancelación de la delta protection. Se establecen tres límites que actúan de forma independiente dentro del periodo de tiempo establecido: o Volumen total de contratos ejecutados o Delta: abs[Volumen de (Compra de calls + Venta de puts + Compra de Futuros) – (Venta de calls + Compra de puts – Venta de Futuros)] o abs[Volumen de compras – Volumen de ventas] MUY IMPORTANTE: A partir de la versión 9.50 está disponible la funcionalidad de la delta protection. 9.8.2 Delta Protection: Descripción Cada cliente de MEFFGate podrá activar esta protección para sus quotes y órdenes, en un activo subyacente y tipo de contrato, del modo siguiente: Periodo de tiempo en que actúa la delta protection (entre 1 y 60 segundos) Motivos de cancelación de la delta protection. Se establecen tres límites que actúan de forma independiente dentro del periodo de tiempo establecido: o Volumen total de contratos ejecutados o Delta: abs[Volumen de (Compra de calls + Venta de puts + Compra de Futuros) – (Venta de calls + Compra de puts – Venta de Futuros)] o abs[Volumen de compras – Volumen de ventas] Un valor de cero en alguno de estos tres límites indica que el sistema central de MEFF no va a efectuar este control en concreto. Para desactivar el control por delta protection se deberá cumplimentar con cero el parámetro “periodo de tiempo en que actúa la delta protection”. Después de cada ejecución se comprueba si se ha sobrepasado cualquiera de los tres controles definidos en la delta protection, en cuyo caso el sistema central de MEFF efectuará las cancelaciones de todas las órdenes y quotes vivas del operador de este activo subyacente y tipo de contrato con el fin de proteger del posible tratamiento de transacciones en vuelo. No se admitirán nuevas órdenes ni quotes, en el correspondiente activo subyacente, tipo de contrato y cuenta, hasta que el cliente de MEFFGate vuelva a enviar un nuevo mensaje estableciendo el nuevo límite con RegistTransType [514] = 0 (New). El envío de este mensaje implica poner a cero todos los contadores de operaciones en el correspondiente activo subyacente y tipo de contrato. 9.8.3 Campo RegistID El campo RegistID, presente en una solicitud iniciada con un mensaje Registration Instructions, es el identificador que permite relacionar la petición con los mensajes Registration Instructions Response de respuesta. 30 de julio de 2012 © MEFF 2012 133 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes El campo RegistID asignado por el cliente debe ser de diez caracteres de longitud. Si la longitud fuese inferior, MEFFGate completa con espacios por detrás hasta llegar a dicha longitud. MEFFGate también acepta que los mensajes enviados por el cliente usen un RegistID de longitud 30, en este caso sólo las 10 últimas posiciones pueden ser fijadas libremente, ya que las 20 primeras deben coincidir con el formato que se presenta a continuación. Envío de mensaje sin especificar el prefijo Cliente MEFFGate 10 Registration Instructions RegistID = 20 Registration Instructions Response RegistID = Registration Instructions Response RegistID = 10 ... Envío de mensaje especificando el prefijo Cliente MEFFGate Registration Instructions RegistID = Registration Instructions Response RegistID = Registration Instructions Response RegistID = 20 10 20 10 ... - Prefijado del identificador RegistID - MEFFGate realiza un proceso de prefijado del campo RegistID para evitar duplicados en este identificador. El RegistID asignado por MEFFGate en el mensaje de respuesta tiene AAMMDDMmmmTttMmmmTttNnnnnnnnnn, formado con la siguiente codificación: el formato AAMMDD. Es la fecha de la sesión de cámara MmmmTtt. Contiene el código de miembro y operador de conexión desde el que se realizó la solicitud Nnnnnnnnnn. Es el valor asignado por la aplicación cliente a RegistID en el mensaje original Un operador que quiera modificar o cancelar una referencia o un filtro de Give-up, debe usar este identificador en el campo RegistRefID del mensaje Registration Instructions de solicitud. 30 de julio de 2012 © MEFF 2012 134 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.8.4 Lista de mensajes Mensaje Descripción Registration Instructions (Msg Type = o) Usado por el cliente para gestionar los parámetros parámetros de Delta protection y configuración de la cuenta para quotes Registration Instructions Response (Msg Type = p) Enviado por MEFF para confirmar o rechazar la petición de gestión de parámetros de Delta protection y configuración de la cuenta para quotes 9.8.5 Flujo de mensajes Solicitud correcta MEFFGate Client MEFFGate Server Registration Instructions (“o”) PartySubID [523] = QUOTE Registration Instructions Response (“p”) RegistStatus[506] = A (Accepted) Solicitud errónea MEFFGate Client MEFFGate Server Registration Instructions (“o”) PartySubID [523] = QUOTE Registration Instructions Response (“p”) RegistStatus[506] = R (Rejected) 9.8.6 Acotaciones y adaptaciones de FIX 4.4 En el mensaje Registration Instructions, los campos NoPartyIDs (453) y NoPartySubIDs (802) han pasado a ser requeridos Se ha añadido el campo Text (58) al mensaje Registration Instructions Response Se ha añadido el bloque Instrument como requerido al mensaje Registration Instructions Se han añadido los bloques Instrument y Stipulations al mensaje Registration Instructions Response 30 de julio de 2012 © MEFF 2012 135 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.8.7 Definición de mensajes 9.8.7.1 Registration Instructions (Msg Type = o) Mensaje enviado por el cliente para gestionar los parámetros de parámetros de Delta protection y configuración de la cuenta para quotes para los futuros y las opciones de un activo subyacente. Tag Nombre Req Valores válidos Standard Header RegistID S S MsgType = o 513 514 RegistTransType S 0 = New 1 = Replace 2 = Cancel 508 RegistRefID N Start <Parties> NoPartyIDs PartyID S* S 2 PartyIDSource S String PartyRole S 802 523 NoPartySubIDs S* D = Proprietary / Custom code 13 = Order Origination Firm 11 = Order Origination Trader 1 PartySubID S QUOTE = Delta protection y configuración de la cuenta para quotes String 803 PartySubIDType S Int Este campo es requerido por el estándar. MEFFGate acepta que este campo no esté presente 1 End <Parties> Account S* String (5) Cuenta a aplicar para los próximos quotes de futuros u opciones de este activo subyacente para este código de Miembro-Operador (Order Origination Firm-Order Origination Trader) 55* 48* Start <Instrument> Symbol SecurityID S S* 22* SecurityIDSource S* 461* CFICode S* 453 448 447 452 Formato Descripción String Identificador único para cada mensaje Registration Instructions Char String NumInGroup String [N/A] Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol FFXXSX OXXXXS FMXXXX Identificador del mensaje Registration Instructions que es reemplazado o cancelado por este mensaje. Requerido cuando RegistTransType = 1ó2 Código de Miembro y Operador para el que va a actuar esta configuración Int NumInGroup String String Activo subyacente del contrato String String (6) Tipo de contrato End <Instrument> Start <Stipulations> 30 de julio de 2012 © MEFF 2012 136 MEFFGate Negociación - Especificaciones de la Interfaz FIX 232* 233* NoStipulations StipulationType S* S* TIMEDP= Periodo de tiempo para la delta protection 9. Gestión de Quotes NumInGroup String VOLUMEMAX= Volumen total de contratos ejecutados ABSDELTAMAX = Delta resultante 234* StipulationValue S* DELTAMAX= Saldo de contratos un valor numérico, >= 0, sin decimales String Si StipulationType = “TIMEDP”, es el periodo de tiempo a aplicar para los controles de la delta protection de futuros u opciones de este activo subyacente para este código de Miembro-Operador (Order Origination Firm-Order Origination Trader). Es un valor expresado en segundos (>1, <=60). Si no se desea ningún control de la delta protection hay que cumplimentar este campo con 0 (cero). Si StipulationType = “VOLUMEMAX”, es el volumen total de contratos ejecutados, acumulados en el periodo de tiempo, de futuros u opciones de este activo subyacente para este código de Miembro-Operador (Order Origination Firm-Order Origination Trader). Si no se desea activar este control de la delta protection hay que cumplimentar este campo con 0 (cero). Si StipulationType = “ABSDELTAMAX”, es la delta resultante máxima, acumulada en el periodo de tiempo, de futuros u opciones de este activo subyacente para este código de MiembroOperador (Order Origination FirmOrder Origination Trader). Si no se desea activar este control de la delta protection hay que cumplimentar este campo con 0 (cero). Si StipulationType = “DELTAMAX”, es el saldo neto resultante (compras – ventas), acumulado en el periodo de tiempo, de futuros u opciones de este activo subyacente para este código de Miembro-Operador (Order Origination Firm-Order Origination Trader). Si no se desea activar este control de la delta protection hay que cumplimentar este campo con 0 (cero). End <Stipulations> Standard Trailer 30 de julio de 2012 S © MEFF 2012 137 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9.8.7.2 9. Gestión de Quotes Registration Instructions Response (Msg Type = p) Mensaje usado por MEFFGate para indicar el estado de la petición iniciada con un mensaje Registration Instructions. Este mensaje sólo es enviado al operador que realizó la solicitud relacionada. Tag Nombre Req Valores válidos Standard Header RegistID S S MsgType = p 513 514 RegistTransType S 0 = New 1 = Replace 2 = Cancel 508 RegistRefID N String Start <Parties> NoPartyIDs PartyID N N NumInGroup String PartyIDSource N PartyRole N 802 523 NoPartySubIDs N PartySubID S 803 PartySubIDType S Int El contenido de este campo no debe ser tenido en cuenta, está presente por requerimiento del estándar 1 End <Parties> Account N String Cuenta a aplicar para los próximos quotes de futuros u opciones de este activo subyacente para este código de Miembro-Operador (Order Origination Firm-Order Origination Trader) 55* 48* Start <Instrument> Symbol SecurityID S N 22* SecurityIDSource N 461* CFICode N 232* End <Instrument> Start <Stipulations> NoStipulations N 453 448 447 452 30 de julio de 2012 Formato Descripción String Identificador asignado por el cliente en el mensaje Registration Instructions Char D = Proprietary / Custom code 13 = Order Origination Firm 11 = Order Origination Trader 1 String QUOTE = Delta protection y configuración de la cuenta para quotes String [N/A] Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange Symbol FFXXSX OXXXXS FMXXXX Identificador del mensaje Registration Instructions que es reemplazado o cancelado por este mensaje. Presente cuando RegistTransType = 1 ó 2 Código de Miembro y Operador para el que actúa esta configuración Int NumInGroup String String Activo subyacente del contrato String String (6) Tipo de contrato NumInGroup © MEFF 2012 138 MEFFGate Negociación - Especificaciones de la Interfaz FIX 233* StipulationType N TIMEDP= Periodo de tiempo para la delta protection 9. Gestión de Quotes String VOLUMEMAX= Volumen total de contratos ejecutados ABSDELTAMAX = Delta resultante DELTAMAX= Saldo de contratos 234* StipulationValue N String Si StipulationType = “TIMEDP”, es el periodo de tiempo a aplicar para los controles de la delta protection de futuros u opciones de este activo subyacente para este código de Miembro-Operador (Order Origination Firm-Order Origination Trader). Es un valor expresado en segundos (>1, <=60). Si no se desea ningún control de la delta protection hay que cumplimentar este campo con 0 (cero). Si StipulationType = “VOLUMEMAX”, es el volumen total de contratos ejecutados, acumulados en el periodo de tiempo, de futuros u opciones de este activo subyacente para este código de Miembro-Operador (Order Origination Firm-Order Origination Trader). Si no se desea activar este control de la delta protection hay que cumplimentar este campo con 0 (cero). Si StipulationType = “ABSDELTAMAX”, es la delta resultante máxima, acumulada en el periodo de tiempo, de futuros u opciones de este activo subyacente para este código de MiembroOperador (Order Origination FirmOrder Origination Trader). Si no se desea activar este control de la delta protection hay que cumplimentar este campo con 0 (cero). Si StipulationType = “DELTAMAX”, es el saldo neto resultante (compras – ventas), acumulado en el periodo de tiempo, de futuros u opciones de este activo subyacente para este código de Miembro-Operador (Order Origination Firm-Order Origination Trader). Si no se desea activar este control de la delta protection hay que cumplimentar este campo con 0 (cero). 506 End <Stipulations> RegistStatus 30 de julio de 2012 S A = Accepted R = Rejected Char © MEFF 2012 Estado de la petición del mensaje Registration Instructions. En caso de rechazo (valor “R”), el 139 MEFFGate Negociación - Especificaciones de la Interfaz FIX 58* Text N Standard Trailer S 30 de julio de 2012 9. Gestión de Quotes String © MEFF 2012 campo Text contiene un texto explicativo Cuando RegistStatus = “R”, contiene una descripción específica del motivo de rechazo 140 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.9 Consulta de parámetros de Delta protection y configuración de la cuenta para quotes 9.9.1 Descripción La aplicación cliente puede solicitar la consulta de parámetros de Delta protection y configuración de la cuenta para quotes mediante el mensaje Registration Instructions. Como respuesta a esta petición se reciben varios mensajes Registration Instructions Response, uno para cada activo subyacente y tipo de contrato, con la información disponible en este momento en el sistema. 9.9.2 Lista de mensajes Mensaje Descripción Registration Instructions (Msg Type = o) Usado por el cliente para solicitar la consulta de parámetros de Delta protection y configuración de la cuenta para quotes Registration Instructions Response (Msg Type = p) Enviado por MEFFGate para confirmar o rechazar la consulta de parámetros de Delta protection y configuración de la cuenta para quotes 9.9.3 Flujo de mensajes Solicitud correcta MEFFGate Client MEFFGate Server Registration Instructions (“o”) SubscriptionRequestType = 0 (Snaphot) Registration Instructions Response (“p”) RegistStatus[506] = A (Accepted) … Solicitud errónea MEFFGate Client MEFFGate Server Registration Instructions (“o”) SubscriptionRequestType = 0 (Snaphot) Registration Instructions Response (“p”) RegistStatus[506] = R (Rejected) 30 de julio de 2012 © MEFF 2012 141 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.9.4 Acotaciones y adaptaciones de FIX 4.4 Se ha añadido el campo SubscriptionRequestType (263) al mensaje Registration Instructions Se han añadido los campos LastRptRequested (912) y Text (58) al mensaje Registration Instructions Response En el mensaje Registration Instructions, el campo NoPartyIDs (453) ha pasado a ser requerido Se han añadido los bloques Instrument y Stipulations al mensaje Registration Instructions Response 30 de julio de 2012 © MEFF 2012 142 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9. Gestión de Quotes 9.9.5 Definición de mensajes 9.9.5.1 Registration Instructions (Msg Type = o) Mensaje enviado por el cliente para consultar los parámetros de Delta protection y configuración de la cuenta para quotes Tag Nombre Req Valores válidos Standard Header RegistID S S MsgType = o 513 514 RegistTransType S Start <Parties> NoPartyIDs PartyID S* S 2 PartyIDSource S String PartyRole S D = Proprietary / Custom code 13 = Order Origination Firm 11 = Order Origination Trader End <Parties> SubscriptionReques tType N 0 = Snasphot Char Standard Trailer S 453 448 447 452 263* 30 de julio de 2012 Formato Descripción String Identificador único para cada mensaje Registration Instructions MEFFGate no tiene en cuenta el valor de este campo cuando viene informado el tag SubscriptionRequestType[263] Char NumInGroup String Código de Miembro y Operador para el que actúa esta configuración Int © MEFF 2012 Si se informa este campo, MEFFGate interpreta que se desea una consulta de los parámetros del quote existentes para este Miembro-Operador y no va a tener en cuenta el resto de campos de este mensaje 143 MEFFGate Negociación - Especificaciones de la Interfaz FIX 9.9.5.2 9. Gestión de Quotes Registration Instructions Response (Msg Type = p) Mensaje usado por MEFFGate para indicar el estado de la petición iniciada con un mensaje Registration Instructions. Este mensaje sólo es enviado al operador que realizó la solicitud relacionada. Tag Nombre Req Valores válidos Standard Header RegistID S S MsgType = p 513 514 912* RegistTransType LastRptRequested S N 0 = New Y = Last message N = Not last message 506 … <Parties> Account <Instrument> <Stipulations> … RegistStatus S 58* Text N Standard Trailer S 30 de julio de 2012 Formato Descripción String Identificador asignado por el cliente en el mensaje Registration Instructions Char Boolean Información específica del registro A = Accepted R = Rejected Char String © MEFF 2012 Estado de la petición del mensaje Registration Instructions. En caso de rechazo (valor “R”), el campo Text contiene un texto explicativo Cuando RegistStatus = “R”, contiene una descripción específica del motivo de rechazo 144 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. 10. Aplicaciones Aplicaciones 10.1 Introducción En este capítulo se describen los mecanismos ofrecidos por la interfaz MEFFGate FIX para la gestión de aplicaciones. Esta funcionalidad permite solicitar el registro de estas aplicaciones en MEFF. En las aplicaciones entre distintos miembros intervienen típicamente dos miembros y son entradas en el sistema por uno cualquiera de los dos o por un intermediario. Las dos partes tienen que aceptar explícitamente la operación. En algunos casos, además, Supervisión de Mercado debe aceptar también la operación. Los sistemas clientes de MEFFGate que se hayan suscrito, recibirán un mensaje Trade Capture Report por cada operación que deban confirmar. Es opcional que envíen como respuesta un mensaje Trade Capture Report Ack (MEFFGate los ignora). El sistema cliente puede rechazar la operación o aceptarla, en cuyo caso deberá enriquecer la información incluyendo el código de cliente al que debe asignarse la operación. Todo ello se realiza mediante el mensaje Trade Capture Report que, una vez más, es contestado por MEFFGate con un Trade Capture Report Ack. El solicitante del registro de una aplicación utiliza el mensaje Trade Capture Report. MEFFGate siempre responde con un mensaje Trade Capture Report Ack con los mismos datos de la petición y una indicación del estado en que queda. Los sistemas cliente de MEFFGate que deseen recibir las notificaciones de estas aplicaciones deberán solicitar la recepción de Trade Capture Reports, mediante el mensaje Trade Capture Report Request, que es contestado por MEFFGate mediante un Trade Capture Report Request Ack. Como es habitual en FIX, esta solicitud de recepción se puede hacer en modo “foto” (snapshot) o en modo “foto + actualizaciones” (snapshot + updates). Cada vez que se produzca una modificación en el estado de una operación, MEFFGate notificará con mensajes Trade Capture Report a todas las partes implicadas: comprador, vendedor y, en su caso, intermediario. En todo caso, MEFFGate nunca informa sobre el código de cliente o la referencia más que a la parte interesada (comprador o vendedor). Algunas aplicaciones, una vez aceptadas por ambas partes, deben ser aceptadas por Supervisión. En el momento en que Supervisión las acepte o las rechace, todas las partes recibirán una notificación. En todo caso, para aquellas aplicaciones que sean finalmente aceptadas, se generará un mensaje Execution Report para cada una de las contrapartes. 10.2 Entrada de aplicaciones entre distintos miembros En estas aplicaciones hay tres participantes implicados: el comprador y el vendedor de la operación, y el intermediario que envía la operación a MEFFGate. Las aplicaciones a precio convenido son comunicadas a MEFFGate mediante el mensaje Trade Capture Report. Cada uno de los participantes se identifica por el código de miembro. Para identificar un un contrato no estándar (flexible) se debe usar la siguiente combinación en la funcionalidad de aplicaciones: SecurityID [48] + CFICode[461] + MaturityDate [541] + ContractMultiplier [231] + StrikePrice [202]. En este caso, cuando proceda, el sistema central asignará un código siguiendo los criterios establecidos y cumplimentará estos campos en todos los mensajes asociados (Trade Capture Report y Trade Capture Report Ack). Una vez la operación ha sido enviada a MEFFGate, ésta puede ser cancelada o modificada por el emisor, siempre y cuando aún no haya sido aceptada por la o las contrapartes. 30 de julio de 2012 © MEFF 2012 145 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones Además de un miembro externo, tanto el comprador como el vendedor pueden actuar como intermediarios. Esto lleva a cuatro posibles escenarios: Escenario Identificación de los participantes en el mensaje Intermediario, comprador y vendedor son miembros diferentes SenderCompID = Código de miembro del intermediario SenderSubID = Código del operador intermediario Buyer PartyID = Código de miembro del comprador (Buyer PartySubID = Código del operador comprador) Seller PartyID = Código de miembro del vendedor (Seller PartySubID = Código del operador vendedor) El comprador actúa como intermediario SenderCompIDID = Código de miembro del comprador SenderSubID = Código del operador comprador Buyer PartyID = Código de miembro del comprador Buyer PartySubID = Código del operador comprador Seller PartyID = Código de miembro del vendedor (Seller PartySubID = Código del operador vendedor) El vendedor actúa como intermediario SenderCompID = Código de miembro del vendedor SenderSubID = Código del operador vendedor Buyer PartyID = Código de miembro del comprador (Buyer PartySubID = Código del operador comprador) Seller PartyID = Código de miembro del vendedor Seller PartySubID = Código del operador vendedor El mismo miembro actúa como comprador, vendedor e intermediario SenderCompID = Código de miembro SenderSubID = Código de operador Buyer PartyID = Código de miembro del comprador Buyer PartySubID = Código del operador comprador Seller PartyID = Código de miembro del vendedor Seller PartySubID = Código del operador vendedor Consúltese 3.3 para más información sobre el uso de los campos SenderCompID y SenderSubID. 10.3 Aceptación de aplicaciones entre distintos miembros Si finalmente la aplicación es aceptada y ejecutada, tanto el comprador como el vendedor reciben los correspondientes mensajes Execution Report (ExecType = “F”, Trade) notificándoles la ejecución de la operación a precio convenido. Estos mensajes tendrán como código de operador el de aquél que aceptó la operación. En el campo CrossID del Execution Report se indicará el valor del SecondaryTradeReportID asignado por el sistema central. Tal y como se explicó previamente, cuando la operación a precio convenido es aceptada y ejecutada, el intermediario recibe un Trade Capture Report. El mensaje Execution Report permite identificar al intermediario de la operación mediante los roles Entering Firm y Entering Trader del bloque Parties (véase 4.3 para más información sobre el bloque Parties). 10.4 Entrada de aplicaciones dentro del mismo miembro El flujo de información en este caso no precisa de la confirmación por cada una de las partes. 30 de julio de 2012 © MEFF 2012 146 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 10.5 Precio y Efectivo total El campo GrossTradeAmt [381] indica el efectivo total de la transacción. Si este campo viene informado, este valor va a prevalecer sobre el del precio redondeado. El Sistema determinará el precio de la transacción de acuerdo con la fórmula: Pr ecio _ trans Efectivo Volumen multiplicador y comprobará que este valor Precio_trans esté acorde con el precio redondeado proporcionado por la aplicación cliente en el campo LastPx [31] del mensaje Trade Capture Report. Si no es así, la aplicación se rechazará. 10.6 Grupos de aplicaciones y aplicaciones de contado El campo TradeLinkID [820] permite agrupar diversas aplicaciones que forman parte de un mismo bloque sobre contratos de un mismo subyacente. En este caso, una de las operaciones puede referirse al contrato subyacente. Si éste está negociable en SIBE, la operación sobre el contado será notificada a los miembros de MEFF y a los miembros de SIBE (Miembro Validador), quienes serán los encargados de aceptarla o rechazarla. La aceptación final de la operación de contado queda sujeta a que también sea aceptada alguna de las correspondientes operaciones en derivados. 10.7 Lista de mensajes Mensaje Descripción Trade Capture Report Request (Msg Type = AD) Solicitud de aplicaciones pendientes de confirmar Trade Capture Report Request Ack (Msg Type = AQ) Acuse de recibo del mensaje Trade Capture Report Request Trade Capture Report (Msg Type = AE) Trade Capture Report Ack (MsgType = AR) 30 de julio de 2012 Enviado a MEFFGate para registrar, aceptar, rechazar o cancelar una aplicación. Enviado por MEFFGate para notificar a las partes sobre la situación del registro de una operación. Enviado por MEFFGate como acuse de recibo del mensaje Trade Capture Report © MEFF 2012 147 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 10.8 Flujo de mensajes Solicitud de suscripción a mensajes de aplicaciones, seguido de una cancelación de la suscripción Gate Client Gate Server Trade Capture Report Request (“AD”) SubscriptionRequestType [263] = 1 (Snapshot+Updates) Trade Capture Report Request Ack (“AQ”) TotNumTradeReports [748] = 0 TradeRequestStatus [750] = 1 (Completed) Trade Capture Report (“AE”) One message for every trade in the snapshot ... Trade Capture Report (“AE”) ... One message for every update Trade Capture Report Request (“AD”) SubscriptionRequestType [263] = 2 (Unsubscribe) Solicitud de snapshot de aplicaciones sin suscripción de actualización, sin aplicaciones que notificar Cuando no hay ninguna operación que cumpla los criterios de selección, el servidor envía un mensaje Trade Capture Report Request Ack para notificar el resultado de la petición, con un valor 0 en el campo TotNumTradeReports. Gate Client Gate Server Trade Capture Report Request (“AD”) SubscriptionRequestType [263] = 0 (Snapshot) Trade Capture Report Request Ack (“AQ”) TotNumTradeReports [748] = 0 TradeRequestStatus [750] = 1 (Completed) 30 de julio de 2012 © MEFF 2012 148 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones Solicitud de aplicaciones no válida Cuando la solicitud de aplicaciones de cámara (mensaje Trade Capture Report Request) no es válida, la solicitud es rechazada mediante un mensaje Trade Capture Report Request Ack. Gate Client Gate Server Trade Capture Report Request (“AD”) SubscriptionRequestType [263] = 0 (Snapshot) Trade Capture Report Request Ack (“AQ”) TradeRequestStatus [750] = 2 (Rejected) Una aplicación aceptada (el comprador y el vendedor son el mismo miembro) Executing Broker Buyer and Seller Gate Server Trade Capture Report (“AE”) TradeReportType[856] = 0 (Submit) Trade Capture Report Ack (“AR”) TrdRprStatus[939] = 0 Trade Capture Report (“AE”) TradeReportTransType[487] = 0 (New) MatchType[574] = 8 Trade Capture Report (“AE”) TradeReportTransType[487] = 0 (New) MatchType[574] = 9 Execution Report (“8”) CrossID[548] = SecondaryTradeReportID Side [54] = 1 Execution Report (“8”) CrossID[548] = SecondaryTradeReportID Side [54] = 2 Solicitud de aplicaciones en Derivados (entrada por un miembro distinto a las dos partes) En este ejemplo se presenta el flujo de mensajes de una operación entrada por un intermediario, que es aceptada primero por el comprador y luego por el vendedor. Finalmente es aceptada por Supervisión y se generan los correspondientes mensajes Execution Report. 30 de julio de 2012 © MEFF 2012 149 MEFFGate Negociación - Especificaciones de la Interfaz FIX Executing Broker 10. Aplicaciones Trade Capture Report (“AE”) Gate Server TradeReportType[856] = 0 (Submit) Buyer Trade Capture Report Ack (“AR”) Seller TrdRprStatus[939] = 0 Trade Capture Report (“AE”) TradReportTransType[487] = 0 (New), MatchType[574] = 0 Trade Capture Report (“AE”) TradeReportType[856] = 2 (Accept) Trade Capture Report Ack (“AR”) TrdRprStatus[939] = 0 Trade Capture Report (“AE”) TradeReportTransType[487] = 2 (Replace), MatchType[574] = 1 Trade Capture Report (“AE”) TradeReportType[856] = 2 (Accept) Trade Capture Report Ack (“AR”) TrdRprStatus[939] = 0 Trade Capture Report (“AE”) TradeReportTransType[487] = 2 (Replace), MatchType[574] = 3 Accepted by Supervisor Trade Capture Report (“AE”) TradeReportTransType[487] = 2 (Replace), MatchType[574] = 8 Trade Capture Report (“AE”) TradeReportTransType[487] = 2 (Replace), MatchType[574] = 9 Execution Report (“8”) CrossID[548] = SecondaryTradeReportID Solicitud de aplicaciones en Contado En este ejemplo aparece la figura del Miembro Validador, que es quien acepta la operación (en la parte que le corresponda: compra o venta). El comprador y vendedor reciben la información del estado de la aplicación en todo momento. 30 de julio de 2012 © MEFF 2012 150 MEFFGate Negociación - Especificaciones de la Interfaz FIX Executing Broker Authenticating Buyer Firm 10. Aplicaciones Trade Capture Report (“AE”) Gate Server TradeReportType[856] = 0 (Submit) Trade Capture Report Ack (“AR”) Authenticating Seller Firm TrdRprStatus[939] = 0 Trade Capture Report (“AE”) Seller Buyer TradReportTransType[487] = 0 (New), MatchType[574] = 0 Trade Capture Report (“AE”) TradeReportType[856] = 2 (Accept) Trade Capture Report Ack (“AR”) TrdRprStatus[939] = 0 Trade Capture Report (“AE”) TradeReportTransType[487] = 2 (Replace), MatchType[574] = 1 Trade Capture Report (“AE”) TradeReportType[856] = 2 (Accept) Trade Capture Report Ack (“AR”) TrdRprStatus[939] = 0 Trade Capture Report (“AE”) TradeReportTransType[487] = 2 (Replace), MatchType[574] = 3 Accepted by Supervisor Trade Capture Report (“AE”) TradeReportTransType[487] = 2 (Replace), MatchType[574] = 8 Trade Capture Report (“AE”) TradeReportTransType[487] = 2 (Replace), MatchType[574] = 9 Execution Report (“8”) CrossID[548] = SecondaryTradeReportID 30 de julio de 2012 © MEFF 2012 151 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 10.9 Acotaciones y adaptaciones de FIX 4.4 En el mensaje Trade Capture Report Request sólo se permiten algunos de los criterios de selección contemplados por el estándar No se permite la modificación de peticiones de registro de operación. En caso de error, se debe cancelar y volver a cursar la petición El máximo número de suscripciones vivas permitidas está limitada (ver capítulo 4.7 para más información) 30 de julio de 2012 © MEFF 2012 152 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 10.10 Definición de mensajes 10.10.1 Trade Capture Report Request (Msg Type = AD) Mensaje enviado por el cliente para solicitar información de las aplicaciones. Permite la solicitud con o sin suscripción a nuevas aplicaciones. Tag Req S S Valores válidos MsgType = AD 568 Nombre Standard Header TradeRequestID 569 263 TradeRequestType SubscriptionRequestType S N 0 = All trades 0 = Snapshot (valor por defecto) 1 = Snapshot + Updates 2 = Unsubscribe Standard Trailer S 30 de julio de 2012 © MEFF 2012 Formato Descripción String (10) Identificador de la solicitud asignado por el usuario. Debe ser un valor único cuando se trate de una petición nueva, y el valor asignado previamente cuando se trate de una finalización de suscripción Int Char Indica si la petición es solicitud, con o sin suscripción o si bien si trata de una cancelación de una petición previa 153 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 10.10.2 Trade Capture Report Request Ack (Msg Type = AQ) Mensaje usado para notificar que un mensaje Trade Capture Report Request no es válido o que no hay ninguna operación que cumpla los criterios de selección. Tag 568 Nombre Standard Header TradeRequestID Req S S 569 TradeRequestType S 263 SubscriptionRequestType N 748 TotNumTradeReports N 749 TradeRequestResult S 750 TradeRequestStatus S 58 Text N Standard Trailer S 30 de julio de 2012 Valores válidos MsgType = AQ Formato Descripción String Identificador especificado en el mensaje de solicitud Trade Capture Report Request correspondiente Mismo valor que se especificó en la solicitud El mismo valor que se especificó en la solicitud Int 0 = Snapshot (valor por defecto) 1 = Snapshot + Updates 2 = Unsubscribe Char Int 0 = Successful 2 = Invalid TradeRequestTyp e 99 = other 1 = Completed 2 = Rejected Int Int String © MEFF 2012 Número de operaciones que contiene la selección. Resultado de la petición Cuando el valor es 99, el campo Text contiene un texto explicativo Estado de la petición. Cuando se informa de un error el valor es 2, cuando no hay aplicaciones que cumplan los criterios el valor es 1 Contiene un texto explicativo del motivo de rechazo 154 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 10.10.3 Trade Capture Report (Msg Type = AE) enviado a MEFFGate Mensaje que contiene los datos de una operación para registro. Tag Req S S Valores válidos MsgType = AE 571 Nombre Standard Header TradeReportID 856 TradeReportType S* 0 = Submit 2 = Accept 3 = Decline 6 = Trade Report Cancel Formato Descripción String (10) Identificador único para cada mensaje Trade Capture Report Debe ser único en una sesión FIX. Tipo de Trade Report: Int 0 (Submit): es el valor que debe indicar quien envía el mensaje por primera vez. 2 (Accept): es el valor que debe enviar la contraparte, junto con los datos del cliente, para indicar la aceptación de la operación. 3 (Decline): Es el valor que debe indicar la contraparte para indicar el rechazo de la operación 6 (Cancel): Es el valor que debe indicar el iniciador para cancelar la solicitud de entrada de la operación Usado por el cliente de MEFFGate FIX para asociar un grupo de aplicaciones Obligatorio excepto para nuevas aplicaciones. Ha de contener el valor notificado por MEFFGate en el campo SecondaryTradeReportID [818] de los mensajes Trade Capture Report o Trade Capture Report Ack. Se utiliza como referencia única de la petición de registro de operación a lo largo de toda su historia. Indica si la operación fue notificada a la contrapartida 820 TradeLinkID N String 881 SecondaryTradeReportRefID N String 570 PreviouslyReported S N,Y Boolean 55 Start <Instrument> Symbol S String Código de contrato o [N/A] 48 SecurityID N String Activo subyacente del contrato 22 SecurityIDSource N String 461 CFICode N Código de contrato, [N/A] Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange symbol Longitud exacta. Consúltese la Tabla 16 en Requerido si SecurityID [48] está informado Tipo de contrato según el estándar ISO 10962 30 de julio de 2012 © MEFF 2012 String(6) 155 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones documento “Tablas de Codificación” para una lista de los valores posibles 541 MaturityDate N 202 231 StrikePrice ContractMultiplier N N 32 End <Instrument> LastQty S 31 LastPx S 552 NoSides S 1, 2 54 Side S 37 OrderID Start <Parties> S 1 = Buy 2 = Sell NONE 453 NoPartyIDs N 448 447 452 PartyID N PartyIDSource N PartyRole N 80 2 NoPartySubIDs >= 0, sin decimales PartySubID N 803 PartySubIDType N Fecha de vencimiento Qty Volumen comprado/vendido en la operación que se describe Precio medio de la operación que se describe. En caso de que la operación se exprese por un importe efectivo, GrossTradeAmt [381], debe ser el precio de la transacción redondeado. Price NumInGro up Char D = Proprietary/ Custom code 4 = Miembro Validador 13 = Order Origination Firm 11 = Order Origination Trader 7 = Entering Firm 36 = Entering Trader Char Int Posición que toma la parte en la operación. No es necesario informar este bloque en el caso de una aplicación Número de identificadores Código de miembro o de operador Presente si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Presente si se ha especificado NoPartyIDs. El Miembro Validador (PartyRole=4) sólo es necesario para operaciones de contado. NumInGro up String 7 = Phone number 9 = Contact name Precio de ejercicio Indica el factor multiplicativo para convertir unidades de precio a unidades monetarias String NumInGro up String N 523 LocalMktD ate Price Float Número de subidentificadores. Este subgrupo está solo presente cuando PartyRole [452] = 11 Nombre y teléfono de contacto del operador comprador / vendedor int End <Parties> 30 de julio de 2012 © MEFF 2012 156 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 1 Account N 581 AccountType N 381 GrossTradeAmt N Amt 58 Text Standard Trailer N S String(15) 30 de julio de 2012 String 1 = Ajena 3 = Propia © MEFF 2012 Int Derivados: Código de cuenta Contado: Código de Cliente Indicador de capacidad (sólo para operaciones de contado) Efectivo de la transacción. En caso de que se informe, prevalece el valor de este campo sobre el del precio (LastPx [31]). Debe coincidir para ambas partes. Referencia 157 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 10.10.4 Trade Capture Report (Msg Type = AE) enviado por MEFFGate Mensaje que contiene los datos de una operación para la que se ha solicitado el registro y que requiere una aceptación o rechazo por parte del miembro. Tag 571 Nombre Standard Header TradeReportID Req S S 568 TradeRequestID N 487 TradeReportTransType N Valores válidos MsgType = AE 0 = New 1 = Cancel 2 = Replace Formato Descripción String Identificador único para cada mensaje Trade Capture Report String El código de suscripción a Trade Capture Reports que se utilizó en el mensaje Trade Capture Report Request. 0 (New): Indica una nueva operación. Int 1 (Cancel): Indica que la operación ha sido cancelada. 912 LastRptRequested N 325 UnsolicitedIndicator N 820 TradeLinkID N 570 PreviouslyReported S 818 SecondaryTradeReportID N Boolean N = El mensaje es parte de un snapshot Y = El mensaje es enviado como resultado de una suscripción Boolean String N,Y Boolean String 2 (Replace): Indica modificaciones en el estado de una operación previamente notificada. Por ejemplo, en el caso de una operación entrada por un intermediario, después de ser aceptada por una de las partes Indica si se trata del último mensaje del snapshot de respuesta Contiene “Y” cuando el mensaje es enviado como resultado de una suscripción, una vez finalizada la actualización inicial. Identificador enviado por el cliente de MEFFGate FIX para asociar un grupo de aplicaciones Indica si la operación fue notificada a la contrapartida Referencia interna del Sistema de MEFF para la operación a registrar. Los mensajes Trade Capture Report enviados por los clientes para la aceptación o rechazo de aplicaciones, deben hacer referencia al contenido de este campo en su campo SecondaryTradeReportRefI D [881] 55 Start <Instrument> Symbol S 48 SecurityID N 30 de julio de 2012 Código de contrato Para más detalle © MEFF 2012 String(22) Código de contrato String Activo subyacente del 158 MEFFGate Negociación - Especificaciones de la Interfaz FIX 22 SecurityIDSource N 461 CFICode N 541 MaturityDate N 202 231 StrikePrice ContractMultiplier 32 sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange symbol Longitud exacta. Consúltese la Tabla 16 en documento “Tablas de Codificación” para una lista de los valores posibles 10. Aplicaciones contrato String String(6) Tipo de contrato según el estándar ISO 10962 Fecha de vencimiento N N LocalMktD ate Price Float End <Instrument> LastQty S Qty 31 LastPx S Price 574 MatchType N Volumen comprado/vendido en la operación que se describe Precio medio de la operación que se describe Informado por MEFFGate para notificar a las partes sobre el estado de aceptación de la operación. 552 NoSides S 54 Side S 37 OrderID Start <Parties> NoPartyIDs S PartyID N 453 448 30 de julio de 2012 0 = Pendiente de validación por ambas partes. 1 = Pendiente de validación por vendedor 2 = Pendiente de validación por comprador 3 = Pendiente de validación por Supervisión 4 = Cancelada 5 = Rechazada por vendedor 6 = Rechazada por comprador 7 = Rechazada por Supervisión 8 = Aceptada 9 = Registrada A = Cancelada por el sistema B = Rechazada por el sistema 2 1 = Buy 2 = Sell NONE N String NumInGro up Char Posición que toma la parte en la operación. String NumInGro up String © MEFF 2012 Precio de ejercicio Indica el factor multiplicativo para convertir unidades de precio a unidades monetarias Número de identificadores Código de miembro o de operador 159 MEFFGate Negociación - Especificaciones de la Interfaz FIX 447 452 PartyIDSource N PartyRole N 80 2 NoPartySubIDs N D = Proprietary/ Custom code 4 = Miembro Validador 13 = Order Origination Firm 11 = Order Origination Trader 7 = Entering Firm 36 = Entering Trader 10. Aplicaciones Char Int NumInGro up 523 PartySubID N 803 PartySubIDType N 1 End <Parties> Account N 581 AccountType N 381 GrossTradeAmt N Amt 58 Text Standard Trailer N S String(15) 30 de julio de 2012 String 7 = Phone number 9 = Contact name © MEFF 2012 Número de subidentificadores. Este subgrupo está solo presente cuando PartyRole [452] = 11 Nombre y teléfono de contacto del operador comprador / vendedor int String 1 = Ajena 3 = Propia Presente si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Presente si se ha especificado NoPartyIDs Int Derivados: Código de cuenta Contado: Código de Cliente Indicador de capacidad (sólo para operaciones de contado) Efectivo de la transacción. Este valor prevalece sobre el del precio. Referencia 160 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 10.10.5 Trade Capture Report Ack (Msg Type = AR) Mensaje respuesta a un Trade Capture Report recibido por MEFFGate. Contiene la misma información que el Trade Capture Report recibido, junto con información del número asignado por el sistema a la operación a registrar, la aceptación o rechazo de la petición y, en su caso, el motivo de rechazo. Tag Req S S Valores válidos MsgType = AR 571 Nombre Standard Header TradeReportID Formato Descripción String Contiene un valor igual al del campo TradeReportID del Trade Capture Report al que responde Contiene la misma información que el Trade Capture Report al que responde Contiene la misma información que el Trade Capture Report al que responde 487 TradeReportTransType N 0 = New 1 = Cancel 2 = Replace Int 856 TradeReportType N Type of Trade Report Valid values: 0 = Submit 2 = Accept 3 = Decline 6 = Trade Report Cancel Int 818 SecondaryTradeReportID N String 820 TradeLinkID N String 939 TrdRptStatus N 0 = Accepted 1 = Rejected 751 TradeReportRejectReason N 0 = Successful (Default) 1 = Invalid party information 2 = Unknown instrument 3 = Unauthorized to report trades 4 = Invalid trade type Int Contiene el número de operación asignado por el sistema central. Se mantiene a lo largo de toda la historia de la operación. Identificador enviado por el cliente de MEFFGate FIX para asociar un grupo de aplicaciones Indicador de si el Trade Capture Report ha sido aceptado o no por el sistema central de Motivo del rechazo Informado cuando TrdRptStatus [939] = 1 4000 = SecondaryTradeRe portRefID incorrecto 4001 = Inconsistencia en efectivo 4002 = Inconsistencia en precio 4003 = Inconsistencia en contrato 4004 = Inconsistencia en miembro contraparte 30 de julio de 2012 © MEFF 2012 161 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 4005 = Cuenta no vigente 4006 = Petición solicitada no válida 4007 = Side incorrecto 4008 = Account incorrecto 4010 = GrossTradeAmt incorrecto 55 Start <Instrument> Symbol S Código de contrato String(22) 48 SecurityID N String 22 SecurityIDSource N 461 CFICode N Para más detalle sobre los activos subyacentes, véase Tabla 21 en documento “Tablas de Codificación” 8 = Exchange symbol Longitud exacta. Consúltese la Tabla 16 en documento “Tablas de Codificación” para una lista de los valores posibles 541 MaturityDate N 202 231 StrikePrice ContractMultiplier 32 Contiene la misma información que el Trade Capture Report al que responde Activo subyacente del contrato String String(6) Tipo de contrato según el estándar ISO 10962 Fecha de vencimiento N N LocalMktD ate Price Float End <Instrument> LastQty S Qty 31 LastPx S Price 552 NoSides S 2 NumInGro up 54 Side S Char 37 OrderID Start <Parties> NoPartyIDs S 1 = Buy 2 = Sell NONE Contiene la misma información que el Trade Capture Report al que responde Contiene la misma información que el Trade Capture Report al que responde Siempre 2 ya que al menos debe indicarse el miembro de la contraparte. Posición que toma la parte en la operación. PartyID N PartyIDSource N PartyRole N 453 44 8 44 7 45 2 30 de julio de 2012 N String NumInGro up String D = Proprietary/ Custom code 4 = Miembro Validador 13 = Order Origination Firm © MEFF 2012 Precio de ejercicio Indica el factor multiplicativo para convertir unidades de precio a unidades monetarias Char Int Número de identificadores Código de miembro o de operador Presente si se ha especificado NoPartyIDs Indica el rol que toma el código especificado en PartyID. Presente si se ha 162 MEFFGate Negociación - Especificaciones de la Interfaz FIX 10. Aplicaciones 11 = Order Origination Trader 7 = Entering Firm 36 = Entering Trader 80 2 NoPartySubIDs N especificado NoPartyIDs NumInGro up 523 PartySubID N 803 PartySubIDType N 1 End <Parties> Account N 581 AccountType N 381 GrossTradeAmt N Amt 58 Text N String(15) Standard Trailer S 30 de julio de 2012 String 7 = Phone number 9 = Contact name © MEFF 2012 Este subgrupo está solo presente cuando PartyRole [452] = 11 Nombre y teléfono de contacto del operador comprador / vendedor int String 1 = Ajena 3 = Propia Número de subidentificadores. Int Derivados: Código de cuenta Contado: Código de Cliente Indicador de capacidad (sólo para operaciones de contado) Efectivo de la transacción. Contiene la misma información que el Trade Capture Report al que responde. Contiene la misma información que el Trade Capture Report al que responde 163 MEFFGate Negociación - Especificaciones de la Interfaz FIX 11. 11. Comunicación de Eventos Comunicación de Eventos 11.1 Introducción En este capítulo se describen dos funcionalidades basadas en el mensaje News: Difusión de información del supervisor de mercado a uno o más operadores Envío de mensajes de un operador al supervisor de mercado La información transferida en ambos casos es un texto de formato libre. Un programa cliente no tiene que suscribirse para recibir estos mensajes. Todo cliente queda implícitamente suscrito desde el inicio de sesión. Al establecer una conexión de comunicación, si el cliente continúa la sesión FIX recibe todos los mensajes News que tenía pendientes desde el momento de la desconexión. Cuando el cliente opta por iniciar una nueva sesión FIX, recibe todos los mensajes News, destinados a él, que se han generado desde el inicio de sesión. 11.2 Lista de mensajes Mensaje Descripción News (Msg Type = B) Usado para recibir mensajes de texto del supervisor de mercado. También usado para enviar mensajes de texto al supervisor de mercado 11.3 Flujo de mensajes Recepción de mensaje MEFFGate Client MEFFGate Server News (“B”) Envío de mensaje MEFFGate Client MEFFGate Server News (“B”) 11.4 Acotaciones y adaptaciones de FIX 4.4 Sólo se permiten una línea de hasta 78 caracteres por mensaje 30 de julio de 2012 © MEFF 2012 164 MEFFGate Negociación - Especificaciones de la Interfaz FIX 11. Comunicación de Eventos 11.5 Definición de mensajes 11.5.1 News (Msg Type = B) Tag 61 Nombre Standard Header Urgency Req S N 148 Headline S 33 LinesOfText S 58 Text Standard Trailer S S 30 de julio de 2012 Valores válidos MsgType = B 0 = Normal 1 = Flash 2 = Background 1 Formato Descripción Char El valor por defecto es 0 String Encabezado del mensaje. Ignorado por MEFFGate Número de líneas del texto. Sólo se permite una línea Una línea de texto NumInGroup String(78) © MEFF 2012 165 MEFFGate Negociación - Especificaciones de la Interfaz FIX Apéndice A. Tipos de Órdenes de MEFF Apéndice A Tipos de Órdenes de MEFF En la siguiente tabla se relacionan los diferentes tipos de órdenes de MEFF con los campos OrdType y TimeInForce de FIX. Admite instrucciones de cancelación automática en caso de desconexión Tipo de orden MEFF OrdType TimeInForce Orden limitada Limit (2) Day (0) SI Orden limitada inmediata Limit (2) IOC (3) NO Orden de mercado (*) Market (1) Day (0) SI Market (1) IOC (3) SI Orden stop Stop (3) Day (0) NO Orden stop limitada Stop Limit (4) Day (0) SI Orden todo o nada Limit (2) FOK (4) NO Orden a precio de subasta Market(1) OPG (2) SI (*) La orden de mercado acepta dos combinaciones diferentes en los campos OrdType y TimeInForce. Independientemente del valor del campo TimeInForce el comportamiento de la orden de mercado es el que la normativa de MEFF determine mediante los correspondientes comunicados. 30 de julio de 2012 © MEFF 2012 A–1 MEFFGate Negociación - Especificaciones de la Interfaz FIX Apéndice B. Campos de Usuario Apéndice B Campos de Usuario En la siguiente tabla se presentan los campos de usuario usados en los mensajes de este manual. Tag Nombre Formato Descripción 5680 ProprietaryFixProtocolVersion String Identificación de la versión del protocolo usado y esperado por el iniciador. 5679 FixEngineName String Contiene una cadena descriptiva del software usado por el cliente para la conexión FIX. Sólo usado a modo informativo 5681 ExchangeTradeType String Tipo de operación del mercado (véase Tabla 19 en documento “Tablas de Codificación”) 5682 NewSecuritySubscription Char Campo para solicitar la suscripción a la definición de nuevos contratos 30 de julio de 2012 © MEFF 2012 B-1