100 เทรด ค่าธรรมเนียม taker 0.04% และสมมติฐาน slippage 0.02% ตัวเลขเหล่านี้ทำให้แบ็กเทสต์ดูเหมือนผ่านการวัดมาอย่างดี แต่ตัวเลขที่น่าประหลาดใจที่สุดคือตัวสุดท้าย: อัตรา slippage เพียงค่าเดียวแทบไม่บอกอะไรเลยว่าคำสั่งของคุณจะซื้อขายได้ในราคานั้นหรือไม่
Slippage ขึ้นอยู่กับว่าคุณซื้อขายอะไร ซื้อขายเมื่อไร และคำสั่งซื้อขายของคุณมีขนาดใหญ่แค่ไหนเมื่อเทียบกับสภาพคล่องที่มีอยู่ในขณะนั้น แบ็กเทสต์ที่สร้างจากแท่งเทียนมักรู้สองเรื่องแรกเพียงคร่าวๆ และไม่รู้เรื่องที่สามเลย การถือว่าราคาเฉลี่ยที่ได้เป็นข้อเท็จจริง อาจทำให้กลยุทธ์ดูเหมือนมีประวัติการ execute ที่ไม่ได้เกิดขึ้นจริง
ทำไม OHLCV ถึงบอกค่าเฉลี่ยราคาที่ได้ไม่ได้?
แท่งเทียนบันทึกช่วงราคาและปริมาณซื้อขายรวมในช่วงเวลาหนึ่ง แต่ไม่ได้บอกว่าปริมาณซื้อขายกระจายอยู่ตามระดับราคาอย่างไร มีปริมาณเท่าไรที่ราคาบิดและแอสก์ที่ดีที่สุด หรือคำสั่งของคุณมาถึงก่อนหรือหลังธุรกรรมที่ทำให้เกิดราคาต่ำสุดของแท่งเทียน ราคาต่ำสุดที่เกิดจากธุรกรรมขนาดเล็กเพียงครั้งเดียว กับราคาต่ำสุดที่รองรับปริมาณซื้อขายต่อเนื่อง มีค่า OHLC เท่ากัน
ลองนึกถึงแท่งราคา 1-minute ที่มีมูลค่าซื้อขาย $200,000 และคำสั่งซื้อแบบ market มูลค่า $50,000 คำสั่งนี้คิดเป็น 25% ของมูลค่าซื้อขายในแท่งนั้น แต่นั่นไม่ได้พิสูจน์ว่าคำสั่งจะทำให้ราคาขยับ 25% หรือซื้อได้ที่ราคาเปิดของแท่ง คำสั่งมีขนาดใหญ่พอเมื่อเทียบกับแท่ง จนควรสงสัยสมมติฐานที่ว่าคำสั่งไม่มีผลกระทบต่อตลาด หากคำสั่งเดียวกันคิดเป็นเพียง 0.2% ของปริมาณซื้อขาย ความกังวลก็จะน้อยลง แม้ปริมาณซื้อขายเพียงอย่างเดียวก็ยังไม่บอกความลึกของ order book หรือการเติมสภาพคล่องกลับเข้ามา
นี่จึงเป็นเหตุผลว่าทำไม “slippage คือ 2 basis points” จึงเป็นการเลือกแบบจำลอง ไม่ใช่คุณสมบัติของสัญลักษณ์ซื้อขาย ใช้เป็นค่าตั้งต้นได้ แต่ใช้เป็นคำตอบสากลไม่ได้
ควรประเมินผลกระทบต่อตลาดจากข้อมูลแท่งราคาอย่างไร?
เริ่มจากมาตรวัดที่ข้อมูลของคุณรองรับได้ สำหรับแต่ละคำสั่งซื้อขาย ให้คำนวณอัตราการมีส่วนร่วม: มูลค่าคำสั่งหารด้วยมูลค่าซื้อขายในแท่งนั้น จากนั้นตรวจดูว่าผลลัพธ์ของกลยุทธ์เปลี่ยนไปอย่างไรในแต่ละช่วงอัตราการมีส่วนร่วม ตารางด้านล่างเป็นตัวอย่างแบบง่ายโดยเจตนา ค่าผลกระทบที่สมมติขึ้นมีไว้ใช้ทดสอบภาวะกดดัน ไม่ใช่ค่าประมาณการ execute ของตลาดซื้อขายใดโดยเฉพาะ
| มูลค่าคำสั่ง / มูลค่าซื้อขายในแท่ง | ผลกระทบทางเดียวเพื่อประกอบตัวอย่าง | คำถามที่ควรถาม |
|---|---|---|
| 0.2% | 1 bp | สเปรดและค่าธรรมเนียม taker สูงกว่าค่านี้อยู่แล้วหรือไม่? |
| 2% | 5 bp | กำไรส่วนเกินยังอยู่หรือไม่เมื่อสเปรดกว้างขึ้นและการ execute ช้าลง? |
| 20% | 25 bp | อัตราการมีส่วนร่วมจะเปลี่ยนเส้นทางราคาเองหรือไม่? |
1 basis point เท่ากับ 0.01% หากกลยุทธ์มีมูลค่าซื้อขาย $100,000 ในแต่ละฝั่ง ผลกระทบ 5 bp ทั้งขาซื้อและขาขายจะมีต้นทุนไปกลับประมาณ $100 ก่อนค่าธรรมเนียม การคำนวณนั้นตรงไปตรงมา แต่การตัดสินว่า 5 bp เป็นไปได้หรือไม่ต้องมีหลักฐานมากกว่านี้ หากสัญญาณของคุณซื้อขายตรงจังหวะที่ปริมาณซื้อขายพุ่งสูง การใช้ปริมาณซื้อขายตลอดทั้งแท่งเป็นตัวหารอาจทำให้อัตราการมีส่วนร่วมดูปลอดภัยเกินจริง ในช่วงนาทีที่คำสั่งของคุณมาถึงตลาด
การทดสอบความทนทานของ slippage ควรครอบคลุมอะไรบ้าง?
อย่าซ่อนความไม่แน่นอนในการ execute ไว้ในค่าเฉลี่ยเดียวทั้งพอร์ต แยกปัจจัยที่ทำให้คำตอบเปลี่ยนให้เห็นชัดเจน:
- ทิศทาง: คำสั่งซื้อข้ามไปจับคู่กับราคาแอสก์ ส่วนคำสั่งขายข้ามไปจับคู่กับราคาบิด ต้นทุนสเปรดเกิดขึ้นทั้งตอนเข้าและออกจากสถานะ
- ขนาดคำสั่ง: รายงานอัตราการมีส่วนร่วมแยกตามแต่ละเทรดและสภาวะสภาพคล่อง ไม่ใช่รายงานแค่ค่าเฉลี่ยของแบ็กเทสต์
- ประเภทคำสั่ง: คำสั่ง market จ่ายเพื่อให้ได้ความรวดเร็ว ส่วนคำสั่ง limit ที่ตั้งรออาจพลาดจังหวะราคา หรือไปต่อคิวหลังคำสั่งอื่น
- จังหวะเวลา: สัญญาณที่เกิดเมื่อแท่งปิดจะอ้างราคาปิดของแท่งนั้นเป็นราคาที่ execute ไม่ได้ หลังจากเห็นราคาปิดแล้ว
- สภาวะตลาด: ปรับสมมติฐานให้เผื่อมากขึ้นเมื่อราคาเคลื่อนไหวเร็ว ช่วงเวลาที่สภาพคล่องบาง และเงื่อนไขเฉพาะที่กระตุ้นกลยุทธ์
ทดสอบอย่างน้อยทั้งกรณีพื้นฐานและกรณีที่เข้มงวดกว่า ตัวอย่างเช่น เพิ่มสเปรดและผลกระทบที่สมมติไว้เป็น 2 เท่า แล้วตรวจดูว่าเทรดและช่วงเวลาใดทำให้ผลลัพธ์เปลี่ยนไป หากกลยุทธ์ทำงานได้เฉพาะเมื่อ execute ในสภาวะที่เอื้อที่สุด นั่นคือข้อค้นพบจากการวิจัย ควรรู้เรื่องนี้ก่อนเริ่ม paper trading
แยกค่าธรรมเนียม สเปรด และผลกระทบต่อตลาดเป็นรายการคนละบรรทัด ค่าธรรมเนียมอิงตามตารางของบัญชี ส่วนสเปรดและผลกระทบขึ้นอยู่กับการ execute เมื่อนำมารวมกันจะมองไม่ออกว่าสมมติฐานข้อไหนเป็นตัวกำหนดผลลัพธ์
เมื่อไรจึงต้องใช้ข้อมูล order book?
ใช้ข้อมูลธุรกรรมและราคา bid/ask เมื่อกำไรส่วนเกินของกลยุทธ์ใกล้เคียงกับสเปรด มีการซื้อขายบ่อย หรืออาศัยสภาพคล่องที่อยู่เพียงชั่วครู่ ใช้ภาพรวมความลึกของตลาดหรือข้อมูล order book ระดับเหตุการณ์ เมื่อสถานะในคิว การจับคู่คำสั่งเพียงบางส่วน หรือการลดลงของปริมาณใน order book เป็นตัวกำหนดว่าสามารถ execute ตามสัญญาณได้หรือไม่ แม้จะมีข้อมูลเหล่านี้ การจำลองย้อนหลังก็ยังสร้างผลกระทบต่อตลาดจากคำสั่งของคุณได้ไม่สมบูรณ์ เพราะข้อมูลสภาพคล่องที่สังเกตได้บันทึกไว้โดยไม่มีคำสั่งสมมติของคุณอยู่ในตลาด
สำหรับกลยุทธ์ที่ซื้อขายช้ากว่า ข้อมูลแท่งราคายังใช้คัดกรองแนวคิดได้ คงขนาดสถานะให้เล็กเมื่อเทียบกับปริมาณซื้อขายที่สังเกตได้ เปิดเผยเส้นโค้งผลกระทบที่ใช้สมมติ และทดสอบว่าการเปลี่ยนแปลงในระดับสมเหตุสมผลทำให้ผลลัพธ์หายไปหรือไม่ นี่คือการใช้แบบจำลองราคาที่ได้อย่างคร่าวๆ อย่างมีหลักรองรับ แต่การเรียกค่านั้นว่าราคาเฉลี่ยที่ได้อย่างแม่นยำนั้นไม่ใช่
เป้าหมายในทางปฏิบัติไม่ใช่การเดาตัวเลข slippage ที่ถูกต้องเพียงค่าเดียว แต่คือการหาช่วงที่กลยุทธ์เริ่มใช้การไม่ได้ แล้วตรวจดูว่าข้อมูลและขนาดคำสั่งของคุณอยู่ห่างจากขีดจำกัดนั้นอย่างสบายใจหรือไม่ หากไม่เป็นเช่นนั้น งานวิจัยขั้นต่อไปที่มีประโยชน์คือการหาข้อมูลการ execute ที่ดีขึ้น ไม่ใช่เพิ่มทศนิยมอีกตำแหน่งในรายงานแบ็กเทสต์
← บทความทั้งหมด


