สารบัญบทความ
- หลักฐานและขอบเขต
- ภาพประกอบ
- กระบวนการ
- ตอบคำถามสี่ข้อที่แตกต่างกันตามลำดับ
- 1 ข้อมูล ณ จุดเวลาและความหมายของปริมาณ
- 2. เวลาการยืนยันและความคงที่ของคำนำหน้า
- 3 ต้องมีคำสั่งซื้ออยู่ก่อนจึงจะสามารถดำเนินการได้
- 4 การกำหนดขนาดความเสี่ยงต้องใช้หน่วยที่สอดคล้องกัน
- 5 การประเมิน walk-forward, purging และ embargo
- 6 เปรียบเทียบการตัดองค์ประกอบ การทดลองหลายชุดและการทดสอบภาวะกดดัน
- 7 ตัวชี้วัด ความคาดหวัง และระดับของหลักฐาน
- เผยแพร่ผลงานทางวิชาการที่นักวิจัยคนอื่นสามารถตรวจสอบได้
- ข้อผิดพลาดที่พบบ่อย
- รายการตรวจสอบเชิงปฏิบัติ
- คำถามที่พบบ่อย
- แหล่งวิจัย
หลักฐานและขอบเขต
บทความนี้เสนอขั้นตอนการตรวจสอบความถูกต้อง ไม่ใช่กลยุทธ์ที่สร้างผลกำไรหรือการทดสอบย้อนหลังแบบใหม่ แหล่งข้อมูลที่อ้างถึงกล่าวถึงการอนุมานรูปแบบ กลไกการจำลอง และการเกิดภาวะโอเวอร์ฟิตติ้งทางสถิติ ซึ่งไม่มีแหล่งใดรับรองความสามารถในการทำกำไรของทุกวิธีในคลังข้อมูลนี้
ขั้นตอนปฏิบัติ
- ลงทะเบียนสมมติฐานระงับการเปลี่ยนแปลงของตลาด กฎระเบียบ ต้นทุน ตัวชี้วัด และการทดลองที่ได้รับอนุญาต
- ตรวจสอบความถูกต้องของข้อมูลที่ป้อนตรวจสอบความพร้อมใช้งาน ณ จุดเวลา ความหมายของปริมาณ ขอบเขตการใช้งาน และการประทับเวลา
- เล่นซ้ำแบบเป็นเหตุเป็นผลตรวจสอบสัญญาณก่อนสร้างคำสั่งซื้อและอนุญาตให้ดำเนินการซื้อขาย
- จำกัดความเสี่ยงใช้ข้อกำหนดขนาดสถานะ มาร์จิน การเปิดรับความเสี่ยงและทดสอบช่องว่างราคา
- ประเมินแบบ walk-forwardลบป้ายกำกับที่ซ้ำซ้อน เลือกตามการตรวจสอบความถูกต้อง และตรึงการทดสอบแต่ละครั้ง
- รายงานหลักฐานทั้งหมดเผยแพร่ผลเปรียบเทียบองค์ประกอบ การทดสอบภาวะกดดัน ความไม่แน่นอนและระดับหลักฐาน
ตอบคำถามสี่ข้อที่แตกต่างกันตามลำดับ
ประการแรก รูปแบบนั้นสามารถจดจำได้อย่างสม่ำเสมอหรือไม่? ประการที่สอง มันมีข้อมูลเงื่อนไขเกี่ยวกับผลลัพธ์ที่ตามมาหรือไม่? ประการที่สาม ข้อมูลนั้นสามารถแปลงเป็นผลตอบแทนสุทธิที่เป็นบวกพร้อมคำสั่งซื้อที่เป็นไปได้หรือไม่? ประการที่สี่ ผลลัพธ์นั้นยังคงอยู่กับข้อมูลที่ไม่เคยเห็นมาก่อนหรือไม่? การศึกษาที่ตอบคำถามเพียงข้อเดียวไม่ควรนำเสนอว่าตอบคำถามทั้งสี่ข้อ
การวิจัยรูปแบบเชิงทางการแสดงให้เห็นว่าสามารถตรวจสอบการจดจำและการอนุมานทางสถิติได้อย่างไร [1] รูปแบบ Double Top ที่ดูน่าเชื่อถือหรือการกระจายผลตอบแทนที่แตกต่างกันทางสถิติยังไม่ใช่ระบบการซื้อขายที่สมบูรณ์ การเข้า การขาย ต้นทุน การกำหนดขนาดตำแหน่ง และชุดโอกาสยังคงเป็นตัวกำหนดผลลัพธ์ทางเศรษฐกิจ
เขียนการ์ดสมมติฐานก่อนตรวจสอบประสิทธิภาพ โดยระบุตลาดที่เหมาะสม กรอบเวลา ฟิลด์ป้อนข้อมูล กฎการสร้าง การหน่วงเวลาการยืนยัน กลไกการเข้าและออก งบประมาณความเสี่ยง ต้นทุน เกณฑ์มาตรฐาน ตัวชี้วัดการประเมิน และการเปลี่ยนแปลงพารามิเตอร์ที่อนุญาต การ์ดควรมีความแม่นยำมากพอที่ผู้อื่นสามารถนำไปใช้ได้โดยไม่ต้องตีความความสวยงามของกราฟ
กำหนดผลลบที่มีประโยชน์ไว้ด้วย เช่น ตัวกรองปริมาณซื้อขายอาจไม่เพิ่มค่าคาดหวังสุทธิหลังปรับการเปิดรับความเสี่ยงให้เท่ากัน การบันทึกผลนี้ป้องกันการเปลี่ยนคำถามวิจัยเงียบ ๆ ทุกครั้งที่ไม่ได้ผลตามใจ
1 ข้อมูล ณ จุดเวลาและความหมายของปริมาณ
แยกแยะให้ชัดเจนว่าเหตุการณ์เกิดขึ้นเมื่อใด ข้อมูลได้รับเมื่อใด และกลยุทธ์สามารถนำข้อมูลเหล่านั้นไปใช้เมื่อใด การประทับเวลาเพียงอย่างเดียวอาจไม่แสดงให้เห็นถึงการป้อนข้อมูลล่าช้า การแก้ไข หรือความล่าช้าในการเผยแพร่ การจำลองในอดีตควรสร้างชุดข้อมูลที่เกี่ยวข้องขึ้นมาใหม่ แทนที่จะใช้ฐานข้อมูลที่แก้ไขล่าสุดโดยไม่เลือกปฏิบัติ
เก็บรหัสตราสารถาวร องค์ประกอบกลุ่มสินทรัพย์ที่ลงทุนได้ในอดีต และเหตุการณ์บริษัท หุ้นที่รอดอยู่วันนี้ไม่เท่ากับทั้งกลุ่มที่ซื้อขายได้ในอดีต ต้องจัดการเพิกถอน ใช้ ticker ซ้ำ เข้าจดทะเบียนใหม่และราคาขาดหาย ส่วนวันมีผลกับวันประกาศของเหตุการณ์บริษัทตอบคำถามความพร้อมใช้ของข้อมูลคนละด้าน
ใช้ราคาซื้อขายจริงสำหรับการเติมสัญญา และใช้หลักเกณฑ์การปรับค่าที่กำหนดไว้สำหรับการส่งสัญญาณ ชุดข้อมูลฟิวเจอร์สต่อเนื่องอาจมีประโยชน์ในเชิงวิเคราะห์ แต่การเติมสัญญาจะต้องเกิดขึ้นในสัญญาจริงในราคาจริง การทำธุรกรรมโรลโอเวอร์ ตัวคูณ และการหมดอายุของสัญญาไม่สามารถอนุมานได้จากกราฟที่เชื่อมต่อกันอย่างราบรื่น
ปริมาณการซื้อขายนั้นแตกต่างกันไปตามแต่ละตลาด ปริมาณการซื้อขายหุ้นในตลาดหลักทรัพย์ ปริมาณการซื้อขายสัญญาซื้อขายล่วงหน้า จำนวนการเปลี่ยนแปลงราคาในตลาดแลกเปลี่ยนเงินตราต่างประเทศ และปริมาณการซื้อขายในตลาดคริปโตเคอร์เรนซี ล้วนเป็นการวัดที่แตกต่างกัน ป้ายกำกับเช่น ปริมาณการซื้อ หรือ เดลต้า จำเป็นต้องมีวิธีการจัดประเภทที่แท้จริง การใช้ OHLCV ทั่วไปไม่ได้เปิดเผยตัวตนของผู้เข้าร่วมหรือกระแสคำสั่งซื้อขายทั่วทั้งตลาด
สร้างการทดสอบความสมบูรณ์ของข้อมูลสำหรับแท่งกราฟที่ซ้ำกัน ช่วงเวลาที่ขาดหายไป ความสัมพันธ์ OHLC ที่เป็นไปไม่ได้ ปริมาณการซื้อขายที่เป็นลบ และความไม่ต่อเนื่องของเขตเวลา รักษาเวอร์ชันของชุดข้อมูลและบันทึกการแก้ไขไว้ โค้ดเบสที่สามารถสร้างซ้ำได้โดยมีอินพุตที่ไม่ระบุเวอร์ชันที่เปลี่ยนแปลงไป จะไม่ทำให้การทดลองสามารถสร้างซ้ำได้
2. เวลาการยืนยันและความคงที่ของคำนำหน้า
จุดหมุนที่ดัชนี i ซึ่งต้องการแท่งเทียน r แท่งทางด้านขวา จะได้รับการยืนยันไม่เร็วกว่า i+r สามารถวาดตำแหน่งของจุดหมุนที่ i เพื่อการวิเคราะห์ได้ แต่ไม่สามารถตัดสินใจซื้อขายย้อนหลังได้ บันทึก occurred_at และ confirmed_at เป็นฟิลด์แยกกัน และดำเนินการจากเวลาที่บันทึกไว้ล่าสุด
ความไม่เปลี่ยนแปลงของคำนำหน้าเป็นวิธีการทดสอบเชิงปฏิบัติ: รันอัลกอริทึมกับคำนำหน้าแต่ละส่วนของชุดข้อมูลที่กำลังเติบโต และเปรียบเทียบกับเหตุการณ์ที่ได้รับการยืนยันแล้วที่เผยแพร่ไปแล้ว การเพิ่มข้อมูลสังเกตการณ์ในอนาคตจะต้องไม่เขียนทับข้อมูลเดิม ผู้สมัครชั่วคราวอาจเปลี่ยนแปลงได้หากมีการระบุไว้อย่างชัดเจนว่าเป็นผู้สมัครชั่วคราว สัญญาณทางประวัติศาสตร์ที่ได้รับการยืนยันแล้วควรมีเสถียรภาพภายใต้ข้อมูลป้อนเข้าที่ไม่เปลี่ยนแปลง
ข้อมูลป้อนเข้าในกรอบเวลาที่สูงกว่านั้นก็ต้องการระเบียบวินัยเช่นเดียวกัน ควรนำค่ารายชั่วโมงที่เสร็จสมบูรณ์แล้วไปเชื่อมโยงกับกลยุทธ์รายนาทีก็ต่อเมื่อมีการสังเกตการณ์รายชั่วโมงนั้นแล้วเท่านั้น ค่าสูงสุด ต่ำสุด หรือค่าปิดสุดท้ายของชั่วโมงปัจจุบันที่ยังไม่เสร็จสมบูรณ์นั้น ไม่สามารถนำไปใช้กับการตัดสินใจในนาทีก่อนหน้าได้
ปรับค่ามาตรฐาน พารามิเตอร์การจัดกลุ่ม และแบบจำลองทางสถิติให้เหมาะสมกับพาร์ติชันทางประวัติศาสตร์ที่อนุญาต ตัวปรับขนาดที่ฝึกฝนบนชุดข้อมูลทั้งหมดจะรั่วไหลข้อมูลการกระจายในอนาคต แม้ว่าการเข้าซื้อขายแต่ละรายการจะถูกหน่วงเวลาอย่างถูกต้องก็ตาม ความเป็นเหตุเป็นผลนั้นใช้ได้กับการประมวลผลล่วงหน้าเช่นเดียวกับตัวชี้วัด
การทดสอบเชิงข้อมูลจะเปลี่ยนแปลงราคาและปริมาณในอนาคตโดยเจตนา ในขณะที่คงคำนำหน้าข้อมูลในอดีตไว้คงที่ หากสัญญาณที่ได้รับการยืนยันก่อนหน้านี้เปลี่ยนแปลง ให้ติดตามความสัมพันธ์แทนที่จะสันนิษฐานว่าแพลตฟอร์มการสร้างกราฟได้แก้ไขปัญหาการเปลี่ยนแปลงราคาโดยอัตโนมัติแล้ว
3 ต้องมีคำสั่งซื้ออยู่ก่อนจึงจะสามารถดำเนินการได้
แสดงลำดับขั้นตอนตั้งแต่สัญญาณไปจนถึงการสร้างคำสั่งซื้อ การส่ง การยอมรับ การกระตุ้น การเติมบางส่วน และการเสร็จสิ้นหรือการยกเลิก อาจมีความล่าช้าในแต่ละขั้นตอน ราคาที่แตะระดับในอดีตก่อนการยอมรับคำสั่งซื้อจะไม่ถือเป็นการเติมที่พร้อมใช้งานสำหรับคำสั่งซื้อนั้น
เอกสารกลยุทธ์แพลตฟอร์มช่วยระบุเวลาจำลองและสมมติฐานการสั่งซื้อ [2] กลไกเหล่านั้นเป็นข้อกำหนดของโปรแกรมจำลอง ไม่ใช่การรับประกันการดำเนินการซื้อขายจริง คำสั่ง Stop-Market จำกัดการเปิดใช้งาน ในขณะที่ราคาสุดท้ายอาจแตกต่างกัน คำสั่ง Limit จำกัดราคาแต่ราคาอาจไม่ได้รับการดำเนินการ [3]
แท่งเทียน OHLC ไม่แสดงลำดับของเหตุการณ์ภายในแท่งเทียน หากจุดเข้า จุดหยุดขาดทุน และจุดทำกำไรทั้งหมดอยู่ภายในแท่งเทียนเดียวกัน ให้ใช้ข้อมูลที่ละเอียดกว่า หรือเปิดเผยขอบเขตผลลัพธ์ อย่าเลือกเส้นทางใดก็ตามที่ช่วยปรับปรุงกลยุทธ์ คำสั่งซื้อขายที่พักไว้ก็ไม่สามารถยกเลิกได้หลังจากสังเกตเห็นการเติมคำสั่งซื้อที่ไม่เอื้ออำนวยซึ่งเกิดจากการมีอยู่ของคำสั่งซื้อนั้น
จำลองการจับคู่บางส่วนและจำนวนคงค้าง หากสร้าง stop ป้องกันหลังเข้าแล้ว ต้องระบุช่วงที่สถานะยังไม่มีการป้องกัน หากกลับทิศสถานะก่อนคำสั่งเข้าครบ ให้กระทบยอดความเสี่ยงจริงและคำสั่งคงค้าง ไม่สมมติว่าจำนวนเป้าหมายทุกคำขอสำเร็จ
ค่าใช้จ่ายต่างๆ ได้แก่ ค่าคอมมิชชั่น ค่าสเปรด ค่าความคลาดเคลื่อน ผลกระทบต่อตลาด เงินกู้ยืม และเงินทุนหรือการจัดหาเงินทุนที่เกี่ยวข้อง เรียกเก็บค่าใช้จ่ายเหล่านี้ตามเวลาที่ระบุไว้ในสัญญาจริง อย่ากำหนดช่วงเวลาการจัดหาเงินทุนแบบเดียวกันสำหรับผลิตภัณฑ์คริปโตทั้งหมด และอย่าเพิ่มค่าสเปรดอีกครั้งเมื่อราคาเสนอซื้อ/เสนอขายได้รวมค่าสเปรดไว้แล้ว
4 การกำหนดขนาดความเสี่ยงต้องใช้หน่วยที่สอดคล้องกัน
ตราสารเชิงเส้นใช้สูตรจำนวนq=floor(B/(abs(E−S)×multiplier+c_unit)) โดยBคืองบขาดทุนเงินสด Eคือราคาเข้าที่วางแผน Sคือราคาหยุดขาดทุน และc_unitคือต้นทุนเข้าและออกโดยประมาณต่อหน่วย ต้องแปลงตัวเศษและตัวส่วนเป็นสกุลเงินบัญชีเดียวกัน
สูตรนี้ประมาณการความสูญเสียที่วางแผนไว้ ไม่ได้จำกัดความสูญเสียสูงสุด สัญญาผกผัน ออปชั่น และผลิตภัณฑ์ที่ไม่เป็นเชิงเส้น ต้องใช้การคำนวณผลตอบแทนของตนเอง แทนที่จะใช้สูตรเดียวกับหุ้น ขนาดล็อตขั้นต่ำและมาร์จินของโบรกเกอร์อาจลดปริมาณที่สามารถทำได้ลงไปอีก
ตัวอย่างสมมติทุนสุทธิในบัญชี$20,000 เสี่ยง0.5% จึงได้B=$100 เมื่อราคาเข้า100 หยุดขาดทุน99.50 และต้นทุนโดยประมาณต่อหุ้น$0.04 จะได้q=floor(100/0.54)=185 ขาดทุนตามแผนรวมต้นทุนคือ$99.90
หากทางออกนั้นเกิดขึ้นที่ 99.20 แทน ราคาที่ขาดทุนจะเป็น $148 และต้นทุนที่ประเมินไว้จะเท่ากันคือ $7.40 รวมเป็น $155.40 รายงานที่ตัดทอนการขาดทุนนี้ให้เหลือตามงบประมาณ $100 ที่ตั้งเป้าไว้ จะลบล้างความเสี่ยงในการดำเนินการ แทนที่จะวัดความเสี่ยงนั้น
ในระดับพอร์ตโฟลิโอ ให้สำรองความเสี่ยงสำหรับคำสั่งซื้อที่เปิดอยู่ จำกัดมูลค่ารวมและมูลค่าสุทธิ และความเสี่ยงที่สัมพันธ์กันโดยรวม ตำแหน่งเล็กๆ หลายตำแหน่งอาจตอบสนองต่อภาวะตลาดที่ผันผวนเดียวกันได้ รายงานทั้งความเสี่ยงจากการหยุดขาดทุนตามแผน และการขาดทุนภายใต้สภาวะที่ตลาดมีการเคลื่อนไหวที่ไม่พึงประสงค์พร้อมกัน
5 การประเมิน walk-forward, purging และ embargo
แยกขั้นตอนการพัฒนา การตรวจสอบความถูกต้อง และการประเมินผลตามช่วงเวลา เริ่มจากการปรับโมเดลให้เข้ากับข้อมูลฝึกฝน เลือกการตั้งค่าที่อนุญาตโดยใช้ข้อมูลตรวจสอบความถูกต้อง จากนั้นตรึงการตั้งค่าไว้ก่อนที่จะประเมินส่วนทดสอบถัดไป การทำซ้ำกระบวนการตามลำดับเวลาเช่นนี้จะวัดผลการปรับปรุงอย่างต่อเนื่อง แทนที่จะเป็นการเลือกการตั้งค่าเพียงครั้งเดียวจากผลลัพธ์ที่ผ่านมา
ป้ายกำกับสามารถทับซ้อนกับขอบเขตได้ หากผลลัพธ์ของตัวอย่างการฝึกอบรมขยายไปถึงช่วงการตรวจสอบหรือช่วงทดสอบ ให้ลบตัวอย่างนั้นออกจากชุดข้อมูลการฝึกอบรม ในทำนองเดียวกัน ป้ายกำกับการตรวจสอบที่ใช้ในการเลือกไม่ควรมีผลลัพธ์จากช่วงทดสอบ บันทึกจุดเริ่มต้นและจุดสิ้นสุดของแต่ละป้ายกำกับแทนที่จะลบจำนวนแถวที่คาดเดาเอาไว้
การจำกัดการเข้าถึงข้อมูล (embargo) จะไม่รวมข้อมูลที่อยู่ใกล้เคียงกัน ซึ่งการออกแบบการตรวจสอบแบบไขว้ (cross-validation) จะอนุญาตให้ตัวอย่างการฝึกอบรมในอนาคตแบ่งปันข้อมูลกับช่วงเวลาทดสอบได้ การจำกัดการเข้าถึงข้อมูลนี้ไม่ใช่สิ่งทดแทนการแยกตามลำดับเวลาได้โดยอัตโนมัติ และไม่ได้แก้ไขการประทับเวลาของคุณลักษณะที่ไม่ถูกต้อง การนำเสนอของผู้เขียนที่อ้างถึงได้กล่าวถึงกลไกเหล่านี้ แต่ไม่ได้เป็นหลักฐานว่าความยาวของการจำกัดการเข้าถึงข้อมูลทุกรูปแบบนั้นเพียงพอ [4]
หากดูผล walk-forward ซ้ำระหว่างวิจัย ให้เก็บชุด final holdout เพิ่ม เมื่อใช้ผลเพื่อแก้โมเดล ผลนั้นก็มีส่วนในงานพัฒนาแล้ว ต้องเลือกแบบสุดท้ายจากข้อมูลพัฒนาเท่านั้น ประเมิน holdout ที่ล็อกไว้ครั้งเดียว และรายงานโดยไม่ปรับพารามิเตอร์ซ้ำ
การแปลงข้อมูลที่เหมาะสมทุกอย่างจะต้องอยู่ภายในขอบเขตที่กำหนดไว้ ได้แก่ ตัวปรับขนาด การเลือกคุณลักษณะ เกณฑ์ของระบอบ และเส้นฐานปริมาตรที่ต้องมีการประมาณค่า การแบ่งฉลากที่ผ่านการคัดกรองอย่างระมัดระวังก็อาจยังรั่วไหลได้หากขั้นตอนการประมวลผลล่วงหน้าถูกนำไปใช้กับตัวอย่างทั้งหมด
6 เปรียบเทียบการตัดองค์ประกอบ การทดลองหลายชุดและการทดสอบภาวะกดดัน
การวิเคราะห์แบบ Ablation ถามว่าแต่ละองค์ประกอบเพิ่มอะไรบ้าง เปรียบเทียบราคาอย่างเดียว ราคาบวก RVOL และราคาบวก RVOL บวก VWAP โดยใช้ขอบเขตโอกาส ขนาด และสมมติฐานการดำเนินการเดียวกัน เปลี่ยนตรรกะการเข้าและออกแยกกันเมื่อทั้งสองใช้ตัวชี้วัดใหม่ มิเช่นนั้นแหล่งที่มาของการปรับปรุงจะไม่ชัดเจน
จัดทำทะเบียนการทดลองโดยรวมถึงแนวคิดที่ล้มเหลว ตัวกรองแผนภูมิแบบกำหนดเอง กรอบเวลา ชุดข้อมูล ตารางพารามิเตอร์ และกลุ่มย่อยของตลาด การรายงานเฉพาะการกำหนดค่าที่ประสบความสำเร็จในขั้นสุดท้ายจะปกปิดจำนวนโอกาสที่นักวิจัยมีในการค้นพบผลลัพธ์ที่โชคดี
Deflated Sharpe Ratio แก้อคติจากการเลือกและผลตอบแทนที่ไม่ได้แจกแจงปกติภายใต้สมมติฐานของวิธี[5] ไม่ใช่ความน่าจะเป็นที่จะทำกำไรจริง ส่วน Probability of Backtest Overfitting วัดการเสื่อมของอันดับระหว่างส่วนข้อมูลตามกรอบของวิธี ไม่ใช่ความน่าจะเป็นโดยตรงที่เงินในบัญชีจะขาดทุน[6]
ทดสอบความเข้มงวดของต้นทุนการดำเนินการที่อัตราส่วนที่กำหนดไว้ล่วงหน้า เช่น 1.5 และ 2 หน่วงเวลาการเข้าซื้อขายหนึ่งแท่งเทียน ทดสอบพารามิเตอร์ใกล้เคียง และตรวจสอบความสัมพันธ์กับการซื้อขายที่ใหญ่ที่สุดห้าครั้ง นี่คือการทดสอบความไวที่เสนอ กลยุทธ์ตามแนวโน้มโดยธรรมชาติแล้วต้องอาศัยผู้ชนะรายใหญ่ การลบผู้ชนะรายใหญ่ออกนั้นให้ข้อมูลที่เป็นประโยชน์ แต่ไม่ใช่กฎที่ตัดสินว่าสำเร็จหรือล้มเหลวโดยอัตโนมัติ
ตรวจความไวต่อสภาวะตลาดและขนาดเงินที่รองรับได้ โดยมีจำนวนสังเกตพอเปรียบเทียบ การแบ่งเป็นสภาวะเล็ก ๆ ที่ดีจำนวนมากเพิ่มปัญหาการเลือกอีก ผลเรียบง่ายที่คงทนหลังต้นทุนมักน่าเชื่อกว่าคำอธิบายซับซ้อนที่ยึดช่วงพิเศษไม่กี่ช่วง
7 ตัวชี้วัด ความคาดหวัง และระดับของหลักฐาน
รายงานจำนวนโอกาส คำสั่งซื้อที่ส่งเข้ามา การดำเนินการซื้อขาย การซื้อขายที่เสร็จสมบูรณ์ และวันที่ทำกำไรแยกกัน ตัวกรองสามารถปรับปรุงอัตราการชนะการซื้อขายในขณะที่ตัดโอกาสที่ทำกำไรได้จำนวนมากออกไป ความถี่ของวันที่ทำกำไรได้ไม่ใช่อัตราการชนะการซื้อขาย และทั้งสองอย่างนี้ไม่สามารถกำหนดผลตอบแทนที่คาดหวังได้หากไม่มีขนาดของผลตอบแทน
คำนวณ drawdown จากทุนสุทธิในบัญชีที่ตีราคาตลาด รวมสถานะเปิดและต้นทุน ระบุความถี่ผลตอบแทนที่ใช้กับ Sharpe และอย่าถือผลตอบแทนรายเทรดที่เว้นช่วงไม่เท่ากันเป็นรายวัน แยกผลตอบแทนรวม CAGR อัตราIRRที่ไวต่อกระแสเงินสด และ regression alpha
กลยุทธ์สมมติมีโอกาสชนะ0.40 กำไรเฉลี่ยเมื่อชนะ2R ขาดทุนเฉลี่ยเมื่อแพ้1R และต้นทุน0.08R จึงมีค่าคาดหวัง0.40×2−0.60×1−0.08=0.12R ภายใต้ขนาดกำไรขาดทุนคงที่นี้ อัตราชนะคุ้มทุนคือ(1+0.08)/(2+1)=0.36
กลยุทธ์สังเคราะห์อีกแบบหนึ่งที่ชนะการซื้อขาย 65% ครั้ง โดยได้กำไร 0.5R จากการซื้อขายที่ชนะ และขาดทุน 1R จากการซื้อขายที่ขาดทุน ด้วยต้นทุนที่เท่ากัน มีค่าคาดหวัง 0.65×0.5−0.35×1−0.08=−0.105R ดังนั้น อัตราการชนะที่สูงขึ้นจึงสามารถอยู่ร่วมกับระบบที่ขาดทุนได้
รวมขาดทุนปลายหาง ระยะเวลาที่ยังไม่ฟื้นถึงยอดทุนเดิม อัตราหมุนเวียน สัดส่วนร่วมในปริมาณตลาด การเปิดรับความเสี่ยงและช่วงความไม่แน่นอน แยกคำอธิบายวิธี ผลย้อนหลังที่ผู้เขียนรายงาน การทำซ้ำโค้ดและข้อมูล การตรวจอิสระ การเทรดจำลองไปข้างหน้า และหลักฐานเทรดเงินจริงที่ตรวจแล้ว แต่ละขั้นตอบคนละคำถามและไม่มีขั้นใดรับประกันอนาคต
เผยแพร่ผลงานทางวิชาการที่นักวิจัยคนอื่นสามารถตรวจสอบได้
เก็บรุ่นสมมติฐาน รุ่นข้อมูล ทะเบียนทดลอง ขอบเขตแต่ละ fold เหตุการณ์สัญญาณและคำสั่ง รายการจับคู่ ต้นทุนและการคำนวณทุนสุทธิบัญชี หากมีเพียงตารางผลงานสุดท้ายโดยไม่มีบัญชีขั้นกลาง จะหาสาเหตุยากเมื่ออีกระบบคำนวณไม่ตรง
ไปป์ไลน์ด้านล่างนี้แยกช่วงเวลาการพัฒนาที่ใช้ซ้ำๆ ออกจากขั้นตอนการทดสอบขั้นสุดท้าย หน้าที่ของมันคือข้อกำหนดในการนำไปใช้และทดสอบ ไม่ใช่หลักฐานที่สามารถนำไปปฏิบัติได้จริงเพื่อพิสูจน์ความถูกต้อง โดยเฉพาะอย่างยิ่ง การล้างข้อมูลต้องตรวจสอบช่วงเวลาของป้ายกำกับ และการดำเนินการต้องคำนึงถึงความพร้อมใช้งานของเหตุการณ์จริง
ชุดตัวอย่างการทบทวนที่มีประโยชน์ควรประกอบด้วยตัวอย่างที่ประสบความสำเร็จอย่างน้อยหนึ่งตัวอย่าง การซื้อขายที่ล้มเหลวหนึ่งครั้ง คำสั่งที่ถูกปฏิเสธหนึ่งครั้ง และกรณีซื้อขายระหว่างแท่งราคาที่ไม่ชัดเจนอย่างน้อยหนึ่งกรณี (ถ้ามี) อธิบายวิธีการจัดการแต่ละกรณีของโปรแกรมจำลอง นี่จะเป็นหลักฐานที่เป็นรูปธรรมว่ากฎต่างๆ ทำงานได้อย่างสม่ำเสมอเมื่อผลลัพธ์ไม่เป็นไปตามที่คาดหวัง
หยุดการเปลี่ยนแปลงตัวชี้วัดการตีพิมพ์ก่อนที่จะอ่านผลการทดสอบขั้นสุดท้าย หากผลลัพธ์สุดท้ายไม่เป็นที่น่าพอใจ ให้รายงานและเริ่มต้นการวิจัยเวอร์ชันใหม่พร้อมแผนการประเมินใหม่ การแก้ไขวิธีการเดิมซ้ำๆ กับกลุ่มตัวอย่างทดสอบเดิมจะทำลายหลักฐานที่กลุ่มตัวอย่างทดสอบนั้นมีจุดประสงค์เพื่อให้ได้มา
spec = freeze_hypothesis_and_trial_registry()
data = load_versioned_point_in_time_inputs()
assert_data_integrity(data)
assert_confirmed_events_are_prefix_invariant(data)
development, final_test = split_chronologically_before_research(data)
for fold in chronological_folds(development, spec):
train = purge_overlapping_labels(fold.train, fold.validation + fold.test)
validation = purge_overlapping_labels(fold.validation, fold.test)
model = fit_using_train_only(train)
config = select_on_validation(model, validation)
freeze(config)
events = replay_causally(fold.test, config)
fills = simulate_orders_after_available_at(events, spec.execution)
equity = mark_to_market(fills, fees=spec.costs)
archive_all_results(config, events, fills, equity)
final_config = freeze_selection_using_development_only()
evaluate_final_holdout_once(final_test, final_config)
report_net_metrics_ablations_stress_and_uncertainty()
ข้อผิดพลาดที่พบบ่อย
การมองว่าเครื่องตรวจจับที่ดึงดูดใจเป็นกลยุทธ์ที่สร้างผลกำไร
เรขาคณิต ข้อมูลการคาดการณ์ การดำเนินการ และประสิทธิภาพนอกกลุ่มตัวอย่าง เป็นขั้นตอนการตรวจสอบความถูกต้องที่แยกจากกัน การผ่านขั้นตอนหนึ่งไม่ได้หมายความว่าผ่านขั้นตอนอื่นๆ ด้วย
กราฟดูดีเพราะนำสัญญาณที่ยืนยันภายหลังไปวาดในอดีต
การกำหนดจุดเปลี่ยน ณ ตำแหน่งเดิมอาจปกปิดเวลาการยืนยันในภายหลังได้ ควรจัดเก็บทั้ง occurred_at และ confirmed_at และตรวจสอบทุกการตัดสินใจโดยเทียบกับความพร้อมใช้งานของข้อมูล
บีบอัดค่าใช้จ่ายทุกอย่างให้เหลือเพียงค่าคอมมิชชั่นเล็กน้อย
ส่วนต่างราคา ผลกระทบ การกู้ยืม หรือการระดมทุน และการเติมเต็มที่ไม่สมบูรณ์ อาจมีความสำคัญมากกว่าค่าคอมมิชชั่น ควรสร้างแบบจำลองสำหรับตราสารและสภาพคล่องของตราสารนั้นๆ
ต้นทุนสมจริงแต่การจับคู่คำสั่งไม่สมจริง
การคิดค่าคอมมิชชั่นไม่แก้สมมติฐานเข้าที่ราคาปิดสัญญาณซึ่งเข้าไม่ได้จริง เลือกลำดับเหตุการณ์ในแท่งที่เข้าข้างกลยุทธ์ หรือรับประกันว่าคำสั่ง limit ต้องจับคู่
ตรวจสอบช่วงเวลาทดสอบเดียวกันซ้ำๆ
เมื่อผลการทดสอบนำไปสู่การปรับปรุงแก้ไข ช่วงเวลานั้นจะกลายเป็นส่วนหนึ่งของกระบวนการพัฒนา บันทึกการใช้งานแต่ละครั้งและเก็บรักษาขั้นตอนการประเมินใหม่ที่ไม่เคยมีใครแตะต้องมาก่อน
บันทึกเฉพาะการตั้งค่าที่ชนะเท่านั้น
หากไม่มีข้อมูลจำนวนการทดลองและการกระจายตัวของตัวแปรที่ล้มเหลว หลักฐานที่สนับสนุนกลยุทธ์ที่เลือกอาจถูกกล่าวเกินจริง
การใช้การแก้ไขทางสถิติเป็นใบรับรองความสามารถในการทำกำไร
DSR, PBO และค่า p-value ตอบคำถามเชิงอนุมานเฉพาะภายใต้สมมติฐานต่างๆ แต่ไม่ได้ทดแทนการทดสอบการดำเนินการหรือสร้างผลกำไรในอนาคตของบัญชี
รายการตรวจสอบก่อนใช้วิธีนี้
ทำเครื่องหมายแต่ละข้อหลังตรวจสอบกับข้อมูลของคุณแล้ว ความคืบหน้าจะบันทึกในเบราว์เซอร์นี้ แต่ไม่ได้รับรองว่ากลยุทธ์ทำกำไรได้
คำถามที่พบบ่อย
ต้องทำการซื้อขายกี่ครั้งถึงจะพิสูจน์ได้ว่ากลยุทธ์นั้นได้ผล?
ไม่มีจำนวนสากลที่พอพิสูจน์ ความไม่เป็นอิสระของผลลัพธ์ หางการแจกแจงกำไรขาดทุน สภาวะตลาดและขนาดผลเป็นตัวกำหนดความไม่แน่นอน จึงควรรายงานสิ่งเหล่านี้แทนใช้จำนวนเทรดตายตัวเป็นหลักฐาน
หากต้นทุนทำให้ข้อได้เปรียบที่รายงานไว้หายไป ควรปฏิเสธกลยุทธ์นั้นหรือไม่?
เวอร์ชันที่สามารถซื้อขายได้อาจล้มเหลว ในขณะที่ความสัมพันธ์ทางสถิติพื้นฐานยังคงมีประโยชน์ รายงานข้อสรุปทั้งสองและหลีกเลี่ยงการนำเสนอผลกระทบโดยรวมในรูปแบบผลตอบแทนสุทธิที่สามารถนำไปปฏิบัติได้จริง
การเผยแพร่โค้ดทำให้การทดสอบย้อนหลังสามารถทำซ้ำได้หรือไม่?
รหัสโปรแกรมเป็นเพียงข้อกำหนดข้อหนึ่งเท่านั้น เวอร์ชันของข้อมูล ข้อกำหนดเกี่ยวกับการดำเนินการขององค์กร พารามิเตอร์ ประวัติการทดลอง และข้อสมมติฐานในการดำเนินการ ก็จำเป็นต้องมีให้พร้อมใช้งานหรือบันทึกไว้อย่างละเอียดด้วยเช่นกัน
แหล่งวิจัย
แต่ละแหล่งสนับสนุนคำจำกัดความหรือหลักฐานที่อธิบายไว้ข้างกัน รหัสเทียม ตัวอย่างสมมติ และพารามิเตอร์ที่เสนอต้องผ่านการตรวจสอบแยกต่างหาก
- Foundations of Technical Analysis: Computational Algorithms, Statistical Inference, and Empirical ImplementationAndrew W. Lo, Harry Mamaysky, Jiang Wang. อ่านงานต้นฉบับด้านจำแนกรูปแบบและอนุมานทางสถิติ ไม่ได้พิสูจน์ว่าทุกกฎในคลังวิธีนี้ทำกำไร ตรวจสอบเมื่อ: .
- Pine Script — StrategiesTradingView. อ่านเอกสารปฐมภูมิเรื่องเวลาส่งคำสั่งกลยุทธ์และพฤติกรรม broker emulator ไม่ใช้แทนแบบจำลองการจับคู่ของทุกตลาด ตรวจสอบเมื่อ: .
- Understanding Order Types — Investor BulletinU.S. SEC — Investor.gov. อ่านประกาศปฐมภูมิเรื่องกลไก market, limit และ stop order รวมข้อจำกัดการจับคู่ ตรวจสอบเมื่อ: .
- MLX 2018 — The 7 Reasons Most Machine Learning Funds FailMarcos López de Prado — bản trình bày đăng trên SlideShare. อ่านสไลด์ของผู้เขียนเกี่ยวกับ purging และ embargo ในการแบ่งข้อมูล ไม่ได้อ้างว่าเข้าถึงหรืออ่านหนังสือ machine learning ทางการเงินครบเล่ม ตรวจสอบเมื่อ: .
- The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting and Non-NormalityDavid H. Bailey, Marcos López de Prado — 2014. อ่านเอกสารวิธีวิจัยฉบับเต็มแล้ว การปรับแก้ความลำเอียงในการเลือกตัวอย่างต้องอาศัยข้อสมมติฐานและข้อมูลจากการทดลอง ไม่ใช่ความน่าจะเป็นของผลกำไรที่เกิดขึ้นจริง ตรวจสอบเมื่อ: .
- The Probability of Backtest OverfittingBailey, Borwein, López de Prado, Zhu. อ่านวิธี CSCV และ PBO โดยแยกอันดับนอกตัวอย่างที่แย่ลงออกจากความน่าจะเป็นที่จะเสียเงินจริง ตรวจสอบเมื่อ: .
วิธีการที่เกี่ยวข้อง
หมายเหตุความเสี่ยง
เนื้อหานี้ใช้เพื่อการศึกษาและออกแบบงานวิจัย ไม่ใช่คำแนะนำทางการเงิน Backtest เป็นการจำลองข้อมูลในอดีต ไม่รับประกันผลในอนาคตและไม่ส่งคำสั่งซื้อขายจริง วิธีการในคลังนี้ไม่ได้หมายความว่ามีเป็นฟีเจอร์ในแอปทั้งหมด ดู ระเบียบวิธี และ ศูนย์การเรียนรู้.
ตรวจสอบกฎก่อนเสี่ยงด้วยเงินจริง
ตรวจสอบความสามารถของแอป ข้อมูล และแต่ละรายการซื้อขายจำลอง ตัวตรวจจับขั้นสูงอาจต้องพัฒนาแยกต่างหาก
ดาวน์โหลด Backtest บน App Store