Mesin FIX cTrader (Aturan Keterlibatan)¶
Pengantar ¶
Ruang lingkup ¶
Spesifikasi ini dimaksudkan untuk melayani pengembang perangkat lunak sebagai panduan implementasi untuk API mesin FIX cTrader.
Versi FIX ¶
cTrader mendukung FIX versi 4.4. Untuk informasi lebih lanjut tentang versi ini, lihat spesifikasi ini.
Konektivitas ¶
Jenis koneksi ¶
Koneksi ke mesin FIX cTrader tersedia melalui Internet, terowongan VPN atau cross-connect ke fasilitas pusat data kami di Inggris. Hubungi kami untuk informasi lebih lanjut.
Reset nomor urut ¶
Semua sisi sesi FIX harus memiliki nomor urut yang direset saat membangun sesi FIX. Lihat pesan Logon.
Pesan ¶
Seperti yang didefinisikan dalam protokol FIX, server FIX cTrader menggunakan dua tingkat data yang berbeda (sistem dan aplikasi). Perhatikan bahwa ini adalah set minimum pesan yang diperlukan untuk mendukung alur kerja yang diperlukan. Ini dapat berubah seiring waktu seiring dengan berkembangnya kebutuhan bisnis dan standar FIX.
Mesin FIX cTrader ¶
Pesan sistem¶
- Heartbeat (Klien ↔ cTrader)
- Test Request (Klien ↔ cTrader)
- Logon (Klien → cTrader)
- Logout (Klien → cTrader)
- Resend Request (Klien ↔ cTrader)
- Reject (Klien ↔ cTrader)
- Sequence Reset (Klien ↔ cTrader)
Pesan aplikasi¶
- Market Data Request (Klien → cTrader)
- Market Data Snapshot/Full Refresh (Klien ← cTrader)
- Market Data Incremental Refresh (Klien ← cTrader)
- New Order Single (Klien → cTrader)
- Order Status Request (Klien → cTrader)
- Order Mass Status Request (Klien → cTrader)
- Execution Report (Klien ← cTrader)
- Business Message Reject (Klien ← cTrader)
- Request for Positions (Klien → cTrader)
- Position Report (Klien ← cTrader)
- Order Cancel Request (Klien → cTrader)
- Order Cancel Reject (Klien ← cTrader)
- Order Cancel/Replace Request (Klien → cTrader)
- Security List Request (Klien → cTrader)
- Security List (Klien ← cTrader)
Header standar ¶
Setiap pesan administratif atau aplikasi didahului oleh header standar. Header mengidentifikasi jenis pesan, panjang, tujuan, nomor urut, titik asal dan waktu.
Semua pesan yang dikirim ke cTrader harus memiliki header standar dengan bidang berikut:
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
| 8 | BeginString | Ya | FIX.4.4 | String | Selalu tidak terenkripsi, harus menjadi bidang pertama dalam pesan. |
| 9 | BodyLength | Ya | Nilai valid apa pun | Integer | Panjang badan pesan. Selalu tidak terenkripsi, harus menjadi bidang kedua dalam pesan. |
| 35 | MsgType | Ya | A | String | Jenis pesan. Selalu tidak terenkripsi, harus menjadi bidang ketiga dalam pesan. |
| 49 | SenderCompID | Ya | Nilai valid apa pun | String | ID pihak yang melakukan perdagangan dalam format berikut: <Environment>.<BrokerUID>.<Trader Login>, di mana Environment adalah penentuan server, seperti demo atau live; BrokerUID disediakan oleh cTrader dan Trader Login adalah pengidentifikasi numerik akun trader. |
| 56 | TargetCompID | Ya | CSERVER | String | Target pesan. The valid value is CSERVER. |
| 57 | TargetSubID | Ya | QUOTE atau TRADE | String | Kualifikasi sesi tambahan. Nilai yang mungkin adalah QUOTE dan TRADE. |
| 50 | SenderSubID | Tidak | Nilai valid apa pun | String | Nilai yang ditetapkan digunakan untuk mengidentifikasi pembuat pesan tertentu. Harus diatur ke QUOTE jika TargetSubID=QUOTE. |
| 34 | MsgSeqNum | Ya | 1 | Integer | Nomor urut pesan. |
| 52 | SendingTime | Ya | 20131129-15:40:08.155 | UTCTimestamp | Waktu transmisi pesan selalu dinyatakan dalam UTC (Universal Time Coordinated, juga dikenal sebagai GMT). |
Trailer standar ¶
Setiap pesan, administratif atau aplikasi, diakhiri dengan trailer standar. Trailer digunakan untuk memisahkan pesan dan berisi representasi tiga digit dari nilai CheckSum (tag=10).
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
| 10 | CheckSum | Ya | 054 | String | Checksum sederhana tiga byte. Selalu menjadi bidang terakhir dalam pesan (misalnya, melayani), dengan <SOH> di akhir sebagai pembatas akhir pesan. Didefinisikan sebagai tiga karakter (selalu tidak terenkripsi). |
Pesan sesi ¶
Heartbeat (MsgType(35)=0)¶
Pesan heartbeat dikirim oleh cTrader dan aplikasi klien untuk mengkonfirmasi koneksi yang aktif.
Aplikasi klien penyedia mengirimkan heartbeat berulang pada interval, yang didefinisikan oleh bidang HeartBtInt (tag=108) dalam pesan Logon, atau sebagai respons terhadap pesan Test Request.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 112 | TestReqID | Tidak | Nilai valid apa pun | String | Jika heartbeat adalah hasil dari pesan Test Request, TestReqID diperlukan. |
Standard Trailer | Ya |
Test Request (MsgType(35)=1)¶
Ini memaksa heartbeat dari penerima permintaan. Respons dikirim dari sistem penerima sebagai pesan Heartbeat yang berisi TestReqID.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 112 | TestReqID | Ya | Nilai valid apa pun | String | ID pesan heartbeat. TestReqID harus inkremental. |
Standard Trailer | Ya |
Logon (bidirectional) (MsgType(35)=A)¶
Pesan Logon dikirim dari aplikasi sisi klien untuk memulai sesi FIX cTrader, dan respons dikirim oleh cTrader ke aplikasi sisi klien. Setelah logon selesai, aliran kuotasi dan perdagangan dapat berlanjut selama siklus hidup sesi.
Jika pesan Logon yang tidak valid diterima oleh cTrader (dengan bidang yang tidak valid), cTrader mengirimkan pesan Logout sebagai respons.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 98 | EncryptMethod | Ya | 0 | Integer | Mendefinisikan skema enkripsi pesan. Saat ini, hanya keamanan tingkat transportasi yang didukung. Nilai yang valid adalah 0 = NONE_OTHER (enkripsi tidak digunakan). |
| 108 | HeartBtInt | Ya | Nilai valid apa pun | Integer | Interval heartbeat dalam detik. Nilai ini diatur dalam file config.properties (sisi klien) sebagai SERVER.POLLING.INTERVAL. Nilai interval default adalah 30 detik. Jika HeartBtInt diatur ke 0, tidak ada pesan heartbeat yang diperlukan. |
| 141 | ResetSeqNumFlag | Tidak | Y | Boolean | Semua sisi sesi FIX harus memiliki nomor urut yang diatur ulang. Nilai yang valid adalah Y (reset). |
| 553 | Username | Tidak | Nilai valid apa pun | String | ID Pengguna numerik. Pengguna terkait dengan nilai SenderCompID (organisasi pengguna, tag=49). |
| 554 | Password | Tidak | Nilai valid apa pun | String | Kata sandi pengguna. |
Standard Trailer | Ya |
Catatan
Bidang Username (tag=553) harus berisi nilai login trader numerik, sementara SenderCompID (tag=49) harus berisi lingkungan, BrokerUID dan login trader yang dipisahkan oleh titik (misalnya, live.theBroker.12345).
Lihat contoh pesan Logon di bawah ini.
Permintaan:
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|
Respons (berhasil):
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|
Respons (gagal):
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)¶
Pesan Logout dikirim dari aplikasi klien untuk meminta akhir sesi dengan cTrader dan sebagai respons oleh cTrader. Logout sesi terjadi sebagai respons terhadap Peserta Pasar yang mengirimkan pesan Logout ke cTrader. Sebelum mengakhiri sesi, cTrader akan membatalkan semua harga yang masih aktif mengalir ke pihak yang meminta. Jika pesan Logon yang tidak valid diterima oleh cTrader (dengan bidang yang tidak valid), cTrader mengirimkan pesan Logout sebagai respons dengan detail kesalahan di bidang Text (tag=58).
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 58 | Text | Tidak | Nilai valid apa pun | String | Detail penolakan Logon. Hanya digunakan untuk pesan cTrader-ke-klien sebagai respons pesan Logon yang tidak valid. |
Standard Trailer | Ya |
Lihat contoh pesan Logout di bawah ini.
Permintaan:
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|
Respons:
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)¶
Pesan masuk/keluar digunakan untuk meminta pengiriman ulang pesan (atau beberapa pesan), biasanya ketika terdeteksi adanya celah dalam penomoran urutan.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 7 | BeginSeqNo | Ya | Nilai valid apa pun | Integer | Nomor urutan pesan dari catatan pertama dalam rentang yang akan dikirim ulang. |
| 16 | EndSeqNo | Ya | Nilai valid apa pun | Integer | Nomor urutan pesan dari catatan terakhir dalam rentang yang akan dikirim ulang. |
Standard Trailer | Ya |
Reject (bidirectional) (MsgType(35)=3)¶
Dikirim ketika pesan yang diterima tidak dapat diproses karena pelanggaran aturan tingkat sesi. Pesan yang ditolak harus dicatat dan penambahan harus diterapkan pada nomor urutan yang masuk.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 45 | RefSeqNum | Ya | Nilai valid apa pun | SeqNum | Nomor urutan dari pesan yang dirujuk. |
| 58 | Text | Tidak | Nilai valid apa pun | String | String teks format bebas. |
| 354 | EncodedTextLen | Tidak | Nilai valid apa pun | Jangka | Panjang bidang EncodedText (karakter non-ASCII) dalam byte. |
| 355 | EncodedText | Tidak | Nilai valid apa pun | Data | Representasi dari bidang Text (tag=58), dikodekan menggunakan format yang ditentukan dalam bidang MessageEncoding (tag=347) (dari header standar). Jika representasi ASCII digunakan, itu juga harus ditentukan dalam bidang Text (tag=58). |
| 371 | RefTagID | Tidak | Nilai valid apa pun | Integer | Nomor tag dari bidang FIX yang memulai penolakan pesan. |
| 372 | RefMsgType | Tidak | Nilai valid apa pun | String | MsgType (tag=35) dari pesan FIX yang dirujuk. |
| 373 | SessionRejectReason | Tidak | Nilai valid apa pun | Integer | Penyebab penolakan yang dikodekan. Nilai-nilai yang valid adalah: 0 = Nomor tag tidak valid 1 = Tag yang diperlukan tidak ada 2 = Tidak ada tag yang didefinisikan untuk jenis pesan ini 3 = Tag tidak terdefinisi 4 = Tidak ada nilai untuk tag yang ditentukan 5 = Nilai untuk tag ini di luar jangkauan 6 = Format data tidak benar untuk nilai 7 = Masalah dekripsi 8 = Kesalahan tanda tangan 9 = Kesalahan CompID 10 = Kesalahan akurasi SendingTime 11 = MsgType tidak valid 12 = Kesalahan validasi XML 13 = Tag sedang diulang 14 = Tag yang ditentukan tidak dalam urutan yang benar 15 = Bidang grup yang berulang tidak dalam urutan yang benar 16 = Hitungan NumInGroup tidak benar untuk grup yang berulang 17 = Pemisah bidang (karakter SOH) termasuk dalam nilai non-data |
Standard Trailer | Ya |
Sequence Reset (MsgType(35)=4)¶
Pesan masuk/keluar tidak boleh digunakan pada tingkat aplikasi. Pesan Pengaturan Ulang Urutan hanya dapat meningkatkan nomor urutan.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 123 | GapFillFlag | Tidak | Yes atau No | String | Menunjukkan bahwa pesan Pengaturan Ulang Urutan menggantikan pesan administratif atau aplikasi yang tidak akan dikirim ulang. |
| 36 | NewSeqNo | Ya | 1 | Integer | Nomor urutan baru. |
Standard Trailer | Ya |
Pesan aplikasi ¶
Market Data Request (MsgType(35)=V)¶
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 262 | MDReqID | Ya | Nilai valid apa pun | String | ID permintaan kutipan yang unik. ID baru untuk langganan baru, ID yang sama seperti yang digunakan sebelumnya untuk penghapusan langganan. |
| 263 | SubscriptionRequestType | Ya | 1 atau 2 | Char | 1 = Snapshot plus pembaruan (berlangganan). 2 = Nonaktifkan permintaan snapshot plus pembaruan sebelumnya (berhenti berlangganan). |
| 264 | MarketDepth | Ya | 0 atau 1 | Integer | Buku lengkap akan disediakan. 0 = Langganan kedalaman 1 = Langganan spot |
| 265 | MDUpdateType | Ya | Nilai valid apa pun | Integer | Hanya Penyegaran Inkremental yang didukung. |
| 267 | NoMDEntryTypes | Ya | 2 | Integer | Selalu diatur ke 2 (baik bid maupun ask akan dikirim). |
| 269 | MDEntryType | Ya | 0 atau 1 | Char | Grup berulang ini berisi daftar semua jenis Entri Data Pasar yang ingin diterima oleh pemohon. 0 = Bid 1 = Offer |
| 146 | NoRelatedSym | Ya | Nilai valid apa pun | Integer | Jumlah simbol yang diminta. |
| 55 | Symbol | Ya | Nilai valid apa pun | Long | Pengidentifikasi instrumen disediakan oleh Spotware. |
Standard Trailer | Ya |
Lihat contoh pesan Permintaan Data Pasar di bawah ini.
Untuk Spot
Permintaan:
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|
Respons:
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|
Untuk Kedalaman
Permintaan:
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|
Respons:
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 | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 262 | MDReqID | Ya | Nilai valid apa pun | String | ID dari permintaan data pasar yang sebelumnya dikirim. |
| 55 | Symbol | Ya | Nilai valid apa pun | Long | Pengidentifikasi instrumen disediakan oleh Spotware. |
| 268 | NoMDEntries | Ya | Nilai valid apa pun | Integer | Jumlah entri berikutnya. |
| 269 | MDEntryType | Tidak | 0 atau 1 | Char | Nilai-nilai yang valid adalah: 0 = Bid 1 = Offer Diperlukan hanya ketika NoMDEntries (tag=268) > 0. |
| 299 | QuoteEntryID | Tidak | Nilai valid apa pun | String | Identifikasi unik dari kutipan sebagai bagian dari QuoteSet. |
| 270 | MDEntryPx | Tidak | 1.2345 | Harga | Harga dari Entri Data Pasar. Diperlukan hanya ketika NoMDEntries (tag=268) > 0. |
| 271 | MDEntrySize | Tidak | 500000 | Volume | Volume dari Entri Data Pasar. Diperlukan hanya ketika NoMDEntries (tag=268) > 0. |
| 278 | MDEntryID | Tidak | Nilai valid apa pun | String | Pengidentifikasi unik Entri Data Pasar. |
Standard Trailer | Ya |
Market Data Incremental Refresh (MsgType(35)=X)¶
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 262 | MDReqID | Ya | Nilai valid apa pun | String | ID dari permintaan data pasar yang sebelumnya dikirim. |
| 268 | NoMDEntries | Ya | Nilai valid apa pun | Integer | Jumlah entri berikutnya. Kelompok berulang ini berisi daftar semua jenis Entri Data Pasar yang ingin diterima oleh pemohon. |
| 279 | MDUpdateAction | Ya | 0 atau 2 | Char | Jenis tindakan pembaruan Data Pasar. Nilai yang valid adalah: 0 = Baru 2 = Hapus |
| 269 | MDEntryType | Tidak | 0 atau 1 | Char | Nilai yang valid adalah: 0 = Bid 1 = Offer |
| 278 | MDEntryID | Ya | Nilai valid apa pun | String | ID dari Entri Data Pasar. |
| 55 | Symbol | Ya | Nilai valid apa pun | Long | Pengidentifikasi instrumen disediakan oleh Spotware. |
| 270 | MDEntryPx | Tidak | 1.2345 | Harga | Diperlukan hanya ketika MDUpdateAction (tag=279) = 0. |
| 271 | MDEntrySize | Tidak | 10000 | Gandakan | Diperlukan hanya ketika MDUpdateAction (tag=279) = 0. |
Standard Trailer | Ya |
New Order Single (MsgType(35)=D)¶
Pesan Order Tunggal Baru memiliki format berikut.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 11 | ClOrdID | Ya | Nilai valid apa pun | String | Pengidentifikasi unik order yang dialokasikan oleh klien. |
| 55 | Symbol | Ya | Nilai valid apa pun | Long | Pengidentifikasi instrumen disediakan oleh Spotware. |
| 54 | Side | Ya | 1 atau 2 | Integer | 1 = Buy 2 = Sell |
| 60 | TransactTime | Ya | Nilai valid apa pun | Timestamp | Waktu permintaan yang dihasilkan oleh klien. |
| 38 | OrderQty | Ya | Nilai valid apa pun | Qty | Jumlah saham yang dipesan. Ini mewakili jumlah saham untuk ekuitas atau berdasarkan konvensi normal jumlah kontrak untuk opsi, futures, obligasi konversi, dll. Presisi maksimum adalah 0,01. Sebelum FIX 4.2, tipe field ini adalah "Integer". |
| 40 | OrdType | Ya | 1, 2 atau 3 | Char | 1 = Market, order akan diproses dengan skema Immediate or Cancel (IOC) (TimeInForce, tag=59). 2 = Limit, order akan diproses dengan skema Good Till Cancel (GTC) (TimeInForce, tag=59). 3 = Stop, order akan diproses dengan skema Good Till Cancel (GTC) (TimeInForce, tag=59). |
| 44 | Price | Tidak | Nilai valid apa pun | Harga | Harga klien terburuk yang akan diterima oleh klien. Diperlukan hanya ketika OrdType (tag=40) = 2, dalam hal ini order tidak akan tereksekusi kecuali harga ini dapat dipenuhi. |
| 99 | StopPx | Tidak | Nilai valid apa pun | Harga | Harga yang memicu order stop. Diperlukan hanya ketika OrdType (tag=40) = 3, dalam hal ini order tidak akan tereksekusi kecuali harga ini dapat dipenuhi. |
| 59 | TimeInForce | Tidak | 1, 3 or 6 | String | Tidak digunakan lagi, nilai ini akan diabaikan. TimeInForce akan terdeteksi secara otomatis tergantung pada OrdType (tag=40) dan ExpireTime (tag=126): 1 = Good Till Cancel (GTC), akan digunakan hanya untuk order limit dan stop (OrdType, tag=40) hanya jika ExpireTime (tag=126) tidak didefinisikan. 3 = Immediate or Cancel (IOC), akan digunakan hanya untuk order market (OrdType, tag=40). 6 = Good Till Date (GTD), akan digunakan hanya untuk order limit dan stop (OrdType, tag=40) hanya jika ExpireTime (tag=126) didefinisikan. |
| 126 | ExpireTime | Tidak | 20140215-07:24:55 | Timestamp | Waktu kedaluwarsa dalam format "YYYYMMDD-HH:MM:SS". Jika ditetapkan, order akan diproses dengan skema GTD (TimeInForce: GTD). |
| 721 | PosMaintRptID | Tidak | Nilai valid apa pun | String | ID posisi di mana order ini harus ditempatkan. Jika tidak diatur, posisi baru akan dibuat dan ID-nya akan dikembalikan dalam pesan Laporan Eksekusi. Ini hanya dapat ditentukan untuk akun yang di-hedge. |
| 494 | Designation | Tidak | Nilai valid apa pun | String | Label order kustom. |
Standard Trailer | Ya |
Lihat contoh pesan Order Tunggal Baru di bawah ini.
Order market ke posisi baru
Permintaan:
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|
Respons:
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|
Order market ke posisi yang ada
Permintaan:
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|
Respons:
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
Order limit ke posisi yang ada
Permintaan:
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|
Respons:
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|
Order stop ke posisi baru
Permintaan:
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|
Respons:
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)¶
Pesan Permintaan Status Order digunakan oleh institusi untuk menghasilkan pesan status order kembali dari trader. Untuk interaksi yang benar, sangat penting untuk memiliki pengidentifikasi order klien yang unik (ClOrdID) untuk semua order.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 11 | ClOrdID | Ya | Nilai valid apa pun | String | Pengidentifikasi unik order yang dialokasikan oleh klien. |
| 54 | Side | Tidak | 1 atau 2 | Integer | 1 = Buy 2 = Sell |
Standard Trailer | Ya |
Lihat contoh pesan Permintaan Status Order di bawah ini.
Permintaan:
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|
Respons:
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)¶
Pesan Permintaan Status Massal Order meminta status untuk order yang sesuai dengan kriteria yang ditentukan dalam permintaan. Jawaban akan dikembalikan sebagai sejumlah pesan Laporan Eksekusi (satu untuk setiap order), atau sebagai pesan Penolakan Pesan Bisnis jika tidak ada order yang ditemukan.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 584 | MassStatusReqID | Ya | Nilai valid apa pun | String | ID unik dari Permintaan Status Massal yang ditetapkan oleh klien. |
| 585 | MassStatusReqType | Ya | Nilai valid apa pun | Integer | 7 = Status untuk semua order. Hanya nilai 7 yang saat ini didukung. |
| 225 | IssueDate | Tidak | Nilai valid apa pun | String | Jika diatur, respons hanya akan berisi order yang dibuat sebelum tanggal ini. |
Standard Trailer | Ya |
Lihat contoh pesan Permintaan Status Massal Order di bawah ini.
Permintaan:
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|
Respons:
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)¶
Pesan Laporan Eksekusi untuk order yang diterima memiliki format berikut.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 37 | OrderID | Ya | Nilai valid apa pun | String | ID order cTrader. |
| 11 | ClOrdID | Tidak | Nilai valid apa pun | String | Pengidentifikasi unik order yang dialokasikan oleh klien. |
| 911 | TotNumReports | Tidak | Nilai valid apa pun | Integer | Jumlah total laporan yang dikembalikan sebagai respons terhadap pesan Permintaan Status Massal Order. |
| 150 | ExecType | Ya | Nilai valid apa pun | Char | 0 = New 4 = Canceled 5 = Replace 8 = Rejected C = Expired F = Trade I = Order Status |
| 39 | OrdStatus | Ya | Nilai valid apa pun | Char | 0 = Baru 1 = Terisi sebagian 2 = Terisi 8 = Ditolak 4 = Dibatalkan (ketika order terisi sebagian, Canceled dikembalikan yang menandakan (tag=151), LeavesQty dibatalkan dan tidak akan diisi selanjutnya). C = Kedaluwarsa |
| 55 | Symbol | Tidak | Nilai valid apa pun | Long | Pengidentifikasi instrumen disediakan oleh Spotware. |
| 54 | Side | Tidak | 1 atau 2 | Integer | 1 = Beli 2 = Jual |
| 60 | TransactTime | Tidak | Nilai valid apa pun | Timestamp | Waktu eksekusi transaksi yang direpresentasikan oleh pesan Laporan Eksekusi (dalam UTC). |
| 6 | AvgPx | Tidak | Nilai valid apa pun | Integer | Harga di mana deal tereksekusi. Untuk order IOC atau GTD, ini adalah Harga Rata-rata Tertimbang Volume (VWAP) dari order yang tereksekusi. |
| 38 | OrderQty | Tidak | Nilai valid apa pun | Qty | Ini mewakili jumlah saham untuk ekuitas atau berdasarkan konvensi normal jumlah kontrak untuk opsi, futures, obligasi konversi, dll. Sebelum FIX 4.2, tipe field ini adalah "Integer". |
| 151 | LeavesQty | Tidak | Nilai valid apa pun | Qty | Jumlah order yang masih harus diisi. Nilai yang mungkin adalah antara 0 (terisi penuh) dan OrderQty (terisi sebagian). |
| 14 | CumQty | Tidak | Nilai valid apa pun | Qty | Jumlah total order yang telah terisi. |
| 32 | LastQty | Tidak | Nilai valid apa pun | Qty | Kuantitas order yang dibeli/dijual yang telah terisi pada (terakhir) pengisian ini. |
| 40 | OrdType | Tidak | 1 atau 2 | Char | 1 = Market 2 = Limit |
| 44 | Price | Tidak | Nilai valid apa pun | Harga | Jika disertakan dalam pesan Order Tunggal Baru, akan diulang kembali dalam pesan Laporan Eksekusi ini. |
| 99 | StopPx | Tidak | Nilai valid apa pun | Harga | Jika disertakan dalam pesan Order Tunggal Baru, akan diulang kembali dalam pesan Laporan Eksekusi ini. |
| 59 | TimeInForce | Tidak | 1, 3 atau 6 | String | 1 = Good Till Cancel (GTC) 3 = Immediate or Cancel (IOC) 6 = Good Till Date (GTD) |
| 126 | ExpireTime | Tidak | 20140215-07:24:55 | Timestamp | Jika disertakan dalam pesan Order Tunggal Baru, akan diulang kembali dalam pesan Laporan Eksekusi ini. |
| 58 | Text | Tidak | Nilai valid apa pun | String | Jika memungkinkan, pesan akan menjelaskan Laporan Eksekusi. |
| 103 | OrdRejReason | Tidak | 0 | Integer | 0 = OrdRejReason.BROKER_EXCHANGE_OPTION |
| 721 | PosMaintRptID | Tidak | Nilai valid apa pun | String | ID posisi. |
| 494 | Designation | Tidak | Nilai valid apa pun | String | Label order kustom dari klien. |
| 584 | MassStatusReqID | Tidak | Nilai valid apa pun | String | ID unik dari permintaan status massal yang ditetapkan oleh klien. |
| 1000 | AbsoluteTP | Tidak | Nilai valid apa pun | Harga | Harga absolut di mana Take Profit akan terpicu. |
| 1001 | RelativeTP | Tidak | Nilai valid apa pun | Harga | Jarak dalam pip dari harga entri di mana Take Profit akan terpicu. |
| 1002 | AbsoluteSL | Tidak | Nilai valid apa pun | Harga | Harga absolut di mana Stop Loss akan terpicu. |
| 1003 | RelativeSL | Tidak | Nilai valid apa pun | Harga | Jarak dalam pip dari harga entri di mana Stop Loss akan terpicu. |
| 1004 | TrailingSL | Tidak | N atau Y | Boolean | Menunjukkan apakah Stop Loss adalah trailing. N = Stop Loss bukan trailing. Y = Stop Loss adalah trailing. |
| 1005 | TriggerMethodSL | Tidak | Nilai valid apa pun | Integer | Metode pemicu yang ditunjukkan untuk Stop Loss. 1 = Stop Loss akan terpicu oleh sisi trading. 2 = Stop Loss akan terpicu oleh sisi berlawanan (ask untuk posisi beli dan bid untuk posisi jual). 3 = Stop Loss akan terpicu setelah dua tik berturut-turut sesuai dengan sisi trading. 4 = Stop Loss akan terpicu setelah dua tik berturut-turut sesuai dengan sisi berlawanan (tik ask kedua untuk posisi beli dan tik bid kedua untuk posisi jual). |
| 1006 | GuaranteedSL | Tidak | N atau Y | Boolean | Menunjukkan apakah Stop Loss terjamin. N = Stop Loss tidak terjamin. Y = Stop Loss terjamin. |
Standard Trailer | Ya |
Lihat contoh New Order Single di akhir panduan.
Business Message Reject (MsgType(35)=j)¶
Tipe pesan ini dikirim ketika sistem tidak dapat memproses permintaan langganan atau order tidak dapat dieksekusi.
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 45 | RefSeqNum | Tidak | Nilai valid apa pun | Integer | MsgSeqNum (tag=34) dari pesan yang ditolak. |
| 372 | RefMsgType | Tidak | Nilai valid apa pun | String | MsgType (tag=35) dari pesan FIX yang dirujuk. |
| 379 | BusinessRejectRefID | Tidak | Nilai valid apa pun | String | Nilai field ID tingkat bisnis dalam pesan yang dirujuk. Diperlukan kecuali field ID yang sesuai tidak ditentukan. |
| 380 | BusinessRejectReason | Ya | 0 | Integer | Kode untuk mengidentifikasi alasan pesan Business Message Reject. 0 = Lainnya |
| 58 | Text | Tidak | Nilai valid apa pun | String | Jika memungkinkan, pesan untuk menjelaskan alasan penolakan. |
Standard Trailer | Ya |
Lihat contoh pesan Business Message Reject di bawah ini.
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 | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 710 | PosReqID | Ya | Nilai valid apa pun | String | ID permintaan unik (ditetapkan oleh klien). |
| 721 | PosMaintRptID | Tidak | Nilai valid apa pun | String | ID posisi yang diminta. Jika tidak diatur, semua posisi terbuka akan dikembalikan. |
Standard Trailer | Ya |
Lihat contoh pesan Request for Positions di bawah ini.
Permintaan:
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|
Respons:
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 | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 710 | PosReqID | Ya | Nilai valid apa pun | String | ID dari pesan Request for Positions. |
| 721 | PosMaintRptID | Tidak | Nilai valid apa pun | String | ID posisi, yang tidak diatur jika PosReqResult (tag=728) bukan VALID_REQUEST. |
| 727 | TotalNumPosReports | Ya | Nilai valid apa pun | String | Jumlah total Laporan Posisi dalam urutan ketika PosReqResult (tag=728) adalah VALID_REQUEST, jika tidak = 0. |
| 728 | PosReqResult | Ya | 0 atau 2 | String | 0 = Permintaan valid 2 = Tidak ditemukan posisi terbuka yang sesuai dengan kriteria. |
| 55 | Symbol | Tidak | Nilai valid apa pun | String | Simbol yang digunakan untuk menyiapkan Laporan Posisi saat ini. Tidak diatur jika PosReqResult (tag=728) bukan VALID_REQUEST. |
| 702 | NoPositions | Tidak | 1 | String | 1 ketika PosReqResult (tag=728) adalah VALID_REQUEST, jika tidak maka tidak diatur. |
| 704 | LongQty | Tidak | Nilai valid apa pun | String | Volume terbuka posisi dalam kasus sisi trading beli, sama dengan 0 dalam kasus sisi trading jual. Tidak diatur jika PosReqResult (tag=728) bukan VALID_REQUEST. |
| 705 | ShortQty | Tidak | Nilai valid apa pun | String | Volume terbuka posisi dalam kasus sisi trading jual, sama dengan 0 dalam kasus sisi trading beli. Tidak diatur jika PosReqResult (tag=728) bukan VALID_REQUEST. |
| 730 | SettlPrice | Tidak | Nilai valid apa pun | String | Harga rata-rata volume yang dibuka dalam Laporan Posisi saat ini. |
| 1000 | AbsoluteTP | Tidak | Nilai valid apa pun | Harga | Harga absolut di mana Take Profit akan terpicu. |
| 1002 | AbsoluteSL | Tidak | Nilai valid apa pun | Harga | Harga absolut di mana Stop Loss akan terpicu. |
| 1004 | TrailingSL | Tidak | Nilai valid apa pun | Boolean | Menunjukkan apakah Stop Loss adalah trailing. N = Stop Loss bukan trailing. Y = Stop Loss adalah trailing. |
| 1005 | TriggerMethodSL | Tidak | Nilai valid apa pun | Integer | Metode pemicu yang ditunjukkan untuk Stop Loss. 1 = Stop Loss akan terpicu oleh sisi trading. 2 = Stop Loss akan terpicu oleh sisi berlawanan (ask untuk posisi beli dan bid untuk posisi jual). 3 = Stop Loss akan terpicu setelah dua tik berturut-turut sesuai dengan sisi trading. 4 = Stop Loss akan terpicu setelah dua tik berturut-turut sesuai dengan sisi berlawanan (tik ask kedua untuk posisi beli dan tik bid kedua untuk posisi jual). |
| 1006 | GuaranteedSL | Tidak | Nilai valid apa pun | Boolean | Menunjukkan apakah Stop Loss terjamin. N = Stop Loss tidak terjamin. Y = Stop Loss terjamin. |
Standard Trailer | Ya |
Order Cancel Request (MsgType(35)=F)¶
| Tag | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 41 | OrigClOrdID | Ya | Nilai valid apa pun | String | Pengidentifikasi unik dari order yang akan dibatalkan, yang dialokasikan oleh klien. |
| 37 | OrderID | Tidak | Nilai valid apa pun | String | ID unik dari order yang dikembalikan oleh cServer. |
| 11 | ClOrdID | Ya | Nilai valid apa pun | String | ID unik dari permintaan pembatalan yang dialokasikan oleh klien. |
Standard Trailer | Ya |
Lihat contoh pesan Permintaan Pembatalan Order di bawah ini.
Permintaan:
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|
Respons (berhasil):
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|
Respons (gagal):
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 | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 37 | OrderID | Ya | Nilai valid apa pun | String | Pengidentifikasi unik dari order yang tidak dapat dibatalkan oleh sistem. |
| 11 | ClOrdID | Ya | Nilai valid apa pun | String | Pengidentifikasi unik dari Permintaan Pembatalan Order. |
| 41 | OrigClOrdID | Tidak | Nilai valid apa pun | String | Pengidentifikasi unik dari order yang dicoba untuk dibatalkan, yang dialokasikan oleh klien. |
| 39 | OrdStatus | Ya | Nilai valid apa pun | Char | 0 = Baru 1 = Terisi sebagian 2 = Terisi 8 = Ditolak 4 = Dibatalkan (ketika order terisi sebagian Canceled dikembalikan menandakan (tag=151), LeavesQty dibatalkan dan tidak akan terisi selanjutnya). C = Kedaluwarsa |
| 434 | CxlRejResponseTo | Ya | 1 atau 2 | Char | 1 = Tolak pembatalan order. 2 = Tolak perubahan order dari terminal lain. |
| 58 | Text | Tidak | Nilai valid apa pun | String | Order sedang dalam eksekusi. |
Standard Trailer | Ya |
Lihat contoh pesan Penolakan Pembatalan Order di bawah ini.
Respons:
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 | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 41 | OrigClOrdID | Ya | Any valid value | String | Pengidentifikasi unik dari order yang akan diubah, yang dialokasikan oleh klien. |
| 37 | OrderID | Tidak | Nilai valid apa pun | String | ID unik dari order asli yang akan diubah, yang dialokasikan oleh server. Metode yang lebih disukai untuk digunakan. |
| 11 | ClOrdID | Ya | Nilai valid apa pun | String | ID unik dari permintaan perubahan yang dialokasikan oleh klien. |
| 38 | OrderQty | Ya | Nilai valid apa pun | Qty | Kuantitas yang ada atau baru ditentukan untuk menggantikan nilai lama. |
| 44 | Price | Tidak | Nilai valid apa pun | Harga | Harga limit yang ada atau baru ditentukan untuk menggantikan nilai lama. Hanya valid untuk order limit. |
| 99 | StopPx | Tidak | Nilai valid apa pun | Harga | Harga stop yang ada atau baru ditentukan untuk menggantikan nilai lama. Hanya valid untuk order stop. |
| 126 | ExpireTime | Tidak | 20140215-07:24:55 | Timestamp | Waktu kedaluwarsa yang ada atau baru ditentukan. Hanya valid untuk order pending. |
Standard Trailer | Ya |
Lihat contoh pesan Permintaan Pembatalan/Penggantian Order di bawah ini.
Permintaan:
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|
Respons (berhasil):
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|
Respons (gagal):
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 | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 262 | MDReqID | Ya | Nilai valid apa pun | String | Harus merujuk ke MDReqID (tag=262) dari permintaan. |
| 281 | MDReqRejReason | Tidak | Nilai valid apa pun | Integer | 0 = Simbol tidak dikenal 4 = SubscriptionRequestType (tag=263) tidak didukung 5 = MarketDepth (tag=264) tidak didukung |
Standard Trailer | Ya |
Lihat contoh pesan Penolakan Permintaan Data Pasar di bawah ini.
Permintaan:
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|
Tolak:
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|
Permintaan:
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|
Tolak:
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 | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 320 | SecurityReqID | Ya | Nilai valid apa pun | String | ID unik dari Permintaan Definisi Keamanan. |
| 559 | SecurityListRequestType | Ya | 0 | Integer | Jenis Permintaan Daftar Keamanan yang dibuat. Hanya mendukung 0 = Symbol (tag=55). |
| 55 | Symbol | Tidak | Nilai valid apa pun | Integer | ID untuk menyelesaikan nama simbol. |
Standard Trailer | Ya |
Lihat contoh pesan Permintaan Daftar Keamanan di bawah ini.
Permintaan:
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|
Respons:
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 | Nama bidang | Wajib | Nilai | Format FIX | Komentar |
|---|---|---|---|---|---|
Standard Header | Ya | ||||
| 320 | SecurityReqID | Ya | Nilai valid apa pun | String | ID unik dari Permintaan Definisi Keamanan. |
| 322 | SecurityResponseID | Ya | Nilai valid apa pun | String | ID unik dari respons Daftar Keamanan. |
| 560 | SecurityRequestResult | Ya | 0 | Integer | Hasil yang dikembalikan ke pesan Permintaan Keamanan. Nilai yang valid adalah: 0 = Permintaan valid. 1 = Permintaan tidak valid atau tidak didukung. 2 = Tidak ditemukan instrumen yang sesuai dengan kriteria seleksi. 3 = Tidak diizinkan untuk mengambil data instrumen. 4 = Data instrumen sementara tidak tersedia. 5 = Permintaan data instrumen tidak didukung. |
| 146 | NoRelatedSym | Tidak | Nilai valid apa pun | Integer | Menentukan jumlah simbol (instrumen) yang berulang. |
| 55 | Symbol | Tidak | Nilai valid apa pun | Integer | Pengidentifikasi instrumen disediakan oleh Spotware. |
| 1007 | SymbolName | Tidak | Nilai valid apa pun | String | Nama simbol. |
| 1008 | SymbolDigits | Tidak | Nilai valid apa pun | Integer | Digit simbol. Nilai yang mungkin dari 0 sampai 5. |
Standard Trailer | Ya |
Lihat contoh pesan Daftar Keamanan di bawah ini.
Respons:
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|