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 อย่างนี้
← บทความทั้งหมด


