Motor FIX de cTrader (Reglas de Compromiso)¶
Introducción ¶
Alcance ¶
Esta especificación está destinada a servir a los desarrolladores de software como una guía de implementación para la API del motor FIX de cTrader.
Versión FIX ¶
cTrader admite la versión 4.4 de FIX. Para obtener más información sobre esta versión, consulte estas especificaciones.
Conectividad ¶
Tipo de conexión ¶
La conexión al motor FIX de cTrader está disponible a través de Internet, un túnel VPN o una conexión cruzada a nuestras instalaciones de centro de datos en el Reino Unido. Contáctenos para obtener más detalles.
Reinicio del número de secuencia ¶
Todos los lados de una sesión FIX deben tener los números de secuencia reiniciados al establecer una sesión FIX. Consulte el mensaje de inicio de sesión.
Mensajes ¶
Como se define en el protocolo FIX, el servidor FIX de cTrader utiliza dos niveles de datos diferentes (sistema y aplicación). Tenga en cuenta que este es un conjunto mínimo de mensajes necesarios para admitir los flujos de trabajo necesarios. Está sujeto a cambios con el tiempo a medida que evolucionan tanto las necesidades comerciales como los estándares FIX.
Motor FIX de cTrader ¶
Mensajes del sistema¶
- Heartbeat (Cliente ↔ cTrader)
- Test Request (Cliente ↔ cTrader)
- Logon (Cliente → cTrader)
- Logout (Cliente → cTrader)
- Resend Request (Cliente ↔ cTrader)
- Reject (Cliente ↔ cTrader)
- Sequence Reset (Cliente ↔ cTrader)
Mensajes de aplicación¶
- Market Data Request (Cliente → cTrader)
- Market Data Snapshot/Full Refresh (Cliente ← cTrader)
- Market Data Incremental Refresh (Cliente ← cTrader)
- New Order Single (Cliente → cTrader)
- Order Status Request (Cliente → cTrader)
- Order Mass Status Request (Cliente → cTrader)
- Execution Report (Cliente ← cTrader)
- Business Message Reject (Cliente ← cTrader)
- Request for Positions (Cliente → cTrader)
- Position Report (Cliente ← cTrader)
- Order Cancel Request (Cliente → cTrader)
- Order Cancel Reject (Cliente ← cTrader)
- Order Cancel/Replace Request (Cliente → cTrader)
- Security List Request (Cliente → cTrader)
- Security List (Cliente ← cTrader)
- Security List Request (Client → cTrader)
- Security List (Client ← cTrader)
Encabezado estándar ¶
Cada mensaje administrativo o de aplicación está precedido por un encabezado estándar. Los encabezados identifican un tipo de mensaje, longitud, destino, número de secuencia, punto de origen y hora.
Todos los mensajes enviados a cTrader deben tener un encabezado estándar con los siguientes campos:
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
| 8 | BeginString | Sí | FIX.4.4 | String | Siempre sin cifrar, debe ser el primer campo en un mensaje. |
| 9 | BodyLength | Sí | Cualquier valor válido | Integer | Longitud del cuerpo del mensaje. Siempre sin cifrar, debe ser el segundo campo en un mensaje. |
| 35 | MsgType | Sí | A | String | Un tipo de mensaje. Siempre sin cifrar, debe ser el tercer campo en un mensaje. |
| 49 | SenderCompID | Sí | Cualquier valor válido | String | Un ID de la parte comercial en el siguiente formato: <Environment>.<BrokerUID>.<Trader Login>, donde Environment es una determinación del servidor, como demo o live; BrokerUID es proporcionado por cTrader y Trader Login es un identificador numérico de la cuenta del operador. |
| 56 | TargetCompID | Sí | CSERVER | String | Un objetivo del mensaje. The valid value is CSERVER. |
| 57 | TargetSubID | Sí | QUOTE o TRADE | String | Un calificador de sesión adicional. Los valores posibles son QUOTE y TRADE. |
| 50 | SenderSubID | No | Cualquier valor válido | String | El valor asignado utilizado para identificar un originador de mensaje específico. Debe establecerse en QUOTE si TargetSubID=QUOTE. |
| 34 | MsgSeqNum | Sí | 1 | Integer | Un número de secuencia del mensaje. |
| 52 | SendingTime | Sí | 20131129-15:40:08.155 | UTCTimestamp | Hora de la transmisión del mensaje siempre expresada en UTC (Tiempo Universal Coordinado, también conocido como GMT). |
Trailer estándar ¶
Cada mensaje, administrativo o de aplicación, se termina con un trailer estándar. El trailer se utiliza para segregar mensajes y contiene una representación de tres dígitos del valor CheckSum (tag=10).
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
| 10 | CheckSum | Sí | 054 | String | Una suma de comprobación simple de tres bytes. Siempre el último campo en un mensaje (por ejemplo, sirve), con el <SOH> final como delimitador de fin de mensaje. Se define como tres caracteres (siempre sin cifrar). |
Mensajes de sesión ¶
Heartbeat (MsgType(35)=0)¶
Los mensajes de latido son enviados tanto por cTrader como por la aplicación del cliente para confirmar una conexión activa.
La aplicación del cliente del proveedor transmite un latido recurrente en el intervalo, que se define por el campo HeartBtInt (tag=108) en un mensaje de Logon, o como respuesta a un mensaje de Solicitud de Prueba.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 112 | TestReqID | No | Cualquier valor válido | String | Si un latido es resultado del mensaje de Solicitud de Prueba, se requiere TestReqID. |
Standard Trailer | Sí |
Test Request (MsgType(35)=1)¶
Fuerza un latido del receptor de una solicitud. Se envía una respuesta desde el sistema receptor como un mensaje de Latido que contiene TestReqID.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 112 | TestReqID | Sí | Cualquier valor válido | String | Un ID de mensaje de latido. TestReqID debe ser incremental. |
Standard Trailer | Sí |
Logon (bidirectional) (MsgType(35)=A)¶
Un mensaje de Logon se envía desde la aplicación del lado del cliente para iniciar una sesión FIX de cTrader, y cTrader envía una respuesta a la aplicación del lado del cliente. Una vez que se completa el logon, los flujos de cotización y comercio pueden proceder durante el ciclo de vida de la sesión.
Si cTrader recibe un mensaje de Logon inválido (con campos inválidos), cTrader envía un mensaje de Logout en respuesta.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 98 | EncryptMethod | Sí | 0 | Integer | Define un esquema de cifrado de mensajes. Actualmente, solo se admite la seguridad a nivel de transporte. El valor válido es 0 = NONE_OTHER (no se utiliza cifrado). |
| 108 | HeartBtInt | Sí | Cualquier valor válido | Integer | Un intervalo de latido en segundos. El valor se establece en el archivo config.properties (lado del cliente) como SERVER.POLLING.INTERVAL. El valor de intervalo predeterminado es 30 segundos. Si HeartBtInt se establece en 0, no se requiere mensaje de latido. |
| 141 | ResetSeqNumFlag | No | Y | Boolean | Todos los lados de la sesión FIX deben tener los números de secuencia restablecidos. El valor válido es Y (restablecer). |
| 553 | Username | No | Cualquier valor válido | String | Un ID de Usuario numérico. El usuario está vinculado al valor SenderCompID (la organización del usuario, tag=49). |
| 554 | Password | No | Cualquier valor válido | String | Una contraseña de usuario. |
Standard Trailer | Sí |
Nota
El campo Username (tag=553) debe contener un valor de inicio de sesión de operador numérico, mientras que SenderCompID (tag=49) debe contener un entorno, BrokerUID y un inicio de sesión de operador delimitados por un punto (por ejemplo, live.theBroker.12345).
Vea ejemplos de mensajes de Logon a continuación.
Solicitar:
8=FIX.4.4|9=126|35=A|49=live.theBroker.12345|56=CSERVER|34=1|52=20170117-08:03:04|57=TRADE|50=any_string|98=0|108=30|141=Y|553=12345|554=passw0rd!|10=131|
Respuesta (éxito):
8=FIX.4.4|9=106|35=A|34=1|49=CSERVER|50=TRADE|52=20170117-08:03:04.509|56=live.theBroker.12345|57=any_string|98=0|108=30|141=Y|10=066|
Respuesta (fallida):
8=FIX.4.4|9=109|35=5|34=1|49=CSERVER|50=TRADE|52=20170117-08:03:04.509|56=live.theBroker.12345|58=InternalError: RET_INVALID_DATA|10=033|
Logout (MsgType(35)=5)¶
Un mensaje de Logout se envía desde la aplicación del cliente para solicitar el fin de una sesión con cTrader y como respuesta por cTrader. Un cierre de sesión ocurre en respuesta a que un Participante del Mercado envíe un mensaje de Logout a cTrader. Antes de terminar la sesión, cTrader cancelará todos los precios que aún se están transmitiendo activamente a la parte solicitante. Si cTrader recibe un mensaje de Logon inválido (con campos inválidos), cTrader envía un mensaje de Logout en respuesta con detalles del error en el campo Text (tag=58).
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 58 | Text | No | Cualquier valor válido | String | Detalles de rechazo de Logon. Utilizado solo para mensajes de cTrader al cliente como respuesta a un mensaje de Logon inválido. |
Standard Trailer | Sí |
Vea ejemplos de mensajes de cierre de sesión a continuación.
Solicitar:
8=FIX.4.4|9=86|35=5|49=live.theBroker.12345|56=CSERVER|34=161|52=20170117-09:22:33|57=TRADE|50=any_string|10=102|
Respuesta:
8=FIX.4.4|9=90|35=5|34=160|49=CSERVER|50=TRADE|52=20170117-09:22:33.077|56=live.theBroker.12345|57=any_string|10=044|
Resend Request (MsgType(35)=2)¶
Un mensaje entrante/saliente se utiliza para solicitar el reenvío de un mensaje (o mensajes), típicamente cuando se detecta un hueco en la numeración de secuencia.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 7 | BeginSeqNo | Sí | Cualquier valor válido | Integer | Un número de secuencia de mensaje del primer registro en el rango a ser reenviado. |
| 16 | EndSeqNo | Sí | Cualquier valor válido | Integer | Un número de secuencia de mensaje del último registro en el rango a ser reenviado. |
Standard Trailer | Sí |
Reject (bidirectional) (MsgType(35)=3)¶
Enviado cuando el mensaje recibido no puede ser procesado debido a una violación de regla a nivel de sesión. Los mensajes rechazados deben ser registrados y se debe aplicar un incremento al número de secuencia entrante.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 45 | RefSeqNum | Sí | Cualquier valor válido | SeqNum | Un número de secuencia del mensaje referenciado. |
| 58 | Text | No | Cualquier valor válido | String | Una cadena de texto de formato libre. |
| 354 | EncodedTextLen | No | Cualquier valor válido | Longitud | Longitud del campo EncodedText (caracteres no ASCII) en bytes. |
| 355 | EncodedText | No | Cualquier valor válido | Datos | Una representación del campo Text (tag=58), codificado usando el formato especificado en el campo MessageEncoding (tag=347) (del encabezado estándar). Si se utiliza la representación ASCII, también debe especificarse en el campo Text (tag=58). |
| 371 | RefTagID | No | Cualquier valor válido | Integer | Un número de tag del campo FIX que inició el rechazo del mensaje. |
| 372 | RefMsgType | No | Cualquier valor válido | String | MsgType (tag=35) del mensaje FIX referenciado. |
| 373 | SessionRejectReason | No | Cualquier valor válido | Integer | Causas codificadas del rechazo. Los valores válidos son: 0 = Número de tag inválido 1 = Falta tag requerido 2 = No hay tag definido para este tipo de mensaje 3 = Tag no definido 4 = Sin valor para el tag especificado 5 = Valor para este tag está fuera de rango 6 = Formato de datos incorrecto para el valor 7 = Problema de descifrado 8 = Error de firma 9 = Error de CompID 10 = Error de precisión de SendingTime 11 = MsgType inválido 12 = Error de validación XML 13 = El tag se está repitiendo 14 = El tag especificado no está en el orden correcto 15 = Los campos del grupo repetitivo no están en el orden correcto 16 = Recuento NumInGroup incorrecto para grupo repetitivo 17 = Delimitador de campo (carácter SOH) incluido en valor no de datos |
Standard Trailer | Sí |
Sequence Reset (MsgType(35)=4)¶
Un mensaje entrante/saliente no debe utilizarse a nivel de aplicación. Un mensaje de Reinicio de Secuencia solo puede aumentar un número de secuencia.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 123 | GapFillFlag | No | Yes o No | String | Indica que un mensaje de Reinicio de Secuencia está reemplazando mensajes administrativos o de aplicación que no serán reenviados. |
| 36 | NewSeqNo | Sí | 1 | Integer | Un nuevo número de secuencia. |
Standard Trailer | Sí |
Mensajes de aplicación ¶
Market Data Request (MsgType(35)=V)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 262 | MDReqID | Sí | Cualquier valor válido | String | Un ID de solicitud de cotización único. Un nuevo ID para una nueva suscripción, el mismo ID utilizado anteriormente para una eliminación de suscripción. |
| 263 | SubscriptionRequestType | Sí | 1 o 2 | Char | 1 = Instantánea más actualizaciones (suscribirse). 2 = Deshabilitar solicitud previa de instantánea más actualización (cancelar suscripción). |
| 264 | MarketDepth | Sí | 0 o 1 | Integer | Se proporcionará un libro completo. 0 = Suscripción de profundidad 1 = Suscripción de spot |
| 265 | MDUpdateType | Sí | Cualquier valor válido | Integer | Solo se admite la Actualización Incremental. |
| 267 | NoMDEntryTypes | Sí | 2 | Integer | Siempre establecido en 2 (se enviarán tanto la oferta como la demanda). |
| 269 | MDEntryType | Sí | 0 o 1 | Char | Este grupo repetitivo contiene una lista de todos los tipos de Entradas de Datos de Mercado que el solicitante desea recibir. 0 = Bid 1 = Offer |
| 146 | NoRelatedSym | Sí | Cualquier valor válido | Integer | El número de símbolos solicitados. |
| 55 | Symbol | Sí | Cualquier valor válido | Larga(s) | Los identificadores de instrumentos son proporcionados por Spotware. |
Standard Trailer | Sí |
Vea ejemplos de mensajes de Solicitud de Datos de Mercado a continuación.
Para Spots
Solicitud:
8=FIX.4.4|9=131|35=V|49=live.theBroker.12345|56=CSERVER|34=3|52=20170117-10:26:54|50=QUOTE|262=876316403|263=1|264=1|265=1|146=1|55=1|267=2|269=0|269=1|10=094|
Respuesta:
8=FIX.4.4|9=134|35=W|34=2|49=CSERVER|50=QUOTE|52=20170117-10:26:54.630|56=live.theBroker.12345|57=any_string|55=1|268=2|269=0|270=1.06625|269=1|270=1.0663|10=118|
Para Profundidades
Solicitud:
8=FIX.4.4|9=131|35=V|49=live.theBroker.12345|56=CSERVER|34=2|52=20170117-11:13:44|50=QUOTE|262=876316411|263=1|264=0|265=1|146=1|55=1|267=2|269=0|269=1|10=087|
Respuestas:
8=FIX.4.4|9=310|35=W|34=2|49=CSERVER|50=QUOTE|52=20180925-12:05:28.284|56=live.theBroker.12345|57=Quote|55=1|268=6|269=1|270=1.11132|271=3000000|278=16|269=1|270=1.11134|271=5000000|278=17|269=1|270=1.11133|271=3000000|278=15|269=0|270=1.1112|271=2000000|278=12|269=0|270=1.11121|271=1000000|278=13|269=0|270=1.11122|271=3000000|278=14|10=247|
8=FIX.4.4|9=693|35=X|34=2|49=CSERVER|50=QUOTE|52=20170117-11:13:44.461|56=live.theBroker.12345|57=any_string|268=12|279=0|269=1|278=7475|55=1|270=1.0691|271=2000000|279=0|269=1|278=7476|55=1|270=1.06911|271=3000000|279=0|269=1|278=7484|55=1|270=1.06931|271=34579000|279=0|269=1|278=7485|55=1|270=1.06908|271=1000000|279=0|269=1|278=7483|55=1|270=1.06906|271=500000|279=0|269=1|278=7482|55=1|270=1.06907|271=500000|279=0|269=1|278=7488|55=1|270=1.06909|271=3000000|279=0|269=0|278=7468|55=1|270=1.06898|271=500000|279=0|269=0|278=7467|55=1|270=1.06874|271=32371000|279=0|269=0|278=7457|55=1|270=1.06899|271=1000000|279=0|269=0|278=7478|55=1|270=1.06896|271=7000000|279=0|269=0|278=7477|55=1|270=1.06897|271=1500000|10=111|
8=FIX.4.4|9=376|35=X|34=3|49=CSERVER|50=QUOTE|52=20170117-11:13:44.555|56=live.theBroker.12345|57=any_string|268=8|279=0|269=0|278=7491|55=1|270=1.06897|271=1000000|279=0|269=0|278=7490|55=1|270=1.06898|271=1000000|279=0|269=0|278=7489|55=1|270=1.06874|271=32373000|279=0|269=1|278=7496|55=1|270=1.06931|271=34580000|279=2|278=7477|55=1|279=2|278=7468|55=1|279=2|278=7467|55=1|279=2|278=7484|55=1|10=192|
Market Data Snapshot/Full Refresh (MsgType(35)=W)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 262 | MDReqID | Sí | Cualquier valor válido | String | El ID de la solicitud de datos de mercado enviada previamente. |
| 55 | Symbol | Sí | Cualquier valor válido | Larga(s) | Los identificadores de instrumentos son proporcionados por Spotware. |
| 268 | NoMDEntries | Sí | Cualquier valor válido | Integer | El número de entradas siguientes. |
| 269 | MDEntryType | No | 0 o 1 | Char | Los valores válidos son: 0 = Oferta 1 = Demanda Requerido solo cuando NoMDEntries (tag=268) > 0. |
| 299 | QuoteEntryID | No | Cualquier valor válido | String | Una identificación única de la cotización como parte de QuoteSet. |
| 270 | MDEntryPx | No | 1.2345 | Precio | Un precio de la entrada de datos de mercado. Requerido solo cuando NoMDEntries (etiqueta=268) > 0. |
| 271 | MDEntrySize | No | 500000 | Volumen | Volumen de la entrada de datos de mercado. Requerido solo cuando NoMDEntries (etiqueta=268) > 0. |
| 278 | MDEntryID | No | Cualquier valor válido | String | Un identificador único de la entrada de datos de mercado. |
Standard Trailer | Sí |
Market Data Incremental Refresh (MsgType(35)=X)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 262 | MDReqID | Sí | Cualquier valor válido | String | El ID de la solicitud de datos de mercado enviada previamente. |
| 268 | NoMDEntries | Sí | Cualquier valor válido | Integer | El número de entradas siguientes. Este grupo repetitivo contiene una lista de todos los tipos de entradas de datos de mercado que el solicitante desea recibir. |
| 279 | MDUpdateAction | Sí | 0 o 2 | Char | Un tipo de acción de actualización de datos de mercado. Los valores válidos son: 0 = Nuevo 2 = Eliminar |
| 269 | MDEntryType | No | 0 o 1 | Char | Los valores válidos son: 0 = Oferta de compra 1 = Oferta de venta |
| 278 | MDEntryID | Sí | Cualquier valor válido | String | Un ID de la entrada de datos de mercado. |
| 55 | Symbol | Sí | Cualquier valor válido | Larga(s) | Los identificadores de instrumentos son proporcionados por Spotware. |
| 270 | MDEntryPx | No | 1.2345 | Precio | Requerido solo cuando MDUpdateAction (etiqueta=279) = 0. |
| 271 | MDEntrySize | No | 10000 | Duplicar | Requerido solo cuando MDUpdateAction (etiqueta=279) = 0. |
Standard Trailer | Sí |
New Order Single (MsgType(35)=D)¶
Un mensaje de Nueva Orden Individual tiene el siguiente formato.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 11 | ClOrdID | Sí | Cualquier valor válido | String | Un identificador único de la orden asignado por el cliente. |
| 55 | Symbol | Sí | Cualquier valor válido | Larga(s) | Los identificadores de instrumentos son proporcionados por Spotware. |
| 54 | Side | Sí | 1 o 2 | Integer | 1 = Buy 2 = Sell |
| 60 | TransactTime | Sí | Cualquier valor válido | Marca de tiempo | Tiempo de solicitud generado por el cliente. |
| 38 | OrderQty | Sí | Cualquier valor válido | Qty | El número de acciones ordenadas. Esto representa el número de acciones para valores de renta variable o, según la convención normal, el número de contratos para opciones, futuros, bonos convertibles, etc. La precisión máxima es 0,01. Antes de FIX 4.2, el tipo de este campo era "Integer". |
| 40 | OrdType | Sí | 1, 2 o 3 | Char | 1 = Mercado, la orden se procesará mediante el esquema de Inmediata o Cancelar (IOC) (TimeInForce, etiqueta=59). 2 = Limitada, la orden se procesará mediante el esquema de Válida hasta Cancelar (GTC) (TimeInForce, etiqueta=59). 3 = Stop, la orden se procesará mediante el esquema de Válida hasta Cancelar (GTC) (TimeInForce, etiqueta=59). |
| 44 | Price | No | Cualquier valor válido | Precio | El peor precio del cliente que el cliente aceptará. Requerido solo cuando OrdType (etiqueta=40) = 2, en cuyo caso la orden no se ejecutará a menos que se pueda cumplir este precio. |
| 99 | StopPx | No | Cualquier valor válido | Precio | Un precio que activa la orden de stop. Requerido solo cuando OrdType (etiqueta=40) = 3, en cuyo caso la orden no se ejecutará a menos que se pueda cumplir este precio. |
| 59 | TimeInForce | No | 1, 3 or 6 | String | Obsoleto, este valor será ignorado. TimeInForce se detectará automáticamente dependiendo de OrdType (etiqueta=40) y ExpireTime (etiqueta=126): 1 = Válida hasta Cancelar (GTC), se utilizará solo para órdenes limitadas y de stop (OrdType, etiqueta=40) solo si ExpireTime (etiqueta=126) no está definido. 3 = Inmediata o Cancelar (IOC), se utilizará solo para órdenes de mercado (OrdType, etiqueta=40). 6 = Válida hasta Fecha (GTD), se utilizará solo para órdenes limitadas y de stop (OrdType, etiqueta=40) solo si ExpireTime (etiqueta=126) está definido. |
| 126 | ExpireTime | No | 20140215-07:24:55 | Marca de tiempo | Tiempo de expiración en el formato "AAAAMMDD-HH:MM:SS". Si se asigna, la orden se procesará mediante el esquema GTD (TimeInForce: GTD). |
| 721 | PosMaintRptID | No | Cualquier valor válido | String | Un ID de posición donde se debe colocar esta orden. Si no se establece, se creará una nueva posición y su ID se devolverá en el mensaje de Informe de Ejecución. Solo se puede especificar para cuentas con cobertura. |
| 494 | Designation | No | Cualquier valor válido | String | Una etiqueta de orden personalizada. |
Standard Trailer | Sí |
Vea ejemplos de mensajes de Nueva Orden Individual a continuación.
Orden de mercado para nueva posición
Solicitar:
8=FIX.4.4|9=143|35=D|49=live.theBroker.12345|56=CSERVER|34=77|52=20170117-10:02:14|50=any_string|57=TRADE|11=876316397|55=1|54=1|60=20170117-10:02:14|40=1|38=10000|10=010|
Respuestas:
8=FIX.4.4|9=197|35=8|34=77|49=CSERVER|50=TRADE|52=20170117-10:02:14.720|56=live.theBroker.12345|57=any_string|11=876316397|14=0|37=101|38=10000|39=0|40=1|54=1|55=1|59=3|60=20170117-10:02:14.591|150=0|151=10000|721=101|10=149|
8=FIX.4.4|9=206|35=8|34=78|49=CSERVER|50=TRADE|52=20170117-10:02:15.045|56=live.theBroker.12345|57=any_string|6=1.0674|11=876316397|14=10000|32=10000|37=101|38=10000|39=2|40=1|54=1|55=1|59=3|60=20170117-10:02:14.963|150=F|151=0|721=101|10=077|
Orden de mercado para posición existente
Solicitar:
8=FIX.4.4|9=151|35=D|49=live.theBroker.12345|56=CSERVER|34=80|52=20170117-10:02:55|50=any_string|57=TRADE|11=876316398|55=1|54=1|60=20170117-10:02:55|40=1|38=10000|721=101|10=120|
Respuestas:
8=FIX.4.4|9=197|35=8|34=80|49=CSERVER|50=TRADE|52=20170117-10:02:56.003|56=live.theBroker.12345|57=any_string|11=876316398|14=0|37=102|38=10000|39=0|40=1|54=1|55=1|59=3|60=20170117-10:02:55.984|150=0|151=10000|721=101|10=156|
8=FIX.4.4|9=207|35=8|34=81|49=CSERVER|50=TRADE|52=20170117-10:02:56.239|56=live.theBroker.12345|57=any_string|6=1.06735|11=876316398|14=10000|32=10000|37=102|38=10000|39=2|40=1|54=1|55=1|59=3|60=20170117-10:02:56.210|150=F|151=0|721=101|10=127
Orden limitada para posición existente
Solicitar:
8=FIX.4.4|9=162|35=D|49=live.theBroker.12345|56=CSERVER|34=89|52=20170117-10:06:22|50=any_string|57=TRADE|11=876316400|55=1|54=2|60=20170117-10:06:22|40=2|44=1.07162|38=50000|721=101|10=122|
Respuesta:
8=FIX.4.4|9=208|35=8|34=90|49=CSERVER|50=TRADE|52=20170117-10:06:22.466|56=live.theBroker.12345|57=any_string|11=876316400|14=0|37=104|38=50000|39=0|40=2|44=1.07162|54=2|55=1|59=1|60=20170117-10:06:22.436|150=0|151=50000|721=101|10=149|
Orden de stop para nueva posición
Solicitar:
8=FIX.4.4|9=153|35=D|49=live.theBroker.12345|56=CSERVER|34=9|52=20170117-12:10:48|57=TRADE|50=any_string|11=876316418|55=1|54=1|60=20170117-12:10:48|40=3|38=50000|99=1.07148|10=249|
Respuesta:
8=FIX.4.4|9=207|35=8|34=8|49=CSERVER|50=TRADE|52=20170117-12:10:48.400|56=live.theBroker.12345|57=any_string|11=876316418|14=0|37=205|38=50000|39=0|40=3|54=1|55=1|59=1|60=20170117-12:10:48.362|99=1.07148|150=0|151=50000|721=202|10=122|
Order Status Request (MsgType(35)=H)¶
Un mensaje de Solicitud de Estado de Orden es utilizado por una institución para generar un mensaje de estado de orden de vuelta desde el operador. Para una interacción correcta, es muy importante tener identificadores de orden de cliente únicos (ClOrdID) para todas las órdenes.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 11 | ClOrdID | Sí | Cualquier valor válido | String | Un identificador único de la orden asignado por el cliente. |
| 54 | Side | No | 1 o 2 | Integer | 1 = Buy 2 = Sell |
Standard Trailer | Sí |
Vea ejemplos de mensajes de Solicitud de Estado de Orden a continuación.
Solicitar:
8=FIX.4.4|9=98|35=H|49=live.theBroker.12345|56=CSERVER|34=95|52=20170117-10:08:31|50=any_string|57=TRADE|11=876316400|10=191|
Respuesta:
8=FIX.4.4|9=208|35=8|34=95|49=CSERVER|50=TRADE|52=20170117-10:08:31.819|56=live.theBroker.12345|57=any_string|11=876316400|14=0|37=104|38=50000|39=0|40=2|44=1.07162|54=2|55=1|59=1|60=20170117-10:06:22.436|150=0|151=50000|721=101|10=158|
Order Mass Status Request (MsgType(35)=AF)¶
Un mensaje de Solicitud de Estado Masivo de Órdenes solicita el estado de las órdenes que coinciden con los criterios especificados en la solicitud. La respuesta se devolverá como una serie de mensajes de Informe de Ejecución (uno para cada orden), o como un mensaje de Rechazo de Mensaje de Negocio si no se encuentran órdenes.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 584 | MassStatusReqID | Sí | Cualquier valor válido | String | Un ID único de la Solicitud de Estado Masivo asignado por el cliente. |
| 585 | MassStatusReqType | Sí | Cualquier valor válido | Integer | 7 = Estado para todas las órdenes. Actualmente solo se admite el valor 7. |
| 225 | IssueDate | No | Cualquier valor válido | String | Si se establece, la respuesta contendrá solo las órdenes creadas antes de esta fecha. |
Standard Trailer | Sí |
Vea ejemplos de mensajes de Solicitud de Estado Masivo de Órdenes a continuación.
Solicitar:
8=FIX.4.4|9=117|35=AF|34=3|49=live.theBroker.12345|52=20170404-07:20:55.325|56=CSERVER|57=TRADE|225=20170404-07:20:44.582|584=mZzEY|585=7|10=065|
Respuesta:
8=FIX.4.4|9=199|35=8|34=13|49=CSERVER|50=TRADE|52=20170404-07:20:55.333|56=live.theBroker.12345|14=0|37=635|38=100000|39=0|40=2|44=1.35265|54=2|55=1|59=1|60=20170404-07:20:44.582|150=I|151=100000|584=mZzEY|721=617|911=1|10=152|
Execution Report (MsgType(35)=8)¶
Un mensaje de Informe de Ejecución para una orden aceptada tiene el siguiente formato.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 37 | OrderID | Sí | Cualquier valor válido | String | Un ID de orden de cTrader. |
| 11 | ClOrdID | No | Cualquier valor válido | String | Un identificador único de la orden asignado por el cliente. |
| 911 | TotNumReports | No | Cualquier valor válido | Integer | El número total de informes devueltos en respuesta al mensaje de Solicitud de Estado Masivo de Órdenes. |
| 150 | ExecType | Sí | Cualquier valor válido | Char | 0 = New 4 = Canceled 5 = Replace 8 = Rejected C = Expired F = Trade I = Order Status |
| 39 | OrdStatus | Sí | Cualquier valor válido | Char | 0 = Nueva 1 = Parcialmente ejecutada 2 = Ejecutada 8 = Rechazada 4 = Cancelada (cuando la orden está parcialmente ejecutada, se devuelve Canceled indicando (tag=151), LeavesQty está cancelada y no se ejecutará posteriormente). C = Expirada |
| 55 | Symbol | No | Cualquier valor válido | Larga(s) | Los identificadores de instrumentos son proporcionados por Spotware. |
| 54 | Side | No | 1 o 2 | Integer | 1 = Compra 2 = Venta |
| 60 | TransactTime | No | Cualquier valor válido | Marca de tiempo | Tiempo de ejecución de una transacción representada por el mensaje de Informe de Ejecución (en UTC). |
| 6 | AvgPx | No | Cualquier valor válido | Integer | Un precio al que se ejecutó la transacción. Para una orden IOC o GTD, este es el Precio Medio Ponderado por Volumen (VWAP) de la orden ejecutada. |
| 38 | OrderQty | No | Cualquier valor válido | Qty | Esto representa el número de acciones para valores de renta variable o, según la convención normal, el número de contratos para opciones, futuros, bonos convertibles, etc. Antes de FIX 4.2, el tipo de este campo era "Integer". |
| 151 | LeavesQty | No | Cualquier valor válido | Qty | El número de órdenes que aún deben ejecutarse. Los valores posibles están entre 0 (totalmente ejecutada) y OrderQty (parcialmente ejecutada). |
| 14 | CumQty | No | Cualquier valor válido | Qty | El número total de órdenes que se han ejecutado. |
| 32 | LastQty | No | Cualquier valor válido | Qty | La cantidad comprada/vendida de órdenes que se han ejecutado en esta (última) ejecución. |
| 40 | OrdType | No | 1 o 2 | Char | 1 = Mercado 2 = Límite |
| 44 | Price | No | Cualquier valor válido | Precio | Si se proporciona en un mensaje de Nueva Orden Individual, se repite en este mensaje de Informe de Ejecución. |
| 99 | StopPx | No | Cualquier valor válido | Precio | Si se proporciona en un mensaje de Nueva Orden Individual, se repite en este mensaje de Informe de Ejecución. |
| 59 | TimeInForce | No | 1, 3 o 6 | String | 1 = Válida hasta cancelación (GTC) 3 = Inmediata o cancelar (IOC) 6 = Válida hasta fecha (GTD) |
| 126 | ExpireTime | No | 20140215-07:24:55 | Marca de tiempo | Si se proporciona en un mensaje de Nueva Orden Individual, se repite en este mensaje de Informe de Ejecución. |
| 58 | Text | No | Cualquier valor válido | String | Cuando sea posible, un mensaje explicará el Informe de Ejecución. |
| 103 | OrdRejReason | No | 0 | Integer | 0 = OrdRejReason.BROKER_EXCHANGE_OPTION |
| 721 | PosMaintRptID | No | Cualquier valor válido | String | Un ID de posición. |
| 494 | Designation | No | Cualquier valor válido | String | Una etiqueta de orden personalizada del cliente. |
| 584 | MassStatusReqID | No | Cualquier valor válido | String | Un ID único de la solicitud de estado masivo asignado por el cliente. |
| 1000 | AbsoluteTP | No | Cualquier valor válido | Precio | Un precio absoluto al que se activará el take profit. |
| 1001 | RelativeTP | No | Cualquier valor válido | Precio | Una distancia en pips desde el precio de entrada al que se activará el take profit. |
| 1002 | AbsoluteSL | No | Cualquier valor válido | Precio | Un precio absoluto al que se activará el stop loss. |
| 1003 | RelativeSL | No | Cualquier valor válido | Precio | Una distancia en pips desde el precio de entrada al que se activará el stop loss. |
| 1004 | TrailingSL | No | N o Y | Boolean | Indica si el stop loss es dinámico. N = El stop loss no es dinámico. Y = El stop loss es dinámico. |
| 1005 | TriggerMethodSL | No | Cualquier valor válido | Integer | Un método de activación indicado del stop loss. 1 = El stop loss se activará por el lado de la operación. 2 = El stop loss se activará por el lado opuesto (demanda para posiciones de compra y oferta para posiciones de venta). 3 = El stop loss se activará después de dos ticks consecutivos según el lado de la operación. 4 = El stop loss se activará después de dos ticks consecutivos según el lado opuesto (el segundo tick de demanda para posiciones de compra y el segundo tick de oferta para posiciones de venta). |
| 1006 | GuaranteedSL | No | N o Y | Boolean | Indica si el stop loss está garantizado. N = El stop loss no está garantizado. Y = El stop loss está garantizado. |
Standard Trailer | Sí |
Vea un ejemplo de Nueva Orden Única al final de la guía.
Business Message Reject (MsgType(35)=j)¶
Este tipo de mensaje se envía cuando el sistema no puede procesar una solicitud de suscripción o una orden no puede ejecutarse.
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 45 | RefSeqNum | No | Cualquier valor válido | Integer | MsgSeqNum (etiqueta=34) del mensaje rechazado. |
| 372 | RefMsgType | No | Cualquier valor válido | String | MsgType (etiqueta=35) del mensaje FIX al que se hace referencia. |
| 379 | BusinessRejectRefID | No | Cualquier valor válido | String | Valor del campo de ID a nivel de negocio en el mensaje al que se hace referencia. Requerido a menos que el campo de ID correspondiente no se haya especificado. |
| 380 | BusinessRejectReason | Sí | 0 | Integer | Un código para identificar el motivo de un mensaje de Rechazo de Mensaje de Negocio. 0 = Otro |
| 58 | Text | No | Cualquier valor válido | String | Cuando sea posible, un mensaje para explicar el motivo del rechazo. |
Standard Trailer | Sí |
Vea un ejemplo de un mensaje de Rechazo de Mensaje de Negocio a continuación.
8=FIX.4.4|9=149|35=j|34=2|49=CSERVER|52=20170105-06:36:00.912|56=live.theBroker.12345|57=any_string|58=Message to explain reason for rejection|379=u4Jr7Rr5t2VS7HSP|380=0|10=123|
Request for Positions (MsgType(35)=AN)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 710 | PosReqID | Sí | Cualquier valor válido | String | Un ID de solicitud único (establecido por el cliente). |
| 721 | PosMaintRptID | No | Cualquier valor válido | String | Un ID de posición para solicitar. Si no se establece, se devolverán todas las posiciones abiertas. |
Standard Trailer | Sí |
Vea ejemplos de mensajes de Solicitud de Posiciones a continuación.
Solicitar:
8=FIX.4.4|9=100|35=AN|49=live.theBroker.12345|56=CSERVER|34=99|52=20170117-10:09:54|50=any_string|57=TRADE|710=876316401|10=103|
Respuesta:
8=FIX.4.4|9=163|35=AP|34=98|49=CSERVER|50=TRADE|52=20170117-10:09:54.076|56=live.theBroker.12345|57=any_string|55=1|710=876316401|721=101|727=1|728=0|730=1.06671|702=1|704=0|705=30000|10=182|
Position Report (MsgType(35)=AP)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 710 | PosReqID | Sí | Cualquier valor válido | String | Un ID del mensaje de Solicitud de Posiciones. |
| 721 | PosMaintRptID | No | Cualquier valor válido | String | Un ID de posición, que no se establece si PosReqResult (etiqueta=728) no es VALID_REQUEST. |
| 727 | TotalNumPosReports | Sí | Cualquier valor válido | String | El recuento total de Informes de Posición en una secuencia cuando PosReqResult (etiqueta=728) es VALID_REQUEST, de lo contrario = 0. |
| 728 | PosReqResult | Sí | 0 o 2 | String | 0 = Solicitud válida 2 = No se encuentran posiciones abiertas que coincidan con los criterios. |
| 55 | Symbol | No | Cualquier valor válido | String | Un símbolo para el cual se prepara el Informe de Posición actual. No se establece si PosReqResult (etiqueta=728) no es VALID_REQUEST. |
| 702 | NoPositions | No | 1 | String | 1 cuando PosReqResult (etiqueta=728) es VALID_REQUEST, de lo contrario no se establece. |
| 704 | LongQty | No | Cualquier valor válido | String | Volumen abierto de la posición en caso de lado de operación de compra, igual a 0 en caso de lado de operación de venta. No se establece si PosReqResult (etiqueta=728) no es VALID_REQUEST. |
| 705 | ShortQty | No | Cualquier valor válido | String | Volumen abierto de la posición en caso de lado de operación de venta, igual a 0 en caso de lado de operación de compra. No se establece si PosReqResult (etiqueta=728) no es VALID_REQUEST. |
| 730 | SettlPrice | No | Cualquier valor válido | String | Un precio promedio del volumen abierto en el Informe de Posición actual. |
| 1000 | AbsoluteTP | No | Cualquier valor válido | Precio | Un precio absoluto al que se activará el take profit. |
| 1002 | AbsoluteSL | No | Cualquier valor válido | Precio | Un precio absoluto al que se activará el stop loss. |
| 1004 | TrailingSL | No | Cualquier valor válido | Boolean | Indica si el stop loss es dinámico. N = El stop loss no es dinámico. Y = El stop loss es dinámico. |
| 1005 | TriggerMethodSL | No | Cualquier valor válido | Integer | Un método de activación indicado del stop loss. 1 = El stop loss se activará por el lado de la operación. 2 = El stop loss se activará por el lado opuesto (demanda para posiciones de compra y oferta para posiciones de venta). 3 = El stop loss se activará después de dos ticks consecutivos según el lado de la operación. 4 = El stop loss se activará después de dos ticks consecutivos según el lado opuesto (segundo tick de demanda para posiciones de compra y segundo tick de oferta para posiciones de venta). |
| 1006 | GuaranteedSL | No | Cualquier valor válido | Boolean | Indica si el stop loss está garantizado. N = El stop loss no está garantizado. Y = El stop loss está garantizado. |
Standard Trailer | Sí |
Order Cancel Request (MsgType(35)=F)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 41 | OrigClOrdID | Sí | Cualquier valor válido | String | Un identificador único de la orden que se va a cancelar, asignado por el cliente. |
| 37 | OrderID | No | Cualquier valor válido | String | Un ID único de la orden devuelto por cServer. |
| 11 | ClOrdID | Sí | Cualquier valor válido | String | Un ID único de la solicitud de cancelación asignado por el cliente. |
Standard Trailer | Sí |
Vea ejemplos de mensajes de Solicitud de Cancelación de Orden a continuación.
Solicitar:
8=FIX.4.4|9=115|35=F|34=2|49=live.theBroker.12345|50=Trade|52=20170721-13:41:21.694|56=CSERVER|57=TRADE|11=jR8dBPcZEQa9|41=n9Tm8x1AavO5|10=182|
Respuesta (éxito):
8=FIX.4.4|9=221|35=8|34=3|49=CSERVER|50=TRADE|52=20170721-13:41:21.784|56=live.theBroker.12345|57=Trade|11=jR8dBPcZEQa9|14=0|37=641|38=100000|39=4|40=2|41=n9Tm8x1AavO5|44=1.499|54=1|55=1|59=1|60=20170721-13:41:21.760|150=4|151=100000|721=624|10=180|
Respuesta (fallida):
8=FIX.4.4|9=174|35=j|34=3|49=CSERVER|50=TRADE|52=20170721-13:41:21.856|56=live.theBroker.12345|57=Trade|58=ORDER_NOT_FOUND:Order with clientOrderId=n9Tm8x1AavO5 not found.|379=jR8dBPcZEQa9|380=0|10=075|
Order Cancel Reject (MsgType(35)=9)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 37 | OrderID | Sí | Cualquier valor válido | String | Un identificador único de la orden que el sistema no pudo cancelar. |
| 11 | ClOrdID | Sí | Cualquier valor válido | String | Un identificador único de la Solicitud de Cancelación de Orden. |
| 41 | OrigClOrdID | No | Cualquier valor válido | String | Un identificador único de la orden que se intentó cancelar, asignado por el cliente. |
| 39 | OrdStatus | Sí | Cualquier valor válido | Char | 0 = Nueva 1 = Parcialmente ejecutada 2 = Ejecutada 8 = Rechazada 4 = Cancelada (cuando la orden está parcialmente ejecutada, se devuelve Canceled indicando (tag=151), LeavesQty está cancelada y no se ejecutará posteriormente). C = Expirada |
| 434 | CxlRejResponseTo | Sí | 1 o 2 | Char | 1 = Rechazar cancelación de orden. 2 = Rechazar modificación de orden desde otra terminal. |
| 58 | Text | No | Cualquier valor válido | String | Una orden está en ejecución. |
Standard Trailer | Sí |
Vea un ejemplo de un mensaje de Rechazo de Cancelación de Orden a continuación.
Respuesta:
8=FIX.4.4|9=156|35=9|34=3|49=CSERVER|50=TRADE|52=20181024-12:35:02.896|56=live.theBroker.12345|57=Trade|11=gBljx7YOg5jY|37=629|39=0|41=FdXLfS0tTyUL|58=Order is under execution|434=1|10=109|
Order Cancel/Replace Request (MsgType(35)=G)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 41 | OrigClOrdID | Sí | Any valid value | String | Un identificador único de la orden que se va a modificar, asignado por el cliente. |
| 37 | OrderID | No | Cualquier valor válido | String | Un ID único de la orden original que se va a modificar, asignado por el servidor. Un método preferible para usar. |
| 11 | ClOrdID | Sí | Cualquier valor válido | String | Un ID único de la solicitud de modificación asignado por el cliente. |
| 38 | OrderQty | Sí | Cualquier valor válido | Qty | Una cantidad existente o recién especificada para reemplazar el valor antiguo. |
| 44 | Price | No | Cualquier valor válido | Precio | Un precio límite existente o recién especificado para reemplazar el valor antiguo. Válido solo para órdenes limitadas. |
| 99 | StopPx | No | Cualquier valor válido | Precio | Un precio de stop existente o recién especificado para reemplazar el valor antiguo. Válido solo para órdenes de stop. |
| 126 | ExpireTime | No | 20140215-07:24:55 | Marca de tiempo | Tiempo de vencimiento existente o recién especificado. Válido solo para órdenes pendientes. |
Standard Trailer | Sí |
Vea ejemplos de mensajes de Solicitud de Cancelación/Reemplazo de Orden a continuación.
Solicitar:
8=FIX.4.4|9=123|35=G|34=3|49=live.theBroker.12345|50=Trade|52=20170721-13:42:17.680|56=CSERVER|57=TRADE|11=Is03AvsknNYK|38=5000|41=n9Tm8x1AavO5|44=1.1|10=010|
Respuesta (éxito):
8=FIX.4.4|9=192|35=8|34=3|49=CSERVER|50=TRADE|52=20170721-13:42:18.784|56=live.theBroker.12345|57=Trade|11=Is03AvsknNYK|14=0|37=629|38=5000|39=0|40=2|44=1.1|54=1|55=1|59=1|60=20170721-13:42:18.760|150=5|151=5000|721=624|10=150|
Respuesta (fallida):
8=FIX.4.4|9=171|35=j|34=3|49=CSERVER|50=TRADE|52=20170721-13:42:18.784|56=live.theBroker.12345|57=Trade|58=ORDER_NOT_FOUND:Order with orderId:4429421711699105367 isn't found|379=NXek3EzJvMme|380=0|10=245|
Market Data Request Reject (MsgType(35)=Y)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 262 | MDReqID | Sí | Cualquier valor válido | String | Debe referirse a MDReqID (tag=262) de la solicitud. |
| 281 | MDReqRejReason | No | Cualquier valor válido | Integer | 0 = Símbolo desconocido 4 = SubscriptionRequestType (tag=263) no soportado 5 = MarketDepth (tag=264) no soportado |
Standard Trailer | Sí |
Vea ejemplos de mensajes de Rechazo de Solicitud de Datos de Mercado a continuación.
Solicitar:
8=FIX.4.4|9=148|35=V|34=2|49=live.theBroker.12345|50=Quote|52=20170920-09:52:13.032|56=CSERVER|57=QUOTE|262=CS8260:sXlXex|263=1|264=0|265=1|146=1|55=CS8260|267=2|269=0|269=1|10=129|
Rechazar:
8=FIX.4.4|9=164|35=Y|34=2|49=CSERVER|50=QUOTE|52=20170920-09:52:13.036|56=live.theBroker.12345|57=Quote|58=INVALID_REQUEST: Expected numeric symbolId, but got CS8260|262=CS8260:sXlXex|281=0|10=236|
Solicitar:
8=FIX.4.4|9=136|35=V|34=6|49=live.theBroker.12345|50=Quote|52=20170920-09:52:13.199|56=CSERVER|57=QUOTE|262=EwOhiWvMdCpc|263=1|264=3|146=1|55=1|267=2|269=0|269=1|10=182|
Rechazar:
8=FIX.4.4|9=157|35=Y|34=6|49=CSERVER|50=QUOTE|52=20170920-09:52:13.201|56=live.theBroker.12345|57=Quote|58=INVALID_REQUEST: MarketDepth should be either 0 or 1|262=EwOhiWvMdCpc|281=5|10=088|
Security List Request (MsgType(35)=x)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 320 | SecurityReqID | Sí | Cualquier valor válido | String | Un ID único de la Solicitud de Definición de Seguridad. |
| 559 | SecurityListRequestType | Sí | 0 | Integer | El tipo de Solicitud de Lista de Seguridad que se está realizando. Solo se admite 0 = Symbol (tag=55). |
| 55 | Symbol | No | Cualquier valor válido | Integer | Un ID para resolver el nombre del símbolo. |
Standard Trailer | Sí |
Vea ejemplos de mensajes de Solicitud de Lista de Seguridad a continuación.
Solicitar:
8=FIX.4.4|9=107|35=x|34=3|49=live.theBroker.12345|50=Trade|52=20180427-12:24:27.106|56=CSERVER|57=TRADE|55=39|320=ILCea0JkdQEm|559=0|10=248|
Respuesta:
8=FIX.4.4|9=158|35=y|34=3|49=CSERVER|50=TRADE|52=20180427-12:24:27.107|56=live.theBroker.12345|57=Trade|320=ILCea0JkdQEm|322=responce:ILCea0JkdQEm|560=0|146=1|55=39|1007=NZDCHF|1008=4|10=088|
Security List (MsgType(35)=y)¶
| Tag | Nombre del campo | Obligatorio | Valor | Formato FIX | Comentarios |
|---|---|---|---|---|---|
Standard Header | Sí | ||||
| 320 | SecurityReqID | Sí | Cualquier valor válido | String | Un ID único de la Solicitud de Definición de Seguridad. |
| 322 | SecurityResponseID | Sí | Cualquier valor válido | String | Un ID único de la respuesta de Lista de Seguridad. |
| 560 | SecurityRequestResult | Sí | 0 | Integer | Resultados devueltos al mensaje de Solicitud de Seguridad. Los valores válidos son: 0 = Solicitud válida. 1 = Solicitud inválida o no soportada. 2 = No se encuentran instrumentos que coincidan con los criterios de selección. 3 = No autorizado para recuperar datos de instrumentos. 4 = Datos de instrumentos temporalmente no disponibles. 5 = Solicitud de datos de instrumentos no soportada. |
| 146 | NoRelatedSym | No | Cualquier valor válido | Integer | Especifica el número de símbolos (instrumentos) repetidos. |
| 55 | Symbol | No | Cualquier valor válido | Integer | Los identificadores de instrumentos son proporcionados por Spotware. |
| 1007 | SymbolName | No | Cualquier valor válido | String | Un nombre de símbolo. |
| 1008 | SymbolDigits | No | Cualquier valor válido | Integer | Dígitos del símbolo. Valores posibles de 0 a 5. |
Standard Trailer | Sí |
Vea un ejemplo de un mensaje de Lista de Seguridad a continuación.
Respuesta:
8=FIX.4.4|9=3977|35=y|34=2|49=CSERVER|50=TRADE|52=20180426-12:07:37.816|56=live.theBroker.12345|57=Trade|320=Sxo2Xlb1jzJC|322=responce:Sxo2Xlb1jzJC|560=0|146=143|55=1|1007=EURUSD|1008=5|55=2|1007=GBPUSD|1008=5|55=3|1007=EURJPY|1008=3|55=4|1007=USDJPY|1008=3|55=5|1007=AUDUSD|1008=5|55=6|1007=USDCHF|1008=5|55=7|1007=GBPJPY|1008=3|55=8|1007=USDCAD|1008=5|55=9|1007=EURGBP|1008=5|55=10|1007=EURCHF|1008=5|55=11|1007=AUDJPY|1008=2|55=12|1007=NZDUSD|1008=5|55=13|1007=CHFJPY|1008=2|55=14|1007=EURAUD|1008=4|55=15|1007=CADJPY|1008=2|55=16|1007=GBPAUD|1008=4|55=17|1007=EURCAD|1008=4|55=10001|1007=USDCFDSAX|1008=5|55=18|1007=AUDCAD|1008=4|55=10002|1007=CD3295|1008=5|55=19|1007=GBPCAD|1008=4|55=10003|1007=DU3295|1008=5|55=20|1007=AUDNZD|1008=4|55=10004|1007=CS5965|1008=2|55=21|1007=NZDJPY|1008=2|55=10005|1007=CS6014_3|1008=5|55=22|1007=USDNOK|1008=4|55=10006|1007=DU6014_3|1008=5|55=23|1007=AUDCHF|1008=4|55=10007|1007=CS6014_4|1008=5|55=24|1007=USDMXN|1008=4|55=10008|1007=DU6014_4|1008=5|55=25|1007=GBPNZD|1008=4|55=10009|1007=CS5953|1008=5|55=26|1007=EURNZD|1008=4|55=10010|1007=CS6407_01_EURUSD|1008=5|55=27|1007=CADCHF|1008=4|55=10011|1007=CS6407_01_GBPUSD|1008=5|55=28|1007=USDSGD|1008=5|55=10012|1007=CS6407_02_EURUSD|1008=5|55=29|1007=USDSEK|1008=4|55=10013|1007=CS6407_03_EURUSD|1008=5|55=30|1007=NZDCAD|1008=4|55=31|1007=EURSEK|1008=4|55=10015|1007=CS7847_01_EURUSD|1008=5|55=32|1007=GBPSGD|1008=4|55=10016|1007=CS7847_01_GBPUSD|1008=5|55=33|1007=EURNOK|1008=4|55=10017|1007=CS7847_02_EURUSD|1008=5|55=34|1007=EURHUF|1008=2|55=10018|1007=CS7847_03_EURUSD|1008=5|55=35|1007=USDPLN|1008=4|55=10019|1007=CS7847_04_GBPUSD|1008=5|55=36|1007=USDDKK|1008=4|55=10020|1007=CS9004S|1008=2|10=096|