Przejdź do treści

Silnik FIX cTrader (Zasady Zaangażowania)

Wprowadzenie

Zakres

Ta specyfikacja ma służyć programistom jako przewodnik implementacji dla API silnika FIX cTrader.

Wersja FIX

cTrader obsługuje wersję FIX 4.4. Aby uzyskać więcej informacji na temat tej wersji, zapoznaj się z tymi specyfikacjami.

Łączność

Typ połączenia

Połączenie z silnikiem FIX cTrader jest dostępne przez Internet, tunel VPN lub połączenie bezpośrednie z naszymi centrami danych w Wielkiej Brytanii. Skontaktuj się z nami, aby uzyskać więcej szczegółów.

Reset numeru sekwencji

Wszystkie strony sesji FIX powinny mieć zresetowane numery sekwencji przy ustanawianiu sesji FIX. Zobacz komunikat Logon.

Komunikaty

Zgodnie z definicją w protokole FIX, serwer FIX cTrader wykorzystuje dwa różne poziomy danych (systemowy i aplikacyjny). Należy zauważyć, że jest to minimalny zestaw komunikatów wymaganych do obsługi niezbędnych przepływów pracy. Może on ulec zmianie w miarę upływu czasu, wraz z ewolucją potrzeb biznesowych i standardów FIX.

Silnik FIX cTrader

Komunikaty systemowe

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

Komunikaty aplikacyjne

  • 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)

Standardowy nagłówek

Każdy komunikat administracyjny lub aplikacyjny jest poprzedzony standardowym nagłówkiem. Nagłówki identyfikują typ komunikatu, długość, miejsce docelowe, numer sekwencji, punkt pochodzenia i czas.

Wszystkie komunikaty wysyłane do cTrader powinny mieć standardowy nagłówek z następującymi polami:

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
8 BeginString Tak FIX.4.4 String Zawsze niezaszyfrowane, musi być pierwszym polem w komunikacie.
9 BodyLength Tak Dowolna prawidłowa wartość Integer Długość treści komunikatu. Zawsze niezaszyfrowane, musi być drugim polem w komunikacie.
35 MsgType Tak A String Typ komunikatu. Zawsze niezaszyfrowane, musi być trzecim polem w komunikacie.
49 SenderCompID Tak Dowolna prawidłowa wartość String ID strony handlującej w następującym formacie: <Environment>.<BrokerUID>.<Trader Login>, gdzie Environment to określenie serwera, np. demo lub live; BrokerUID jest dostarczany przez cTrader, a Trader Login to numeryczny identyfikator konta tradera.
56 TargetCompID Tak CSERVER String Cel komunikatu. The valid value is CSERVER.
57 TargetSubID Tak QUOTE lub TRADE String Dodatkowy kwalifikator sesji. Możliwe wartości to QUOTE i TRADE.
50 SenderSubID Nie Dowolna prawidłowa wartość String Przypisana wartość używana do identyfikacji konkretnego nadawcy komunikatu. Musi być ustawione na QUOTE, jeśli TargetSubID=QUOTE.
34 MsgSeqNum Tak 1 Integer Numer sekwencyjny komunikatu.
52 SendingTime Tak 20131129-15:40:08.155 UTCTimestamp Czas transmisji komunikatu zawsze wyrażony w UTC (Universal Time Coordinated, znany również jako GMT).

Standardowy trailer

Każdy komunikat, administracyjny lub aplikacyjny, jest zakończony standardowym trailerem. Trailer służy do oddzielania komunikatów i zawiera trzycyfrową reprezentację wartości CheckSum (tag=10).

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
10 CheckSum Tak 054 String Prosta suma kontrolna trzech bajtów. Zawsze ostatnie pole w komunikacie (na przykład służy), z końcowym <SOH> jako ogranicznikiem końca komunikatu. Jest zdefiniowana jako trzy znaki (zawsze niezaszyfrowane).

Komunikaty sesji

Heartbeat (MsgType(35)=0)

Komunikaty Heartbeat są wysyłane zarówno przez cTrader, jak i aplikację kliencką, aby potwierdzić aktywne połączenie.

Aplikacja kliencka dostawcy transmituje powtarzający się heartbeat w interwale, który jest zdefiniowany przez pole HeartBtInt (tag=108) w komunikacie Logon, lub jako odpowiedź na komunikat Test Request.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
112 TestReqID Nie Dowolna prawidłowa wartość String Jeśli heartbeat jest wynikiem komunikatu Test Request, wymagane jest TestReqID.
Standard Trailer Tak

Test Request (MsgType(35)=1)

Wymusza heartbeat od odbiorcy żądania. Odpowiedź jest wysyłana z systemu odbiorczego jako komunikat Heartbeat zawierający TestReqID.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
112 TestReqID Tak Dowolna prawidłowa wartość String ID komunikatu heartbeat. TestReqID powinno być inkrementalne.
Standard Trailer Tak

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

Komunikat Logon jest wysyłany z aplikacji po stronie klienta, aby rozpocząć sesję FIX cTrader, a odpowiedź jest wysyłana przez cTrader do aplikacji po stronie klienta. Po zakończeniu logowania, przepływy notowań i transakcji mogą być kontynuowane przez cały cykl życia sesji.

Jeśli cTrader otrzyma nieprawidłowy komunikat Logon (z nieprawidłowymi polami), cTrader wysyła w odpowiedzi komunikat Logout.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
98 EncryptMethod Tak 0 Integer Definiuje schemat szyfrowania komunikatów. Obecnie obsługiwane jest tylko zabezpieczenie na poziomie transportu. Prawidłowa wartość to 0 = NONE_OTHER (szyfrowanie nie jest używane).
108 HeartBtInt Tak Dowolna prawidłowa wartość Integer Interwał heartbeat w sekundach. Wartość jest ustawiana w pliku config.properties (po stronie klienta) jako SERVER.POLLING.INTERVAL. Domyślna wartość interwału to 30 sekund. Jeśli HeartBtInt jest ustawione na 0, komunikat heartbeat nie jest wymagany.
141 ResetSeqNumFlag Nie Y Boolean Wszystkie strony sesji FIX powinny mieć zresetowane numery sekwencyjne. Prawidłowa wartość to Y (reset).
553 Username Nie Dowolna prawidłowa wartość String Numeryczny identyfikator użytkownika. Użytkownik jest powiązany z wartością SenderCompID (organizacja użytkownika, tag=49).
554 Password Nie Dowolna prawidłowa wartość String Hasło użytkownika.
Standard Trailer Tak

Uwaga

Pole Username (tag=553) musi zawierać numeryczną wartość loginu tradera, podczas gdy SenderCompID (tag=49) musi zawierać środowisko, BrokerUID i login tradera oddzielone kropką (na przykład live.theBroker.12345).

Zobacz przykłady wiadomości Logon poniżej.

Żądanie:

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|

Odpowiedź (sukces):

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|

Odpowiedź (niepowodzenie):

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)

Wiadomość Logout jest wysyłana z aplikacji klienta w celu zażądania zakończenia sesji z cTrader oraz jako odpowiedź przez cTrader. Wylogowanie z sesji następuje w odpowiedzi na wysłanie przez uczestnika rynku wiadomości Logout do cTrader. Przed zakończeniem sesji cTrader anuluje wszystkie ceny, które są nadal aktywnie przesyłane do strony żądającej. Jeśli cTrader otrzyma nieprawidłową wiadomość Logon (z nieprawidłowymi polami), cTrader wysyła w odpowiedzi wiadomość Logout ze szczegółami błędu w polu Text (tag=58).

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
58 Text Nie Dowolna prawidłowa wartość String Szczegóły odrzucenia logowania. Używane tylko dla wiadomości cTrader-do-klienta jako odpowiedź na nieprawidłową wiadomość Logon.
Standard Trailer Tak

Zobacz przykłady wiadomości Logout poniżej.

Żądanie:

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|

Odpowiedź:

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)

Wiadomość przychodząca/wychodząca używana do żądania ponownego wysłania wiadomości (lub wiadomości), zazwyczaj gdy wykryto lukę w numeracji sekwencyjnej.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
7 BeginSeqNo Tak Dowolna prawidłowa wartość Integer Numer sekwencyjny wiadomości pierwszego rekordu w zakresie do ponownego wysłania.
16 EndSeqNo Tak Dowolna prawidłowa wartość Integer Numer sekwencyjny wiadomości ostatniego rekordu w zakresie do ponownego wysłania.
Standard Trailer Tak

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

Wysyłane, gdy otrzymana wiadomość nie może być przetworzona z powodu naruszenia reguły na poziomie sesji. Odrzucone wiadomości muszą być rejestrowane, a przychodzący numer sekwencyjny musi zostać zwiększony.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
45 RefSeqNum Tak Dowolna prawidłowa wartość SeqNum Numer sekwencyjny wiadomości referencyjnej.
58 Text Nie Dowolna prawidłowa wartość String Dowolny ciąg tekstowy.
354 EncodedTextLen Nie Dowolna prawidłowa wartość Długość Długość pola EncodedText (znaki nie-ASCII) w bajtach.
355 EncodedText Nie Dowolna prawidłowa wartość Dane Reprezentacja pola Text (tag=58), zakodowana przy użyciu formatu określonego w polu MessageEncoding (tag=347) (z nagłówka standardowego). Jeśli używana jest reprezentacja ASCII, powinna być również określona w polu Text (tag=58).
371 RefTagID Nie Dowolna prawidłowa wartość Integer Numer tagu pola FIX, które zainicjowało odrzucenie wiadomości.
372 RefMsgType Nie Dowolna prawidłowa wartość String MsgType (tag=35) referencyjnej wiadomości FIX.
373 SessionRejectReason Nie Dowolna prawidłowa wartość Integer Zakodowane przyczyny odrzucenia. Prawidłowe wartości to:
0 = Nieprawidłowy numer tagu
1 = Brak wymaganego tagu
2 = Brak zdefiniowanego tagu dla tego typu wiadomości
3 = Niezdefiniowany tag
4 = Brak wartości dla określonego tagu
5 = Wartość dla tego tagu jest poza zakresem
6 = Nieprawidłowy format danych dla wartości
7 = Problem z odszyfrowaniem
8 = Błąd podpisu
9 = Błąd CompID
10 = Błąd dokładności SendingTime
11 = Nieprawidłowy MsgType
12 = Błąd walidacji XML
13 = Tag jest powtarzany
14 = Określony tag nie jest w prawidłowej kolejności
15 = Pola grupy powtarzalnej nie są w prawidłowej kolejności
16 = Nieprawidłowa liczba NumInGroup dla grupy powtarzalnej
17 = Separator pól (znak SOH) zawarty w wartości niebędącej danymi
Standard Trailer Tak

Sequence Reset (MsgType(35)=4)

Wiadomość przychodząca/wychodząca nie powinna być używana na poziomie aplikacji. Wiadomość Sequence Reset może tylko zwiększyć numer sekwencyjny.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
123 GapFillFlag Nie Yes lub No String Wskazuje, że wiadomość Sequence Reset zastępuje wiadomości administracyjne lub aplikacyjne, które nie zostaną ponownie wysłane.
36 NewSeqNo Tak 1 Integer Nowy numer sekwencyjny.
Standard Trailer Tak

Komunikaty aplikacyjne

Market Data Request (MsgType(35)=V)

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
262 MDReqID Tak Dowolna prawidłowa wartość String Unikalny identyfikator żądania kwotowania. Nowy identyfikator dla nowej subskrypcji, ten sam identyfikator co wcześniej dla usunięcia subskrypcji.
263 SubscriptionRequestType Tak 1 lub 2 Char 1 = Migawka plus aktualizacje (subskrybuj).
2 = Wyłącz poprzednie żądanie migawki plus aktualizacji (anuluj subskrypcję).
264 MarketDepth Tak 0 lub 1 Integer Zostanie dostarczona pełna księga.
0 = Subskrypcja głębokości
1 = Subskrypcja spot
265 MDUpdateType Tak Dowolna prawidłowa wartość Integer Obsługiwane jest tylko odświeżanie przyrostowe.
267 NoMDEntryTypes Tak 2 Integer Zawsze ustawione na 2 (zostanie wysłana zarówno oferta kupna, jak i sprzedaży).
269 MDEntryType Tak 0 lub 1 Char Ta grupa powtarzalna zawiera listę wszystkich typów wpisów danych rynkowych, które żądający chce otrzymywać.
0 = Bid
1 = Offer
146 NoRelatedSym Tak Dowolna prawidłowa wartość Integer Liczba żądanych symboli.
55 Symbol Tak Dowolna prawidłowa wartość Long Identyfikatory instrumentów są dostarczane przez Spotware.
Standard Trailer Tak

Zobacz przykłady wiadomości Market Data Request poniżej.

Dla Spotów

Żądanie:

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|

Odpowiedź:

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|

Dla Głębokości

Żądanie:

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|

Odpowiedzi:

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 Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
262 MDReqID Tak Dowolna prawidłowa wartość String Identyfikator żądania danych rynkowych wysłanego wcześniej.
55 Symbol Tak Dowolna prawidłowa wartość Long Identyfikatory instrumentów są dostarczane przez Spotware.
268 NoMDEntries Tak Dowolna prawidłowa wartość Integer Liczba następujących wpisów.
269 MDEntryType Nie 0 lub 1 Char Prawidłowe wartości to:
0 = Oferta kupna
1 = Oferta sprzedaży
Wymagane tylko gdy NoMDEntries (tag=268) > 0.
299 QuoteEntryID Nie Dowolna prawidłowa wartość String Unikalny identyfikator kwotowania jako część QuoteSet.
270 MDEntryPx Nie 1.2345 Cena Cena wpisu danych rynkowych. Wymagane tylko gdy NoMDEntries (tag=268) > 0.
271 MDEntrySize Nie 500000 Wolumen Wolumen wpisu danych rynkowych. Wymagane tylko gdy NoMDEntries (tag=268) > 0.
278 MDEntryID Nie Dowolna prawidłowa wartość String Unikalny identyfikator wpisu danych rynkowych.
Standard Trailer Tak

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

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
262 MDReqID Tak Dowolna prawidłowa wartość String Identyfikator żądania danych rynkowych wysłanego wcześniej.
268 NoMDEntries Tak Dowolna prawidłowa wartość Integer Liczba następujących wpisów. Ta powtarzająca się grupa zawiera listę wszystkich typów wpisów danych rynkowych, które wnioskodawca chce otrzymać.
279 MDUpdateAction Tak 0 lub 2 Char Typ akcji aktualizacji danych rynkowych. Prawidłowe wartości to:
0 = Nowy
2 = Usuń
269 MDEntryType Nie 0 lub 1 Char Prawidłowe wartości to:
0 = Bid
1 = Offer
278 MDEntryID Tak Dowolna prawidłowa wartość String ID wpisu danych rynkowych.
55 Symbol Tak Dowolna prawidłowa wartość Long Identyfikatory instrumentów są dostarczane przez Spotware.
270 MDEntryPx Nie 1.2345 Cena Wymagane tylko gdy MDUpdateAction (tag=279) = 0.
271 MDEntrySize Nie 10000 Double Wymagane tylko gdy MDUpdateAction (tag=279) = 0.
Standard Trailer Tak

New Order Single (MsgType(35)=D)

Komunikat New Order Single ma następujący format.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
11 ClOrdID Tak Dowolna prawidłowa wartość String Unikalny identyfikator zlecenia przydzielony przez klienta.
55 Symbol Tak Dowolna prawidłowa wartość Long Identyfikatory instrumentów są dostarczane przez Spotware.
54 Side Tak 1 lub 2 Integer 1 = Buy
2 = Sell
60 TransactTime Tak Dowolna prawidłowa wartość Znacznik czasu Czas żądania wygenerowany przez klienta.
38 OrderQty Tak Dowolna prawidłowa wartość Ilość Liczba zamówionych akcji. Reprezentuje liczbę akcji dla instrumentów udziałowych lub, zgodnie z przyjętą konwencją, liczbę kontraktów dla opcji, kontraktów futures, obligacji zamiennych itp. Maksymalna precyzja wynosi 0,01. Przed FIX 4.2 typ tego pola był "Integer".
40 OrdType Tak 1, 2 lub 3 Char 1 = Rynkowe, zlecenie będzie przetwarzane według schematu Immediate or Cancel (IOC) (TimeInForce, tag=59).
2 = Z limitem, zlecenie będzie przetwarzane według schematu Good Till Cancel (GTC) (TimeInForce, tag=59).
3 = Stop, zlecenie będzie przetwarzane według schematu Good Till Cancel (GTC) (TimeInForce, tag=59).
44 Price Nie Dowolna prawidłowa wartość Cena Najgorsza cena klienta, jaką klient zaakceptuje. Wymagane tylko gdy OrdType (tag=40) = 2, w takim przypadku zlecenie nie zostanie zrealizowane, chyba że ta cena może zostać spełniona.
99 StopPx Nie Dowolna prawidłowa wartość Cena Cena, która uruchamia zlecenie stop. Wymagane tylko gdy OrdType (tag=40) = 3, w takim przypadku zlecenie nie zostanie zrealizowane, chyba że ta cena może zostać spełniona.
59 TimeInForce Nie 1, 3 or 6 String Przestarzałe, ta wartość zostanie zignorowana. TimeInForce zostanie wykryte automatycznie w zależności od OrdType (tag=40) i ExpireTime (tag=126):
1 = Good Till Cancel (GTC), będzie używane tylko dla zleceń z limitem i stop (OrdType, tag=40) tylko jeśli ExpireTime (tag=126) nie jest zdefiniowane.
3 = Immediate or Cancel (IOC), będzie używane tylko dla zleceń rynkowych (OrdType, tag=40).
6 = Good Till Date (GTD), będzie używane tylko dla zleceń z limitem i stop (OrdType, tag=40) tylko jeśli ExpireTime (tag=126) jest zdefiniowane.
126 ExpireTime Nie 20140215-07:24:55 Znacznik czasu Czas wygaśnięcia w formacie "YYYYMMDD-HH:MM:SS". Jeśli przypisany, zlecenie będzie przetwarzane według schematu GTD (TimeInForce: GTD).
721 PosMaintRptID Nie Dowolna prawidłowa wartość String ID pozycji, w której to zlecenie powinno być umieszczone. Jeśli nie ustawiono, zostanie utworzona nowa pozycja, a jej ID zostanie zwrócone w komunikacie Execution Report. Może być określone tylko dla kont zabezpieczonych.
494 Designation Nie Dowolna prawidłowa wartość String Niestandardowa etykieta zlecenia.
Standard Trailer Tak

Zobacz przykłady komunikatów New Order Single poniżej.

Zlecenie rynkowe do nowej pozycji

Żądanie:

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|

Odpowiedzi:

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|

Zlecenie rynkowe do istniejącej pozycji

Żądanie:

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|

Odpowiedzi:

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

Zlecenie z limitem do istniejącej pozycji

Żądanie:

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|

Odpowiedź:

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|

Zlecenie stop do nowej pozycji

Żądanie:

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|

Odpowiedź:

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)

Komunikat Order Status Request jest używany przez instytucję do generowania komunikatu o statusie zlecenia z powrotem od tradera. Dla prawidłowej interakcji bardzo ważne jest posiadanie unikalnych identyfikatorów zleceń klienta (ClOrdID) dla wszystkich zleceń.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
11 ClOrdID Tak Dowolna prawidłowa wartość String Unikalny identyfikator zlecenia przydzielony przez klienta.
54 Side Nie 1 lub 2 Integer 1 = Buy
2 = Sell
Standard Trailer Tak

Zobacz przykłady komunikatów Order Status Request poniżej.

Żądanie:

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|

Odpowiedź:

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)

Komunikat Order Mass Status Request żąda statusu dla zleceń spełniających kryteria określone w żądaniu. Odpowiedź zostanie zwrócona jako szereg komunikatów Execution Report (jeden dla każdego zlecenia) lub jako komunikat Business Message Reject, jeśli nie znaleziono żadnych zleceń.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
584 MassStatusReqID Tak Dowolna prawidłowa wartość String Unikalny ID Mass Status Request przypisany przez klienta.
585 MassStatusReqType Tak Dowolna prawidłowa wartość Integer 7 = Status dla wszystkich zleceń.
Obecnie obsługiwana jest tylko wartość 7.
225 IssueDate Nie Dowolna prawidłowa wartość String Jeśli ustawione, odpowiedź będzie zawierać tylko zlecenia utworzone przed tą datą.
Standard Trailer Tak

Zobacz przykłady komunikatów Order Mass Status Request poniżej.

Żądanie:

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|

Odpowiedź:

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)

Komunikat Execution Report dla zaakceptowanego zlecenia ma następujący format.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
37 OrderID Tak Dowolna prawidłowa wartość String ID zlecenia cTrader.
11 ClOrdID Nie Dowolna prawidłowa wartość String Unikalny identyfikator zlecenia przydzielony przez klienta.
911 TotNumReports Nie Dowolna prawidłowa wartość Integer Całkowita liczba raportów zwróconych w odpowiedzi na komunikat Order Mass Status Request.
150 ExecType Tak Dowolna prawidłowa wartość Char 0 = New
4 = Canceled
5 = Replace
8 = Rejected
C = Expired
F = Trade
I = Order Status
39 OrdStatus Tak Dowolna prawidłowa wartość Char 0 = Nowe
1 = Częściowo zrealizowane
2 = Zrealizowane
8 = Odrzucone
4 = Anulowane (gdy zlecenie jest częściowo zrealizowane, zwracane jest Canceled oznaczające (tag=151), LeavesQty jest anulowane i nie będzie później realizowane).
C = Wygasłe
55 Symbol Nie Dowolna prawidłowa wartość Long Identyfikatory instrumentów są dostarczane przez Spotware.
54 Side Nie 1 lub 2 Integer 1 = Kup
2 = Sprzedaj
60 TransactTime Nie Dowolna prawidłowa wartość Znacznik czasu Czas wykonania transakcji reprezentowany przez komunikat Execution Report (w UTC).
6 AvgPx Nie Dowolna prawidłowa wartość Integer Cena, po której transakcja została zrealizowana. Dla zlecenia IOC lub GTD jest to średnia cena ważona wolumenem (VWAP) zrealizowanego zlecenia.
38 OrderQty Nie Dowolna prawidłowa wartość Ilość Reprezentuje liczbę akcji dla instrumentów udziałowych lub, zgodnie z przyjętą konwencją, liczbę kontraktów dla opcji, kontraktów futures, obligacji zamiennych itp. Przed FIX 4.2 typ tego pola był "Integer".
151 LeavesQty Nie Dowolna prawidłowa wartość Ilość Liczba zleceń pozostałych do realizacji. Możliwe wartości są między 0 (w pełni zrealizowane) a OrderQty (częściowo zrealizowane).
14 CumQty Nie Dowolna prawidłowa wartość Ilość Całkowita liczba zleceń, które zostały zrealizowane.
32 LastQty Nie Dowolna prawidłowa wartość Ilość Kupiona/sprzedana ilość zleceń, które zostały zrealizowane przy tej (ostatniej) realizacji.
40 OrdType Nie 1 lub 2 Char 1 = Rynkowe
2 = Z limitem
44 Price Nie Dowolna prawidłowa wartość Cena Jeśli podano w wiadomości New Order Single, jest powtórzone w tej wiadomości Execution Report.
99 StopPx Nie Dowolna prawidłowa wartość Cena Jeśli podano w wiadomości New Order Single, jest powtórzone w tej wiadomości Execution Report.
59 TimeInForce Nie 1, 3 lub 6 String 1 = Ważne do odwołania (GTC)
3 = Natychmiastowe lub anuluj (IOC)
6 = Ważne do daty (GTD)
126 ExpireTime Nie 20140215-07:24:55 Znacznik czasu Jeśli podano w wiadomości New Order Single, jest powtórzone w tej wiadomości Execution Report.
58 Text Nie Dowolna prawidłowa wartość String Tam, gdzie to możliwe, wiadomość wyjaśni Execution Report.
103 OrdRejReason Nie 0 Integer 0 = OrdRejReason.BROKER_EXCHANGE_OPTION
721 PosMaintRptID Nie Dowolna prawidłowa wartość String ID pozycji.
494 Designation Nie Dowolna prawidłowa wartość String Niestandardowa etykieta zlecenia klienta.
584 MassStatusReqID Nie Dowolna prawidłowa wartość String Unikalny identyfikator żądania statusu masowego przypisany przez klienta.
1000 AbsoluteTP Nie Dowolna prawidłowa wartość Cena Bezwzględna cena, przy której zostanie wyzwolony take profit.
1001 RelativeTP Nie Dowolna prawidłowa wartość Cena Odległość w pipsach od ceny wejścia, przy której zostanie wyzwolony take profit.
1002 AbsoluteSL Nie Dowolna prawidłowa wartość Cena Bezwzględna cena, przy której zostanie wyzwolony stop loss.
1003 RelativeSL Nie Dowolna prawidłowa wartość Cena Odległość w pipsach od ceny wejścia, przy której zostanie wyzwolony stop loss.
1004 TrailingSL Nie N lub Y Boolean Wskazuje, czy stop loss jest kroczący.
N = Stop loss nie jest kroczący.
Y = Stop loss jest kroczący.
1005 TriggerMethodSL Nie Dowolna prawidłowa wartość Integer Wskazana metoda wyzwalania stop loss.
1 = Stop loss zostanie wyzwolony przez stronę transakcji.
2 = Stop loss zostanie wyzwolony przez przeciwną stronę (ask dla pozycji kupna i bid dla pozycji sprzedaży).
3 = Stop loss zostanie wyzwolony po dwóch kolejnych tickach zgodnie ze stroną transakcji.
4 = Stop loss zostanie wyzwolony po dwóch kolejnych tickach zgodnie z przeciwną stroną (drugi tick ask dla pozycji kupna i drugi tick bid dla pozycji sprzedaży).
1006 GuaranteedSL Nie N lub Y Boolean Wskazuje, czy stop loss jest gwarantowany.
N = Stop loss nie jest gwarantowany.
Y = Stop loss jest gwarantowany.
Standard Trailer Tak

Zobacz przykład New Order Single na końcu przewodnika.

Business Message Reject (MsgType(35)=j)

Ten typ wiadomości jest wysyłany, gdy system nie może przetworzyć żądania subskrypcji lub zlecenie nie może zostać wykonane.

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
45 RefSeqNum Nie Dowolna prawidłowa wartość Integer MsgSeqNum (tag=34) odrzuconej wiadomości.
372 RefMsgType Nie Dowolna prawidłowa wartość String MsgType (tag=35) odnośnej wiadomości FIX.
379 BusinessRejectRefID Nie Dowolna prawidłowa wartość String Wartość pola ID poziomu biznesowego w odnośnej wiadomości. Wymagane, chyba że odpowiednie pole ID nie zostało określone.
380 BusinessRejectReason Tak 0 Integer Kod identyfikujący powód wiadomości Business Message Reject.
0 = Inne
58 Text Nie Dowolna prawidłowa wartość String Tam, gdzie to możliwe, wiadomość wyjaśniająca powód odrzucenia.
Standard Trailer Tak

Zobacz przykład wiadomości Business Message Reject poniżej.

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 Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
710 PosReqID Tak Dowolna prawidłowa wartość String Unikalny identyfikator żądania (ustawiony przez klienta).
721 PosMaintRptID Nie Dowolna prawidłowa wartość String ID pozycji do żądania. Jeśli nie ustawiono, zwrócone zostaną wszystkie otwarte pozycje.
Standard Trailer Tak

Zobacz przykłady wiadomości Request for Positions poniżej.

Żądanie:

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|

Odpowiedź:

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 Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
710 PosReqID Tak Dowolna prawidłowa wartość String ID wiadomości Request for Positions.
721 PosMaintRptID Nie Dowolna prawidłowa wartość String ID pozycji, które nie jest ustawione, jeśli PosReqResult (tag=728) nie jest VALID_REQUEST.
727 TotalNumPosReports Tak Dowolna prawidłowa wartość String Całkowita liczba Position Reports w sekwencji, gdy PosReqResult (tag=728) to VALID_REQUEST, w przeciwnym razie = 0.
728 PosReqResult Tak 0 lub 2 String 0 = Prawidłowe żądanie
2 = Nie znaleziono otwartych pozycji spełniających kryteria.
55 Symbol Nie Dowolna prawidłowa wartość String Symbol, dla którego przygotowano bieżący Position Report. Nie jest ustawiony, jeśli PosReqResult (tag=728) nie jest VALID_REQUEST.
702 NoPositions Nie 1 String 1 gdy PosReqResult (tag=728) to VALID_REQUEST, w przeciwnym razie nie ustawione.
704 LongQty Nie Dowolna prawidłowa wartość String Otwarty wolumen pozycji w przypadku strony kupna, równy 0 w przypadku strony sprzedaży. Nie ustawione, jeśli PosReqResult (tag=728) nie jest VALID_REQUEST.
705 ShortQty Nie Dowolna prawidłowa wartość String Otwarty wolumen pozycji w przypadku strony sprzedaży, równy 0 w przypadku strony kupna. Nie ustawione, jeśli PosReqResult (tag=728) nie jest VALID_REQUEST.
730 SettlPrice Nie Dowolna prawidłowa wartość String Średnia cena otwartego wolumenu w bieżącym Position Report.
1000 AbsoluteTP Nie Dowolna prawidłowa wartość Cena Bezwzględna cena, przy której zostanie wyzwolony take profit.
1002 AbsoluteSL Nie Dowolna prawidłowa wartość Cena Bezwzględna cena, przy której zostanie wyzwolony stop loss.
1004 TrailingSL Nie Dowolna prawidłowa wartość Boolean Wskazuje, czy stop loss jest kroczący.
N = Stop loss nie jest kroczący.
Y = Stop loss jest kroczący.
1005 TriggerMethodSL Nie Dowolna prawidłowa wartość Integer Wskazana metoda wyzwalania stop loss.
1 = Stop loss zostanie wyzwolony przez stronę transakcji.
2 = Stop loss zostanie wyzwolony przez przeciwną stronę (ask dla pozycji kupna i bid dla pozycji sprzedaży).
3 = Stop loss zostanie wyzwolony po dwóch kolejnych tickach zgodnie ze stroną transakcji.
4 = Stop loss zostanie wyzwolony po dwóch kolejnych tickach zgodnie z przeciwną stroną (drugi tick ask dla pozycji kupna i drugi tick bid dla pozycji sprzedaży).
1006 GuaranteedSL Nie Dowolna prawidłowa wartość Boolean Wskazuje, czy stop loss jest gwarantowany.
N = Stop loss nie jest gwarantowany.
Y = Stop loss jest gwarantowany.
Standard Trailer Tak

Order Cancel Request (MsgType(35)=F)

Tag Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
41 OrigClOrdID Tak Dowolna prawidłowa wartość String Unikalny identyfikator zlecenia, które ma zostać anulowane, przydzielony przez klienta.
37 OrderID Nie Dowolna prawidłowa wartość String Unikalny identyfikator zlecenia zwrócony przez cServer.
11 ClOrdID Tak Dowolna prawidłowa wartość String Unikalny identyfikator żądania anulowania przydzielony przez klienta.
Standard Trailer Tak

Zobacz przykłady wiadomości Order Cancel Request poniżej.

Żądanie:

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|

Odpowiedź (sukces):

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|

Odpowiedź (niepowodzenie):

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 Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
37 OrderID Tak Dowolna prawidłowa wartość String Unikalny identyfikator zlecenia, którego system nie mógł anulować.
11 ClOrdID Tak Dowolna prawidłowa wartość String Unikalny identyfikator Order Cancel Request.
41 OrigClOrdID Nie Dowolna prawidłowa wartość String Unikalny identyfikator zlecenia, które próbowano anulować, przydzielony przez klienta.
39 OrdStatus Tak Dowolna prawidłowa wartość Char 0 = Nowe
1 = Częściowo zrealizowane
2 = Zrealizowane
8 = Odrzucone
4 = Anulowane (gdy zlecenie jest częściowo zrealizowane, zwracane jest Canceled, oznaczające (tag=151), LeavesQty jest anulowane i nie zostanie później zrealizowane).
C = Wygasłe
434 CxlRejResponseTo Tak 1 lub 2 Char 1 = Odrzuć anulowanie zlecenia.
2 = Odrzuć modyfikację zlecenia z innego terminala.
58 Text Nie Dowolna prawidłowa wartość String Zlecenie jest w trakcie realizacji.
Standard Trailer Tak

Zobacz przykład wiadomości Odrzucenia Anulowania Zlecenia poniżej.

Odpowiedź:

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 Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
41 OrigClOrdID Tak Any valid value String Unikalny identyfikator zlecenia, które ma zostać zmodyfikowane, przydzielony przez klienta.
37 OrderID Nie Dowolna prawidłowa wartość String Unikalny identyfikator oryginalnego zlecenia, które ma zostać zmodyfikowane, przydzielony przez serwer. Preferowana metoda do użycia.
11 ClOrdID Tak Dowolna prawidłowa wartość String Unikalny identyfikator żądania modyfikacji przydzielony przez klienta.
38 OrderQty Tak Dowolna prawidłowa wartość Ilość Istniejąca lub nowo określona ilość do zastąpienia starej wartości.
44 Price Nie Dowolna prawidłowa wartość Cena Istniejąca lub nowo określona cena limitu do zastąpienia starej wartości. Ważne tylko dla zleceń z limitem.
99 StopPx Nie Dowolna prawidłowa wartość Cena Istniejąca lub nowo określona cena stop do zastąpienia starej wartości. Ważne tylko dla zleceń stop.
126 ExpireTime Nie 20140215-07:24:55 Znacznik czasu Istniejący lub nowo określony czas wygaśnięcia. Ważne tylko dla zleceń oczekujących.
Standard Trailer Tak

Zobacz przykłady wiadomości Żądania Anulowania/Zastąpienia Zlecenia poniżej.

Żądanie:

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|

Odpowiedź (sukces):

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|

Odpowiedź (niepowodzenie):

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 Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
262 MDReqID Tak Dowolna prawidłowa wartość String Musi odnosić się do MDReqID (tag=262) żądania.
281 MDReqRejReason Nie Dowolna prawidłowa wartość Integer 0 = Nieznany symbol
4 = Nieobsługiwany SubscriptionRequestType (tag=263)
5 = Nieobsługiwany MarketDepth (tag=264)
Standard Trailer Tak

Zobacz przykłady wiadomości Odrzucenia Żądania Danych Rynkowych poniżej.

Żądanie:

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|

Odrzuć:

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|

Żądanie:

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|

Odrzuć:

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 Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
320 SecurityReqID Tak Dowolna prawidłowa wartość String Unikalny identyfikator Żądania Definicji Zabezpieczenia.
559 SecurityListRequestType Tak 0 Integer Typ składanego Żądania Listy Zabezpieczeń. Obsługiwane tylko 0 = Symbol (tag=55).
55 Symbol Nie Dowolna prawidłowa wartość Integer Identyfikator do rozwiązania nazwy symbolu.
Standard Trailer Tak

Zobacz przykłady wiadomości Żądania Listy Zabezpieczeń poniżej.

Żądanie:

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|

Odpowiedź:

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 Nazwa pola Wymagane Wartość Format FIX Komentarze
Standard Header Tak
320 SecurityReqID Tak Dowolna prawidłowa wartość String Unikalny identyfikator Żądania Definicji Zabezpieczenia.
322 SecurityResponseID Tak Dowolna prawidłowa wartość String Unikalny identyfikator odpowiedzi Listy Zabezpieczeń.
560 SecurityRequestResult Tak 0 Integer Wyniki zwrócone do wiadomości Żądania Zabezpieczenia. Prawidłowe wartości to:
0 = Prawidłowe żądanie.
1 = Nieprawidłowe lub nieobsługiwane żądanie.
2 = Nie znaleziono instrumentów spełniających kryteria wyboru.
3 = Brak autoryzacji do pobierania danych instrumentu.
4 = Dane instrumentu tymczasowo niedostępne.
5 = Żądanie danych instrumentu nie jest obsługiwane.
146 NoRelatedSym Nie Dowolna prawidłowa wartość Integer Określa liczbę powtarzających się symboli (instrumentów).
55 Symbol Nie Dowolna prawidłowa wartość Integer Identyfikatory instrumentów są dostarczane przez Spotware.
1007 SymbolName Nie Dowolna prawidłowa wartość String Nazwa symbolu.
1008 SymbolDigits Nie Dowolna prawidłowa wartość Integer Liczba miejsc po przecinku symbolu. Możliwe wartości od 0 do 5.
Standard Trailer Tak

Zobacz przykład wiadomości Listy Zabezpieczeń poniżej.

Odpowiedź:

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|