WebSocket API v1 - วิธีดูแลรักษา order book ที่ถูกต้อง

อัปเดตล่าสุด: 1 เมษายน 2568

ฟีด order book ของ WebSocket API v1 ให้ข้อมูลตลาดทั้งหมดที่จำเป็นในการดูแลสำเนา order book ของ Kraken ในเครื่อง

ตัวอย่างเช่น ฟีด order book สำหรับ XBT/USD สามารถใช้เพื่อดึงและดูแล order book สำหรับคู่สกุลเงิน Bitcoin/US Dollar ของเรา ได้อย่างถูกต้องตามที่ order book แสดงบน แพลตฟอร์มการซื้อขาย ของเรา

ฟีด order book จะให้สแนปช็อตเริ่มต้นของ order book ปัจจุบัน จากนั้นจะสตรีมอัปเดตไปยัง order book แบบเรียลไทม์ ดังนั้น order book ที่ดูแลผ่านฟีด order book จะเป็นข้อมูลล่าสุดอยู่เสมอ

รายละเอียดทั้งหมดของรูปแบบ JSON สำหรับฟีด order book มีอยู่ใน เอกสาร WebSocket API v1 ของเรา

สแนปช็อต Order Book

หลังจากสมัครรับฟีด order book ข้อความข้อมูลตลาดแรกจะเป็นสแนปช็อตของ order book ปัจจุบัน

สแนปช็อต order book จะรวม order book ทั้งหมดจนถึงความลึกที่ร้องขอ (สมัครรับ) เช่น ตัวอย่างต่อไปนี้ของ order book XBT/USD ที่ความลึก 10:

[0,{"as":[["5290.80000","1.00000000","1556724667.748660"],["5290.90000","4.49956524","1556724664.331028"],["5291.70000","1.00000000","1556724653.480504"],["5292.00000","0.95388940","1556724619.682690"],["5292.20000","1.51300000","1556724494.497326"],["5293.10000","0.69800000","1556724667.635414"],["5293.20000","2.00000000","1556724656.022756"],["5293.90000","2.83200000","1556724668.057687"],["5294.10000","0.99600000","1556724666.340462"],["5294.50000","5.00000000","1556724661.980996"]],"bs":[["5290.10000","1.43195600","1556724666.594179"],["5289.80000","2.00000000","1556724663.082526"],["5289.40000","0.49400000","1556724665.274827"],["5289.20000","0.89533312","1556724640.520134"],["5287.40000","3.23600000","1556724660.997516"],["5287.30000","3.33000000","1556724659.999108"],["5287.00000","10.20000000","1556724635.850932"],["5286.00000","3.86378703","1556724662.757360"],["5285.70000","6.40000000","1556724488.785281"],["5283.90000","0.50000000","1556723616.006805"]]},"book-10","XBT/USD"]

สแนปช็อตประกอบด้วยราคา bid/ask ที่ดีที่สุดในปัจจุบัน พร้อมปริมาณที่มีอยู่ และวันที่/เวลาที่ระดับราคาได้รับการอัปเดตล่าสุด (เป็น UNIX timestamp ในหน่วยวินาทีถึงทศนิยม 6 ตำแหน่ง)

การเปลี่ยนแปลงระดับราคา

หลังจากสแนปช็อตเริ่มต้น ระดับราคาของ order book จะถูกแก้ไขแบบเรียลไทม์ผ่านข้อความอัปเดต แทรก และลบ

ข้อความอัปเดต

ข้อความอัปเดตจะอัปเดตระดับราคาที่มีอยู่แล้วใน order book โดยระบุปริมาณและ timestamp ใหม่ เช่น การอัปเดตต่อไปนี้สำหรับระดับราคา 5293.1 ในฝั่ง ask ของ order book:

[0,{"a":[["5293.10000","0.39800000","1556724673.104421"]], "c":"408163318"},"book-10","XBT/USD"]

ในขณะที่ราคายังคงเท่าเดิม (5293.1) ปริมาณที่มีอยู่ที่ราคานั้นจะเปลี่ยนจาก 0.69800000 (ตามที่ระบุโดยสแนปช็อตเริ่มต้น) เป็น 0.39800000 และ timestamp ใหม่สำหรับระดับราคาจะสะท้อนถึงวันที่/เวลาที่เกิดการเปลี่ยนแปลง

ข้อความอัปเดตจะเปลี่ยนเฉพาะระดับราคาที่มีอยู่แล้วใน order book เท่านั้น โดยจะไม่เพิ่มหรือลบระดับราคาออกจาก order book

ข้อความแทรก

ข้อความแทรกจะเพิ่มระดับราคาใหม่ไปยัง order book เช่น การแทรกต่อไปนี้สำหรับระดับราคา 5294.4 ในฝั่ง ask ของ order book:

[0,{"a":[["5294.40000","0.99600000","1556724672.663220"]], "c":"393966308"},"book-10","XBT/USD"]

ข้อความแทรกแต่ละข้อความจะรวมระดับราคาใหม่ (5294.4) ปริมาณที่มีอยู่ที่ราคานั้น (0.99600000) และ timestamp ที่ระดับราคาได้รับการอัปเดตล่าสุด

ข้อความแทรกจะเปลี่ยนระดับราคาภายใน order book โดยการสร้างระดับราคาใหม่ ย้ายระดับราคาที่ตามมาทั้งหมด (ราคา bid ที่ต่ำกว่าหรือราคา ask ที่สูงกว่า) ออกไปด้านนอก และผลักระดับราคาที่อยู่ด้านนอกสุดออกจากขอบเขตของ order book

ตัวอย่างเช่น จากสแนปช็อตเริ่มต้นด้านบน ข้อความแทรก:

[0,{"a":[["5294.40000","0.99600000","1556724672.663220"]], "c":"393966308"},"book-10","XBT/USD"]

จะเพิ่มระดับราคา 5294.4 เข้าไปใน order book ที่ระดับ 10 (ราคา ask สูงสุด) และย้ายระดับราคา 5294.5 ออกจากขอบเขตของ order book (โดยการย้าย 5294.5 ไปยังระดับ 11)

ข้อความลบ

ข้อความลบจะลบระดับราคาออกจาก order book เช่น ข้อความลบบางส่วนต่อไปนี้สำหรับระดับราคา 5294.1 ในฝั่ง ask ของ order book:

[0,{"a":[["5294.10000","0.00000000","1556724670.010241"]] ... },"book-10","XBT/USD"]

ข้อความลบจะรวมระดับราคาที่ไม่มีอยู่อีกต่อไป ระบุปริมาณที่มีอยู่เป็น 0.0 เสมอ และรวม timestamp ที่ระบุวันที่/เวลาที่ระดับราคาถูกลบออกจาก order book

ข้อความลบจะเปลี่ยนระดับราคาภายใน order book โดยการลบระดับราคาที่ได้รับผลกระทบ (ออกจาก order book ทั้งหมด ไม่ใช่แค่จากความลึกที่สมัครรับ) ย้ายระดับราคาที่ตามมาทั้งหมด (ราคา bid ที่ต่ำกว่าหรือราคา ask ที่สูงกว่า) เข้ามาด้านใน และดึงระดับราคาใหม่เข้ามาในขอบเขตของ order book

โปรดทราบว่าการลบจะตามมาด้วยการแทรกทันที ซึ่งจะนำระดับราคาใหม่เข้ามาในขอบเขตที่ระดับนอกสุด (เช่น ระดับ 10 สำหรับความลึกที่สมัครรับ 10)

ตัวอย่างเช่น จากสแนปช็อตเริ่มต้นด้านบน ข้อความลบ/แทรก:

[0,{"a":[["5294.10000","0.00000000","1556724670.010241"],["5294.70000","3.34000000","1556724653.951982","r"]], "c":"3679121060"},"book-10","XBT/USD"]

สิ่งนี้จะลบระดับราคา 5294.1 ออกจากระดับ 9 ของ order book ย้ายระดับราคา 5294.5 จากระดับ 10 ไปยังระดับ 9 และเพิ่มระดับราคาใหม่ 5294.7 เข้าไปในระดับ 10 ของ order book ทันที (ระดับนอกสุดและราคา ask สูงสุดสำหรับความลึก 10)

แหล่งข้อมูลเพิ่มเติม

รายละเอียดเพิ่มเติมเกี่ยวกับตรรกะของ order book มีให้ใน ตัวอย่างบันทึก order book และตัวอย่างโค้ดที่ใช้ ไคลเอนต์บรรทัดคำสั่งแบบอะซิงโครนัส (หลายเธรด) และ ซิงโครนัส (เธรดเดียว)

ตัวคั่นทศนิยมและหลักพันที่แสดงในบทความนี้อาจแตกต่างจากรูปแบบที่แสดงบนแพลตฟอร์มการซื้อขายของเรา โปรดอ่านบทความของเราเกี่ยวกับวิธีที่เราใช้ จุดและจุลภาค สำหรับข้อมูลเพิ่มเติม

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่