Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

ความแตกต่างระหว่าง SIP feeds กับ direct exchange feeds

เหตุผลที่ราคาหุ้นบนหน้าจอแสดงผลไม่ตรงกันเกิดจากความแตกต่างของข้อมูลระหว่าง SIP และ Direct Exchange Feeds ซึ่งมีระดับความเร็วและความละเอียดของข้อมูลที่แตกต่างกันอย่างชัดเจน

ความแตกต่างระหว่าง SIP feeds กับ direct exchange feeds คือเหตุผลที่คนสองคนมองหุ้นตัวเดียวกันในวินาทีเดียวกัน แต่เห็นราคาไม่เท่ากันโดยที่หน้าจอไม่ได้เสีย ข้อมูลราคาหุ้นสหรัฐฯ ทุกรายการจะเดินทางผ่านเส้นทางใดเส้นทางหนึ่งในสองเส้นทางนี้ คือ Consolidated Tape ที่เผยแพร่โดย Securities Information Processor หรือที่รู้จักกันในชื่อ SIP หรือผ่าน direct feed ของตลาดหลักทรัพย์แต่ละแห่งโดยตรง Consolidated Tape คือภาพรวมของตลาดที่เป็นทางการและอยู่ภายใต้การกำกับดูแล ส่วน direct feed คือภาพรวมเฉพาะของตลาดแห่งนั้นๆ ซึ่งส่งข้อมูลถึงผู้รับได้เร็วกว่าและมีรายละเอียดของ order book ที่ครบถ้วนกว่า

SIP ทำหน้าที่รวบรวมข้อมูลอะไรบ้าง?

Securities Information Processor คือระบบโครงสร้างพื้นฐานของตลาดที่อยู่ภายใต้การกำกับดูแล ตลาดหลักทรัพย์ระดับชาติทุกแห่งจะส่งราคาเสนอซื้อขายที่ดีที่สุด (best quote) และรายงานการซื้อขายไปยังหน่วยประมวลผลตามแผนงานที่ตลาดนั้นสังกัดอยู่ โดยมีสองแผนงานหลักที่แบ่งการดูแลข้อมูล Tape ออกจากกัน แผนงาน Consolidated Tape Association ดูแลหลักทรัพย์ที่จดทะเบียนใน NYSE (Tape A) และหลักทรัพย์ที่จดทะเบียนในตลาดอื่น (Tape B) โดยส่งข้อมูลการซื้อขายผ่าน CTS และราคาเสนอผ่าน CQS ส่วนแผนงาน UTP Plan ดูแลหลักทรัพย์ที่จดทะเบียนใน Nasdaq (Tape C) โดยส่งราคาเสนอผ่าน UQDF และการซื้อขายผ่าน UTDF แต่ละแผนงานเป็นระบบตลาดระดับชาติที่ยื่นต่อ SEC และบริหารจัดการโดยคณะกรรมการปฏิบัติการของตลาดหลักทรัพย์ที่เข้าร่วม ไม่ได้บริหารโดยผู้ให้บริการรายใดรายหนึ่งเพียงลำพัง

คำว่า consolidated หรือการรวบรวมนั้นมีความหมายตรงตัว หน่วยประมวลผลจะรับกระแสข้อมูลหนึ่งชุดต่อหนึ่งตลาด แล้วนำมาเผยแพร่ใหม่เป็นกระแสข้อมูลที่เรียงลำดับแล้ว โดยประทับเวลาและเลขลำดับของตนเองในระหว่างกระบวนการ แผงข้อมูลด้านล่างแสดงรายชื่อตลาดหลักทรัพย์หุ้นสหรัฐฯ ที่อยู่ในระบบจำนวน 18 แห่ง ซึ่งแต่ละแห่งมีหน้าที่ต้องส่งข้อมูลเข้าสู่ Tape

คำสั่งดึงข้อมูลตลาดหลักทรัพย์สหรัฐฯ ที่ส่งข้อมูลเข้าสู่ระบบ Consolidated Tape
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    name                     AS venue,
    acronym                  AS venue_code,
    mic                      AS market_identifier_code,
    toString(participant_id) AS sip_participant_code
FROM global_markets.stocks_exchanges
WHERE lower(asset_class) = 'stocks'
  AND lower(locale) = 'us'
  AND lower(type) = 'exchange'
ORDER BY name
Run this yourself

รหัสตัวอักษรเดียวในคอลัมน์สุดท้ายคือวิธีที่ Tape ใช้ระบุตัวตนของแต่ละตลาดภายในข้อความราคาเสนอ บันทึกข้อมูลที่ตลาดเหล่านี้นำมารวมกันคือสิ่งที่ใช้สำหรับราคาปิดอย่างเป็นทางการและการตรวจสอบ best execution ไม่ว่า direct feed จะแสดงราคาใดมาก่อนหน้านี้ก็ตาม

เหตุใด NBBO จึงมีอยู่เฉพาะใน consolidated feed เท่านั้น

National Best Bid and Offer หรือ NBBO คือราคาเสนอซื้อสูงสุดและราคาเสนอขายต่ำสุดที่มีอยู่ ณ ขณะใดขณะหนึ่งในบรรดาตลาดที่เข้าร่วมทั้งหมด ไม่มีตลาดแห่งใดแห่งหนึ่งสามารถเผยแพร่ข้อมูลนี้ได้ด้วยตนเอง เนื่องจากแต่ละตลาดเห็นเพียง order book ของตนเองเท่านั้น หน่วยประมวลผลจึงเป็นเพียงฝ่ายเดียวในระบบที่เห็นราคาเสนอซื้อขายที่ดีที่สุดของทุกตลาดพร้อมกัน NBBO จึงเกิดขึ้นที่จุดนี้ คู่มือการสร้าง NBBO ของเราจะอธิบายรายละเอียดการคำนวณทีละขั้นตอน

Direct feed ตอบคำถามที่เฉพาะเจาะจงกว่า คือ order book ของตลาดแห่งนี้ในขณะนี้เป็นอย่างไรบ้าง บริษัทที่ต้องการภาพรวมระดับชาติโดยไม่ใช้ SIP จะซื้อ direct feed หลายรายการแล้วนำมาประมวลผลรวมกันเอง ซึ่งเป็นสิ่งที่บริษัทเทรดดิ้งขนาดใหญ่ทำกัน

แผงข้อมูลด้านล่างนับจำนวนครั้งที่แต่ละตลาดปรากฏในฝั่งราคาเสนอซื้อ (bid) สำหรับหุ้นชื่อดังหนึ่งตัวในหนึ่งวันทำการ

คำสั่งดึงข้อมูลตลาดที่เสนอราคาซื้อสูงสุด (Bid) สำหรับ KO ณ วันที่ 16 มิถุนายน 2026
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    ex.venue_name                                     AS venue,
    qt.bid_updates                                    AS bid_quote_update_count,
    round(100 * qt.bid_updates / qt.total_updates, 1) AS share_of_updates_pct
FROM
(
    SELECT
        toUInt32(bid_exchange) AS venue_id,
        count()                AS bid_updates,
        sum(count()) OVER ()   AS total_updates
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'KO'
      AND sip_timestamp >= '2026-06-16 12:00:00'
      AND sip_timestamp <  '2026-06-16 22:00:00'
    GROUP BY venue_id
) AS qt
INNER JOIN
(
    SELECT
        toUInt32(id) AS venue_id,
        name         AS venue_name
    FROM global_markets.stocks_exchanges
    WHERE lower(asset_class) = 'stocks'
) AS ex ON ex.venue_id = qt.venue_id
ORDER BY bid_quote_update_count DESC
Run this yourself

มีตลาด 17 แห่งที่ปรากฏในฝั่งราคาเสนอซื้อตลอดทั้งวัน ตลาดที่คึกคักที่สุดคือ Investors Exchange ซึ่งมีสัดส่วนการอัปเดตราคาเสนอซื้อถึง 56.9% ส่วนที่เหลือกระจายไปยังตลาดอื่นๆ ในตาราง หากคุณใช้ feed ของตลาดแห่งเดียว คุณจะเห็นราคาเสนอที่ถูกต้องเพียงบางส่วนเท่านั้น

ที่มาของความล่าช้า (Latency) ระหว่าง feed ทั้งสองประเภท

ราคาเสนอใน direct feed จะออกจาก matching engine แล้วเดินทางไปยังผู้รับที่เชื่อมต่อโดยตรงในอาคารเดียวกัน ส่วนราคาเสนอใน consolidated tape จะออกจาก matching engine เดียวกัน เดินทางไปยังที่ตั้งของหน่วยประมวลผล รอคิวเพื่อปรับรูปแบบและจัดลำดับเทียบกับข้อความจากตลาดอื่น แล้วจึงเดินทางต่อไปยังผู้รับอีกครั้ง ความล่าช้าที่เพิ่มขึ้นนี้เกิดจากปัจจัยทางกายภาพ คือสายไฟเบอร์ระหว่างศูนย์ข้อมูลในรัฐนิวเจอร์ซีย์ตอนเหนือ บวกกับเวลาที่ใช้ในการประมวลผลที่หน่วยประมวลผล

ความล่าช้านี้บางส่วนสามารถวัดได้จากตัว Tape เอง บันทึกราคาเสนอทุกรายการจะมีนาฬิกาสองชุด คือ participant timestamp ซึ่งประทับเวลาที่ตลาดหลักทรัพย์เมื่อตลาดนั้นเผยแพร่ราคา และ SIP timestamp ซึ่งประทับเวลาที่หน่วยประมวลผลเมื่อรวมข้อมูลราคาเสนอเข้าด้วยกัน ส่วนต่างระหว่างเวลาทั้งสองคือความล่าช้าในการรวมข้อมูล (consolidation hop)

คำสั่งดึงข้อมูลความหน่วงของเวลาจากตลาดถึงระบบ Consolidated Tape สำหรับราคาเสนอซื้อขาย KO ณ วันที่ 16 มิถุนายน 2026
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(quantileDeterministic(0.5)(toFloat64(toUnixTimestamp64Nano(sip_timestamp) - toUnixTimestamp64Nano(participant_timestamp)) / 1000, toUInt64(sequence_number)), 1)  AS median_hop_us,
    round(quantileDeterministic(0.95)(toFloat64(toUnixTimestamp64Nano(sip_timestamp) - toUnixTimestamp64Nano(participant_timestamp)) / 1000, toUInt64(sequence_number)), 1) AS p95_hop_us,
    count()                                                                                                       AS quote_update_count
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'KO'
  AND sip_timestamp >= '2026-06-16 12:00:00'
  AND sip_timestamp <  '2026-06-16 22:00:00'
  AND toUnixTimestamp64Nano(participant_timestamp) > 0
GROUP BY et_time
HAVING quote_update_count >= 200
ORDER BY et_time
Run this yourself

ให้ดูที่แนวโน้มมากกว่าแท่งกราฟใดแท่งหนึ่ง ตลอดช่วงการซื้อขายนั้น ค่ามัธยฐานของความล่าช้าอยู่ที่ 33.7 ไมโครวินาทีในช่วงเวลา 09:00 ET และ 28.1 ไมโครวินาทีในช่วงเวลา 16:00 โดยวัดจากช่วงเวลาครึ่งชั่วโมงจำนวน 15 รอบที่ผ่านเกณฑ์จำนวนราคาเสนอขั้นต่ำ ไมโครวินาทีคือหนึ่งในล้านของวินาที และหนึ่งพันไมโครวินาทีเท่ากับหนึ่งมิลลิวินาที

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

ปริมาณข้อมูลที่ quote feed ต้องแบกรับ

ความเร็วเป็นแกนหนึ่ง ส่วนปริมาณข้อมูลเป็นอีกแกนหนึ่ง แผงข้อมูลด้านล่างนับจำนวนการอัปเดตราคาเสนอของหุ้นชื่อดัง 5 ตัว ในช่วงเวลาหนึ่งชั่วโมงของวันทำการเดียวกัน

คำสั่งดึงข้อมูลปริมาณการอัปเดตราคาเสนอซื้อขายของ 5 หุ้นหลัก ระหว่างเวลา 10:00 ถึง 11:00 น. (ET) วันที่ 16 มิถุนายน 2026
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    ticker,
    count()                         AS quote_update_count,
    formatReadableQuantity(count()) AS quote_updates_readable,
    round(count() / 3600, 1)        AS updates_per_second,
    uniqExact(bid_exchange)         AS bid_venues
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'KO', 'MSFT', 'NVDA', 'SPY')
  AND sip_timestamp >= '2026-06-16 14:00:00'
  AND sip_timestamp <  '2026-06-16 15:00:00'
GROUP BY ticker
ORDER BY quote_update_count DESC
Run this yourself

หุ้นที่คึกคักที่สุดในกลุ่มนี้คือ SPY มีการอัปเดตราคาเสนอถึง 1.03 million รายการในหนึ่งชั่วโมง หรือประมาณ 286.5 รายการต่อวินาที กระจายอยู่ในตลาดเสนอซื้อ 16 แห่ง เมื่อคูณตัวเลขนี้ด้วยจำนวนหุ้นหลายพันตัว ขนาดของระบบข้อมูลตลาดก็จะชัดเจนขึ้น Tape ของออปชันจะมีปริมาณข้อมูลที่หนักกว่านี้อีก ดังที่แสดงไว้ใน ขนาดของข้อมูลราคาเสนอออปชัน

Top of book เทียบกับความลึกของ order book ทั้งหมด

ความแตกต่างที่สำคัญประการที่สองคือความลึกของข้อมูล Consolidated feed จะเผยแพร่ราคาเสนอซื้อและราคาเสนอขายที่ดีที่สุดของแต่ละตลาดพร้อมจำนวนหุ้นที่วางอยู่ รวมถึงการซื้อขายทุกรายการ แต่ไม่ได้เผยแพร่คำสั่งซื้อขายที่อยู่ในระดับราคาถัดไป ในขณะที่ direct feed มักจะแสดง order book ทั้งหมดของตลาดนั้นๆ คือทุกระดับราคาที่มีคำสั่งวางอยู่ พร้อมจำนวนหุ้น รวมถึงข้อความเกี่ยวกับการประมูล (auction) และความไม่สมดุลของคำสั่งซื้อขาย (imbalance) ซึ่งไม่เคยปรากฏใน Tape ความแตกต่างนี้เป็นแบบเดียวกับที่อยู่เบื้องหลัง ข้อมูลตลาดระดับ 1 และระดับ 2 บนแพลตฟอร์มสำหรับนักลงทุนรายย่อย

อีกประเด็นที่ควรทราบคือ ราคาเสนอที่ได้รับความคุ้มครอง (protected quote) ในอดีตจะสร้างจาก round lots ดังนั้น odd lot ที่มีราคาดีกว่า NBBO จึงไม่ปรากฏในข้อมูลนี้ อย่างไรก็ตาม SEC ได้นำกฎโครงสร้างพื้นฐานข้อมูลตลาดมาใช้ในปี 2020 ซึ่งปรับปรุงนิยามของ round lot และขยายเนื้อหาของข้อมูลหลักให้ครอบคลุมถึงความลึกของข้อมูลและข้อมูลการประมูลมากขึ้น

SIP เทียบกับ direct exchange feeds: ใครที่ได้รับผลกระทบจากความล่าช้านี้?

บทสรุปที่ตรงไปตรงมาคือ Consolidated tape ไม่ได้ให้ข้อมูลที่ผิด แต่มีความล่าช้าและรายละเอียดน้อยกว่า ซึ่งช่องว่างทั้งสองประการนี้มีขอบเขตและสามารถวัดค่าได้ดังที่แสดงในแผงข้อมูลข้างต้น

สำหรับผู้ดูแลสภาพคล่อง (market maker) ที่เสนอราคาอย่างต่อเนื่อง ความล่าช้านี้เป็นตัวตัดสินว่าราคาเสนอจะล้าสมัยไปแล้วหรือไม่ในขณะที่มีคนเข้ามาซื้อขายด้วย บริษัทประเภทนี้จึงซื้อ direct feed และวางเซิร์ฟเวอร์ไว้ในอาคารของตลาดหลักทรัพย์ โดยเก็บ consolidated tape ไว้เป็นข้อมูลอ้างอิงสำหรับการปฏิบัติตามกฎระเบียบเท่านั้น

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

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

คำถามที่พบบ่อย

SIP feed ผิดพลาดหรือไม่แม่นยำใช่หรือไม่?

ไม่ Consolidated tape แสดงราคาเสนอและการซื้อขายชุดเดียวกับที่ตลาดหลักทรัพย์ส่งมา และเป็นบันทึกอย่างเป็นทางการสำหรับหุ้นสหรัฐฯ ข้อมูลนี้เดินทางถึงช้ากว่า direct feed ของตลาด และแสดงเฉพาะราคาที่ดีที่สุดของแต่ละตลาดเท่านั้น

ความแตกต่างระหว่าง SIP กับ direct exchange feed คืออะไร?

SIP ทำหน้าที่รวบรวมข้อมูล โดยจะรวมราคาเสนอที่ดีที่สุดและการซื้อขายทั้งหมดของทุกตลาดเข้าเป็นกระแสข้อมูลเดียว และคำนวณ NBBO จากข้อมูลเหล่านั้น ส่วน direct feed คือกระแสข้อมูลของตลาดแห่งเดียว ซึ่งแสดงความลึกของ order book ทั้งหมดของตลาดนั้นโดยไม่มีขั้นตอนการรวบรวมข้อมูล

SIP ช้ากว่า direct feed แค่ไหน?

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

Consolidated tape ครอบคลุมตลาดหลักทรัพย์ใดบ้าง?

ครอบคลุมตลาดหลักทรัพย์หุ้นสหรัฐฯ ทุกแห่งที่จดทะเบียน แผนงาน Consolidated Tape Association ครอบคลุม Tape A และ Tape B ส่วน UTP Plan ครอบคลุมหุ้นที่จดทะเบียนใน Nasdaq บน Tape C แผงข้อมูลแรกในหน้านี้แสดงรายชื่อตลาดที่อยู่ในระบบ

ฉันสามารถดู NBBO จาก direct exchange feed ได้หรือไม่?

ไม่ได้จาก feed เดียว NBBO ครอบคลุมทุกตลาด แต่ตลาดหลักทรัพย์แห่งเดียวจะเผยแพร่เฉพาะ order book ของตนเองเท่านั้น บริษัทที่ต้องการ NBBO โดยไม่ใช้ SIP จะต้องสมัคร direct feed หลายรายการและสร้างระบบรวบรวมข้อมูลด้วยตนเอง


แผงข้อมูลทุกรายการมาพร้อมกับโค้ด SQL ที่ใช้สร้างข้อมูลนั้น คุณสามารถเปิดดูเพื่อดูวิธีการคำนวณความล่าช้าได้ หากต้องการวัดค่าเดียวกันสำหรับหุ้นตัวอื่นหรือช่วงเวลาอื่น ให้สอบถามด้วยภาษาอังกฤษทั่วไปบน Strasmore terminal