Time in Force คืออะไร อธิบาย Day GTC IOC และ FOK
ทำความเข้าใจ Time in Force สำหรับกำหนดระยะเวลาและเงื่อนไขการจับคู่คำสั่งซื้อขายหุ้น เรียนรู้ความแตกต่างของ Day GTC IOC และ FOK เพื่อวางแผนกลยุทธ์การเทรดให้มีประสิทธิภาพสูงสุด
Time in force คือช่องข้อมูลในใบคำสั่งซื้อขายที่ตอบคำถามเพียงข้อเดียวว่า: คำสั่งนี้ควรมีผลอยู่นานเท่าใด ประเภทของคำสั่ง (order type) เป็นตัวกำหนดราคา ส่วน Time in force เป็นตัวกำหนดเวลาและเงื่อนไขการจับคู่คำสั่งซื้อขาย (fill condition) ใบคำสั่งซื้อขายหุ้นและออปชันทุกใบจะมีทั้งสองช่องนี้ และค่าเริ่มต้นที่แพลตฟอร์มกำหนดมาให้ก็ถือเป็นทางเลือกหนึ่งที่คุณต้องตัดสินใจ
Time in force ในการเทรดคืออะไร?
คำสั่งซื้อขายประกอบด้วยการตั้งค่าอิสระสองอย่าง อย่างแรกคือราคา คำสั่งแบบ market order จะยอมรับราคาใดก็ตามที่ตลาดเสนอให้ ส่วน limit order จะระบุราคาที่แย่ที่สุดที่คุณยอมรับได้ คู่มือ market order vs limit order ได้อธิบายส่วนนี้ไว้อย่างละเอียดแล้ว
อย่างที่สองคือระยะเวลา Time in force จะบอกตลาดว่าส่วนที่ยังจับคู่ไม่ได้ของคำสั่งซื้อขายของคุณจะยังคงทำงานต่อไปนานเท่าใด และยอมรับการจับคู่เพียงบางส่วน (partial fill) ได้หรือไม่ คำสั่ง limit order เพื่อซื้อหุ้น 500 หุ้นที่ราคา 50 ดอลลาร์ มีคำสั่งทั้งสองอย่างนี้พร้อมกัน คือราคาและระยะเวลา หากคุณเปลี่ยนระยะเวลา คุณได้ส่งคำสั่งซื้อขายใหม่ไปแล้ว แม้ราคาจะยังเท่าเดิมก็ตาม
คำศัพท์ในส่วนนี้มีไม่มาก ระยะเวลาสี่แบบครอบคลุมเกือบทุกคำสั่งที่แพลตฟอร์มสำหรับนักลงทุนรายย่อยแสดง ได้แก่ day, good-til-canceled, good-til-date และคู่คำสั่งที่เน้นความรวดเร็วทันทีอย่าง immediate-or-cancel และ fill-or-kill นอกจากนี้ยังมีเงื่อนไขการจับคู่ (execution qualifiers) เพิ่มเติม และคำสั่งสำหรับการประมูล (auction instructions) ที่เข้ามาแทนที่ระยะเวลาทั้งหมด
คำสั่งแบบ Day, GTC และ good-til-date
Day: คำสั่งจะมีผลจนถึงสิ้นสุดช่วงเวลาทำการปกติ และปริมาณที่ยังจับคู่ไม่ได้จะถูกยกเลิกเมื่อตลาดปิด นี่คือค่าเริ่มต้นในแพลตฟอร์มสำหรับนักลงทุนรายย่อยเกือบทุกแห่ง คำสั่งแบบ day ที่ส่งตอน 10:00 น. และยังจับคู่ไม่ได้เมื่อถึง 16:00 น. จะสิ้นสุดสถานะลงทันที และไม่มีผลต่อเนื่องไปถึงวันถัดไป
Good-til-canceled (GTC): คำสั่งจะคงค้างข้ามวันจนกว่าจะจับคู่ได้หรือคุณยกเลิกเอง ตลาดหุ้นสหรัฐฯ ส่วนใหญ่ทำงานด้วยคำสั่งแบบ day ซึ่งหมายความว่าคำสั่ง GTC มักจะค้างอยู่ในระบบของโบรกเกอร์และถูกส่งเข้าตลาดใหม่ทุกเช้า ลำดับคิว (queue position) จะถูกรีเซ็ตใหม่ทั้งหมด ตำแหน่งเดิมที่คุณเคยต่อคิวไว้เมื่อวานที่ราคานั้นจะหายไป
Good-til-date (GTD): คือ GTC ที่มีวันหมดอายุที่คุณกำหนดเอง มีประโยชน์เมื่อเหตุผลในการส่งคำสั่งซื้อขายมีกรอบเวลาที่ชัดเจน
Extended-hours day: บางแพลตฟอร์มเสนอระยะเวลาที่ทำให้คำสั่งแบบ day ยังคงทำงานต่อเนื่องในช่วง pre-market และ after-hours แทนที่จะหยุดลงที่ 16:00 น.
ช่วงเวลาทำงานของคำสั่งแบบ day สอดคล้องกับการกระจายตัวของปริมาณการซื้อขายที่ไม่เท่ากัน แผงข้อมูลด้านล่างแสดงปริมาณการซื้อขาย SPY ตลอดทั้งเดือนตามเวลา ET ตั้งแต่เริ่มช่วง pre-market เวลา 4:00 น. จนถึงสิ้นสุดช่วง after-hours เวลา 20:00 น.
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
formatDateTime(toStartOfHour(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS et_time,
round(100 * sum(volume) / sum(sum(volume)) OVER (), 2) AS pct_of_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-06-01 08:00:00', 'UTC')
AND window_start < toDateTime('2026-07-01 00:00:00', 'UTC')
GROUP BY et_time
ORDER BY et_timeตลอดเดือนมิถุนายน 2026 ชั่วโมง 04:00 มีปริมาณการซื้อขายหุ้น SPY คิดเป็น 0.27% ของปริมาณรวมทั้งเดือน ชั่วโมง 09:00 ซึ่งเปิดด้วยระฆังเวลา 9:30 น. มีปริมาณ 9.32% ชั่วโมง 16:00 เป็นช่วงผสม: เป็นช่วงที่มีการบันทึกการซื้อขายปิดตลาด (closing auction print) ควบคู่ไปกับช่วงเริ่มต้นของการซื้อขายหลังปิดตลาด (after-hours) โดยมีปริมาณอยู่ที่ 14.42% คำสั่งแบบ day ปกติจะมีผลเฉพาะช่วงกลางของกราฟนี้เท่านั้น และไม่มีผลในช่วงเวลาต้นและท้ายของวัน
เกิดอะไรขึ้นกับคำสั่ง GTC หลังจากการแตกหุ้น (split) หรือการจ่ายเงินปันผล?
คำสั่ง GTC สามารถค้างอยู่ในระบบได้นานหลายสัปดาห์ ซึ่งทำให้การดำเนินงานของบริษัท (corporate actions) มีโอกาสส่งผลกระทบต่อคำสั่งนั้น โดยทั่วไปมีวิธีจัดการสองแบบ โบรกเกอร์บางแห่งจะยกเลิกคำสั่ง GTC ทั้งหมดที่มีในหุ้นตัวนั้นเมื่อถึงวัน ex-dividend หรือเมื่อการแตกหุ้นมีผล ส่วนโบรกเกอร์อื่นจะปรับราคา limit และจำนวนหุ้นให้สอดคล้องกับจำนวนหุ้นใหม่ ทั้งสองวิธีมีเหตุผลรองรับ แต่ทั้งสองวิธีไม่เหมือนกัน และใบคำสั่งซื้อขายไม่ได้ระบุว่าบัญชีของคุณใช้วิธีใด
โบรกเกอร์ส่วนใหญ่ยังจำกัดระยะเวลาของ GTC ไว้ที่ประมาณ 60 ถึง 90 วันตามปฏิทิน หลังจากนั้นคำสั่งจะหมดอายุลงเอง คำสั่งที่ตั้งไว้ในเดือนมีนาคมมักจะหายไปภายในเดือนมิถุนายนโดยที่ตลาดไม่เคยจับคู่คำสั่งนั้นเลย
กรณีการแตกหุ้นเป็นสิ่งที่ชัดเจนกว่า การแตกหุ้นแบบ 1-for-10 (reverse split) จะเปลี่ยนหุ้น 100 หุ้นให้เหลือ 10 หุ้น และคูณราคาอ้างอิงขึ้นสิบเท่าในเช้าวันเดียวกัน คำสั่งซื้อ limit order ที่ราคา 2 ดอลลาร์สำหรับหุ้นเดิมจะไม่มีความหมายสำหรับหุ้นใหม่ การแตกหุ้นไม่ใช่เหตุการณ์ที่เกิดขึ้นได้ยาก แผงข้อมูลนี้จะนับจำนวนการแตกหุ้นทั้งหมดในตลาดสหรัฐฯ รายเดือน
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
formatDateTime(toStartOfMonth(execution_date), '%Y-%m') AS month,
countDistinctIf(id, toFloat64(split_to) > toFloat64(split_from)) AS forward_splits,
countDistinctIf(id, toFloat64(split_to) < toFloat64(split_from)) AS reverse_splits
FROM global_markets.stocks_splits
WHERE execution_date >= toDate('2025-08-01')
AND execution_date < toDate('2026-08-01')
GROUP BY month
ORDER BY monthช่วงเวลาข้อมูลนี้เริ่มตั้งแต่ 2025-08 ถึง 2026-07 ในเดือน 2026-07 ตลาดบันทึกการแตกหุ้นแบบ forward splits จำนวน 45 ครั้ง และแบบ reverse splits จำนวน 119 ครั้ง ทุกวันที่ระบุคือเช้าวันที่คำสั่งซื้อขายที่ค้างอยู่ในชื่อหุ้นนั้นถูกยกเลิกหรือเขียนใหม่ ซึ่งนักลงทุนที่ตั้งคำสั่งไว้ล่วงหน้าหลายสัปดาห์จะได้รับทราบในภายหลัง
ความแตกต่างระหว่าง IOC และ FOK คืออะไร?
Immediate-or-cancel และ fill-or-kill ก็เป็นระยะเวลาเช่นกัน โดยมีระยะเวลาเพียงชั่วพริบตาเดียว
Immediate-or-cancel (IOC): จับคู่ปริมาณเท่าที่มีให้ได้ที่ราคา limit ของคุณในขณะนั้น แล้วยกเลิกส่วนที่เหลือ การจับคู่เพียงบางส่วนเป็นผลลัพธ์ที่คาดการณ์ได้ คำสั่ง IOC สำหรับ 5,000 หุ้นที่พบหุ้นว่างเพียง 800 หุ้น จะจับคู่ 800 หุ้นนั้น ส่วนที่เหลืออีก 4,200 หุ้นจะถูกยกเลิกทันที
Fill-or-kill (FOK): ต้องจับคู่ให้ได้เต็มจำนวนทันที มิฉะนั้นจะไม่ทำรายการเลย คำสั่งเดียวกันนี้หากพบหุ้นเพียง 800 หุ้น จะจับคู่เป็นศูนย์
All-or-none (AON): ต้องจับคู่ให้ได้เต็มจำนวน แต่มีความอดทน คำสั่ง AON จะรอจนกว่าจะได้ครบจำนวนแทนที่จะยกเลิก ซึ่งหมายความว่าต้องมีระยะเวลากำกับไว้ด้วย เช่น AON แบบ day หรือ AON แบบ good-til-canceled
การที่คำสั่ง fill-or-kill จะใช้งานได้จริงหรือไม่ ขึ้นอยู่กับขนาดคำสั่งของคุณเมื่อเทียบกับขนาดการซื้อขายจริงในหุ้นตัวนั้น แผงข้อมูลด้านล่างเลือกช่วงเวลาหนึ่งชั่วโมงในช่วงสายของวันเดียวมาวัดปริมาณการซื้อขาย
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
ticker AS symbol,
round(avg(size), 0) AS avg_print_shares,
round(100 * countIf(size >= 1000) / count(), 2) AS large_print_pct
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA', 'MSFT', 'KO')
AND sip_timestamp >= toDateTime('2026-06-10 14:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-10 15:00:00', 'UTC')
AND size > 0
GROUP BY ticker
ORDER BY large_print_pct DESCตลอดชั่วโมงนั้น NVDA มีสัดส่วนการซื้อขายที่ 1,000 หุ้นขึ้นไปมากที่สุด คิดเป็น 0.32% ของจำนวนรายการทั้งหมด โดยมีค่าเฉลี่ยการซื้อขายอยู่ที่ 38 หุ้น ในขณะที่อีกด้านหนึ่ง MSFT มีรายการซื้อขายในระดับนี้เพียง 0.1% หากคุณส่งคำสั่ง fill-or-kill สำหรับ 5,000 หุ้นเข้าไปในตลาดที่รายการซื้อขายปกติมีเพียงไม่กี่ร้อยหุ้น ผลลัพธ์ที่น่าจะเป็นไปได้มากที่สุดคือการถูกยกเลิกแทนที่จะได้รับการจับคู่
Market-on-close และ limit-on-close: คำสั่งสำหรับการประมูล
คำสั่งสองประเภทนี้ไม่ได้ระบุระยะเวลา แต่ระบุเหตุการณ์
Market-on-close (MOC) จะส่งคำสั่งเข้าสู่การประมูลปิดตลาด (closing auction) โดยจับคู่ที่ราคาปิดอย่างเป็นทางการ ส่วน Limit-on-close (LOC) จะทำเช่นเดียวกันโดยมีเพดานราคาหรือราคาขั้นต่ำ โดยจะเข้าร่วมเฉพาะเมื่อราคาปิดเท่ากับหรือดีกว่าราคา limit ที่ตั้งไว้ ส่วนคำสั่งในช่วงเช้าคือ market-on-open และ limit-on-open ซึ่งจะส่งเข้าสู่การประมูลเปิดตลาด (opening cross)
ข้อควรระวังคือเวลาตัดยอด ในตลาดหลักของสหรัฐฯ การส่งคำสั่ง MOC และ LOC จะปิดรับเวลา 15:50 น. ET และหลังจากนั้นจะไม่สามารถยกเลิกหรือแก้ไขคำสั่งได้ เว้นแต่จะเป็นการแก้ไขข้อผิดพลาดที่เกิดขึ้นจริง ส่วนคำสั่งเปิดตลาดจะปิดรับประมาณ 9:28 น. ET ในช่วงสุดท้ายนี้ คุณต้องยอมรับผลลัพธ์จากการประมูล คู่มือ closing auction และ opening auction จะอธิบายวิธีการคำนวณการประมูลแต่ละแบบ
สิ่งที่นักเทรดได้รับจากการยอมสละสิทธิ์ในการยกเลิกคือการจับคู่ที่ราคาปิดอย่างเป็นทางการ แผงข้อมูลนี้วัดปริมาณการซื้อขายตั้งแต่ 15:45 น. ET จนถึงปิดตลาด โดยเฉลี่ยจากช่วงการซื้อขาย SPY ตลอดหนึ่งเดือน
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_time,
round(sum(volume) / countDistinct(toDate(toTimeZone(window_start, 'America/New_York'))) / 1e6, 2) AS volume_millions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-06-01 08:00:00', 'UTC')
AND window_start < toDateTime('2026-07-01 00:00:00', 'UTC')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 945 AND 960
GROUP BY et_time
ORDER BY et_timeแผงข้อมูลแสดงผลเป็นรายนาที แท่ง 15:45 มีปริมาณเฉลี่ย 0.22 ล้านหุ้น SPY ต่อช่วงการซื้อขาย และแท่ง 16:00 มีปริมาณเฉลี่ย 0.39 ล้านหุ้น การประมูลไม่ใช่การซื้อขายต่อเนื่องอีกหนึ่งนาที แต่เป็นเหตุการณ์จับคู่ครั้งเดียวที่ราคาทางการราคาเดียว และใบคำสั่ง MOC หรือ LOC คือคำขอเพื่อเข้าร่วมในการประมูลนั้น การตัดยอดเวลา 15:50 น. คือต้นทุนของคำขอดังกล่าว
Time in force นอกเวลาทำการปกติ
ช่วงเวลาซื้อขายพิเศษ (extended-hours) เปลี่ยนกฎเกณฑ์ ตลาดส่วนใหญ่รับเฉพาะคำสั่ง limit order เท่านั้นนอกเวลา 9:30 น. ถึง 16:00 น. ET และคำสั่งแบบ day ที่ส่งสำหรับช่วงเวลาปกติจะไม่ต่อเนื่องไปยังช่วง after-hours โดยอัตโนมัติ คู่มือ after hours and premarket trading อธิบายช่วงเวลาเหล่านี้ไว้อย่างละเอียด แผงข้อมูลรายชั่วโมงด้านบนแสดงให้เห็นถึงสภาพคล่องที่เบาบางซึ่งเป็นเหตุผลของกฎ limit-only: ชั่วโมง 19:00 มีปริมาณการซื้อขาย SPY คิดเป็น 0.17% ของปริมาณรวมทั้งเดือน
ออปชันมีประเด็นที่แตกต่างออกไป ช่วงเวลาสุดท้ายที่สัญญาออปชันสามารถซื้อขายได้จะใช้คนละนาฬิกากับหุ้นอ้างอิง และออปชันที่กำลังจะหมดอายุมีเวลาตัดยอดที่เข้มงวดซึ่งไม่มีการตั้งค่าระยะเวลาใดจะขยายออกไปได้ คู่มือ guide to when options stop trading มีรายละเอียดเฉพาะเจาะจง
การอ่านใบคำสั่งซื้อขาย: ระยะเวลาบวกเงื่อนไข
- Day, ไม่มีเงื่อนไข: ทำงานจนถึงปิดตลาด ยอมรับการจับคู่บางส่วนได้ เป็นค่าเริ่มต้นทั่วไป
- Day พร้อม IOC: จับคู่เท่าที่มีในขณะนั้น ยกเลิกส่วนที่เหลือ ไม่มีการค้างคำสั่งในระบบ
- Day พร้อม FOK: จับคู่เต็มจำนวนในขณะนั้น มิฉะนั้นไม่ทำรายการ ไม่มีการค้างคำสั่งในระบบ
- Day พร้อม AON: จับคู่เต็มจำนวน โดยรอจนถึงปิดตลาด
- GTC พร้อม AON: จับคู่เต็มจำนวน โดยรอข้ามวันจนกว่าจะถึงวันหมดอายุของโบรกเกอร์
- GTD, ไม่มีเงื่อนไข: ยอมรับการจับคู่บางส่วนได้ ทำงานจนถึงวันที่คุณระบุ
- MOC หรือ LOC: ไม่มีช่องระยะเวลา การประมูลคือคำสั่ง และ 15:50 น. ET คือเวลาสุดท้ายที่จะเปลี่ยนใจ
ชื่อเรียกในแต่ละแพลตฟอร์มอาจแตกต่างกัน แต่คำสั่งพื้นฐานนั้นเหมือนกัน การจับคู่คำศัพท์บนหน้าจอของคุณกับรายการนี้มักใช้เวลาเพียงหนึ่งนาที
คำถามที่พบบ่อย
Time in force บนคำสั่งซื้อขายหมายความว่าอย่างไร?
Time in force คือคำสั่งที่กำหนดว่าคำสั่งซื้อขายจะมีผลนานเท่าใดก่อนที่จะถูกยกเลิกโดยอัตโนมัติ ซึ่งแยกจากประเภทคำสั่งซื้อขายที่กำหนดราคา ใบคำสั่งซื้อขายหนึ่งใบจะมีทั้งสองช่องนี้
ความแตกต่างระหว่างคำสั่งแบบ day และคำสั่ง GTC คืออะไร?
คำสั่งแบบ day จะถูกยกเลิกเมื่อสิ้นสุดช่วงเวลาทำการปกติหากยังจับคู่ไม่ได้ ส่วนคำสั่ง good-til-canceled จะทำงานต่อเนื่องข้ามวันจนกว่าจะจับคู่ได้หรือคุณยกเลิก และในกรณีใดก็ตามจะไม่เกินระยะเวลาหมดอายุที่โบรกเกอร์กำหนด
คำสั่ง GTC จะเปิดค้างไว้ตลอดไปหรือไม่?
ไม่ โบรกเกอร์ส่วนใหญ่จำกัดคำสั่ง GTC ไว้ที่ประมาณ 60 ถึง 90 วันตามปฏิทิน และหลายแห่งจะยกเลิกคำสั่งเมื่อหุ้นขึ้นเครื่องหมาย ex-dividend หรือแตกหุ้น การจัดการที่แน่นอนขึ้นอยู่กับโบรกเกอร์และระบุไว้ในข้อตกลงบัญชี
ความแตกต่างระหว่าง IOC และ FOK คืออะไร?
คำสั่ง immediate-or-cancel จะจับคู่ปริมาณเท่าที่มีในขณะนั้นและยกเลิกส่วนที่เหลือ ทำให้การจับคู่เพียงบางส่วนเป็นเรื่องปกติ ส่วนคำสั่ง fill-or-kill ต้องการปริมาณเต็มจำนวนทันที หากได้ไม่ครบจะไม่เกิดการซื้อขายเลย
สามารถยกเลิกคำสั่ง market-on-close ได้หรือไม่?
ไม่ได้หากเกินเวลาตัดยอดของตลาด ซึ่งคือ 15:50 น. ET ในตลาดหลักของสหรัฐฯ ก่อนเวลานั้นสามารถส่งหรือยกเลิกคำสั่ง MOC ได้เหมือนคำสั่งอื่น หลังจากเวลานั้นจะรับเฉพาะการแก้ไขข้อผิดพลาดที่เกิดขึ้นจริงเท่านั้น
แผงข้อมูลทุกแผงที่นี่มาพร้อมกับ SQL ที่ใช้สร้างข้อมูลนั้น คุณสามารถเปิดดูเพื่อตรวจสอบวิธีการนับตัวเลขได้อย่างแม่นยำ หากต้องการวัดพฤติกรรมการซื้อขายของหุ้นตัวใดตัวหนึ่งในช่วงนาทีปิดตลาด สามารถสอบถามเป็นภาษาอังกฤษได้ที่ Strasmore terminal