Backtest หุ้นมักจัดการเงินปันผลผิดพลาดอยู่ 1 ใน 3 แบบ ได้แก่ ใช้ชุดข้อมูลราคาที่ปรับแล้วเสมือนเป็นราคาซื้อขายจริง บันทึกเงินสดผิดวัน หรือไม่สนใจเงินปันผลเลย แต่ละแบบอาจสร้างกราฟที่ดูสมเหตุสมผล ทั้งที่มูลค่าบัญชีไม่ถูกต้อง
สิ่งสำคัญคือการแยกราคาหุ้นที่ซื้อขายจริงออกจากเงินสดหรือจำนวนหุ้นที่เกิดจากการดำเนินการของบริษัท ต้องติดตามทั้ง 2 อย่าง เงินปันผลเปลี่ยนสิทธิที่ผู้ถือหุ้นจะได้รับ แต่ไม่ได้ทำให้ราคาที่ลดลงในวันขึ้นเครื่องหมาย XD หายไปจากบันทึกตลาด
ข้อผิดพลาดที่ 1: ซื้อขายด้วยราคาปิดที่ปรับแล้วเสมือนเป็นราคาเสนอซื้อขายจริง
ผู้ให้บริการข้อมูลในอดีตมักปรับราคาตามเงินปันผล เพื่อให้กราฟแสดงผลตอบแทนรวมกรณีนำเงินปันผลไปลงทุนต่อ ชุดข้อมูลนี้มีประโยชน์กับการวิเคราะห์บางประเภท แต่ไม่ใช่ราคาที่คำสั่งซื้อขายจะจับคู่ได้จริง
ลองพิจารณาหุ้นที่ปิดตลาดที่ราคา $100 ก่อนขึ้นเครื่องหมาย XD โดยจ่ายเงินปันผล $1 ต่อหุ้น หากเปิดตลาดที่ $99 และไม่มีปัจจัยอื่นเปลี่ยนแปลง กราฟราคาที่ไม่ปรับจะแสดงการลดลง 1% ส่วนชุดข้อมูลราคาที่ปรับเงินปันผลแล้วอาจลบช่องว่างนี้ด้วยการปรับสเกลราคาย้อนหลัง Backtest ที่ใช้ชุดข้อมูลปรับแล้วทั้งสร้างสัญญาณและจำลองการจับคู่คำสั่ง จึงนำหลักการคำนวณผลตอบแทนมาปะปนกับราคาเสนอซื้อขายจริง
ผลเสียที่เกิดขึ้นขึ้นอยู่กับกลยุทธ์ เงื่อนไขที่อิงจุดสูงสุดล่าสุดอาจทำงานเพราะราคาไม่เคยซื้อขายที่ระดับนั้น Stop อาจทำงานที่ระดับราคาซึ่งผ่านการปรับแล้ว ผลตอบแทนที่คำนวณจากชุดข้อมูลเดียวกันอาจดูราบรื่น ขณะที่ราคาที่ใช้จับคู่คำสั่งมาจากอีกชุดหนึ่ง
| ฟิลด์ราคา | เหมาะสำหรับ | ข้อสมมติที่ไม่ปลอดภัย |
|---|---|---|
| ราคาซื้อขายหรือราคาเสนอซื้อขายดิบ | สร้างสัญญาณและจำลองการส่งคำสั่ง โดยกำหนดเวลาให้เหมาะสม | ราคานี้รวมกระแสเงินสดของผู้ถือหุ้นไว้แล้ว |
| ราคาปิดที่ปรับเงินปันผลแล้ว | เปรียบเทียบผลตอบแทนรวมบางประเภท | ราคานี้เป็นราคาที่ใช้ซื้อขายจริงได้ |
| แท่ง OHLC ที่ปรับแล้ว | วิเคราะห์เมื่อเข้าใจวิธีการปรับราคาแล้ว | ราคาสูงสุดและต่ำสุดระหว่างวันตรงกับราคาเสนอซื้อขายในอดีต |
ข้อผิดพลาดที่ 2: บันทึกเงินปันผลในวันขึ้นเครื่องหมาย XD
วันขึ้นเครื่องหมาย XD เป็นตัวกำหนดว่าใครมีสิทธิได้รับเงินปันผลตามกฎของตลาดนั้น โดยปกติเงินสดจะเข้าบัญชีภายหลังในวันจ่ายเงินปันผล วันที่ทั้ง 2 มีความหมายต่างกันในการจำลองบัญชี
สมมติว่าคุณถือหุ้น 100 หุ้นตลอดวันขึ้นเครื่องหมาย XD ของเงินปันผลที่ประกาศไว้หุ้นละ $0.50 ซึ่งจะจ่ายในอีก 2 สัปดาห์ กลยุทธ์อาจมีสิทธิรับเงิน $50 ตั้งแต่วันขึ้นเครื่องหมาย XD แต่ตอนนั้นยังไม่มีเงินสด $50 ที่ใช้จ่ายได้ หากตัวจำลองเพิ่มเงินเข้ากำลังซื้อทันที ก็อาจนำไปซื้อหุ้นโดยใช้เงินปันผลที่บัญชีจริงยังใช้ไม่ได้
สำหรับการคำนวณผลตอบแทนแบบซื้อแล้วถือระยะยาว การบันทึกสิทธิรับเงินในวันขึ้นเครื่องหมาย XD อาจเพียงพอ แต่สำหรับกลยุทธ์ที่นำเงินปันผลกลับไปลงทุน ติดตามกำลังซื้อ หรือซื้อขายโดยคำนึงถึงการชำระราคา ควรแยกเงินที่มีสิทธิได้รับออกจากวันที่จ่ายเงิน ใช้กำหนดการจ่ายเงินที่ทราบ ณ เวลานั้น การแก้ไขข้อมูลภายหลังไม่ควรเปลี่ยนสิ่งที่ระบบคาดการณ์ได้ในขณะนั้น
สำหรับสถานะ Long พื้นฐาน การที่ราคาลดลงใกล้เคียงกับจำนวนเงินปันผลในวันขึ้นเครื่องหมาย XD ไม่ได้แปลว่าขาดทุนจากการซื้อขายโดยอัตโนมัติ บัญชีมีมูลค่าหุ้นลดลงและมีสิทธิรับเงินปันผล มูลค่าทั้ง 2 ส่วนจะหักล้างกันพอดีหรือไม่ ขึ้นอยู่กับการเคลื่อนไหวของตลาด ภาษี ภาษีหัก ณ ที่จ่าย และหลักเกณฑ์ที่ใช้จำลอง
ข้อผิดพลาดที่ 3: ไม่สนใจเงินปันผลเพราะราคาลดลงไปแล้ว
การใช้ราคาที่ไม่ปรับและละเว้นกระแสเงินสดจะทำให้ผลคลาดเคลื่อนไปอีกทางหนึ่ง ในตัวอย่างราคาลดจาก $100 เป็น $99 ผู้ที่ถือหุ้น 100 หุ้นจะมีหุ้นมูลค่า $9,900 แทน $10,000 และยังมีสิทธิรับเงินปันผล $100 หากนับเฉพาะหุ้น จะรายงานว่าขาดทุน $100 ทั้งที่มูลค่ารวมอย่างง่ายยังเท่าเดิม
ความผิดพลาดนี้อาจส่งผลมากเป็นพิเศษเมื่อดูข้อมูลย้อนหลังเป็นเวลานานหรือพอร์ตลงทุนมีหุ้นที่จ่ายเงินปันผลสูงจำนวนมาก และยังส่งผลต่อสัญญาณได้ด้วย กลยุทธ์ที่ตีความช่องว่างราคาในวันขึ้นเครื่องหมาย XD ทุกครั้งว่าเป็นแรงกดดันขาลงทั่วไป อาจขายผิดจังหวะพอดี เงินปันผลอาจอธิบายช่องว่างราคาได้ แต่ไม่ได้กำหนดว่าตลาดจะเคลื่อนไหวต่อไปอย่างไร
ควรจำลองเงินปันผลใน Backtest หุ้นอย่างไร?
เริ่มจากราคาดิบที่ทราบได้ ณ เวลานั้นเพื่อใช้ตัดสินใจและจำลองการจับคู่คำสั่ง จากนั้นจำลองการดำเนินการของบริษัทเป็นเหตุการณ์ในบัญชีอย่างชัดเจน รายละเอียดที่ต้องใช้ขึ้นอยู่กับคำถามที่ Backtest กำลังตอบ
- สำหรับการวัดผลตอบแทนรวม: รวมเงินปันผลที่มีสิทธิได้รับไว้ในมูลค่าพอร์ต พร้อมระบุสมมติฐานการนำเงินกลับไปลงทุน
- สำหรับการจำลองกลยุทธ์: แยกจำนวนหุ้น เงินที่มีสิทธิได้รับ เงินสดที่จ่ายแล้ว และกำลังซื้อออกจากกันเมื่อจังหวะเวลามีผล
- สำหรับสัญญาณและการส่งคำสั่ง: ใช้ฟิลด์ราคาที่ตรงกับระดับราคาตลาดจริงในอดีตและเวลาที่ข้อมูลนั้นพร้อมใช้งาน
ตรวจสอบการแตกพาร์ เงินปันผลพิเศษ และภาษีหัก ณ ที่จ่ายแยกกันด้วย เงินปันผลปกติ $1 กับเงินจ่ายพิเศษ $10 อาจทำให้เกิดการปรับราคาต่างกัน และส่งผลต่อพฤติกรรมของกลยุทธ์อย่างมาก โดยทั่วไปการทำเครื่องหมายว่า “ปรับแล้ว” เพียงอย่างเดียวจากผู้ให้บริการข้อมูลยังบอกไม่พอ
เมื่อ Backtest คร่อมวันขึ้นเครื่องหมาย XD ให้ถามว่าก่อนถึงวันนั้นบัญชีถืออะไร ได้สิทธิรับอะไร เงินเข้าวันไหน และใช้ชุดข้อมูลราคาใดในการตัดสินใจ หากคำตอบทั้งหมดซ่อนอยู่ในคอลัมน์ราคาปิดที่ปรับแล้วเพียงคอลัมน์เดียว เส้นกราฟมูลค่าพอร์ตย่อมแฝงสมมติฐานที่คุณมองไม่เห็น
← บทความทั้งหมด

