15 กันยายน 2026 · งานวิจัย

โมเดล Slippage ใน Backtest ควรจงใจคาดเคลื่อน

โมเดล Slippage ใน Backtest ควรจงใจคาดเคลื่อน

โมเดล slippage ที่ซื่อตรงที่สุดมักจงใจให้คาดเคลื่อน Backtest ที่รายงานต้นทุน execution อย่างแม่นยำจากข้อมูลย้อนหลังที่หยาบ กำลังกล่าวอ้างในสิ่งที่ข้อมูลรองรับไม่ได้

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

เหตุใดการประเมิน slippage อย่างแม่นยำจึงอาจทำให้เข้าใจผิด?

สมมติว่าคุณมีแท่ง OHLCV ระดับ 1 นาที และส่ง market order จำนวน 2,000 หุ้น แท่งราคาบอกช่วงราคาและปริมาณซื้อขายรวมตลอด 1 นาที แต่ไม่ได้บอก bid และ ask ตอนที่คำสั่งของคุณมาถึง คิวที่อยู่ข้างหน้าคุณ ปริมาณซื้อขายกระจายตัวอย่างไรในนาทีนั้น หรือคำสั่งของคุณจะใช้ปริมาณไปมากแค่ไหน

คุณยังคงกำหนดตัวเลขให้ slippage ได้ เช่น ให้คำสั่ง fill ที่ราคาเปิดของแท่งถัดไปบวกต้นทุนคงที่เป็น basis point หรือปรับต้นทุนตามขนาดคำสั่งหารด้วยปริมาณซื้อขายของแท่ง วิธีเหล่านี้เป็นค่าประมาณที่มีประโยชน์ แต่ไม่ใช่สิ่งที่สังเกตวัดได้จริง การรายงานผลว่า “slippage: 3.2 basis points” ทำให้การเลือกโมเดลดูเหมือนเป็นการวัดค่า

ลองดูตัวอย่าง: ให้กลยุทธ์ซื้อขายมูลค่า $20,000 ต่อคำสั่งในหุ้นที่มีปริมาณซื้อขายของแท่งถัดไป $400,000 อัตราการมีส่วนร่วมจึงอยู่ที่ 5% โมเดลที่คิดต้นทุน 2 basis points จะมีต้นทุน $4 ต่อคำสั่ง ส่วนโมเดลที่คิด 10 basis points จะมีต้นทุน $20 เมื่อคิดกับการซื้อขายไปกลับ 500 ครั้ง ส่วนต่างนี้เท่ากับ $16,000 ก่อนรวมค่าคอมมิชชัน หากกำไรรวมจาก backtest ของกลยุทธ์อยู่ที่ $18,000 สมมติฐานด้าน execution ก็มีอิทธิพลต่อผลลัพธ์เกือบพอ ๆ กับสัญญาณ

5%ขนาดคำสั่งคิดเป็นสัดส่วนของปริมาณซื้อขายแท่งถัดไป
$16,000ส่วนต่างต้นทุนจากการซื้อขายไปกลับ 500 ครั้ง ที่ 2 เทียบกับ 10 bps

สร้างช่วงค่าที่สะท้อนสิ่งที่ข้อมูลของคุณมองเห็น

เริ่มจากค่าพื้นฐานที่สอดคล้องกับประเภทคำสั่งของกลยุทธ์และความละเอียดของข้อมูล market order ต้องคำนึงถึง spread และ impact ส่วน limit order ต้องมีกฎว่าคำสั่งจะ fill หรือไม่ การสมมติว่าราคาที่แตะทุกระดับทำให้คำสั่ง fill ได้ ถือเป็นข้อผิดพลาดด้าน execution อีกแบบหนึ่ง

จากนั้นรัน backtest เดิมภายใต้กรณีที่ระบุไว้อย่างชัดเจนจำนวนหนึ่ง โดยตรึงสัญญาณ การกำหนดขนาด และเวลาไว้เหมือนเดิม เพื่อให้ระบุได้ว่าการเปลี่ยนแปลงมาจาก execution:

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

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

ทำให้โมเดลตอบสนองต่อคำสั่ง

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

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

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

คำถามที่มีประโยชน์: spread, impact, ความล่าช้า หรืออัตราการมีส่วนร่วมต้องอยู่ที่ระดับใด ผลตอบแทนสุทธิจึงจะเท่ากับศูนย์? จุดคุ้มทุนนี้มักนำไปใช้ได้จริงมากกว่า Sharpe ค่าเดียวจาก backtest

ใช้ paper trading เพื่อจำกัดช่วงสมมติฐานให้แคบลง

Paper trading ไม่ได้เปิดเผยว่าคุณจะได้ fill แบบใดใน matching engine จริง แต่ยังช่วยบอกได้ว่ากระแสคำสั่งใน backtest คล้ายกับการตัดสินใจจริงของระบบหรือไม่ เช่น คำสั่งถูกสร้างเมื่อไร มีขนาดเท่าไร และยังดำเนินการได้อยู่นานแค่ไหน

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

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

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

slippagemarket impactbacktestingexecutionpaper trading
แชร์XLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← บทความทั้งหมด