Vai al contenuto

Motore FIX di cTrader (Regole di Ingaggio)

Introduzione

Ambito

Questa specifica è destinata a servire agli sviluppatori di software come guida all'implementazione per l'API del motore FIX di cTrader.

Versione FIX

cTrader supporta la versione 4.4 di FIX. Per ulteriori informazioni su questa versione, fare riferimento a queste specifiche.

Connettività

Tipo di connessione

Una connessione al motore FIX di cTrader è disponibile tramite Internet, un tunnel VPN o una connessione diretta alle nostre strutture del centro dati nel Regno Unito. Contattaci per ulteriori dettagli.

Reset del numero di sequenza

Tutti i lati di una sessione FIX dovrebbero avere i numeri di sequenza reimpostati all'avvio di una sessione FIX. Vedi il messaggio di Logon.

Messaggi

Come definito nel protocollo FIX, il server FIX di cTrader utilizza due diversi livelli di dati (sistema e applicazione). Nota che questo è un set minimo di messaggi richiesti per supportare i flussi di lavoro necessari. È soggetto a modifiche nel tempo man mano che evolvono sia le esigenze aziendali che gli standard FIX.

Motore FIX di cTrader

Messaggi di sistema

  • Heartbeat (Client ↔ cTrader)
  • Test Request (Client ↔ cTrader)
  • Logon (Client → cTrader)
  • Logout (Client → cTrader)
  • Resend Request (Client ↔ cTrader)
  • Reject (Client ↔ cTrader)
  • Sequence Reset (Client ↔ cTrader)

Messaggi dell'applicazione

  • Market Data Request (Client → cTrader)
  • Market Data Snapshot/Full Refresh (Client ← cTrader)
  • Market Data Incremental Refresh (Client ← cTrader)
  • New Order Single (Client → cTrader)
  • Order Status Request (Client → cTrader)
  • Order Mass Status Request (Client → cTrader)
  • Execution Report (Client ← cTrader)
  • Business Message Reject (Client ← cTrader)
  • Request for Positions (Client → cTrader)
  • Position Report (Client ← cTrader)
  • Order Cancel Request (Client → cTrader)
  • Order Cancel Reject (Client ← cTrader)
  • Order Cancel/Replace Request (Client → cTrader)
  • Security List Request (Client → cTrader)
  • Security List (Client ← cTrader)

Intestazione standard

Ogni messaggio amministrativo o applicativo è preceduto da un'intestazione standard. Le intestazioni identificano un tipo di messaggio, lunghezza, destinazione, numero di sequenza, punto di origine e ora.

Tutti i messaggi inviati a cTrader devono avere un'intestazione standard con i seguenti campi:

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
8 BeginString FIX.4.4 Stringa Sempre non criptato, deve essere il primo campo in un messaggio.
9 BodyLength Qualsiasi valore valido Intero Lunghezza del corpo del messaggio. Sempre non criptato, deve essere il secondo campo in un messaggio.
35 MsgType A Stringa Un tipo di messaggio. Sempre non criptato, deve essere il terzo campo in un messaggio.
49 SenderCompID Qualsiasi valore valido Stringa Un ID della parte di trading nel seguente formato: <Environment>.<BrokerUID>.<Trader Login>, dove Environment è una determinazione del server, come demo o live; BrokerUID è fornito da cTrader e Trader Login è un identificatore numerico dell'account del trader.
56 TargetCompID CSERVER Stringa Un destinatario del messaggio. The valid value is CSERVER.
57 TargetSubID QUOTE o TRADE Stringa Un qualificatore di sessione aggiuntivo. I valori possibili sono QUOTE e TRADE.
50 SenderSubID No Qualsiasi valore valido Stringa Il valore assegnato utilizzato per identificare un originatore specifico del messaggio. Deve essere impostato su QUOTE se TargetSubID=QUOTE.
34 MsgSeqNum 1 Intero Un numero di sequenza del messaggio.
52 SendingTime 20131129-15:40:08.155 UTCTimestamp Ora della trasmissione del messaggio sempre espressa in UTC (Tempo Coordinato Universale, noto anche come GMT).

Trailer standard

Ogni messaggio, amministrativo o applicativo, è terminato da un trailer standard. Il trailer viene utilizzato per separare i messaggi e contiene una rappresentazione a tre cifre del valore CheckSum (tag=10).

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
10 CheckSum 054 Stringa Un checksum semplice a tre byte. Sempre l'ultimo campo in un messaggio (ad esempio, serve), con il <SOH> finale come delimitatore di fine messaggio. È definito come tre caratteri (sempre non criptati).

Messaggi di sessione

Heartbeat (MsgType(35)=0)

I messaggi Heartbeat vengono inviati sia da cTrader che dall'applicazione client per confermare una connessione attiva.

L'applicazione client del fornitore trasmette un heartbeat ricorrente all'intervallo, che è definito dal campo HeartBtInt (tag=108) in un messaggio Logon, o come risposta a un messaggio Test Request.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
112 TestReqID No Qualsiasi valore valido Stringa Se un heartbeat è il risultato del messaggio Test Request, TestReqID è richiesto.
Standard Trailer

Test Request (MsgType(35)=1)

Forza un heartbeat dal ricevitore di una richiesta. Una risposta viene inviata dal sistema ricevente come messaggio Heartbeat contenente TestReqID.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
112 TestReqID Qualsiasi valore valido Stringa Un ID del messaggio heartbeat. TestReqID dovrebbe essere incrementale.
Standard Trailer

Logon (bidirectional) (MsgType(35)=A)

Un messaggio Logon viene inviato dall'applicazione lato client per iniziare una sessione FIX di cTrader, e una risposta viene inviata da cTrader all'applicazione lato client. Una volta completato il logon, i flussi di quotazione e trading possono procedere per il ciclo di vita della sessione.

Se cTrader riceve un messaggio Logon non valido (con campi non validi), cTrader invia un messaggio Logout in risposta.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
98 EncryptMethod 0 Intero Definisce uno schema di crittografia del messaggio. Attualmente, è supportata solo la sicurezza a livello di trasporto. Il valore valido è 0 = NONE_OTHER (la crittografia non viene utilizzata).
108 HeartBtInt Qualsiasi valore valido Intero Un intervallo di heartbeat in secondi. Il valore è impostato nel file config.properties (lato client) come SERVER.POLLING.INTERVAL. Il valore predefinito dell'intervallo è 30 secondi. Se HeartBtInt è impostato su 0, non è richiesto alcun messaggio heartbeat.
141 ResetSeqNumFlag No Y Booleano Tutti i lati della sessione FIX dovrebbero avere i numeri di sequenza azzerati. Il valore valido è Y (azzeramento).
553 Username No Qualsiasi valore valido Stringa Un ID utente numerico. L'utente è collegato al valore SenderCompID (l'organizzazione dell'utente, tag=49).
554 Password No Qualsiasi valore valido Stringa Una password utente.
Standard Trailer

Nota

Il campo Username (tag=553) deve contenere un valore di login del trader numerico, mentre SenderCompID (tag=49) deve contenere un ambiente, BrokerUID e un login del trader delimitati da un punto (ad esempio, live.theBroker.12345).

Vedi esempi di messaggi Logon di seguito.

Richiesta:

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|

Risposta (successo):

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|

Risposta (fallita):

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 messaggio Logout viene inviato dall'applicazione client per richiedere la fine di una sessione con cTrader e come risposta da cTrader. Un logout di sessione si verifica in risposta all'invio di un messaggio Logout da parte di un Partecipante di Mercato a cTrader. Prima di terminare la sessione, cTrader annullerà tutti i prezzi che stanno ancora attivamente fluendo verso la parte richiedente. Se cTrader riceve un messaggio Logon non valido (con campi non validi), cTrader invia un messaggio Logout in risposta con i dettagli dell'errore nel campo Text (tag=58).

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
58 Text No Qualsiasi valore valido Stringa Dettagli del rifiuto del Logon. Utilizzato solo per i messaggi da cTrader al client come risposta a un messaggio Logon non valido.
Standard Trailer

Vedi esempi di messaggi Logout di seguito.

Richiesta:

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|

Risposta:

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 messaggio in entrata/uscita viene utilizzato per richiedere il reinvio di un messaggio (o messaggi), tipicamente quando viene rilevato un gap nella numerazione sequenziale.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
7 BeginSeqNo Qualsiasi valore valido Intero Un numero di sequenza del messaggio del primo record nell'intervallo da reinviare.
16 EndSeqNo Qualsiasi valore valido Intero Un numero di sequenza del messaggio dell'ultimo record nell'intervallo da reinviare.
Standard Trailer

Reject (bidirectional) (MsgType(35)=3)

Inviato quando il messaggio ricevuto non può essere elaborato a causa di una violazione delle regole a livello di sessione. I messaggi rifiutati devono essere registrati e deve essere applicato un incremento al numero di sequenza in arrivo.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
45 RefSeqNum Qualsiasi valore valido SeqNum Un numero di sequenza del messaggio di riferimento.
58 Text No Qualsiasi valore valido Stringa Una stringa di testo in formato libero.
354 EncodedTextLen No Qualsiasi valore valido Lunghezza Lunghezza del campo EncodedText (caratteri non ASCII) in byte.
355 EncodedText No Qualsiasi valore valido Dati Una rappresentazione del campo Text (tag=58), codificata utilizzando il formato specificato nel campo MessageEncoding (tag=347) (dall'intestazione standard). Se viene utilizzata la rappresentazione ASCII, dovrebbe essere specificata anche nel campo Text (tag=58).
371 RefTagID No Qualsiasi valore valido Intero Un numero di tag del campo FIX che ha avviato il rifiuto del messaggio.
372 RefMsgType No Qualsiasi valore valido Stringa MsgType (tag=35) del messaggio FIX di riferimento.
373 SessionRejectReason No Qualsiasi valore valido Intero Cause codificate del rifiuto. I valori validi sono:
0 = Numero di tag non valido
1 = Tag obbligatorio mancante
2 = Nessun tag definito per questo tipo di messaggio
3 = Tag non definito
4 = Nessun valore per il tag specificato
5 = Il valore per questo tag è fuori intervallo
6 = Formato dati non corretto per il valore
7 = Problema di decrittazione
8 = Errore di firma
9 = Errore CompID
10 = Errore di precisione SendingTime
11 = MsgType non valido
12 = Errore di convalida XML
13 = Il tag viene ripetuto
14 = Il tag specificato non è nell'ordine corretto
15 = I campi del gruppo ripetuto non sono nell'ordine corretto
16 = Conteggio NumInGroup non corretto per il gruppo ripetuto
17 = Delimitatore di campo (carattere SOH) incluso in un valore non dati
Standard Trailer

Sequence Reset (MsgType(35)=4)

Un messaggio in entrata/uscita non dovrebbe essere utilizzato a livello applicativo. Un messaggio di Sequence Reset può solo aumentare un numero di sequenza.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
123 GapFillFlag No Yes o No Stringa Indica che un messaggio di Sequence Reset sta sostituendo messaggi amministrativi o applicativi che non verranno reinviati.
36 NewSeqNo 1 Intero Un nuovo numero di sequenza.
Standard Trailer

Messaggi applicativi

Market Data Request (MsgType(35)=V)

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
262 MDReqID Qualsiasi valore valido Stringa Un ID univoco della richiesta di quotazione. Un nuovo ID per una nuova sottoscrizione, lo stesso ID utilizzato in precedenza per la rimozione di una sottoscrizione.
263 SubscriptionRequestType 1 o 2 Char 1 = Snapshot più aggiornamenti (sottoscrivi).
2 = Disabilita la precedente richiesta di snapshot più aggiornamenti (annulla sottoscrizione).
264 MarketDepth 0 o 1 Intero Verrà fornito un libro completo.
0 = Sottoscrizione della profondità
1 = Sottoscrizione spot
265 MDUpdateType Qualsiasi valore valido Intero È supportato solo l'Aggiornamento Incrementale.
267 NoMDEntryTypes 2 Intero Sempre impostato su 2 (verranno inviati sia bid che ask).
269 MDEntryType 0 o 1 Char Questo gruppo ripetuto contiene un elenco di tutti i tipi di Market Data Entries che il richiedente desidera ricevere.
0 = Bid
1 = Offer
146 NoRelatedSym Qualsiasi valore valido Intero Il numero di simboli richiesti.
55 Symbol Qualsiasi valore valido Long Gli identificatori degli strumenti sono forniti da Spotware.
Standard Trailer

Vedi esempi di messaggi di Market Data Request di seguito.

Per Spot

Richiesta:

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|

Risposta:

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|

Per Profondità

Richiesta:

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|

Risposte:

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 Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
262 MDReqID Qualsiasi valore valido Stringa L'ID della richiesta di dati di mercato precedentemente inviata.
55 Symbol Qualsiasi valore valido Long Gli identificatori degli strumenti sono forniti da Spotware.
268 NoMDEntries Qualsiasi valore valido Intero Il numero di voci seguenti.
269 MDEntryType No 0 o 1 Char I valori validi sono:
0 = Bid
1 = Offer
Richiesto solo quando NoMDEntries (tag=268) > 0.
299 QuoteEntryID No Qualsiasi valore valido Stringa Un'identificazione univoca della quotazione come parte di QuoteSet.
270 MDEntryPx No 1.2345 Prezzo Un prezzo del Market Data Entry. Richiesto solo quando NoMDEntries (tag=268) > 0.
271 MDEntrySize No 500000 Volume Volume del Market Data Entry. Richiesto solo quando NoMDEntries (tag=268) > 0.
278 MDEntryID No Qualsiasi valore valido Stringa Un identificatore univoco del Market Data Entry.
Standard Trailer

Market Data Incremental Refresh (MsgType(35)=X)

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
262 MDReqID Qualsiasi valore valido Stringa L'ID della richiesta di dati di mercato precedentemente inviata.
268 NoMDEntries Qualsiasi valore valido Intero Il numero di voci seguenti. Questo gruppo ripetuto contiene un elenco di tutti i tipi di Market Data Entries che il richiedente desidera ricevere.
279 MDUpdateAction 0 o 2 Char Un tipo di azione di aggiornamento dei dati di mercato. I valori validi sono:
0 = Nuovo
2 = Elimina
269 MDEntryType No 0 o 1 Char I valori validi sono:
0 = Bid
1 = Offer
278 MDEntryID Qualsiasi valore valido Stringa Un ID del Market Data Entry.
55 Symbol Qualsiasi valore valido Long Gli identificatori degli strumenti sono forniti da Spotware.
270 MDEntryPx No 1.2345 Prezzo Richiesto solo quando MDUpdateAction (tag=279) = 0.
271 MDEntrySize No 10000 Double Richiesto solo quando MDUpdateAction (tag=279) = 0.
Standard Trailer

New Order Single (MsgType(35)=D)

Un messaggio New Order Single ha il seguente formato.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
11 ClOrdID Qualsiasi valore valido Stringa Un identificatore univoco dell'ordine assegnato dal cliente.
55 Symbol Qualsiasi valore valido Long Gli identificatori degli strumenti sono forniti da Spotware.
54 Side 1 o 2 Intero 1 = Buy
2 = Sell
60 TransactTime Qualsiasi valore valido Timestamp Ora della richiesta generata dal cliente.
38 OrderQty Qualsiasi valore valido Qty Il numero di azioni ordinate. Questo rappresenta il numero di azioni per i titoli azionari o, in base alla convenzione normale, il numero di contratti per opzioni, futures, obbligazioni convertibili, ecc. La precisione massima è 0,01. Prima di FIX 4.2, il tipo di questo campo era "Integer".
40 OrdType 1, 2 o 3 Char 1 = Mercato, l'ordine sarà elaborato secondo lo schema Immediate or Cancel (IOC) (TimeInForce, tag=59).
2 = Limite, l'ordine sarà elaborato secondo lo schema Good Till Cancel (GTC) (TimeInForce, tag=59).
3 = Stop, l'ordine sarà elaborato secondo lo schema Good Till Cancel (GTC) (TimeInForce, tag=59).
44 Price No Qualsiasi valore valido Prezzo Il prezzo peggiore per il cliente che il cliente accetterà. Richiesto solo quando OrdType (tag=40) = 2, nel qual caso l'ordine non sarà eseguito a meno che questo prezzo non possa essere soddisfatto.
99 StopPx No Qualsiasi valore valido Prezzo Un prezzo che attiva l'ordine stop. Richiesto solo quando OrdType (tag=40) = 3, nel qual caso l'ordine non sarà eseguito a meno che questo prezzo non possa essere soddisfatto.
59 TimeInForce No 1, 3 or 6 Stringa Deprecato, questo valore sarà ignorato. TimeInForce sarà rilevato automaticamente in base a OrdType (tag=40) e ExpireTime (tag=126):
1 = Good Till Cancel (GTC), sarà utilizzato solo per ordini limite e stop (OrdType, tag=40) solo se ExpireTime (tag=126) non è definito.
3 = Immediate or Cancel (IOC), sarà utilizzato solo per ordini di mercato (OrdType, tag=40).
6 = Good Till Date (GTD), sarà utilizzato solo per ordini limite e stop (OrdType, tag=40) solo se ExpireTime (tag=126) è definito.
126 ExpireTime No 20140215-07:24:55 Timestamp Tempo di scadenza nel formato "AAAAMMGG-HH:MM:SS". Se assegnato, l'ordine sarà elaborato secondo lo schema GTD (TimeInForce: GTD).
721 PosMaintRptID No Qualsiasi valore valido Stringa Un ID di posizione in cui questo ordine dovrebbe essere piazzato. Se non impostato, verrà creata una nuova posizione e il suo ID sarà restituito nel messaggio Execution Report. Può essere specificato solo per conti con hedging.
494 Designation No Qualsiasi valore valido Stringa Un'etichetta personalizzata dell'ordine.
Standard Trailer

Vedi esempi di messaggi New Order Single di seguito.

Ordine di mercato per nuova posizione

Richiesta:

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|

Risposte:

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|

Ordine di mercato per posizione esistente

Richiesta:

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|

Risposte:

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

Ordine limite per posizione esistente

Richiesta:

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|

Risposta:

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|

Ordine stop per nuova posizione

Richiesta:

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|

Risposta:

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 messaggio Order Status Request viene utilizzato da un'istituzione per generare un messaggio di stato dell'ordine dal trader. Per un'interazione corretta, è molto importante avere identificatori di ordine cliente univoci (ClOrdID) per tutti gli ordini.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
11 ClOrdID Qualsiasi valore valido Stringa Un identificatore univoco dell'ordine assegnato dal cliente.
54 Side No 1 o 2 Intero 1 = Buy
2 = Sell
Standard Trailer

Vedi esempi di messaggi Order Status Request di seguito.

Richiesta:

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|

Risposta:

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 messaggio Order Mass Status Request richiede lo stato degli ordini che corrispondono ai criteri specificati nella richiesta. La risposta sarà restituita come una serie di messaggi Execution Report (uno per ogni ordine), o come un messaggio Business Message Reject se non vengono trovati ordini.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
584 MassStatusReqID Qualsiasi valore valido Stringa Un ID univoco della Mass Status Request assegnato dal cliente.
585 MassStatusReqType Qualsiasi valore valido Intero 7 = Stato per tutti gli ordini.
Attualmente è supportato solo il valore 7.
225 IssueDate No Qualsiasi valore valido Stringa Se impostato, la risposta conterrà solo gli ordini creati prima di questa data.
Standard Trailer

Vedi esempi di messaggi Order Mass Status Request di seguito.

Richiesta:

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|

Risposta:

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 messaggio Execution Report per un ordine accettato ha il seguente formato.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
37 OrderID Qualsiasi valore valido Stringa Un ID ordine cTrader.
11 ClOrdID No Qualsiasi valore valido Stringa Un identificatore univoco dell'ordine assegnato dal cliente.
911 TotNumReports No Qualsiasi valore valido Intero Il numero totale di report restituiti in risposta al messaggio Order Mass Status Request.
150 ExecType Qualsiasi valore valido Char 0 = New
4 = Canceled
5 = Replace
8 = Rejected
C = Expired
F = Trade
I = Order Status
39 OrdStatus Qualsiasi valore valido Char 0 = Nuovo
1 = Parzialmente eseguito
2 = Eseguito
8 = Rifiutato
4 = Annullato (quando l'ordine è parzialmente eseguito, viene restituito Canceled che significa (tag=151), LeavesQty è annullato e non sarà successivamente eseguito).
C = Scaduto
55 Symbol No Qualsiasi valore valido Long Gli identificatori degli strumenti sono forniti da Spotware.
54 Side No 1 o 2 Intero 1 = Acquista
2 = Vendi
60 TransactTime No Qualsiasi valore valido Timestamp Ora di esecuzione di una transazione rappresentata dal messaggio Execution Report (in UTC).
6 AvgPx No Qualsiasi valore valido Intero Un prezzo al quale l'operazione è stata eseguita. Per un ordine IOC o GTD, questo è il prezzo medio ponderato in base al volume (VWAP) dell'ordine eseguito.
38 OrderQty No Qualsiasi valore valido Qty Questo rappresenta il numero di azioni per i titoli azionari o, in base alla convenzione normale, il numero di contratti per opzioni, futures, obbligazioni convertibili, ecc. Prima di FIX 4.2, il tipo di questo campo era "Integer".
151 LeavesQty No Qualsiasi valore valido Qty Il numero di ordini ancora da eseguire. I valori possibili sono compresi tra 0 (completamente eseguito) e OrderQty (parzialmente eseguito).
14 CumQty No Qualsiasi valore valido Qty Il numero totale di ordini che sono stati eseguiti.
32 LastQty No Qualsiasi valore valido Qty La quantità acquistata/venduta di ordini che sono stati eseguiti in questa (ultima) esecuzione.
40 OrdType No 1 o 2 Char 1 = Mercato
2 = Limite
44 Price No Qualsiasi valore valido Prezzo Se fornito in un messaggio New Order Single, viene ripetuto in questo messaggio Execution Report.
99 StopPx No Qualsiasi valore valido Prezzo Se fornito in un messaggio New Order Single, viene ripetuto in questo messaggio Execution Report.
59 TimeInForce No 1, 3 o 6 Stringa 1 = Good Till Cancel (GTC)
3 = Immediate or Cancel (IOC)
6 = Good Till Date (GTD)
126 ExpireTime No 20140215-07:24:55 Timestamp Se fornito in un messaggio New Order Single, viene ripetuto in questo messaggio Execution Report.
58 Text No Qualsiasi valore valido Stringa Ove possibile, un messaggio spiegherà l'Execution Report.
103 OrdRejReason No 0 Intero 0 = OrdRejReason.BROKER_EXCHANGE_OPTION
721 PosMaintRptID No Qualsiasi valore valido Stringa Un ID di posizione.
494 Designation No Qualsiasi valore valido Stringa Un'etichetta personalizzata dell'ordine del cliente.
584 MassStatusReqID No Qualsiasi valore valido Stringa Un ID univoco della richiesta di stato di massa assegnato dal cliente.
1000 AbsoluteTP No Qualsiasi valore valido Prezzo Un prezzo assoluto al quale il take profit sarà attivato.
1001 RelativeTP No Qualsiasi valore valido Prezzo Una distanza in pip dal prezzo di entrata al quale il take profit sarà attivato.
1002 AbsoluteSL No Qualsiasi valore valido Prezzo Un prezzo assoluto al quale lo stop loss sarà attivato.
1003 RelativeSL No Qualsiasi valore valido Prezzo Una distanza in pip dal prezzo di entrata al quale lo stop loss sarà attivato.
1004 TrailingSL No N o Y Booleano Indica se lo stop loss è trailing.
N = Lo stop loss non è trailing.
Y = Lo stop loss è trailing.
1005 TriggerMethodSL No Qualsiasi valore valido Intero Un metodo di attivazione indicato dello stop loss.
1 = Lo stop loss sarà attivato dal lato dell'operazione.
2 = Lo stop loss sarà attivato dal lato opposto (ask per le posizioni di acquisto e bid per le posizioni di vendita).
3 = Lo stop loss sarà attivato dopo due tick consecutivi secondo il lato dell'operazione.
4 = Lo stop loss sarà attivato dopo due tick consecutivi secondo il lato opposto (il secondo tick ask per le posizioni di acquisto e il secondo tick bid per le posizioni di vendita).
1006 GuaranteedSL No N o Y Booleano Indica se lo stop loss è garantito.
N = Lo stop loss non è garantito.
Y = Lo stop loss è garantito.
Standard Trailer

Vedi un esempio di New Order Single alla fine della guida.

Business Message Reject (MsgType(35)=j)

Questo tipo di messaggio viene inviato quando il sistema non è in grado di elaborare una richiesta di sottoscrizione o un ordine non può essere eseguito.

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
45 RefSeqNum No Qualsiasi valore valido Intero MsgSeqNum (tag=34) del messaggio rifiutato.
372 RefMsgType No Qualsiasi valore valido Stringa MsgType (tag=35) del messaggio FIX a cui si fa riferimento.
379 BusinessRejectRefID No Qualsiasi valore valido Stringa Valore del campo ID a livello di business nel messaggio a cui si fa riferimento. Richiesto a meno che il campo ID corrispondente non sia stato specificato.
380 BusinessRejectReason 0 Intero Un codice per identificare il motivo di un messaggio Business Message Reject.
0 = Altro
58 Text No Qualsiasi valore valido Stringa Ove possibile, un messaggio per spiegare il motivo del rifiuto.
Standard Trailer

Vedi un esempio di messaggio Business Message Reject qui sotto.

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 Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
710 PosReqID Qualsiasi valore valido Stringa Un ID di richiesta univoco (impostato dal cliente).
721 PosMaintRptID No Qualsiasi valore valido Stringa Un ID di posizione da richiedere. Se non impostato, verranno restituite tutte le posizioni aperte.
Standard Trailer

Vedi esempi di messaggi Request for Positions qui sotto.

Richiesta:

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|

Risposta:

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 Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
710 PosReqID Qualsiasi valore valido Stringa Un ID del messaggio Request for Positions.
721 PosMaintRptID No Qualsiasi valore valido Stringa Un ID di posizione, che non viene impostato se PosReqResult (tag=728) non è VALID_REQUEST.
727 TotalNumPosReports Qualsiasi valore valido Stringa Il conteggio totale dei Position Reports in una sequenza quando PosReqResult (tag=728) è VALID_REQUEST, altrimenti = 0.
728 PosReqResult 0 o 2 Stringa 0 = Richiesta valida
2 = Non sono state trovate posizioni aperte che corrispondono ai criteri.
55 Symbol No Qualsiasi valore valido Stringa Un simbolo per il quale viene preparato il Position Report corrente. Non viene impostato se PosReqResult (tag=728) non è VALID_REQUEST.
702 NoPositions No 1 Stringa 1 quando PosReqResult (tag=728) è VALID_REQUEST, altrimenti non impostato.
704 LongQty No Qualsiasi valore valido Stringa Volume aperto della posizione in caso di lato dell'operazione di acquisto, uguale a 0 in caso di lato dell'operazione di vendita. Non impostato se PosReqResult (tag=728) non è VALID_REQUEST.
705 ShortQty No Qualsiasi valore valido Stringa Volume aperto della posizione in caso di lato dell'operazione di vendita, uguale a 0 in caso di lato dell'operazione di acquisto. Non impostato se PosReqResult (tag=728) non è VALID_REQUEST.
730 SettlPrice No Qualsiasi valore valido Stringa Un prezzo medio del volume aperto nel Position Report corrente.
1000 AbsoluteTP No Qualsiasi valore valido Prezzo Un prezzo assoluto al quale il take profit sarà attivato.
1002 AbsoluteSL No Qualsiasi valore valido Prezzo Un prezzo assoluto al quale lo stop loss sarà attivato.
1004 TrailingSL No Qualsiasi valore valido Booleano Indica se lo stop loss è trailing.
N = Lo stop loss non è trailing.
Y = Lo stop loss è trailing.
1005 TriggerMethodSL No Qualsiasi valore valido Intero Un metodo di attivazione indicato dello stop loss.
1 = Lo stop loss sarà attivato dal lato dell'operazione.
2 = Lo stop loss sarà attivato dal lato opposto (ask per le posizioni di acquisto e bid per le posizioni di vendita).
3 = Lo stop loss sarà attivato dopo due tick consecutivi secondo il lato dell'operazione.
4 = Lo stop loss sarà attivato dopo due tick consecutivi secondo il lato opposto (secondo tick ask per le posizioni di acquisto e secondo tick bid per le posizioni di vendita).
1006 GuaranteedSL No Qualsiasi valore valido Booleano Indica se lo stop loss è garantito.
N = Lo stop loss non è garantito.
Y = Lo stop loss è garantito.
Standard Trailer

Order Cancel Request (MsgType(35)=F)

Tag Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
41 OrigClOrdID Qualsiasi valore valido Stringa Un identificatore univoco dell'ordine che sta per essere annullato, assegnato dal cliente.
37 OrderID No Qualsiasi valore valido Stringa Un ID univoco dell'ordine restituito dal cServer.
11 ClOrdID Qualsiasi valore valido Stringa Un ID univoco della richiesta di annullamento assegnato dal cliente.
Standard Trailer

Vedi esempi di messaggi Order Cancel Request qui sotto.

Richiesta:

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|

Risposta (successo):

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|

Risposta (fallita):

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 Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
37 OrderID Qualsiasi valore valido Stringa Un identificatore univoco dell'ordine che il sistema non ha potuto annullare.
11 ClOrdID Qualsiasi valore valido Stringa Un identificatore univoco dell'Order Cancel Request.
41 OrigClOrdID No Qualsiasi valore valido Stringa Un identificatore univoco dell'ordine che si è tentato di annullare, assegnato dal cliente.
39 OrdStatus Qualsiasi valore valido Char 0 = Nuovo
1 = Parzialmente eseguito
2 = Eseguito
8 = Rifiutato
4 = Annullato (quando l'ordine è parzialmente eseguito viene restituito Canceled che significa (tag=151), LeavesQty è annullato e non sarà successivamente eseguito).
C = Scaduto
434 CxlRejResponseTo 1 o 2 Char 1 = Rifiuta l'annullamento dell'ordine.
2 = Rifiuta la modifica dell'ordine da un altro terminale.
58 Text No Qualsiasi valore valido Stringa Un ordine è in fase di esecuzione.
Standard Trailer

Vedi un esempio di messaggio Order Cancel Reject qui sotto.

Risposta:

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 Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
41 OrigClOrdID Any valid value Stringa Un identificatore univoco dell'ordine che sta per essere modificato, assegnato dal cliente.
37 OrderID No Qualsiasi valore valido Stringa Un ID univoco dell'ordine originale che sta per essere modificato, assegnato dal server. Un metodo preferibile da utilizzare.
11 ClOrdID Qualsiasi valore valido Stringa Un ID univoco della richiesta di modifica assegnato dal cliente.
38 OrderQty Qualsiasi valore valido Qty Una quantità esistente o nuova specificata per sostituire il vecchio valore.
44 Price No Qualsiasi valore valido Prezzo Un prezzo limite esistente o nuovo specificato per sostituire il vecchio valore. Valido solo per gli ordini limite.
99 StopPx No Qualsiasi valore valido Prezzo Un prezzo di stop esistente o nuovo specificato per sostituire il vecchio valore. Valido solo per gli ordini stop.
126 ExpireTime No 20140215-07:24:55 Timestamp Tempo di scadenza esistente o nuovo specificato. Valido solo per gli ordini in sospeso.
Standard Trailer

Vedi esempi di messaggi Order Cancel/Replace Request qui sotto.

Richiesta:

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|

Risposta (successo):

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|

Risposta (fallita):

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 Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
262 MDReqID Qualsiasi valore valido Stringa Deve fare riferimento a MDReqID (tag=262) della richiesta.
281 MDReqRejReason No Qualsiasi valore valido Intero 0 = Simbolo sconosciuto
4 = SubscriptionRequestType (tag=263) non supportato
5 = MarketDepth (tag=264) non supportato
Standard Trailer

Vedi esempi di messaggi Market Data Request Reject qui sotto.

Richiesta:

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|

Rifiuto:

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|

Richiesta:

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|

Rifiuto:

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 Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
320 SecurityReqID Qualsiasi valore valido Stringa Un ID univoco della Security Definition Request.
559 SecurityListRequestType 0 Intero Il tipo di Security List Request che viene effettuata. Supportato solo 0 = Symbol (tag=55).
55 Symbol No Qualsiasi valore valido Intero Un ID per risolvere il nome del simbolo.
Standard Trailer

Vedi esempi di messaggi Security List Request qui sotto.

Richiesta:

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|

Risposta:

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 Nome del campo Obbligatorio Valore Formato FIX Commenti
Standard Header
320 SecurityReqID Qualsiasi valore valido Stringa Un ID univoco della Security Definition Request.
322 SecurityResponseID Qualsiasi valore valido Stringa Un ID univoco della risposta Security List.
560 SecurityRequestResult 0 Intero Risultati restituiti al messaggio Security Request. I valori validi sono:
0 = Richiesta valida.
1 = Richiesta non valida o non supportata.
2 = Non sono stati trovati strumenti che corrispondono ai criteri di selezione.
3 = Non autorizzato a recuperare i dati dello strumento.
4 = Dati dello strumento temporaneamente non disponibili.
5 = Richiesta di dati dello strumento non supportata.
146 NoRelatedSym No Qualsiasi valore valido Intero Specifica il numero di simboli (strumenti) ripetuti.
55 Symbol No Qualsiasi valore valido Intero Gli identificatori degli strumenti sono forniti da Spotware.
1007 SymbolName No Qualsiasi valore valido Stringa Un nome di simbolo.
1008 SymbolDigits No Qualsiasi valore valido Intero Cifre del simbolo. Valori possibili da 0 a 5.
Standard Trailer

Vedi un esempio di messaggio Security List qui sotto.

Risposta:

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|