8 ตุลาคม 2026 · งานวิจัย

ทำไมคำสั่ง Limit Order ใน Backtest ของฉันถึงถูกจับคู่ ทั้งที่ตลาดไม่เคยแตะราคา?

ทำไมคำสั่ง Limit Order ใน Backtest ของฉันถึงถูกจับคู่ ทั้งที่ตลาดไม่เคยแตะราคา?

Backtest อาจจับคู่คำสั่ง Limit ของคุณได้ แม้ในตลาดจะไม่มีโอกาสซื้อขายที่ทำได้จริง หากจุดต่ำสุดของแท่งราคาลงมาต่ำกว่าราคา Limit ซื้อของคุณ ระบบจำลองหลายตัวจะนับว่าจับคู่แล้ว แต่จุดต่ำสุดบอกได้เพียงว่ามีการรายงานธุรกรรมอย่างน้อย 1 รายการที่ราคานั้นหรือต่ำกว่า ไม่ได้บอกว่ามีการซื้อขายปริมาณเท่าไร มีคำสั่งใดอยู่ในคิวก่อนคุณบ้าง หรือคำสั่งของคุณอยู่ในตลาดทันเวลาหรือไม่

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

แท่งราคาแตะราคา Limit ของฉัน แปลว่าคำสั่งถูกจับคู่หรือไม่?

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

ลองนึกภาพว่าคุณตั้ง Limit ซื้อที่ $100.00 แท่งราคาเปิดที่ $100.20 ลงไปต่ำสุดที่ $99.98 และปิดที่ $100.10 อาจมีธุรกรรมเกิดขึ้นที่ราคาต่ำกว่าราคาของคุณ 2 เซนต์ แต่ถ้าที่ $100.00 มีคิวขนาดใหญ่อยู่ข้างหน้าคุณ และมีการซื้อขายที่ราคานั้นเพียงเล็กน้อย คำสั่งของคุณก็อาจไม่ถูกแตะเลย หากมีเพียง OHLCV คุณจะมองไม่เห็นคิวนั้น

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

ข้อมูล OHLCV บอกอะไรได้จริงเกี่ยวกับการจับคู่ Limit Order?

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

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

ดังนั้น ระบบที่ใช้แท่งราคาจึงต้องตั้งสมมติฐานเรื่องการจับคู่ ให้มองสมมติฐานนั้นเป็นโมเดลที่มีข้อจำกัดชัดเจน ไม่ใช่ข้อเท็จจริงที่อ่านได้จากแท่งราคา

ควรจำลองการจับคู่ Limit Order ใน Backtest อย่างไร?

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

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

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

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

เมื่อไรจึงต้องใช้ข้อมูลสมุดคำสั่งซื้อขาย?

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

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

จะรู้ได้อย่างไรว่าผลลัพธ์ของฉันขึ้นอยู่กับสมมติฐานการจับคู่ที่มองโลกในแง่ดี?

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

ขั้นตอนตรวจสอบถัดไปที่มีประโยชน์คือ Paper Trading: ส่งคำสั่งตามตรรกะจริงและบันทึกการตอบรับ การจับคู่ และการยกเลิก คำสั่งจำลองยังขึ้นอยู่กับกฎของตลาดหรือระบบจำลองนั้น ๆ แต่ช่วยทดสอบจังหวะเวลาและการจัดการคำสั่งในแบบที่แท่งราคาแสดงให้เห็นไม่ได้

ราคา Limit ที่ถูกแตะเป็นหลักฐานเกี่ยวกับราคา ส่วนการจับคู่คือข้อกล่าวอ้างเกี่ยวกับการดำเนินคำสั่ง Backtest ของคุณควรทำให้เห็นช่องว่างระหว่างข้อกล่าวอ้างทั้ง 2 อย่างนี้

limit ordersbacktestingmarket microstructurefill modelsexecution
แชร์XLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← บทความทั้งหมด