ข้ามไปที่เนื้อหา

เครื่องมือ FIX ของ cTrader (Rules of Engagement)

บทนำ

ขอบเขต

ข้อกำหนดนี้มีวัตถุประสงค์เพื่อเป็นคู่มือการใช้งานสำหรับนักพัฒนาซอฟต์แวร์สำหรับ API ของเครื่องมือ FIX ของ cTrader

เวอร์ชัน FIX

cTrader รองรับ FIX เวอร์ชัน 4.4 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชันนี้ โปรดดูที่ ข้อกำหนด เหล่านี้

การเชื่อมต่อ

ประเภทการเชื่อมต่อ

การเชื่อมต่อกับเครื่องมือ FIX ของ cTrader สามารถทำได้ผ่านอินเทอร์เน็ต อุโมงค์ VPN หรือการเชื่อมต่อแบบ cross-connect กับศูนย์ข้อมูลของเราในสหราชอาณาจักร ติดต่อเราเพื่อขอรายละเอียดเพิ่มเติม

การรีเซ็ตหมายเลขลำดับ

ทุกด้านของเซสชัน FIX ควรมีการรีเซ็ตหมายเลขลำดับเมื่อสร้างเซสชัน FIX ดูที่ข้อความ Logon

ข้อความ

ตามที่กำหนดไว้ในโปรโตคอล FIX เซิร์ฟเวอร์ FIX ของ cTrader ใช้ระดับข้อมูลสองระดับที่แตกต่างกัน (ระบบและแอปพลิเคชัน) โปรดทราบว่านี่เป็นชุดข้อความขั้นต่ำที่จำเป็นเพื่อรองรับขั้นตอนการทำงานที่จำเป็น อาจมีการเปลี่ยนแปลงเมื่อเวลาผ่านไปตามความต้องการทางธุรกิจและมาตรฐาน FIX ที่พัฒนาขึ้น

เครื่องมือ FIX ของ cTrader

ข้อความระบบ

  • Heartbeat (ไคลเอนต์ ↔ cTrader)
  • Test Request (ไคลเอนต์ ↔ cTrader)
  • Logon (ไคลเอนต์ → cTrader)
  • Logout (ไคลเอนต์ → cTrader)
  • Resend Request (ไคลเอนต์ ↔ cTrader)
  • Reject (ไคลเอนต์ ↔ cTrader)
  • Sequence Reset (ไคลเอนต์ ↔ cTrader)

ข้อความแอปพลิเคชัน

  • Market Data Request (ไคลเอนต์ → cTrader)
  • Market Data Snapshot/Full Refresh (ไคลเอนต์ ← cTrader)
  • Market Data Incremental Refresh (ไคลเอนต์ ← cTrader)
  • New Order Single (ไคลเอนต์ → cTrader)
  • Order Status Request (ไคลเอนต์ → cTrader)
  • Order Mass Status Request (ไคลเอนต์ → cTrader)
  • Execution Report (ไคลเอนต์ ← cTrader)
  • Business Message Reject (ไคลเอนต์ ← cTrader)
  • Request for Positions (ไคลเอนต์ → cTrader)
  • Position Report (ไคลเอนต์ ← cTrader)
  • Order Cancel Request (ไคลเอนต์ → cTrader)
  • Order Cancel Reject (ไคลเอนต์ ← cTrader)
  • Order Cancel/Replace Request (ไคลเอนต์ → cTrader)
  • Security List Request (ไคลเอนต์ → cTrader)
  • Security List (ไคลเอนต์ ← cTrader)

ส่วนหัวมาตรฐาน

ข้อความการจัดการหรือแอปพลิเคชันแต่ละข้อความจะมีส่วนหัวมาตรฐานนำหน้า ส่วนหัวระบุประเภทข้อความ ความยาว จุดหมายปลายทาง หมายเลขลำดับ จุดกำเนิด และเวลา

ข้อความทั้งหมดที่ส่งไปยัง cTrader ควรมีส่วนหัวมาตรฐานพร้อมฟิลด์ต่อไปนี้:

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
8 BeginString ใช่ FIX.4.4 String ไม่มีการเข้ารหัสเสมอ ต้องเป็นฟิลด์แรกในข้อความ
9 BodyLength ใช่ ค่าที่ถูกต้องใดๆ Integer ความยาวของเนื้อความ ไม่มีการเข้ารหัสเสมอ ต้องเป็นฟิลด์ที่สองในข้อความ
35 MsgType ใช่ A String ประเภทข้อความ ไม่มีการเข้ารหัสเสมอ ต้องเป็นฟิลด์ที่สามในข้อความ
49 SenderCompID ใช่ ค่าที่ถูกต้องใดๆ String ID ของฝ่ายการเทรดในรูปแบบต่อไปนี้: <Environment>.<BrokerUID>.<Trader Login> โดย Environment คือการกำหนดเซิร์ฟเวอร์ เช่น demo หรือ live; BrokerUID จัดเตรียมโดย cTrader และ Trader Login คือตัวระบุตัวเลขของบัญชีนักเทรด
56 TargetCompID ใช่ CSERVER String เป้าหมายของข้อความ The valid value is CSERVER.
57 TargetSubID ใช่ QUOTE หรือ TRADE String ตัวกำหนดเซสชันเพิ่มเติม ค่าที่เป็นไปได้คือ QUOTE และ TRADE
50 SenderSubID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ค่าที่กำหนดใช้เพื่อระบุผู้สร้างข้อความเฉพาะ ต้องตั้งค่าเป็น QUOTE ถ้า TargetSubID=QUOTE
34 MsgSeqNum ใช่ 1 Integer หมายเลขลำดับของข้อความ
52 SendingTime ใช่ 20131129-15:40:08.155 UTCTimestamp เวลาของการส่งข้อความแสดงเป็น UTC (Universal Time Coordinated หรือที่รู้จักกันในชื่อ GMT) เสมอ

ส่วนท้ายมาตรฐาน

แต่ละข้อความ ทั้งการบริหารหรือแอปพลิเคชัน จะสิ้นสุดด้วยส่วนท้ายมาตรฐาน ส่วนท้ายใช้เพื่อแยกข้อความและมีการแสดงค่า CheckSum (tag=10) แบบสามหลัก

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
10 CheckSum ใช่ 054 String การตรวจสอบผลรวมอย่างง่ายแบบสามไบต์ เป็นฟิลด์สุดท้ายในข้อความเสมอ (ตัวอย่างเช่น ทำหน้าที่) โดยมี <SOH> ท้ายเป็นตัวคั่นสิ้นสุดข้อความ กำหนดเป็นสามอักขระ (ไม่มีการเข้ารหัสเสมอ)

ข้อความเซสชัน

Heartbeat (MsgType(35)=0)

ข้อความ Heartbeat ถูกส่งโดยทั้ง cTrader และแอปพลิเคชันของลูกค้าเพื่อยืนยันการเชื่อมต่อที่ใช้งานอยู่

แอปพลิเคชันของลูกค้าของผู้ให้บริการส่ง heartbeat ซ้ำๆ ตามช่วงเวลาที่กำหนดโดยฟิลด์ HeartBtInt (tag=108) ในข้อความ Logon หรือเป็นการตอบสนองต่อข้อความ Test Request

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
112 TestReqID ไม่ใช่ ค่าที่ถูกต้องใดๆ String หาก heartbeat เป็นผลมาจากข้อความ Test Request จำเป็นต้องมี TestReqID
Standard Trailer ใช่

Test Request (MsgType(35)=1)

มันบังคับให้เกิด heartbeat จากผู้รับคำขอ การตอบสนองถูกส่งจากระบบที่รับเป็นข้อความ Heartbeat ที่มี TestReqID

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
112 TestReqID ใช่ ค่าที่ถูกต้องใดๆ String ID ข้อความ heartbeat TestReqID ควรเพิ่มขึ้นเรื่อยๆ
Standard Trailer ใช่

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

ข้อความ Logon ถูกส่งจากแอปพลิเคชันฝั่งลูกค้าเพื่อเริ่มเซสชัน FIX ของ cTrader และการตอบสนองถูกส่งโดย cTrader ไปยังแอปพลิเคชันฝั่งลูกค้า เมื่อการเข้าสู่ระบบเสร็จสมบูรณ์ การไหลของราคาและการเทรดสามารถดำเนินต่อไปได้ตลอดอายุของเซสชัน

หาก cTrader ได้รับข้อความ Logon ที่ไม่ถูกต้อง (มีฟิลด์ที่ไม่ถูกต้อง) cTrader จะส่งข้อความ Logout เป็นการตอบสนอง

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
98 EncryptMethod ใช่ 0 Integer กำหนดรูปแบบการเข้ารหัสข้อความ ปัจจุบันรองรับเฉพาะการรักษาความปลอดภัยระดับการขนส่งเท่านั้น ค่าที่ถูกต้องคือ 0 = NONE_OTHER (ไม่ใช้การเข้ารหัส)
108 HeartBtInt ใช่ ค่าที่ถูกต้องใดๆ Integer ช่วงเวลา heartbeat เป็นวินาที ค่านี้ถูกตั้งในไฟล์ config.properties (ฝั่งลูกค้า) เป็น SERVER.POLLING.INTERVAL ค่าช่วงเวลาเริ่มต้นคือ 30 วินาที หาก HeartBtInt ถูกตั้งเป็น 0 จะไม่จำเป็นต้องมีข้อความ heartbeat
141 ResetSeqNumFlag ไม่ใช่ Y Boolean ทุกฝ่ายของเซสชัน FIX ควรรีเซ็ตหมายเลขลำดับ ค่าที่ถูกต้องคือ Y (รีเซ็ต)
553 Username ไม่ใช่ ค่าที่ถูกต้องใดๆ String ID ผู้ใช้แบบตัวเลข ผู้ใช้เชื่อมโยงกับค่า SenderCompID (องค์กรของผู้ใช้, tag=49)
554 Password ไม่ใช่ ค่าที่ถูกต้องใดๆ String รหัสผ่านของผู้ใช้
Standard Trailer ใช่

หมายเหตุ

ฟิลด์ Username (tag=553) ต้องมีค่าการเข้าสู่ระบบของนักเทรดแบบตัวเลข ในขณะที่ SenderCompID (tag=49) ต้องมีสภาพแวดล้อม BrokerUID และการเข้าสู่ระบบของนักเทรดคั่นด้วยจุด (ตัวอย่างเช่น live.theBroker.12345)

ดูตัวอย่างของข้อความ Logon ด้านล่าง

คำขอ:

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|

การตอบสนอง (สำเร็จ):

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|

การตอบสนอง (ล้มเหลว):

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)

ข้อความ Logout ถูกส่งจากแอปพลิเคชันของลูกค้าเพื่อขอสิ้นสุดเซสชันกับ cTrader และเป็นการตอบสนองโดย cTrader การออกจากระบบของเซสชันเกิดขึ้นเพื่อตอบสนองต่อผู้เข้าร่วมตลาดที่ส่งข้อความ Logout ไปยัง cTrader ก่อนที่จะยุติเซสชัน cTrader จะยกเลิกราคาทั้งหมดที่ยังคงสตรีมออกไปยังฝ่ายที่ร้องขออย่างแอคทีฟ หาก cTrader ได้รับข้อความ Logon ที่ไม่ถูกต้อง (มีฟิลด์ที่ไม่ถูกต้อง) cTrader จะส่งข้อความ Logout เป็นการตอบสนองพร้อมรายละเอียดข้อผิดพลาดในฟิลด์ Text (tag=58)

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
58 Text ไม่ใช่ ค่าที่ถูกต้องใดๆ String รายละเอียดการปฏิเสธการเข้าสู่ระบบ ใช้สำหรับข้อความจาก cTrader ไปยังลูกค้าเท่านั้นเป็นการตอบสนองต่อข้อความ Logon ที่ไม่ถูกต้อง
Standard Trailer ใช่

ดูตัวอย่างของข้อความ Logout ด้านล่าง

คำขอ:

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|

การตอบสนอง:

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)

ข้อความขาเข้า/ขาออกใช้เพื่อขอให้ส่งข้อความ (หรือหลายข้อความ) ซ้ำ โดยทั่วไปเมื่อตรวจพบช่องว่างในการลำดับหมายเลข

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
7 BeginSeqNo ใช่ ค่าที่ถูกต้องใดๆ Integer หมายเลขลำดับข้อความของบันทึกแรกในช่วงที่จะส่งซ้ำ
16 EndSeqNo ใช่ ค่าที่ถูกต้องใดๆ Integer หมายเลขลำดับข้อความของบันทึกสุดท้ายในช่วงที่จะส่งซ้ำ
Standard Trailer ใช่

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

ส่งเมื่อไม่สามารถประมวลผลข้อความที่ได้รับเนื่องจากการละเมิดกฎระดับเซสชัน ข้อความที่ถูกปฏิเสธต้องถูกบันทึกและต้องมีการเพิ่มหมายเลขลำดับขาเข้า

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
45 RefSeqNum ใช่ ค่าที่ถูกต้องใดๆ SeqNum หมายเลขลำดับของข้อความที่อ้างอิง
58 Text ไม่ใช่ ค่าที่ถูกต้องใดๆ String สตริงข้อความรูปแบบอิสระ
354 EncodedTextLen ไม่ใช่ ค่าที่ถูกต้องใดๆ ความยาว ความยาวของฟิลด์ EncodedText (อักขระที่ไม่ใช่ ASCII) เป็นไบต์
355 EncodedText ไม่ใช่ ค่าที่ถูกต้องใดๆ ข้อมูล การแสดงฟิลด์ Text (แท็ก=58) ที่เข้ารหัสโดยใช้รูปแบบที่ระบุในฟิลด์ MessageEncoding (แท็ก=347) (จากส่วนหัวมาตรฐาน) หากใช้การแสดงผล ASCII ควรระบุไว้ในฟิลด์ Text (แท็ก=58) ด้วย
371 RefTagID ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer หมายเลขแท็กของฟิลด์ FIX ที่เริ่มต้นการปฏิเสธข้อความ
372 RefMsgType ไม่ใช่ ค่าที่ถูกต้องใดๆ String MsgType (แท็ก=35) ของข้อความ FIX ที่อ้างอิง
373 SessionRejectReason ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer สาเหตุของการปฏิเสธที่เข้ารหัส ค่าที่ถูกต้องคือ:
0 = หมายเลขแท็กไม่ถูกต้อง
1 = ขาดแท็กที่จำเป็น
2 = ไม่มีแท็กที่กำหนดสำหรับประเภทข้อความนี้
3 = แท็กไม่ได้กำหนด
4 = ไม่มีค่าสำหรับแท็กที่ระบุ
5 = ค่าสำหรับแท็กนี้อยู่นอกช่วง
6 = รูปแบบข้อมูลไม่ถูกต้องสำหรับค่า
7 = ปัญหาการถอดรหัส
8 = ข้อผิดพลาดลายเซ็น
9 = ข้อผิดพลาด CompID
10 = ข้อผิดพลาดความแม่นยำของ SendingTime
11 = MsgType ไม่ถูกต้อง
12 = ข้อผิดพลาดการตรวจสอบ XML
13 = แท็กกำลังถูกทำซ้ำ
14 = แท็กที่ระบุไม่อยู่ในลำดับที่ถูกต้อง
15 = ฟิลด์กลุ่มที่ทำซ้ำไม่อยู่ในลำดับที่ถูกต้อง
16 = การนับ NumInGroup ไม่ถูกต้องสำหรับกลุ่มที่ทำซ้ำ
17 = ตัวคั่นฟิลด์ (อักขระ SOH) รวมอยู่ในค่าที่ไม่ใช่ข้อมูล
Standard Trailer ใช่

Sequence Reset (MsgType(35)=4)

ข้อความขาเข้า/ขาออกไม่ควรใช้ในระดับแอปพลิเคชัน ข้อความ Sequence Reset สามารถเพิ่มหมายเลขลำดับได้เท่านั้น

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
123 GapFillFlag ไม่ใช่ Yes หรือ No String ระบุว่าข้อความ Sequence Reset กำลังแทนที่ข้อความการจัดการหรือแอปพลิเคชันที่จะไม่ถูกส่งซ้ำ
36 NewSeqNo ใช่ 1 Integer หมายเลขลำดับใหม่
Standard Trailer ใช่

ข้อความแอปพลิเคชัน

Market Data Request (MsgType(35)=V)

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
262 MDReqID ใช่ ค่าที่ถูกต้องใดๆ String ID คำขอราคาที่ไม่ซ้ำกัน ID ใหม่สำหรับการสมัครสมาชิกใหม่ ID เดียวกันกับที่ใช้ก่อนหน้านี้สำหรับการลบการสมัครสมาชิก
263 SubscriptionRequestType ใช่ 1 หรือ 2 Char 1 = สแนปช็อตบวกการอัปเดต (สมัครสมาชิก)
2 = ปิดใช้งานคำขอสแนปช็อตบวกการอัปเดตก่อนหน้า (ยกเลิกการสมัครสมาชิก)
264 MarketDepth ใช่ 0 หรือ 1 Integer จะมีการให้หนังสือเต็มรูปแบบ
0 = การสมัครสมาชิกความลึก
1 = การสมัครสมาชิก Spot
265 MDUpdateType ใช่ ค่าที่ถูกต้องใดๆ Integer รองรับเฉพาะการรีเฟรชแบบเพิ่มขึ้นเท่านั้น
267 NoMDEntryTypes ใช่ 2 Integer ตั้งค่าเป็น 2 เสมอ (จะส่งทั้ง bid และ ask)
269 MDEntryType ใช่ 0 หรือ 1 Char กลุ่มที่ทำซ้ำนี้มีรายการประเภทของรายการข้อมูลตลาดทั้งหมดที่ผู้ร้องขอต้องการรับ
0 = Bid
1 = Offer
146 NoRelatedSym ใช่ ค่าที่ถูกต้องใดๆ Integer จำนวนสัญลักษณ์ที่ร้องขอ
55 Symbol ใช่ ค่าที่ถูกต้องใดๆ Long ตัวระบุเครื่องมือจัดเตรียมโดย Spotware
Standard Trailer ใช่

ดูตัวอย่างของข้อความคำขอข้อมูลตลาดด้านล่าง

สำหรับ Spots

คำขอ:

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|

การตอบสนอง:

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|

สำหรับ Depths

คำขอ:

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|

การตอบสนอง:

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 ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
262 MDReqID ใช่ ค่าที่ถูกต้องใดๆ String ID ของคำขอข้อมูลตลาดที่ส่งไปก่อนหน้านี้
55 Symbol ใช่ ค่าที่ถูกต้องใดๆ Long ตัวระบุเครื่องมือจัดเตรียมโดย Spotware
268 NoMDEntries ใช่ ค่าที่ถูกต้องใดๆ Integer จำนวนรายการที่ตามมา
269 MDEntryType ไม่ใช่ 0 หรือ 1 Char ค่าที่ถูกต้องคือ:
0 = Bid
1 = Offer
จำเป็นเฉพาะเมื่อ NoMDEntries (แท็ก=268) > 0
299 QuoteEntryID ไม่ใช่ ค่าที่ถูกต้องใดๆ String การระบุที่ไม่ซ้ำกันของราคาเสนอซื้อขายเป็นส่วนหนึ่งของ `QuoteSet
270 MDEntryPx ไม่ใช่ 1.2345 ราคา ราคาของรายการข้อมูลตลาด จำเป็นเฉพาะเมื่อ NoMDEntries (tag=268) > 0
271 MDEntrySize ไม่ใช่ 500000 ปริมาณ ปริมาณของรายการข้อมูลตลาด จำเป็นเฉพาะเมื่อ NoMDEntries (tag=268) > 0
278 MDEntryID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ตัวระบุรายการข้อมูลตลาดที่ไม่ซ้ำกัน
Standard Trailer ใช่

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

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
262 MDReqID ใช่ ค่าที่ถูกต้องใดๆ String ID ของคำขอข้อมูลตลาดที่ส่งไปก่อนหน้านี้
268 NoMDEntries ใช่ ค่าที่ถูกต้องใดๆ Integer จำนวนรายการที่ตามมา กลุ่มที่ทำซ้ำนี้ประกอบด้วยรายการประเภทรายการข้อมูลตลาดทั้งหมดที่ผู้ร้องขอต้องการรับ
279 MDUpdateAction ใช่ 0 หรือ 2 Char ประเภทของการอัปเดตข้อมูลตลาด ค่าที่ถูกต้องคือ:
0 = ใหม่
2 = ลบ
269 MDEntryType ไม่ใช่ 0 หรือ 1 Char ค่าที่ถูกต้องคือ:
0 = Bid
1 = Offer
278 MDEntryID ใช่ ค่าที่ถูกต้องใดๆ String ID ของรายการข้อมูลตลาด
55 Symbol ใช่ ค่าที่ถูกต้องใดๆ Long ตัวระบุเครื่องมือจัดเตรียมโดย Spotware
270 MDEntryPx ไม่ใช่ 1.2345 ราคา จำเป็นเฉพาะเมื่อ MDUpdateAction (tag=279) = 0
271 MDEntrySize ไม่ใช่ 10000 สองเท่า จำเป็นเฉพาะเมื่อ MDUpdateAction (tag=279) = 0
Standard Trailer ใช่

New Order Single (MsgType(35)=D)

ข้อความคำสั่งใหม่เดี่ยวมีรูปแบบดังต่อไปนี้

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
11 ClOrdID ใช่ ค่าที่ถูกต้องใดๆ String ตัวระบุที่ไม่ซ้ำกันของคำสั่งที่จัดสรรโดยลูกค้า
55 Symbol ใช่ ค่าที่ถูกต้องใดๆ Long ตัวระบุเครื่องมือจัดเตรียมโดย Spotware
54 Side ใช่ 1 หรือ 2 Integer 1 = Buy
2 = Sell
60 TransactTime ใช่ ค่าที่ถูกต้องใดๆ ตราประทับเวลา เวลาที่ร้องขอที่สร้างโดยลูกค้า
38 OrderQty ใช่ ค่าที่ถูกต้องใดๆ Qty จำนวนหุ้นที่สั่ง นี่แสดงถึงจำนวนหุ้นสำหรับหุ้นทุนหรือตามข้อตกลงปกติจำนวนสัญญาสำหรับออปชัน ฟิวเจอร์ส หุ้นกู้แปลงสภาพ ฯลฯ ความแม่นยำสูงสุดคือ 0.01 ก่อน FIX 4.2 ประเภทของฟิลด์นี้คือ "Integer"
40 OrdType ใช่ 1, 2 หรือ 3 Char 1 = Market คำสั่งจะถูกประมวลผลด้วยแผน Immediate or Cancel (IOC) (TimeInForce, tag=59)
2 = Limit คำสั่งจะถูกประมวลผลด้วยแผน Good Till Cancel (GTC) (TimeInForce, tag=59)
3 = Stop คำสั่งจะถูกประมวลผลด้วยแผน Good Till Cancel (GTC) (TimeInForce, tag=59)
44 Price ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ราคาลูกค้าที่แย่ที่สุดที่ลูกค้าจะยอมรับได้ จำเป็นเฉพาะเมื่อ OrdType (tag=40) = 2 ในกรณีนี้คำสั่งจะไม่ถูกจับคู่เว้นแต่จะสามารถทำตามราคานี้ได้
99 StopPx ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ราคาที่ทริกเกอร์คำสั่ง Stop จำเป็นเฉพาะเมื่อ OrdType (tag=40) = 3 ในกรณีนี้คำสั่งจะไม่ถูกจับคู่เว้นแต่จะสามารถทำตามราคานี้ได้
59 TimeInForce ไม่ใช่ 1, 3 or 6 String เลิกใช้แล้ว ค่านี้จะถูกละเว้น TimeInForce จะถูกตรวจจับโดยอัตโนมัติขึ้นอยู่กับ OrdType (tag=40) และ ExpireTime (tag=126):
1 = Good Till Cancel (GTC) จะใช้เฉพาะสำหรับคำสั่ง Limit และ Stop (OrdType, tag=40) เท่านั้นหากไม่ได้กำหนด ExpireTime (tag=126)
3 = Immediate or Cancel (IOC) จะใช้เฉพาะสำหรับคำสั่ง Market (OrdType, tag=40)
6 = Good Till Date (GTD) จะใช้เฉพาะสำหรับคำสั่ง Limit และ Stop (OrdType, tag=40) เท่านั้นหากกำหนด ExpireTime (tag=126)
126 ExpireTime ไม่ใช่ 20140215-07:24:55 ตราประทับเวลา เวลาหมดอายุในรูปแบบ "YYYYMMDD-HH:MM:SS" หากกำหนด คำสั่งจะถูกประมวลผลด้วยแผน GTD (TimeInForce: GTD)
721 PosMaintRptID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ID โพสิชันที่ควรวางคำสั่งนี้ หากไม่ได้กำหนด จะสร้างโพสิชันใหม่และ ID ของมันจะถูกส่งคืนในข้อความรายงานการดำเนินการ สามารถระบุได้เฉพาะสำหรับบัญชีที่มีการป้องกันความเสี่ยงเท่านั้น
494 Designation ไม่ใช่ ค่าที่ถูกต้องใดๆ String ป้ายกำกับคำสั่งที่กำหนดเอง
Standard Trailer ใช่

ดูตัวอย่างของข้อความคำสั่งใหม่เดี่ยวด้านล่าง

คำสั่ง Market สำหรับโพสิชันใหม่

คำขอ:

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|

การตอบสนอง:

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|

คำสั่ง Market สำหรับโพสิชันที่มีอยู่

คำขอ:

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|

การตอบสนอง:

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

คำสั่ง Limit สำหรับโพสิชันที่มีอยู่

คำขอ:

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|

การตอบสนอง:

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|

คำสั่ง Stop สำหรับโพสิชันใหม่

คำขอ:

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|

การตอบสนอง:

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)

ข้อความคำขอสถานะคำสั่งใช้โดยสถาบันเพื่อสร้างข้อความสถานะคำสั่งกลับจากเทรดเดอร์ สำหรับการโต้ตอบที่ถูกต้อง เป็นสิ่งสำคัญมากที่จะต้องมีตัวระบุคำสั่งลูกค้าที่ไม่ซ้ำกัน (ClOrdID) สำหรับคำสั่งทั้งหมด

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
11 ClOrdID ใช่ ค่าที่ถูกต้องใดๆ String ตัวระบุที่ไม่ซ้ำกันของคำสั่งที่จัดสรรโดยลูกค้า
54 Side ไม่ใช่ 1 หรือ 2 Integer 1 = Buy
2 = Sell
Standard Trailer ใช่

ดูตัวอย่างของข้อความคำขอสถานะคำสั่งด้านล่าง

คำขอ:

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|

การตอบสนอง:

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)

ข้อความคำขอสถานะคำสั่งจำนวนมากร้องขอสถานะสำหรับคำสั่งที่ตรงกับเกณฑ์ที่ระบุในคำขอ คำตอบจะถูกส่งคืนเป็นจำนวนข้อความรายงานการดำเนินการ (หนึ่งข้อความสำหรับแต่ละคำสั่ง) หรือเป็นข้อความปฏิเสธข้อความทางธุรกิจหากไม่พบคำสั่งใดๆ

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
584 MassStatusReqID ใช่ ค่าที่ถูกต้องใดๆ String ID ที่ไม่ซ้ำกันของคำขอสถานะจำนวนมากตามที่กำหนดโดยไคลเอนต์
585 MassStatusReqType ใช่ ค่าที่ถูกต้องใดๆ Integer 7 = สถานะสำหรับคำสั่งทั้งหมด
ปัจจุบันรองรับเฉพาะค่า 7 เท่านั้น
225 IssueDate ไม่ใช่ ค่าที่ถูกต้องใดๆ String หากตั้งค่าไว้ การตอบสนองจะมีเฉพาะคำสั่งที่สร้างขึ้นก่อนวันที่นี้เท่านั้น
Standard Trailer ใช่

ดูตัวอย่างข้อความคำขอสถานะจำนวนมากด้านล่าง

คำขอ:

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|

การตอบสนอง:

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)

ข้อความรายงานการดำเนินการสำหรับคำสั่งที่ได้รับการยอมรับมีรูปแบบดังต่อไปนี้

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
37 OrderID ใช่ ค่าที่ถูกต้องใดๆ String ID คำสั่ง cTrader
11 ClOrdID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ตัวระบุที่ไม่ซ้ำกันของคำสั่งที่จัดสรรโดยลูกค้า
911 TotNumReports ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer จำนวนรายงานทั้งหมดที่ส่งคืนเพื่อตอบสนองต่อข้อความคำขอสถานะจำนวนมาก
150 ExecType ใช่ ค่าที่ถูกต้องใดๆ Char 0 = New
4 = Canceled
5 = Replace
8 = Rejected
C = Expired
F = Trade
I = Order Status
39 OrdStatus ใช่ ค่าที่ถูกต้องใดๆ Char 0 = ใหม่
1 = จับคู่บางส่วน
2 = จับคู่แล้ว
8 = ถูกปฏิเสธ
4 = ยกเลิกแล้ว (เมื่อคำสั่งถูกจับคู่บางส่วน จะส่งคืน Canceled ซึ่งหมายถึง (tag=151), LeavesQty ถูกยกเลิกและจะไม่ถูกจับคู่ในภายหลัง)
C = หมดอายุ
55 Symbol ไม่ใช่ ค่าที่ถูกต้องใดๆ Long ตัวระบุเครื่องมือจัดเตรียมโดย Spotware
54 Side ไม่ใช่ 1 หรือ 2 Integer 1 = ซื้อ
2 = ขาย
60 TransactTime ไม่ใช่ ค่าที่ถูกต้องใดๆ ตราประทับเวลา เวลาดำเนินการของธุรกรรมที่แสดงโดยข้อความรายงานการดำเนินการ (ใน UTC)
6 AvgPx ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer ราคาที่ดีลถูกจับคู่ สำหรับคำสั่ง IOC หรือ GTD นี่คือราคาเฉลี่ยถ่วงน้ำหนักด้วยปริมาณ (VWAP) ของคำสั่งที่ถูกจับคู่
38 OrderQty ไม่ใช่ ค่าที่ถูกต้องใดๆ Qty นี่แสดงถึงจำนวนหุ้นสำหรับหุ้นทุนหรือตามข้อตกลงปกติจำนวนสัญญาสำหรับออปชัน ฟิวเจอร์ส หุ้นกู้แปลงสภาพ ฯลฯ ก่อน FIX 4.2 ประเภทของฟิลด์นี้คือ "Integer"
151 LeavesQty ไม่ใช่ ค่าที่ถูกต้องใดๆ Qty จำนวนคำสั่งที่ยังต้องจับคู่ ค่าที่เป็นไปได้คือระหว่าง 0 (จับคู่เต็มจำนวน) และ OrderQty (จับคู่บางส่วน)
14 CumQty ไม่ใช่ ค่าที่ถูกต้องใดๆ Qty จำนวนคำสั่งทั้งหมดที่ถูกจับคู่แล้ว
32 LastQty ไม่ใช่ ค่าที่ถูกต้องใดๆ Qty ปริมาณที่ซื้อ/ขายของคำสั่งที่ถูกจับคู่ในการจับคู่ (ล่าสุด) นี้
40 OrdType ไม่ใช่ 1 หรือ 2 Char 1 = Market
2 = Limit
44 Price ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา หากระบุในข้อความคำสั่งใหม่ จะถูกส่งกลับในข้อความรายงานการดำเนินการนี้
99 StopPx ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา หากระบุในข้อความคำสั่งใหม่ จะถูกส่งกลับในข้อความรายงานการดำเนินการนี้
59 TimeInForce ไม่ใช่ 1, 3 หรือ 6 String 1 = Good Till Cancel (GTC)
3 = Immediate or Cancel (IOC)
6 = Good Till Date (GTD)
126 ExpireTime ไม่ใช่ 20140215-07:24:55 ตราประทับเวลา หากระบุในข้อความคำสั่งใหม่ จะถูกส่งกลับในข้อความรายงานการดำเนินการนี้
58 Text ไม่ใช่ ค่าที่ถูกต้องใดๆ String หากเป็นไปได้ ข้อความจะอธิบายรายงานการดำเนินการ
103 OrdRejReason ไม่ใช่ 0 Integer 0 = OrdRejReason.BROKER_EXCHANGE_OPTION
721 PosMaintRptID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ID โพสิชัน
494 Designation ไม่ใช่ ค่าที่ถูกต้องใดๆ String ป้ายกำกับคำสั่งที่กำหนดเองของไคลเอนต์
584 MassStatusReqID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ID ที่ไม่ซ้ำกันของคำขอสถานะจำนวนมากตามที่กำหนดโดยไคลเอนต์
1000 AbsoluteTP ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ราคาสัมบูรณ์ที่ Take Profit จะถูกทริกเกอร์
1001 RelativeTP ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ระยะทางเป็น pip จากราคาเข้าที่ Take Profit จะถูกทริกเกอร์
1002 AbsoluteSL ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ราคาสัมบูรณ์ที่ Stop Loss จะถูกทริกเกอร์
1003 RelativeSL ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ระยะทางเป็น pip จากราคาเข้าที่ Stop Loss จะถูกทริกเกอร์
1004 TrailingSL ไม่ใช่ N หรือ Y Boolean ระบุว่า Stop Loss เป็นแบบ Trailing หรือไม่
N = Stop Loss ไม่ใช่แบบ Trailing
Y = Stop Loss เป็นแบบ Trailing
1005 TriggerMethodSL ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer วิธีการทริกเกอร์ที่ระบุของ Stop Loss
1 = Stop Loss จะถูกทริกเกอร์โดยฝั่งการเทรด
2 = Stop Loss จะถูกทริกเกอร์โดยฝั่งตรงข้าม (Ask สำหรับโพสิชันซื้อและ Bid สำหรับโพสิชันขาย)
3 = Stop Loss จะถูกทริกเกอร์หลังจากสองติ๊กติดต่อกันตามฝั่งการเทรด
4 = Stop Loss จะถูกทริกเกอร์หลังจากสองติ๊กติดต่อกันตามฝั่งตรงข้าม (ติ๊ก Ask ที่สองสำหรับโพสิชันซื้อและติ๊ก Bid ที่สองสำหรับโพสิชันขาย)
1006 GuaranteedSL ไม่ใช่ N หรือ Y Boolean ระบุว่า Stop Loss ได้รับการรับประกันหรือไม่
N = Stop Loss ไม่ได้รับการรับประกัน
Y = Stop Loss ได้รับการรับประกัน
Standard Trailer ใช่

ดูตัวอย่างคำสั่งใหม่เดี่ยวที่ท้ายคู่มือ

Business Message Reject (MsgType(35)=j)

ข้อความประเภทนี้จะถูกส่งเมื่อระบบไม่สามารถประมวลผลคำขอการสมัครสมาชิกหรือไม่สามารถดำเนินการคำสั่งได้

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
45 RefSeqNum ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer MsgSeqNum (tag=34) ของข้อความที่ถูกปฏิเสธ
372 RefMsgType ไม่ใช่ ค่าที่ถูกต้องใดๆ String MsgType (tag=35) ของข้อความ FIX ที่อ้างถึง
379 BusinessRejectRefID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ค่าของฟิลด์ ID ระดับธุรกิจในข้อความที่อ้างถึง จำเป็นต้องมีเว้นแต่ฟิลด์ ID ที่เกี่ยวข้องไม่ได้ระบุไว้
380 BusinessRejectReason ใช่ 0 Integer รหัสเพื่อระบุเหตุผลสำหรับข้อความปฏิเสธธุรกิจ
0 = อื่นๆ
58 Text ไม่ใช่ ค่าที่ถูกต้องใดๆ String หากเป็นไปได้ ข้อความเพื่ออธิบายเหตุผลสำหรับการปฏิเสธ
Standard Trailer ใช่

ดูตัวอย่างของข้อความปฏิเสธธุรกิจด้านล่าง

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 ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
710 PosReqID ใช่ ค่าที่ถูกต้องใดๆ String ID คำขอที่ไม่ซ้ำกัน (กำหนดโดยลูกค้า)
721 PosMaintRptID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ID โพสิชันที่ต้องการขอ หากไม่ได้กำหนด จะส่งคืนโพสิชันที่เปิดอยู่ทั้งหมด
Standard Trailer ใช่

ดูตัวอย่างของข้อความคำขอโพสิชันด้านล่าง

คำขอ:

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|

การตอบสนอง:

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 ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
710 PosReqID ใช่ ค่าที่ถูกต้องใดๆ String ID ของข้อความคำขอโพสิชัน
721 PosMaintRptID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ID โพสิชัน ซึ่งไม่ได้กำหนดหาก PosReqResult (tag=728) ไม่ใช่ VALID_REQUEST
727 TotalNumPosReports ใช่ ค่าที่ถูกต้องใดๆ String จำนวนรวมของรายงานโพสิชันในลำดับเมื่อ PosReqResult (tag=728) เป็น VALID_REQUEST มิฉะนั้นจะเท่ากับ 0
728 PosReqResult ใช่ 0 หรือ 2 String 0 = คำขอถูกต้อง
2 = ไม่พบโพสิชันที่เปิดอยู่ที่ตรงกับเกณฑ์
55 Symbol ไม่ใช่ ค่าที่ถูกต้องใดๆ String สัญลักษณ์ที่รายงานโพสิชันปัจจุบันถูกจัดเตรียมขึ้น ไม่ได้กำหนดหาก PosReqResult (tag=728) ไม่ใช่ VALID_REQUEST
702 NoPositions ไม่ใช่ 1 String 1 เมื่อ PosReqResult (tag=728) เป็น VALID_REQUEST มิฉะนั้นจะไม่ถูกกำหนด
704 LongQty ไม่ใช่ ค่าที่ถูกต้องใดๆ String ปริมาณที่เปิดของโพสิชันในกรณีของฝั่งการเทรดซื้อ เท่ากับ 0 ในกรณีของฝั่งการเทรดขาย ไม่ได้กำหนดหาก PosReqResult (tag=728) ไม่ใช่ VALID_REQUEST
705 ShortQty ไม่ใช่ ค่าที่ถูกต้องใดๆ String ปริมาณที่เปิดของโพสิชันในกรณีของฝั่งการเทรดขาย เท่ากับ 0 ในกรณีของฝั่งการเทรดซื้อ ไม่ได้กำหนดหาก PosReqResult (tag=728) ไม่ใช่ VALID_REQUEST
730 SettlPrice ไม่ใช่ ค่าที่ถูกต้องใดๆ String ราคาเฉลี่ยของปริมาณที่เปิดในรายงานโพสิชันปัจจุบัน
1000 AbsoluteTP ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ราคาสัมบูรณ์ที่ Take Profit จะถูกทริกเกอร์
1002 AbsoluteSL ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ราคาสัมบูรณ์ที่ Stop Loss จะถูกทริกเกอร์
1004 TrailingSL ไม่ใช่ ค่าที่ถูกต้องใดๆ Boolean ระบุว่า Stop Loss เป็นแบบ Trailing หรือไม่
N = Stop Loss ไม่ใช่แบบ Trailing
Y = Stop Loss เป็นแบบ Trailing
1005 TriggerMethodSL ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer วิธีการทริกเกอร์ที่ระบุของ Stop Loss
1 = Stop Loss จะถูกทริกเกอร์โดยฝั่งการเทรด
2 = Stop Loss จะถูกทริกเกอร์โดยฝั่งตรงข้าม (Ask สำหรับโพสิชันซื้อและ Bid สำหรับโพสิชันขาย)
3 = Stop Loss จะถูกทริกเกอร์หลังจากสองติ๊กติดต่อกันตามฝั่งการเทรด
4 = Stop Loss จะถูกทริกเกอร์หลังจากสองติ๊กติดต่อกันตามฝั่งตรงข้าม (ติ๊ก Ask ที่สองสำหรับโพสิชันซื้อและติ๊ก Bid ที่สองสำหรับโพสิชันขาย)
1006 GuaranteedSL ไม่ใช่ ค่าที่ถูกต้องใดๆ Boolean ระบุว่า Stop Loss ได้รับการรับประกันหรือไม่
N = Stop Loss ไม่ได้รับการรับประกัน
Y = Stop Loss ได้รับการรับประกัน
Standard Trailer ใช่

Order Cancel Request (MsgType(35)=F)

Tag ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
41 OrigClOrdID ใช่ ค่าที่ถูกต้องใดๆ String ตัวระบุเฉพาะของคำสั่งที่จะถูกยกเลิก ซึ่งกำหนดโดยไคลเอนต์
37 OrderID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ID เฉพาะของคำสั่งที่ส่งคืนโดย cServer
11 ClOrdID ใช่ ค่าที่ถูกต้องใดๆ String ID เฉพาะของคำขอยกเลิกที่กำหนดโดยไคลเอนต์
Standard Trailer ใช่

ดูตัวอย่างของข้อความคำขอยกเลิกคำสั่งด้านล่าง

คำขอ:

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|

การตอบสนอง (สำเร็จ):

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|

การตอบสนอง (ล้มเหลว):

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 ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
37 OrderID ใช่ ค่าที่ถูกต้องใดๆ String ตัวระบุเฉพาะของคำสั่งที่ระบบไม่สามารถยกเลิกได้
11 ClOrdID ใช่ ค่าที่ถูกต้องใดๆ String ตัวระบุเฉพาะของคำขอยกเลิกคำสั่ง
41 OrigClOrdID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ตัวระบุเฉพาะของคำสั่งที่พยายามจะยกเลิก ซึ่งกำหนดโดยไคลเอนต์
39 OrdStatus ใช่ ค่าที่ถูกต้องใดๆ Char 0 = ใหม่
1 = เติมบางส่วน
2 = เติมเต็ม
8 = ปฏิเสธ
4 = ยกเลิก (เมื่อคำสั่งถูกเติมบางส่วน Canceled จะถูกส่งคืนเพื่อระบุ (tag=151), LeavesQty ถูกยกเลิกและจะไม่ถูกเติมในภายหลัง)
C = หมดอายุ
434 CxlRejResponseTo ใช่ 1 หรือ 2 Char 1 = ปฏิเสธการยกเลิกคำสั่ง
2 = ปฏิเสธการแก้ไขคำสั่งจากเทอร์มินัลอื่น
58 Text ไม่ใช่ ค่าที่ถูกต้องใดๆ String คำสั่งอยู่ระหว่างการดำเนินการ
Standard Trailer ใช่

ดูตัวอย่างของข้อความปฏิเสธการยกเลิกคำสั่งด้านล่าง

การตอบสนอง:

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 ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
41 OrigClOrdID ใช่ Any valid value String ตัวระบุเฉพาะของคำสั่งที่จะถูกแก้ไข ซึ่งกำหนดโดยไคลเอนต์
37 OrderID ไม่ใช่ ค่าที่ถูกต้องใดๆ String ID เฉพาะของคำสั่งเดิมที่จะถูกแก้ไข ซึ่งกำหนดโดยเซิร์ฟเวอร์ วิธีที่แนะนำให้ใช้
11 ClOrdID ใช่ ค่าที่ถูกต้องใดๆ String ID เฉพาะของคำขอแก้ไขที่กำหนดโดยไคลเอนต์
38 OrderQty ใช่ ค่าที่ถูกต้องใดๆ Qty จำนวนที่มีอยู่หรือที่ระบุใหม่เพื่อแทนที่ค่าเดิม
44 Price ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ราคา Limit ที่มีอยู่หรือที่ระบุใหม่เพื่อแทนที่ค่าเดิม ใช้ได้เฉพาะกับคำสั่ง Limit
99 StopPx ไม่ใช่ ค่าที่ถูกต้องใดๆ ราคา ราคา Stop ที่มีอยู่หรือที่ระบุใหม่เพื่อแทนที่ค่าเดิม ใช้ได้เฉพาะกับคำสั่ง Stop
126 ExpireTime ไม่ใช่ 20140215-07:24:55 ตราประทับเวลา เวลาหมดอายุที่มีอยู่หรือที่ระบุใหม่ ใช้ได้เฉพาะกับคำสั่งที่รอดำเนินการ
Standard Trailer ใช่

ดูตัวอย่างของข้อความคำขอยกเลิก/แทนที่คำสั่งด้านล่าง

คำขอ:

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|

การตอบสนอง (สำเร็จ):

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|

การตอบสนอง (ล้มเหลว):

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 ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
262 MDReqID ใช่ ค่าที่ถูกต้องใดๆ String ต้องอ้างอิงถึง MDReqID (tag=262) ของคำขอ
281 MDReqRejReason ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer 0 = สัญลักษณ์ที่ไม่รู้จัก
4 = SubscriptionRequestType (tag=263) ที่ไม่รองรับ
5 = MarketDepth (tag=264) ที่ไม่รองรับ
Standard Trailer ใช่

ดูตัวอย่างของข้อความปฏิเสธคำขอข้อมูลตลาดด้านล่าง

คำขอ:

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|

ปฏิเสธ:

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|

คำขอ:

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|

ปฏิเสธ:

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 ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
320 SecurityReqID ใช่ ค่าที่ถูกต้องใดๆ String ID เฉพาะของคำขอนิยามหลักทรัพย์
559 SecurityListRequestType ใช่ 0 Integer ประเภทของคำขอรายการหลักทรัพย์ที่กำลังทำ รองรับเฉพาะ 0 = Symbol (tag=55)
55 Symbol ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer ID สำหรับการแก้ไขชื่อสัญลักษณ์
Standard Trailer ใช่

ดูตัวอย่างของข้อความคำขอรายการหลักทรัพย์ด้านล่าง

คำขอ:

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|

การตอบสนอง:

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 ชื่อฟิลด์ จำเป็น ค่า รูปแบบ FIX ความคิดเห็น
Standard Header ใช่
320 SecurityReqID ใช่ ค่าที่ถูกต้องใดๆ String ID เฉพาะของคำขอนิยามหลักทรัพย์
322 SecurityResponseID ใช่ ค่าที่ถูกต้องใดๆ String ID เฉพาะของการตอบสนองรายการหลักทรัพย์
560 SecurityRequestResult ใช่ 0 Integer ผลลัพธ์ที่ส่งคืนให้กับข้อความคำขอหลักทรัพย์ ค่าที่ถูกต้องคือ:
0 = คำขอถูกต้อง
1 = คำขอไม่ถูกต้องหรือไม่รองรับ
2 = ไม่พบเครื่องมือที่ตรงกับเกณฑ์การเลือก
3 = ไม่ได้รับอนุญาตให้ดึงข้อมูลเครื่องมือ
4 = ข้อมูลเครื่องมือไม่พร้อมใช้งานชั่วคราว
5 = ไม่รองรับคำขอข้อมูลเครื่องมือ
146 NoRelatedSym ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer ระบุจำนวนของสัญลักษณ์ (เครื่องมือ) ที่ซ้ำกัน
55 Symbol ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer ตัวระบุเครื่องมือจัดเตรียมโดย Spotware
1007 SymbolName ไม่ใช่ ค่าที่ถูกต้องใดๆ String ชื่อสัญลักษณ์
1008 SymbolDigits ไม่ใช่ ค่าที่ถูกต้องใดๆ Integer จำนวนทศนิยมของสัญลักษณ์ ค่าที่เป็นไปได้คือ 0 ถึง 5
Standard Trailer ใช่

ดูตัวอย่างของข้อความรายการหลักทรัพย์ด้านล่าง

การตอบสนอง:

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|