cTrader FIX engine (Quy tắc Tham gia)¶
Giới thiệu ¶
Phạm vi ¶
Thông số kỹ thuật này nhằm mục đích phục vụ các nhà phát triển phần mềm như một hướng dẫn triển khai cho API cTrader FIX engine.
Phiên bản FIX ¶
cTrader hỗ trợ FIX phiên bản 4.4. Để biết thêm thông tin về phiên bản này, hãy tham khảo thông số kỹ thuật này.
Kết nối ¶
Loại kết nối ¶
Kết nối với cTrader FIX engine có sẵn qua Internet, đường hầm VPN hoặc kết nối chéo đến các cơ sở trung tâm dữ liệu của chúng tôi ở Vương quốc Anh. Liên hệ với chúng tôi để biết thêm chi tiết.
Đặt lại số thứ tự ¶
Tất cả các bên của phiên FIX nên đặt lại số thứ tự khi thiết lập phiên FIX. Xem tin nhắn Đăng nhập.
Tin nhắn ¶
Như được định nghĩa trong giao thức FIX, máy chủ cTrader FIX đang sử dụng hai cấp độ dữ liệu khác nhau (hệ thống và ứng dụng). Lưu ý rằng đây là tập hợp tin nhắn tối thiểu cần thiết để hỗ trợ các quy trình làm việc cần thiết. Nó có thể thay đổi theo thời gian khi cả nhu cầu kinh doanh và tiêu chuẩn FIX phát triển.
cTrader FIX engine ¶
Tin nhắn hệ thống¶
- Heartbeat (Client ↔ cTrader)
- Test Request (Client ↔ cTrader)
- Logon (Client → cTrader)
- Logout (Client → cTrader)
- Resend Request (Client ↔ cTrader)
- Reject (Client ↔ cTrader)
- Sequence Reset (Client ↔ cTrader)
Tin nhắn ứng dụng¶
- 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)
Tiêu đề chuẩn ¶
Mỗi tin nhắn quản trị hoặc ứng dụng được đứng trước bởi một tiêu đề chuẩn. Tiêu đề xác định loại tin nhắn, độ dài, đích đến, số thứ tự, điểm xuất phát và thời gian.
Tất cả các tin nhắn gửi đến cTrader nên có tiêu đề chuẩn với các trường sau:
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
| 8 | BeginString | Có | FIX.4.4 | Chuỗi | Luôn không được mã hóa, phải là trường đầu tiên trong tin nhắn. |
| 9 | BodyLength | Có | Bất kỳ giá trị hợp lệ nào | Số nguyên | Độ dài nội dung tin nhắn. Luôn không được mã hóa, phải là trường thứ hai trong tin nhắn. |
| 35 | MsgType | Có | A | Chuỗi | Loại tin nhắn. Luôn không được mã hóa, phải là trường thứ ba trong tin nhắn. |
| 49 | SenderCompID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID của bên giao dịch theo định dạng sau: <Môi trường>.<BrokerUID>.<Trader Login>, trong đó Môi trường là xác định của máy chủ, như demo hoặc live; BrokerUID được cung cấp bởi cTrader và Trader Login là định danh số của tài khoản nhà giao dịch. |
| 56 | TargetCompID | Có | CSERVER | Chuỗi | Mục tiêu tin nhắn. The valid value is CSERVER. |
| 57 | TargetSubID | Có | QUOTE hoặc TRADE | Chuỗi | Bổ sung phiên bổ sung. Các giá trị có thể là QUOTE và TRADE. |
| 50 | SenderSubID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Giá trị được gán được sử dụng để xác định người tạo tin nhắn cụ thể. Phải được đặt thành QUOTE nếu TargetSubID=QUOTE. |
| 34 | MsgSeqNum | Có | 1 | Số nguyên | Số thứ tự của tin nhắn. |
| 52 | SendingTime | Có | 20131129-15:40:08.155 | UTCTimestamp | Thời gian truyền tin nhắn luôn được biểu thị bằng UTC (Thời gian Phối hợp Quốc tế, còn được gọi là GMT). |
Đoạn kết chuẩn ¶
Mỗi tin nhắn, quản trị hoặc ứng dụng, được kết thúc bằng một đoạn kết chuẩn. Đoạn kết được sử dụng để phân tách các tin nhắn và chứa biểu diễn ba chữ số của giá trị CheckSum (tag=10).
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
| 10 | CheckSum | Có | 054 | Chuỗi | Tổng kiểm tra đơn giản ba byte. Luôn là trường cuối cùng trong tin nhắn (ví dụ: phục vụ), với <SOH> cuối cùng làm dấu phân cách kết thúc tin nhắn. Nó được định nghĩa là ba ký tự (luôn không được mã hóa). |
Tin nhắn phiên ¶
Heartbeat (MsgType(35)=0)¶
Tin nhắn Heartbeat được gửi bởi cả cTrader và ứng dụng khách để xác nhận kết nối trực tiếp.
Ứng dụng khách của nhà cung cấp truyền một heartbeat định kỳ theo khoảng thời gian được xác định bởi trường HeartBtInt (tag=108) trong tin nhắn Đăng nhập, hoặc như một phản hồi cho tin nhắn Yêu cầu Kiểm tra.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 112 | TestReqID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Nếu heartbeat là kết quả của tin nhắn Yêu cầu Kiểm tra, TestReqID là bắt buộc. |
Standard Trailer | Có |
Test Request (MsgType(35)=1)¶
Nó buộc một heartbeat từ người nhận yêu cầu. Một phản hồi được gửi từ hệ thống nhận dưới dạng tin nhắn Heartbeat chứa TestReqID.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 112 | TestReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID tin nhắn heartbeat. TestReqID nên tăng dần. |
Standard Trailer | Có |
Logon (bidirectional) (MsgType(35)=A)¶
Tin nhắn Đăng nhập được gửi từ ứng dụng phía khách hàng để bắt đầu phiên cTrader FIX, và một phản hồi được gửi bởi cTrader đến ứng dụng phía khách hàng. Khi đăng nhập hoàn tất, luồng báo giá và giao dịch có thể tiếp tục trong suốt vòng đời của phiên.
Nếu cTrader nhận được tin nhắn Đăng nhập không hợp lệ (với các trường không hợp lệ), cTrader sẽ gửi tin nhắn Đăng xuất để phản hồi.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 98 | EncryptMethod | Có | 0 | Số nguyên | Xác định một lược đồ mã hóa tin nhắn. Hiện tại, chỉ hỗ trợ bảo mật cấp truyền tải. Giá trị hợp lệ là 0 = NONE_OTHER (không sử dụng mã hóa). |
| 108 | HeartBtInt | Có | Bất kỳ giá trị hợp lệ nào | Số nguyên | Khoảng thời gian heartbeat tính bằng giây. Giá trị được đặt trong tệp config.properties (phía khách hàng) dưới dạng SERVER.POLLING.INTERVAL. Giá trị khoảng thời gian mặc định là 30 giây. Nếu HeartBtInt được đặt thành 0, không cần tin nhắn heartbeat. |
| 141 | ResetSeqNumFlag | Không | Y | Boolean | Tất cả các bên của phiên FIX nên đặt lại số thứ tự. Giá trị hợp lệ là Y (đặt lại). |
| 553 | Username | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID người dùng dạng số. Người dùng được liên kết với giá trị SenderCompID (tổ chức của người dùng, tag=49). |
| 554 | Password | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Mật khẩu người dùng. |
Standard Trailer | Có |
Ghi chú
Trường Username (tag=553) phải chứa giá trị đăng nhập nhà giao dịch dạng số, trong khi SenderCompID (tag=49) phải chứa môi trường, BrokerUID và đăng nhập nhà giao dịch được phân tách bằng dấu chấm (ví dụ: live.theBroker.12345).
Xem ví dụ về tin nhắn Đăng nhập bên dưới.
Yêu cầu:
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|
Phản hồi (thành công):
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|
Phản hồi (thất bại):
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)¶
Tin nhắn Đăng xuất được gửi từ ứng dụng khách để yêu cầu kết thúc phiên với cTrader và như một phản hồi của cTrader. Đăng xuất phiên xảy ra để phản hồi khi Người tham gia Thị trường gửi tin nhắn Đăng xuất đến cTrader. Trước khi kết thúc phiên, cTrader sẽ hủy tất cả các giá vẫn đang được truyền tích cực đến bên yêu cầu. Nếu cTrader nhận được tin nhắn Đăng nhập không hợp lệ (với các trường không hợp lệ), cTrader sẽ gửi tin nhắn Đăng xuất để phản hồi với chi tiết lỗi trong trường Text (tag=58).
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 58 | Text | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Chi tiết từ chối đăng nhập. Chỉ được sử dụng cho tin nhắn từ cTrader đến khách hàng như một phản hồi tin nhắn Đăng nhập không hợp lệ. |
Standard Trailer | Có |
Xem ví dụ về tin nhắn Đăng xuất bên dưới.
Yêu cầu:
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|
Phản hồi:
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)¶
Tin nhắn đến/đi được sử dụng để yêu cầu gửi lại một tin nhắn (hoặc các tin nhắn), thường khi phát hiện khoảng trống trong đánh số thứ tự.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 7 | BeginSeqNo | Có | Bất kỳ giá trị hợp lệ nào | Số nguyên | Số thứ tự tin nhắn của bản ghi đầu tiên trong phạm vi cần được gửi lại. |
| 16 | EndSeqNo | Có | Bất kỳ giá trị hợp lệ nào | Số nguyên | Số thứ tự tin nhắn của bản ghi cuối cùng trong phạm vi cần được gửi lại. |
Standard Trailer | Có |
Reject (bidirectional) (MsgType(35)=3)¶
Được gửi khi tin nhắn nhận được không thể được xử lý do vi phạm quy tắc cấp phiên. Các tin nhắn bị từ chối phải được ghi lại và số thứ tự đến phải được tăng lên.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 45 | RefSeqNum | Có | Bất kỳ giá trị hợp lệ nào | SeqNum | Số thứ tự của tin nhắn được tham chiếu. |
| 58 | Text | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một chuỗi văn bản tự do. |
| 354 | EncodedTextLen | Không | Bất kỳ giá trị hợp lệ nào | Độ dài | Độ dài của trường EncodedText (các ký tự không phải ASCII) tính bằng byte. |
| 355 | EncodedText | Không | Bất kỳ giá trị hợp lệ nào | Dữ liệu | Một biểu diễn của trường Text (tag=58), được mã hóa bằng định dạng được chỉ định trong trường MessageEncoding (tag=347) (từ tiêu đề chuẩn). Nếu sử dụng biểu diễn ASCII, nó cũng nên được chỉ định trong trường Text (tag=58). |
| 371 | RefTagID | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Số tag của trường FIX đã khởi tạo việc từ chối tin nhắn. |
| 372 | RefMsgType | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | MsgType (tag=35) của tin nhắn FIX được tham chiếu. |
| 373 | SessionRejectReason | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Nguyên nhân từ chối được mã hóa. Các giá trị hợp lệ là: 0 = Số tag không hợp lệ 1 = Thiếu tag bắt buộc 2 = Không có tag được định nghĩa cho loại tin nhắn này 3 = Tag không xác định 4 = Không có giá trị cho tag được chỉ định 5 = Giá trị cho tag này nằm ngoài phạm vi 6 = Định dạng dữ liệu không chính xác cho giá trị 7 = Vấn đề giải mã 8 = Lỗi chữ ký 9 = Lỗi CompID 10 = Lỗi độ chính xác SendingTime 11 = MsgType không hợp lệ 12 = Lỗi xác thực XML 13 = Tag đang được lặp lại 14 = Tag được chỉ định không đúng thứ tự 15 = Các trường nhóm lặp lại không đúng thứ tự 16 = Số lượng NumInGroup không chính xác cho nhóm lặp lại 17 = Dấu phân cách trường (ký tự SOH) được bao gồm trong giá trị không phải dữ liệu |
Standard Trailer | Có |
Sequence Reset (MsgType(35)=4)¶
Một tin nhắn đến/đi không nên được sử dụng ở cấp độ ứng dụng. Một tin nhắn Sequence Reset chỉ có thể tăng số thứ tự.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 123 | GapFillFlag | Không | Yes hoặc No | Chuỗi | Chỉ ra rằng một tin nhắn Sequence Reset đang thay thế các tin nhắn quản trị hoặc ứng dụng sẽ không được gửi lại. |
| 36 | NewSeqNo | Có | 1 | Số nguyên | Một số thứ tự mới. |
Standard Trailer | Có |
Thông điệp ứng dụng ¶
Market Data Request (MsgType(35)=V)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 262 | MDReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID yêu cầu báo giá duy nhất. Một ID mới cho đăng ký mới, ID giống như đã sử dụng trước đó để hủy đăng ký. |
| 263 | SubscriptionRequestType | Có | 1 hoặc 2 | Ký tự | 1 = Ảnh chụp nhanh cộng với cập nhật (đăng ký). 2 = Vô hiệu hóa yêu cầu ảnh chụp nhanh cộng với cập nhật trước đó (hủy đăng ký). |
| 264 | MarketDepth | Có | 0 hoặc 1 | Số nguyên | Sổ lệnh đầy đủ sẽ được cung cấp. 0 = Đăng ký độ sâu 1 = Đăng ký giao ngay |
| 265 | MDUpdateType | Có | Bất kỳ giá trị hợp lệ nào | Số nguyên | Chỉ hỗ trợ Cập nhật tăng dần. |
| 267 | NoMDEntryTypes | Có | 2 | Số nguyên | Luôn được đặt thành 2 (cả giá mua và giá bán sẽ được gửi). |
| 269 | MDEntryType | Có | 0 hoặc 1 | Ký tự | Nhóm lặp lại này chứa danh sách tất cả các loại Mục dữ liệu thị trường mà người yêu cầu muốn nhận. 0 = Bid 1 = Offer |
| 146 | NoRelatedSym | Có | Bất kỳ giá trị hợp lệ nào | Số nguyên | Số lượng ký hiệu được yêu cầu. |
| 55 | Symbol | Có | Bất kỳ giá trị hợp lệ nào | Mua | Các định danh công cụ được cung cấp bởi Spotware. |
Standard Trailer | Có |
Xem các ví dụ về tin nhắn Yêu cầu dữ liệu thị trường bên dưới.
Cho Giao ngay
Yêu cầu:
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|
Phản hồi:
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|
Cho Độ sâu
Yêu cầu:
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|
Phản hồi:
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)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 262 | MDReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID của yêu cầu dữ liệu thị trường đã gửi trước đó. |
| 55 | Symbol | Có | Bất kỳ giá trị hợp lệ nào | Mua | Các định danh công cụ được cung cấp bởi Spotware. |
| 268 | NoMDEntries | Có | Bất kỳ giá trị hợp lệ nào | Số nguyên | Số lượng mục tiếp theo. |
| 269 | MDEntryType | Không | 0 hoặc 1 | Ký tự | Các giá trị hợp lệ là: 0 = Giá mua 1 = Giá chào bán Chỉ yêu cầu khi NoMDEntries (tag=268) > 0. |
| 299 | QuoteEntryID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một định danh duy nhất của báo giá như một phần của QuoteSet. |
| 270 | MDEntryPx | Không | 1.2345 | Giá | Giá của Mục Nhập Dữ Liệu Thị Trường. Chỉ yêu cầu khi NoMDEntries (tag=268) > 0. |
| 271 | MDEntrySize | Không | 500000 | Khối lượng | Khối lượng của Mục Nhập Dữ Liệu Thị Trường. Chỉ yêu cầu khi NoMDEntries (tag=268) > 0. |
| 278 | MDEntryID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một định danh duy nhất của Mục Nhập Dữ Liệu Thị Trường. |
Standard Trailer | Có |
Market Data Incremental Refresh (MsgType(35)=X)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 262 | MDReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID của yêu cầu dữ liệu thị trường đã gửi trước đó. |
| 268 | NoMDEntries | Có | Bất kỳ giá trị hợp lệ nào | Số nguyên | Số lượng mục tiếp theo. Nhóm lặp lại này chứa danh sách tất cả các loại Mục Nhập Dữ Liệu Thị Trường mà người yêu cầu muốn nhận. |
| 279 | MDUpdateAction | Có | 0 hoặc 2 | Ký tự | Một loại hành động cập nhật Dữ Liệu Thị Trường. Các giá trị hợp lệ là: 0 = Mới 2 = Xóa |
| 269 | MDEntryType | Không | 0 hoặc 1 | Ký tự | Các giá trị hợp lệ là: 0 = Giá mua 1 = Giá bán |
| 278 | MDEntryID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID của Mục Nhập Dữ Liệu Thị Trường. |
| 55 | Symbol | Có | Bất kỳ giá trị hợp lệ nào | Mua | Các định danh công cụ được cung cấp bởi Spotware. |
| 270 | MDEntryPx | Không | 1.2345 | Giá | Chỉ yêu cầu khi MDUpdateAction (tag=279) = 0. |
| 271 | MDEntrySize | Không | 10000 | Nhân bản | Chỉ yêu cầu khi MDUpdateAction (tag=279) = 0. |
Standard Trailer | Có |
New Order Single (MsgType(35)=D)¶
Một thông điệp Lệnh Đơn Mới có định dạng sau.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 11 | ClOrdID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một định danh duy nhất của lệnh được phân bổ bởi khách hàng. |
| 55 | Symbol | Có | Bất kỳ giá trị hợp lệ nào | Mua | Các định danh công cụ được cung cấp bởi Spotware. |
| 54 | Side | Có | 1 hoặc 2 | Số nguyên | 1 = Buy 2 = Sell |
| 60 | TransactTime | Có | Bất kỳ giá trị hợp lệ nào | Dấu thời gian | Thời gian yêu cầu được tạo bởi khách hàng. |
| 38 | OrderQty | Có | Bất kỳ giá trị hợp lệ nào | SLg | Số lượng cổ phiếu được đặt lệnh. Đây là số lượng cổ phiếu cho cổ phiếu hoặc dựa trên quy ước thông thường là số lượng hợp đồng cho quyền chọn, hợp đồng tương lai, trái phiếu chuyển đổi, v.v. Độ chính xác tối đa là 0,01. Trước FIX 4.2, loại của trường này là "Số nguyên". |
| 40 | OrdType | Có | 1, 2 hoặc 3 | Ký tự | 1 = Thị trường, lệnh sẽ được xử lý theo phương thức Thực hiện ngay hoặc Hủy (IOC) (TimeInForce, tag=59). 2 = Giới hạn, lệnh sẽ được xử lý theo phương thức Hiệu lực cho đến khi Hủy (GTC) (TimeInForce, tag=59). 3 = Dừng, lệnh sẽ được xử lý theo phương thức Hiệu lực cho đến khi Hủy (GTC) (TimeInForce, tag=59). |
| 44 | Price | Không | Bất kỳ giá trị hợp lệ nào | Giá | Giá khách hàng tồi tệ nhất mà khách hàng sẽ chấp nhận. Chỉ yêu cầu khi OrdType (tag=40) = 2, trong trường hợp này lệnh sẽ không được thực hiện trừ khi có thể đáp ứng giá này. |
| 99 | StopPx | Không | Bất kỳ giá trị hợp lệ nào | Giá | Giá kích hoạt lệnh dừng. Chỉ yêu cầu khi OrdType (tag=40) = 3, trong trường hợp này lệnh sẽ không được thực hiện trừ khi có thể đáp ứng giá này. |
| 59 | TimeInForce | Không | 1, 3 or 6 | Chuỗi | Đã lỗi thời, giá trị này sẽ bị bỏ qua. TimeInForce sẽ được phát hiện tự động tùy thuộc vào OrdType (tag=40) và ExpireTime (tag=126): 1 = Hiệu lực cho đến khi Hủy (GTC), sẽ chỉ được sử dụng cho lệnh giới hạn và lệnh dừng (OrdType, tag=40) chỉ khi ExpireTime (tag=126) không được xác định. 3 = Thực hiện ngay hoặc Hủy (IOC), sẽ chỉ được sử dụng cho lệnh thị trường (OrdType, tag=40). 6 = Hiệu lực đến Ngày (GTD), sẽ chỉ được sử dụng cho lệnh giới hạn và lệnh dừng (OrdType, tag=40) chỉ khi ExpireTime (tag=126) được xác định. |
| 126 | ExpireTime | Không | 20140215-07:24:55 | Dấu thời gian | Thời gian hết hạn theo định dạng "YYYYMMDD-HH:MM:SS". Nếu được gán, lệnh sẽ được xử lý theo phương thức GTD (TimeInForce: GTD). |
| 721 | PosMaintRptID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID vị thế nơi lệnh này sẽ được đặt. Nếu không được đặt, một vị thế mới sẽ được tạo và ID của nó sẽ được trả về trong thông điệp Báo cáo Thực hiện. Nó chỉ có thể được chỉ định cho các tài khoản phòng ngừa rủi ro. |
| 494 | Designation | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Nhãn lệnh tùy chỉnh. |
Standard Trailer | Có |
Xem các ví dụ về thông điệp Lệnh Đơn Mới bên dưới.
Lệnh thị trường cho vị thế mới
Yêu cầu:
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|
Phản hồi:
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|
Lệnh thị trường cho vị thế hiện có
Yêu cầu:
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|
Phản hồi:
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
Lệnh giới hạn cho vị thế hiện có
Yêu cầu:
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|
Phản hồi:
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|
Lệnh dừng cho vị thế mới
Yêu cầu:
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|
Phản hồi:
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)¶
Một thông điệp Yêu cầu Trạng thái Lệnh được sử dụng bởi một tổ chức để tạo ra một thông điệp trạng thái lệnh từ nhà giao dịch. Để tương tác chính xác, điều rất quan trọng là phải có định danh lệnh khách hàng duy nhất (ClOrdID) cho tất cả các lệnh.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 11 | ClOrdID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một định danh duy nhất của lệnh được phân bổ bởi khách hàng. |
| 54 | Side | Không | 1 hoặc 2 | Số nguyên | 1 = Buy 2 = Sell |
Standard Trailer | Có |
Xem các ví dụ về thông điệp Yêu cầu Trạng thái Lệnh bên dưới.
Yêu cầu:
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|
Phản hồi:
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)¶
Một thông điệp Yêu cầu Trạng thái Hàng loạt Lệnh yêu cầu trạng thái cho các lệnh phù hợp với tiêu chí được chỉ định trong yêu cầu. Câu trả lời sẽ được trả về dưới dạng một số thông điệp Báo cáo Thực hiện (một cho mỗi lệnh), hoặc dưới dạng thông điệp Từ chối Thông điệp Kinh doanh nếu không tìm thấy lệnh nào.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 584 | MassStatusReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID duy nhất của Yêu cầu Trạng thái Hàng loạt được gán bởi khách hàng. |
| 585 | MassStatusReqType | Có | Bất kỳ giá trị hợp lệ nào | Số nguyên | 7 = Trạng thái cho tất cả các lệnh. Hiện tại chỉ hỗ trợ giá trị 7. |
| 225 | IssueDate | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Nếu được đặt, phản hồi sẽ chỉ chứa các lệnh được tạo trước ngày này. |
Standard Trailer | Có |
Xem các ví dụ về tin nhắn Yêu cầu Trạng thái Hàng loạt Lệnh bên dưới.
Yêu cầu:
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|
Phản hồi:
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)¶
Một tin nhắn Báo cáo Thực hiện cho một lệnh được chấp nhận có định dạng sau.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 37 | OrderID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID lệnh cTrader. |
| 11 | ClOrdID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một định danh duy nhất của lệnh được phân bổ bởi khách hàng. |
| 911 | TotNumReports | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Tổng số báo cáo được trả về để đáp ứng tin nhắn Yêu cầu Trạng thái Hàng loạt Lệnh. |
| 150 | ExecType | Có | Bất kỳ giá trị hợp lệ nào | Ký tự | 0 = New 4 = Canceled 5 = Replace 8 = Rejected C = Expired F = Trade I = Order Status |
| 39 | OrdStatus | Có | Bất kỳ giá trị hợp lệ nào | Ký tự | 0 = Mới 1 = Được khớp một phần 2 = Được khớp hoàn toàn 8 = Bị từ chối 4 = Đã hủy (khi lệnh được khớp một phần, Canceled được trả về để chỉ ra (tag=151), LeavesQty bị hủy và sẽ không được khớp sau đó). C = Hết hạn |
| 55 | Symbol | Không | Bất kỳ giá trị hợp lệ nào | Mua | Các định danh công cụ được cung cấp bởi Spotware. |
| 54 | Side | Không | 1 hoặc 2 | Số nguyên | 1 = Mua 2 = Bán |
| 60 | TransactTime | Không | Bất kỳ giá trị hợp lệ nào | Dấu thời gian | Thời gian thực hiện giao dịch được thể hiện bởi tin nhắn Báo cáo Thực hiện (theo UTC). |
| 6 | AvgPx | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Giá mà giao dịch được khớp. Đối với lệnh IOC hoặc GTD, đây là Giá Trung bình Theo Khối lượng Giao dịch (VWAP) của lệnh đã được khớp. |
| 38 | OrderQty | Không | Bất kỳ giá trị hợp lệ nào | SLg | Đây là số lượng cổ phiếu cho cổ phiếu hoặc dựa trên quy ước thông thường là số lượng hợp đồng cho quyền chọn, hợp đồng tương lai, trái phiếu chuyển đổi, v.v. Trước FIX 4.2, loại của trường này là "Số nguyên". |
| 151 | LeavesQty | Không | Bất kỳ giá trị hợp lệ nào | SLg | Số lượng lệnh vẫn còn cần được khớp. Các giá trị có thể là từ 0 (đã khớp hoàn toàn) đến OrderQty (đã khớp một phần). |
| 14 | CumQty | Không | Bất kỳ giá trị hợp lệ nào | SLg | Tổng số lượng lệnh đã được khớp. |
| 32 | LastQty | Không | Bất kỳ giá trị hợp lệ nào | SLg | Số lượng mua/bán của các lệnh đã được khớp trong lần khớp (cuối cùng) này. |
| 40 | OrdType | Không | 1 hoặc 2 | Ký tự | 1 = Thị trường 2 = Giới hạn |
| 44 | Price | Không | Bất kỳ giá trị hợp lệ nào | Giá | Nếu được cung cấp trong tin nhắn Lệnh Đơn Mới, nó sẽ được lặp lại trong tin nhắn Báo cáo Thực hiện này. |
| 99 | StopPx | Không | Bất kỳ giá trị hợp lệ nào | Giá | Nếu được cung cấp trong tin nhắn Lệnh Đơn Mới, nó sẽ được lặp lại trong tin nhắn Báo cáo Thực hiện này. |
| 59 | TimeInForce | Không | 1, 3 hoặc 6 | Chuỗi | 1 = Hiệu lực đến khi hủy (GTC) 3 = Khớp ngay hoặc hủy (IOC) 6 = Hiệu lực đến ngày (GTD) |
| 126 | ExpireTime | Không | 20140215-07:24:55 | Dấu thời gian | Nếu được cung cấp trong tin nhắn Lệnh Đơn Mới, nó sẽ được lặp lại trong tin nhắn Báo cáo Thực hiện này. |
| 58 | Text | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Khi có thể, một tin nhắn sẽ giải thích Báo cáo Thực hiện. |
| 103 | OrdRejReason | Không | 0 | Số nguyên | 0 = OrdRejReason.BROKER_EXCHANGE_OPTION |
| 721 | PosMaintRptID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID vị thế. |
| 494 | Designation | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Nhãn lệnh tùy chỉnh của khách hàng. |
| 584 | MassStatusReqID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID duy nhất của yêu cầu trạng thái hàng loạt được gán bởi khách hàng. |
| 1000 | AbsoluteTP | Không | Bất kỳ giá trị hợp lệ nào | Giá | Giá tuyệt đối mà tại đó lệnh chốt lời sẽ được kích hoạt. |
| 1001 | RelativeTP | Không | Bất kỳ giá trị hợp lệ nào | Giá | Khoảng cách tính bằng pip từ giá vào lệnh mà tại đó lệnh chốt lời sẽ được kích hoạt. |
| 1002 | AbsoluteSL | Không | Bất kỳ giá trị hợp lệ nào | Giá | Giá tuyệt đối mà tại đó lệnh cắt lỗ sẽ được kích hoạt. |
| 1003 | RelativeSL | Không | Bất kỳ giá trị hợp lệ nào | Giá | Khoảng cách tính bằng pip từ giá vào lệnh mà tại đó lệnh cắt lỗ sẽ được kích hoạt. |
| 1004 | TrailingSL | Không | N hoặc Y | Boolean | Chỉ ra liệu lệnh cắt lỗ có đang dịch chuyển hay không. N = Lệnh cắt lỗ không dịch chuyển. Y = Lệnh cắt lỗ đang dịch chuyển. |
| 1005 | TriggerMethodSL | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Phương thức kích hoạt được chỉ định của lệnh cắt lỗ. 1 = Cắt lỗ sẽ được kích hoạt theo hướng giao dịch. 2 = Cắt lỗ sẽ được kích hoạt theo hướng ngược lại (ask cho vị thế mua và bid cho vị thế bán). 3 = Cắt lỗ sẽ được kích hoạt sau hai tick liên tiếp theo hướng giao dịch. 4 = Cắt lỗ sẽ được kích hoạt sau hai tick liên tiếp theo hướng ngược lại (tick ask thứ hai cho vị thế mua và tick bid thứ hai cho vị thế bán). |
| 1006 | GuaranteedSL | Không | N hoặc Y | Boolean | Cho biết liệu lệnh cắt lỗ có được đảm bảo hay không. N = Cắt lỗ không được đảm bảo. Y = Cắt lỗ được đảm bảo. |
Standard Trailer | Có |
Xem ví dụ về Lệnh mới đơn lẻ ở cuối hướng dẫn.
Business Message Reject (MsgType(35)=j)¶
Loại thông điệp này được gửi khi hệ thống không thể xử lý yêu cầu đăng ký hoặc một lệnh không thể được thực hiện.
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 45 | RefSeqNum | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | MsgSeqNum (tag=34) của thông điệp bị từ chối. |
| 372 | RefMsgType | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | MsgType (tag=35) của thông điệp FIX đang được tham chiếu. |
| 379 | BusinessRejectRefID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Giá trị của trường ID cấp nghiệp vụ trong thông điệp đang được tham chiếu. Bắt buộc trừ khi trường ID tương ứng không được chỉ định. |
| 380 | BusinessRejectReason | Có | 0 | Số nguyên | Mã để xác định lý do cho thông điệp Từ chối nghiệp vụ. 0 = Khác |
| 58 | Text | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Nếu có thể, một thông điệp để giải thích lý do từ chối. |
Standard Trailer | Có |
Xem ví dụ về thông điệp Từ chối nghiệp vụ bên dưới.
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)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 710 | PosReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID yêu cầu duy nhất (được đặt bởi khách hàng). |
| 721 | PosMaintRptID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID vị thế để yêu cầu. Nếu không được đặt, tất cả các vị thế mở sẽ được trả về. |
Standard Trailer | Có |
Xem các ví dụ về thông điệp Yêu cầu vị thế bên dưới.
Yêu cầu:
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|
Phản hồi:
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)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 710 | PosReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID của thông điệp Yêu cầu vị thế. |
| 721 | PosMaintRptID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | ID vị thế, không được đặt nếu PosReqResult (tag=728) không phải là VALID_REQUEST. |
| 727 | TotalNumPosReports | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Tổng số Báo cáo vị thế trong một chuỗi khi PosReqResult (tag=728) là VALID_REQUEST, nếu không thì = 0. |
| 728 | PosReqResult | Có | 0 hoặc 2 | Chuỗi | 0 = Yêu cầu hợp lệ 2 = Không tìm thấy vị thế mở nào phù hợp với tiêu chí. |
| 55 | Symbol | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Ký hiệu mà Báo cáo vị thế hiện tại được chuẩn bị. Không được đặt nếu PosReqResult (tag=728) không phải là VALID_REQUEST. |
| 702 | NoPositions | Không | 1 | Chuỗi | 1 khi PosReqResult (tag=728) là VALID_REQUEST, nếu không thì không được đặt. |
| 704 | LongQty | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Khối lượng mở của vị thế trong trường hợp hướng giao dịch mua, bằng 0 trong trường hợp hướng giao dịch bán. Không được đặt nếu PosReqResult (tag=728) không phải là VALID_REQUEST. |
| 705 | ShortQty | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Khối lượng mở của vị thế trong trường hợp hướng giao dịch bán, bằng 0 trong trường hợp hướng giao dịch mua. Không được đặt nếu PosReqResult (tag=728) không phải là VALID_REQUEST. |
| 730 | SettlPrice | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Giá trung bình của khối lượng đã mở trong Báo cáo vị thế hiện tại. |
| 1000 | AbsoluteTP | Không | Bất kỳ giá trị hợp lệ nào | Giá | Giá tuyệt đối mà tại đó lệnh chốt lời sẽ được kích hoạt. |
| 1002 | AbsoluteSL | Không | Bất kỳ giá trị hợp lệ nào | Giá | Giá tuyệt đối mà tại đó lệnh cắt lỗ sẽ được kích hoạt. |
| 1004 | TrailingSL | Không | Bất kỳ giá trị hợp lệ nào | Boolean | Chỉ ra liệu lệnh cắt lỗ có đang dịch chuyển hay không. N = Lệnh cắt lỗ không dịch chuyển. Y = Lệnh cắt lỗ đang dịch chuyển. |
| 1005 | TriggerMethodSL | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Phương thức kích hoạt được chỉ định của lệnh cắt lỗ. 1 = Cắt lỗ sẽ được kích hoạt theo hướng giao dịch. 2 = Cắt lỗ sẽ được kích hoạt theo hướng ngược lại (ask cho vị thế mua và bid cho vị thế bán). 3 = Cắt lỗ sẽ được kích hoạt sau hai tick liên tiếp theo hướng giao dịch. 4 = Cắt lỗ sẽ được kích hoạt sau hai tick liên tiếp theo hướng ngược lại (tick ask thứ hai cho vị thế mua và tick bid thứ hai cho vị thế bán). |
| 1006 | GuaranteedSL | Không | Bất kỳ giá trị hợp lệ nào | Boolean | Cho biết liệu lệnh cắt lỗ có được đảm bảo hay không. N = Cắt lỗ không được đảm bảo. Y = Cắt lỗ được đảm bảo. |
Standard Trailer | Có |
Order Cancel Request (MsgType(35)=F)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 41 | OrigClOrdID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một định danh duy nhất của lệnh sẽ bị hủy, được phân bổ bởi khách hàng. |
| 37 | OrderID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một ID duy nhất của lệnh được trả về bởi cServer. |
| 11 | ClOrdID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một ID duy nhất của yêu cầu hủy được phân bổ bởi khách hàng. |
Standard Trailer | Có |
Xem các ví dụ về tin nhắn Yêu cầu Hủy Lệnh bên dưới.
Yêu cầu:
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|
Phản hồi (thành công):
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|
Phản hồi (thất bại):
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)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 37 | OrderID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một định danh duy nhất của lệnh mà hệ thống không thể hủy. |
| 11 | ClOrdID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một định danh duy nhất của Yêu cầu Hủy Lệnh. |
| 41 | OrigClOrdID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một định danh duy nhất của lệnh đã được cố gắng hủy, được phân bổ bởi khách hàng. |
| 39 | OrdStatus | Có | Bất kỳ giá trị hợp lệ nào | Ký tự | 0 = Mới 1 = Được thực hiện một phần 2 = Đã thực hiện 8 = Bị từ chối 4 = Đã hủy (khi lệnh được thực hiện một phần, Canceled được trả về để chỉ ra (tag=151), LeavesQty bị hủy và sẽ không được thực hiện tiếp theo). C = Hết hạn |
| 434 | CxlRejResponseTo | Có | 1 hoặc 2 | Ký tự | 1 = Từ chối hủy lệnh. 2 = Từ chối sửa đổi lệnh từ một thiết bị đầu cuối khác. |
| 58 | Text | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một lệnh đang được thực hiện. |
Standard Trailer | Có |
Xem ví dụ về tin nhắn Từ chối Hủy Lệnh bên dưới.
Phản hồi:
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)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 41 | OrigClOrdID | Có | Any valid value | Chuỗi | Một định danh duy nhất của lệnh sẽ được sửa đổi, được phân bổ bởi khách hàng. |
| 37 | OrderID | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một ID duy nhất của lệnh gốc sẽ được sửa đổi, được phân bổ bởi máy chủ. Phương pháp ưu tiên sử dụng. |
| 11 | ClOrdID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một ID duy nhất của yêu cầu sửa đổi được phân bổ bởi khách hàng. |
| 38 | OrderQty | Có | Bất kỳ giá trị hợp lệ nào | SLg | Một số lượng hiện có hoặc mới được chỉ định để thay thế giá trị cũ. |
| 44 | Price | Không | Bất kỳ giá trị hợp lệ nào | Giá | Một giá giới hạn hiện có hoặc mới được chỉ định để thay thế giá trị cũ. Chỉ hợp lệ cho các lệnh giới hạn. |
| 99 | StopPx | Không | Bất kỳ giá trị hợp lệ nào | Giá | Một giá dừng hiện có hoặc mới được chỉ định để thay thế giá trị cũ. Chỉ hợp lệ cho các lệnh dừng. |
| 126 | ExpireTime | Không | 20140215-07:24:55 | Dấu thời gian | Thời gian hết hạn hiện có hoặc mới được chỉ định. Chỉ hợp lệ cho các lệnh chờ. |
Standard Trailer | Có |
Xem các ví dụ về tin nhắn Yêu cầu Hủy/Thay thế Lệnh bên dưới.
Yêu cầu:
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|
Phản hồi (thành công):
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|
Phản hồi (thất bại):
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)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 262 | MDReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Phải tham chiếu đến MDReqID (tag=262) của yêu cầu. |
| 281 | MDReqRejReason | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | 0 = Ký hiệu không xác định 4 = SubscriptionRequestType (tag=263) không được hỗ trợ 5 = MarketDepth (tag=264) không được hỗ trợ |
Standard Trailer | Có |
Xem các ví dụ về tin nhắn Từ chối Yêu cầu Dữ liệu Thị trường bên dưới.
Yêu cầu:
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|
Từ chối:
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|
Yêu cầu:
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|
Từ chối:
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)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 320 | SecurityReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một ID duy nhất của Yêu cầu Định nghĩa Chứng khoán. |
| 559 | SecurityListRequestType | Có | 0 | Số nguyên | Loại Yêu cầu Danh sách Chứng khoán đang được thực hiện. Chỉ hỗ trợ 0 = Symbol (tag=55). |
| 55 | Symbol | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Một ID để giải quyết tên ký hiệu. |
Standard Trailer | Có |
Xem các ví dụ về tin nhắn Yêu cầu Danh sách Chứng khoán bên dưới.
Yêu cầu:
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|
Phản hồi:
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)¶
| Thẻ | Tên trường | Bắt buộc | Giá trị | Định dạng FIX | Bình luận |
|---|---|---|---|---|---|
Standard Header | Có | ||||
| 320 | SecurityReqID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một ID duy nhất của Yêu cầu Định nghĩa Chứng khoán. |
| 322 | SecurityResponseID | Có | Bất kỳ giá trị hợp lệ nào | Chuỗi | Một ID duy nhất của phản hồi Danh sách Chứng khoán. |
| 560 | SecurityRequestResult | Có | 0 | Số nguyên | Kết quả trả về cho tin nhắn Yêu cầu Chứng khoán. Các giá trị hợp lệ là: 0 = Yêu cầu hợp lệ. 1 = Yêu cầu không hợp lệ hoặc không được hỗ trợ. 2 = Không tìm thấy công cụ nào phù hợp với tiêu chí lựa chọn. 3 = Không được phép truy xuất dữ liệu công cụ. 4 = Dữ liệu công cụ tạm thời không khả dụng. 5 = Yêu cầu dữ liệu công cụ không được hỗ trợ. |
| 146 | NoRelatedSym | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Chỉ định số lượng ký hiệu (công cụ) lặp lại. |
| 55 | Symbol | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Các định danh công cụ được cung cấp bởi Spotware. |
| 1007 | SymbolName | Không | Bất kỳ giá trị hợp lệ nào | Chuỗi | Tên ký hiệu. |
| 1008 | SymbolDigits | Không | Bất kỳ giá trị hợp lệ nào | Số nguyên | Số chữ số của ký hiệu. Các giá trị có thể từ 0 đến 5. |
Standard Trailer | Có |
Xem ví dụ về tin nhắn Danh sách Chứng khoán bên dưới.
Phản hồi:
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|