ความเสี่ยงและกลยุทธ์ · ขั้นสูง · ใช้เวลาอ่าน 8 นาที

การตรวจสอบแบบเลื่อนช่วงไปข้างหน้า: อย่าให้ข้อมูลวันพรุ่งนี้เข้าสู่การฝึก

ออกแบบกระบวนการวิจัยตามลำดับเวลา เพื่อประเมินขั้นตอนตัดสินใจทั้งหมด ไม่ใช่เพียงกฎย้อนหลังที่ปรับแต่งจนสวยงาม

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

ทดสอบกระบวนการแทนสูตรสุดท้าย

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

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

เลือกข้อมูลย้อนหลังแบบเลื่อนหรือขยายช่วงอย่างตั้งใจ

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

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

ข้อมูลรั่วไหลซ่อนอยู่ในการเตรียมข้อมูล

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

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

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

ปรับแต่งภายในชุดฝึก เก็บชุดประเมินไว้โดยไม่แตะต้อง

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

รวมผลตอบแทนจากช่วงทดสอบต่อเนื่องตามลำดับเวลาจริง รวมช่วงที่ไม่มีสถานะด้วย ใช้ค่าธรรมเนียมและสมมติฐานส่งคำสั่งให้สอดคล้องกัน อย่าเฉลี่ยอัตราส่วนที่ดูดีของแต่ละส่วนทดสอบโดยไม่ดูความหมายทางเศรษฐกิจ มิฉะนั้นช่วงสั้นสงบอาจดูสำคัญเท่าช่วงยาวผันผวน แสดงการกระจายผลระหว่างช่วงควบคู่กับผลรวม

ผลที่อ่อนแอเป็นหลักฐานที่ใช้ได้

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

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

ส่งต่อสถานะและเงินทุนข้ามรอยต่อการทดสอบ

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

เงินทุนต้องต่อเนื่องเช่นกัน กำไร 10% แล้วขาดทุน 10% ให้ 1.10 × 0.90 = 0.99 หรือขาดทุน 1% เมื่อช่วงทดสอบซ้อนกัน อย่านับวันเดียวสองครั้ง อธิบายการเลือกแบบจำลองหรือแบ่งทุน

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

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

ทดสอบสั้น ๆ

เข้าใจแนวคิดแล้วหรือยัง?

การดำเนินการใดทำให้ข้อมูลอนาคตรั่วไหล?

อ่านเพิ่มเติม · แหล่งข้อมูลปฐมภูมิ

scikit-learn · เอกสาร TimeSeriesSplit ↗
ความรู้ทั่วไป ไม่ใช่คำแนะนำให้ซื้อขาย ตัวอย่างลดความซับซ้อนของตลาดจริง ตรวจสอบสัญญา ต้นทุน และกฎที่แท้จริงของผลิตภัณฑ์ก่อนใช้งาน
ถัดไป: ความเสี่ยงพอร์ต: สิ่งที่น้ำหนักซ่อนไว้ →