ข้ามไปยังเนื้อหาหลัก
walk-forward analysisการตรวจสอบกลยุทธ์overfitting
Walk-Forward Analysis และการตรวจสอบความถูกต้องของกลยุทธ์: ก้าวข้าม Backtesting แบบพื้นฐาน

Walk-Forward Analysis และการตรวจสอบความถูกต้องของกลยุทธ์: ก้าวข้าม Backtesting แบบพื้นฐาน

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

Walk-forward analysis (WFA) คือยาแก้พิษ มันคือระเบียบวิธีตรวจสอบความถูกต้องที่เข้มงวด ซึ่งทดสอบว่าผลการดำเนินงานของกลยุทธ์คุณเป็นของจริงหรือเป็นเพียงผลพลอยได้จากการ curve-fitting แทนที่จะทดสอบบนข้อมูลชุดเดียวกับที่คุณใช้ optimize นั้น WFA จะฝึก (train) บนข้อมูลส่วนหนึ่งอย่างเป็นระบบ และทดสอบบนข้อมูลอีกส่วนที่ไม่เคยเห็นเลย — จากนั้นจึงทำกระบวนการนี้ซ้ำตลอดชุดข้อมูลทั้งหมดของคุณ

คู่มือนี้จะสอนคุณวิธีนำ walk-forward analysis ไปใช้ทีละขั้นตอน ออกแบบการทดสอบความทนทานที่เปิดโปงกลยุทธ์ที่เปราะบาง ประยุกต์ใช้เกณฑ์นัยสำคัญทางสถิติ และสร้างเช็กลิสต์การตรวจสอบที่ครอบคลุมซึ่งแยกกลยุทธ์ที่ควรค่าแก่การเทรดออกจากกลยุทธ์ที่ควรค่าแก่การทิ้ง

ประเด็นสำคัญ

  • Backtesting แบบพื้นฐานบนข้อมูลในอดีตมักประเมินผลการดำเนินงานสูงเกินจริงเสมอ เพราะ optimizer หาพารามิเตอร์ที่บังเอิญทำงานได้ดีกับข้อมูลชุดนั้นโดยเฉพาะ — ไม่ใช่พารามิเตอร์ที่จับความได้เปรียบทางตลาดที่แท้จริง
  • Walk-forward analysis แบ่งข้อมูลออกเป็นหน้าต่างแบบเลื่อน คือ in-sample (ฝึก) และ out-of-sample (ทดสอบ) อัตราส่วน 3:1 (เช่น optimize 6 เดือน ทดสอบ 2 เดือน) เป็นจุดเริ่มต้นที่เชื่อถือได้
  • การทดสอบเสถียรภาพพารามิเตอร์ — โดยปรับแต่ละพารามิเตอร์ ±20% แล้วตรวจดูว่าผลการดำเนินงานลดลงมากกว่า 50% หรือไม่ — เผยให้เห็นว่ากลยุทธ์ของคุณตั้งอยู่บนที่ราบสูงที่ทนทานหรือบนยอดที่เปราะบาง
  • กลยุทธ์ต้องถูกทดสอบข้ามคู่เทรด, timeframe และสภาวะตลาด (bull/bear/sideways) ที่ต่างกัน เพื่อยืนยันว่ามันไม่ได้ curve-fit เข้ากับชุดข้อมูลเฉพาะชุดเดียว
  • นัยสำคัญทางสถิติต้องการการเทรดขั้นต่ำ 30 ครั้งสำหรับความน่าเชื่อถือพื้นฐาน และ 100+ ครั้งสำหรับความมั่นใจสูง การเทรดน้อยกว่านี้หมายความว่าผลลัพธ์ของคุณอาจเป็นเพียงความบังเอิญ
  • กลยุทธ์ DCA ในโลกจริงที่แสดงผลตอบแทนรายปี 45% ใน backtest แต่เพียง 12% ใน walk-forward analysis แสดงให้เห็นช่องว่างผลการดำเนินงานทั่วไปที่เกิดจาก overfitting

ความเสี่ยงในการเทรด

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

ทำไม Backtesting แบบพื้นฐานจึงไม่เพียงพอ

หากคุณได้อ่านคู่มือของเราเรื่อง วิธี Backtest กลยุทธ์เทรดคริปโตของคุณ แล้ว คุณก็เข้าใจพื้นฐานของ backtesting มาดูจุดอ่อนพื้นฐานของมันกันต่อ นั่นคือ overfitting

ปัญหา Overfitting

Overfitting เกิดขึ้นเมื่อพารามิเตอร์ของกลยุทธ์คุณถูกปรับจูนเข้ากับข้อมูลในอดีตอย่างแม่นยำมากจนจับ noise — รูปแบบสุ่ม — แทนที่จะจับ signal — พฤติกรรมตลาดที่แท้จริง กลยุทธ์ที่ overfit จะดูเฉิดฉายใน backtest แต่พังทลายในการเทรดจริง

นี่คือเหตุผลเชิงกลไกว่าทำไมมันจึงเกิดขึ้น:

ลองนึกภาพว่าคุณมีข้อมูลราคา BTC 12 เดือน และ DCA bot ที่มีพารามิเตอร์ปรับตั้งได้ 6 ตัว คุณรัน optimizer ที่ทดสอบชุดพารามิเตอร์ 10,000 ชุด แล้วเลือกชุดที่ให้กำไรสูงสุด Optimizer จะหาชุดที่ "ทำนาย" จุดดิ่งและการฟื้นตัวที่แม่นยำในหน้าต่าง 12 เดือนนั้นได้อย่างหลีกเลี่ยงไม่ได้ — ไม่ใช่เพราะมันค้นพบรูปแบบที่แท้จริง แต่เพราะด้วยการลอง 10,000 ครั้ง ชุดพารามิเตอร์บางชุดจะบังเอิญสอดคล้องกับ noise แบบสุ่มในข้อมูล

การเปรียบเทียบ: การทอยลูกเต๋า 10,000 ครั้งแล้วพบลำดับที่การออกเลข 6 มาก่อนการพุ่งของตลาดหุ้นเสมอ ไม่ได้หมายความว่าลูกเต๋าทำนายตลาดได้ ด้วยการขุดข้อมูล (data mining) ที่มากพอ คุณจะพบความสัมพันธ์ปลอม (spurious correlation) เสมอ

ตัวเลขเบื้องหลัง Overfitting

ลองพิจารณาปริภูมิพารามิเตอร์ที่มี:

  • การตั้งค่า safety order 5 แบบ (3, 5, 7, 10, 12)
  • ค่า step scale 5 ค่า (1.0, 1.2, 1.4, 1.6, 1.8)
  • ค่า volume scale 5 ค่า (1.0, 1.3, 1.5, 1.8, 2.0)
  • ระดับ take-profit 4 ระดับ (1.0%, 1.5%, 2.0%, 3.0%)
  • ค่า initial deviation 3 ค่า (1.5%, 2.0%, 3.0%)

นั่นคือ 5 × 5 × 5 × 4 × 3 = 1,500 ชุดผสม ชุดที่ให้ผลดีที่สุดแทบจะการันตีได้เลยว่าจะประเมินผลการดำเนินงานในโลกจริงสูงเกินไป ด้วยชุดผสม 10,000+ ชุด (ซึ่ง optimizer หลายตัวทดสอบ) ความเสี่ยง overfitting นั้นมหาศาล

กฎเหล็กของการพัฒนากลยุทธ์: อย่าเชื่อตัวเลขผลการดำเนินงานที่ได้จากข้อมูลชุดเดียวกับที่ใช้ optimize กลยุทธ์เด็ดขาด ผลลัพธ์ in-sample ไม่มีความหมายในการทำนายผลการดำเนินงานจริง มีเพียงผลลัพธ์ out-of-sample เท่านั้น — การทดสอบบนข้อมูลที่ optimizer ไม่เคยเห็น — ที่ให้การประมาณผลการดำเนินงานที่ใช้ได้


Walk-Forward Analysis: ทีละขั้นตอน

Walk-forward analysis แก้ปัญหา overfitting ด้วยการสร้างกระบวนการที่มีโครงสร้าง ซึ่งการ optimize และการทดสอบจะถูกแยกออกจากกันเสมอ

กระบวนการสี่ขั้นตอน

ขั้นที่ 1: แบ่งข้อมูลของคุณออกเป็นหน้าต่าง

แบ่งชุดข้อมูลในอดีตทั้งหมดของคุณออกเป็นคู่ของหน้าต่างที่เรียงต่อกัน:

  • หน้าต่าง in-sample (ฝึก): ข้อมูลที่ใช้ optimize พารามิเตอร์
  • หน้าต่าง out-of-sample (ทดสอบ): ข้อมูลที่ใช้ทดสอบพารามิเตอร์ที่ optimize แล้ว — optimizer จะไม่มีวันเห็นข้อมูลนี้

ขั้นที่ 2: Optimize บนข้อมูล In-Sample

รัน parameter optimizer ของคุณบนหน้าต่าง in-sample เท่านั้น หาชุดพารามิเตอร์ที่ให้ผลดีที่สุดสำหรับช่วงเวลานั้นโดยเฉพาะ

ขั้นที่ 3: ทดสอบบนข้อมูล Out-of-Sample

นำพารามิเตอร์ที่พบในขั้นที่ 2 มาแล้วรัน — โดยไม่ดัดแปลงใดๆ — บนหน้าต่าง out-of-sample บันทึกผลการดำเนินงาน นี่คือตัวเลขเดียวที่มีความสำคัญ

ขั้นที่ 4: เลื่อนไปข้างหน้าและทำซ้ำ

เลื่อนหน้าต่างทั้งหมดไปข้างหน้าตามความยาวของ out-of-sample แล้วทำซ้ำขั้นที่ 1-3 ทำต่อไปจนกว่าจะครอบคลุมชุดข้อมูลทั้งหมด

การแสดงภาพของ Sliding Windows

นี่คือวิธีที่ชุดข้อมูล 24 เดือนจะถูกประมวลผลด้วยหน้าต่าง in-sample 6 เดือน และ out-of-sample 2 เดือน:

รอบIn-Sample (Optimize)Out-of-Sample (ทดสอบ)
1เดือน 1-6เดือน 7-8
2เดือน 3-8เดือน 9-10
3เดือน 5-10เดือน 11-12
4เดือน 7-12เดือน 13-14
5เดือน 9-14เดือน 15-16
6เดือน 11-16เดือน 17-18
7เดือน 13-18เดือน 19-20
8เดือน 15-20เดือน 21-22
9เดือน 17-22เดือน 23-24

แต่ละรอบจะให้ผลลัพธ์ out-of-sample หนึ่งค่า การประมาณผลการดำเนินงานสุดท้ายของคุณคือผลรวมของช่วง out-of-sample ทั้ง 9 ช่วง — ผลการดำเนินงาน out-of-sample ที่แท้จริง 18 เดือน จากชุดข้อมูล 24 เดือน

สังเกตว่าหน้าต่าง in-sample มีการเหลื่อมกัน (เลื่อนทีละ 2 เดือน ไม่ใช่กระโดดทีละ 8) สิ่งนี้ให้จุดข้อมูล out-of-sample แก่คุณมากขึ้น ซึ่งเพิ่มความน่าเชื่อถือทางสถิติของการประมาณผลการดำเนินงานสุดท้ายของคุณ ข้อแลกเปลี่ยนคือต้นทุนการคำนวณ — รอบที่มากขึ้นหมายถึงการรัน optimization ที่มากขึ้น

Anchored เทียบกับ Rolling Walk-Forward

ตัวอย่างข้างต้นใช้แนวทาง rolling ซึ่งหน้าต่าง in-sample เลื่อนไปข้างหน้า อีกทางเลือกหนึ่งคือแนวทาง anchored ซึ่งหน้าต่าง in-sample เริ่มจากจุดเริ่มต้นเสมอ:

รอบIn-Sample (Anchored)Out-of-Sample
1เดือน 1-6เดือน 7-8
2เดือน 1-8เดือน 9-10
3เดือน 1-10เดือน 11-12
4เดือน 1-12เดือน 13-14
.........

Rolling ปรับตัวเข้ากับสภาวะตลาดที่เปลี่ยนแปลงได้เร็วกว่า แต่มีข้อมูลฝึกต่อหน้าต่างน้อยกว่า Anchored ใช้ข้อมูลต่อหน้าต่างมากกว่า (มากขึ้นเรื่อยๆ เมื่อดำเนินไป) แต่ปรับตัวเข้ากับการเปลี่ยนสภาวะได้ช้ากว่า สำหรับตลาดคริปโตที่สภาวะเปลี่ยนบ่อย โดยทั่วไปแล้ว rolling เป็นที่นิยมมากกว่า


การกำหนดขนาดหน้าต่าง In-Sample

ขนาดของหน้าต่าง in-sample เป็นหนึ่งในการตัดสินใจที่ส่งผลกระทบมากที่สุดใน walk-forward analysis หากกำหนดผิด ผลลัพธ์ของคุณก็จะไม่น่าเชื่อถือไม่ว่าอย่างอื่นจะเป็นอย่างไรก็ตาม

กฎคร่าวๆ 3:1

จุดเริ่มต้นที่เชื่อถือได้คืออัตราส่วน 3:1 ระหว่างหน้าต่าง in-sample และ out-of-sample:

In-SampleOut-of-Sampleรอบรวมกรณีการใช้งาน
3 เดือน1 เดือน4 เดือนกลยุทธ์ระยะสั้นที่ปรับตัวเร็ว
6 เดือน2 เดือน8 เดือนกลยุทธ์ DCA และ swing มาตรฐาน
9 เดือน3 เดือน12 เดือนกลยุทธ์ตามเทรนด์ระยะยาว
12 เดือน4 เดือน16 เดือนกลยุทธ์ที่อดทนมาก ความถี่ต่ำ

เล็กเกินไป: ปัญหา Noise

หากหน้าต่าง in-sample ของคุณเล็กเกินไป (เช่น 1-2 เดือน) optimizer จะทำงานกับข้อมูลที่จำกัด ซึ่งอาจเป็นตัวแทนของสภาวะตลาดเพียงรูปแบบเดียว พารามิเตอร์ที่ optimize บนตลาด bull 6 สัปดาห์จะล้มเหลวทันทีที่ตลาดหันไปเป็น sideways หรือ bearish หน้าต่างที่เล็กจะให้พารามิเตอร์ที่ไม่เสถียร ซึ่งเปลี่ยนแปลงอย่างมากในแต่ละรอบ — ธงแดงสัญญาณอันตราย

แนวทางขั้นต่ำ: หน้าต่าง in-sample ของคุณควรมี deal (การเทรด) ที่เสร็จสมบูรณ์ของ bot อย่างน้อย 30 ครั้ง หาก bot ของคุณทำเฉลี่ย 2 deal ต่อสัปดาห์ คุณต้องการข้อมูล in-sample อย่างน้อย 15 สัปดาห์ (~4 เดือน)

ใหญ่เกินไป: ปัญหาการปรับตัว

หากหน้าต่าง in-sample ของคุณใหญ่เกินไป (เช่น 18-24 เดือน) optimizer จะเฉลี่ยข้ามสภาวะตลาดหลายแบบ พารามิเตอร์ที่ได้จะเป็นการประนีประนอมที่ทำงานได้ "พอใช้" ในทุกสภาวะ แต่ไม่โดดเด่นในสภาวะใดเลย ในคริปโตที่การเปลี่ยนสภาวะเกิดขึ้นอย่างฉับพลันและรุนแรง พารามิเตอร์ที่ล้าสมัยจะปล่อยให้เงินหลุดมือไป

แนวทางสูงสุด: สำหรับกลยุทธ์คริปโตส่วนใหญ่ ข้อมูล in-sample 9-12 เดือนคือขอบเขตบน เกินกว่านั้น ข้อมูลที่เก่าที่สุดอาจเป็นตัวแทนของสภาวะตลาดที่แตกต่างจากสภาวะปัจจุบันมากจนเพิ่ม noise แทนที่จะเพิ่ม signal

การทดสอบในทางปฏิบัติ: หากพารามิเตอร์ที่เหมาะสมที่สุดเปลี่ยนแปลงมากกว่า 30% ระหว่างรอบ walk-forward ที่ติดกัน แสดงว่าหน้าต่าง in-sample ของคุณเล็กเกินไป หากแทบไม่เปลี่ยนแปลงเลยตลอด 6+ รอบ อาจใหญ่เกินไป (หรือปริภูมิพารามิเตอร์ของคุณหยาบเกินไป) ความผันแปรปานกลาง — พารามิเตอร์เลื่อนไป 5-15% ระหว่างรอบ — บ่งบอกถึงการกำหนดขนาดหน้าต่างที่ดี


การทดสอบเสถียรภาพพารามิเตอร์

การหาชุดพารามิเตอร์ที่ "ดีที่สุด" นั้นไม่เพียงพอ คุณต้องตรวจสอบว่ากลยุทธ์ของคุณตั้งอยู่บน ที่ราบสูงที่ทนทาน (robust plateau) — บริเวณของปริภูมิพารามิเตอร์ที่พารามิเตอร์ใกล้เคียงก็ให้ผลดีเช่นกัน — ไม่ใช่บน ยอดที่เปราะบาง (fragile peak) — จุดเดียวที่ทำงานได้เฉิดฉายแต่การเปลี่ยนแปลงเล็กน้อยใดๆ ก็ทำให้ล้มเหลวอย่างหายนะ

การทดสอบ ±20%

สำหรับแต่ละพารามิเตอร์ที่ optimize แล้ว ให้ทดสอบผลการดำเนินงานโดยปรับพารามิเตอร์นั้น ±10% และ ±20% จากค่าที่เหมาะสมที่สุด ตรวจดูว่าผลการดำเนินงานลดลงมากเพียงใด

ตัวอย่าง: Optimizer ของคุณพบพารามิเตอร์ที่เหมาะสมที่สุดเหล่านี้สำหรับ BTC DCA bot:

  • Take profit: 1.8%
  • Step scale: 1.4
  • Volume scale: 1.5
  • Initial deviation: 2.5%

ตอนนี้ทดสอบความแปรผัน:

พารามิเตอร์-20%-10%เหมาะสมที่สุด+10%+20%
Take Profit1.44%1.62%1.80%1.98%2.16%
ผลตอบแทนรายปี18.2%21.5%24.1%22.8%20.3%
Max Drawdown-12.1%-11.4%-10.8%-11.2%-12.5%

นี่คือ ที่ราบสูงที่ทนทาน: การปรับ take profit ไป ±20% เปลี่ยนผลตอบแทนรายปีจาก 24.1% ไปอยู่ในช่วง 18.2-22.8% — ลดลงราว 25% ในกรณีที่แย่ที่สุด กลยุทธ์มีเสถียรภาพ

เปรียบเทียบกับยอดที่เปราะบาง:

พารามิเตอร์-20%-10%เหมาะสมที่สุด+10%+20%
Take Profit1.44%1.62%1.80%1.98%2.16%
ผลตอบแทนรายปี3.1%14.2%38.7%11.8%-2.4%
Max Drawdown-28.3%-18.1%-8.2%-22.5%-35.1%

นี่คือ ยอดที่เปราะบาง: ผลตอบแทน "ที่เหมาะสมที่สุด" 38.7% ทรุดลงเหลือ 3.1% หรือถึงขั้นผลตอบแทนติดลบเมื่อมีการเปลี่ยนพารามิเตอร์เพียงเล็กน้อย กลยุทธ์นี้ curve-fit และจะล้มเหลวในการเทรดจริง เพราะสภาวะตลาดจริงไม่มีวันตรงกับพารามิเตอร์ที่ optimize ไว้อย่างสมบูรณ์แบบ

กฎการลดลง 50%: หากการปรับพารามิเตอร์ตัวใดตัวหนึ่งไป ±20% ทำให้ผลการดำเนินงานลดลงมากกว่า 50% แสดงว่ากลยุทธ์เปราะบางและน่าจะ overfit การเปลี่ยนพารามิเตอร์จากผลตอบแทนรายปี 24% เป็น 12% คือการลดลง 50% — เส้นแบ่ง การเปลี่ยนจาก 38.7% เป็น 3.1% คือการลดลง 92% — ทิ้งกลยุทธ์ทั้งหมดไปได้เลย


การทดสอบความทนทานข้ามมิติ

กลยุทธ์ที่ทำงานได้เฉพาะบนคู่เทรดเดียว, timeframe เดียว หรือสภาวะตลาดเดียวนั้นไม่ทนทาน — มัน curve-fit ความได้เปรียบทางตลาดที่แท้จริงจะคงอยู่ข้ามสภาวะที่เกี่ยวข้องกันแต่แตกต่างกัน

มิติที่ 1: คู่เทรดที่ต่างกัน

หากกลยุทธ์ DCA bot ของคุณถูก optimize บน BTC/USDT ให้ทดสอบพารามิเตอร์ชุดเดียวกัน (หรือ optimize ใหม่) บน:

คู่ผลที่คาดหวังหากทนทานธงแดง
ETH/USDTทิศทางคล้ายกัน ขนาดต่างกันเล็กน้อยผลตอบแทนติดลบ
SOL/USDTทิศทางคล้ายกัน ผลกระทบจากความผันผวนสูงกว่าผลตอบแทนติดลบ
BNB/USDTทิศทางคล้ายกัน ขนาดต่างกันพฤติกรรมต่างกันอย่างสุดขั้ว

การตีความ: กลยุทธ์ DCA ที่ทนทานควรทำงานได้บนคู่คริปโต large-cap ที่มีสภาพคล่องคู่ใดก็ตาม — พฤติกรรมพื้นฐาน (การกลับสู่ค่าเฉลี่ยหลังจุดดิ่ง) เป็นสากลในสินทรัพย์เหล่านี้ หากกลยุทธ์ของคุณแสดงผลตอบแทนรายปี 30% บน BTC แต่ -5% บน ETH แสดงว่าพารามิเตอร์น่าจะถูกปรับให้เข้ากับรูปแบบเฉพาะของ BTC ที่ไม่สามารถนำไปใช้ทั่วไปได้

กฎคร่าวๆ: ทดสอบบนคู่เทรดที่ต่างกันอย่างน้อย 3 คู่ หาก 2 ใน 3 แสดงผลตอบแทน out-of-sample เป็นบวก แสดงว่ากลยุทธ์มีความทนทานข้ามคู่เทรด

มิติที่ 2: Timeframe ที่ต่างกัน

พารามิเตอร์ที่ optimize สำหรับข้อมูลแท่งเทียน 1 ชั่วโมง ควรแสดงผลลัพธ์ที่คล้ายกันในเชิงทิศทางบนข้อมูล 4 ชั่วโมงและรายวัน ขนาดจะต่างกัน แต่กลยุทธ์ก็ยังควรทำกำไรได้

Timeframeสิ่งที่เปลี่ยนแปลงสิ่งที่ควรคงเดิม
1h → 4hสัญญาณน้อยลง การเคลื่อนไหวต่อสัญญาณใหญ่ขึ้นความสามารถในการทำกำไรโดยรวม, ทิศทาง win rate
4h → 1dสัญญาณยิ่งน้อยลง การเคลื่อนไหวใหญ่ขึ้นมากค่าคาดหวังเป็นบวก, อัตราส่วน drawdown
1h → 15mสัญญาณมากขึ้น noise มากขึ้น false trigger มากขึ้นก็ยังควรทำกำไรได้ (อาจต้องการ filter ที่เข้มขึ้น)

ธงแดง: กลยุทธ์ที่ทำงานได้เฉพาะบน 4h แต่ล้มเหลวทั้งบน 1h และ 1d น่าจะถูก optimize ให้เข้ากับรูปแบบ noise เฉพาะของแท่งเทียน 4h บนคู่ที่ทดสอบ

มิติที่ 3: สภาวะตลาดที่ต่างกัน

นี่คือการทดสอบที่สำคัญที่สุด แบ่งข้อมูลของคุณออกเป็นช่วงตามสภาวะ:

สภาวะช่วงตัวอย่างลักษณะเฉพาะ
ตลาด Bullต.ค. 2023 - มี.ค. 2024BTC จาก ~$27K ไป ~$73K
ตลาด Bearพ.ย. 2021 - พ.ย. 2022BTC จาก ~$69K ไป ~$16K
Sidewaysมิ.ย. 2023 - ก.ย. 2023BTC เคลื่อนในช่วง $25K-$31K
เหตุการณ์ Crashมี.ค. 2020 (COVID)BTC -50% ใน 48 ชั่วโมง
การฟื้นตัวเม.ย. 2020 - ก.ค. 2020BTC จาก $5K กลับไป $12K

กลยุทธ์ควรแสดง:

  • ผลตอบแทนเป็นบวกในอย่างน้อย 2 จาก 3 สภาวะหลัก (bull/bear/sideways)
  • Drawdown ที่ควบคุมได้ระหว่างเหตุการณ์ crash (ไม่ใช่ความล้มเหลวแบบหายนะ)
  • ผลการฟื้นตัวที่สมเหตุสมผลหลัง crash
มิติการทดสอบข้อกำหนดขั้นต่ำผลลัพธ์ที่แข็งแกร่งตัวบ่งชี้ความล้มเหลว
ข้ามคู่เทรด (3+ คู่)2 จาก 3 คู่ทำกำไรทุกคู่ทำกำไรด้วยขนาดที่คล้ายกันทำงานได้เฉพาะบน 1 คู่เท่านั้น
ข้าม timeframe (3 TF)ทิศทางคล้ายกันในทุกอันทำกำไรในทุกอันด้วยการ scale ที่คาดหวังทำกำไรใน 1 อัน ติดลบในอันอื่น
ข้ามสภาวะ (bull/bear/sideways)เป็นบวกใน 2 จาก 3 สภาวะเป็นบวกในทั้ง 3 ด้วยความผันแปรที่คาดหวังทำงานได้เฉพาะในสภาวะเดียว
Stress test (เหตุการณ์ black swan)Drawdown < 2 เท่าของปกติDrawdown < 1.5 เท่าของปกติกลยุทธ์ระเบิดพังทั้งหมด

Stress Testing: เหตุการณ์ Black Swan

Backtesting ปกติครอบคลุมสภาวะตลาดปกติ Stress testing ครอบคลุมเหตุการณ์ที่ทำลายกลยุทธ์ หาก bot ของคุณรอดจากเดือนมีนาคม 2020, การล่มสลายของ FTX (พฤศจิกายน 2022) และวิกฤตธนาคาร SVB (มีนาคม 2023) ได้ มันก็น่าจะรอดจากอะไรก็ตามที่จะมาในอนาคต

เหตุการณ์สำคัญที่ควรนำมาเล่นซ้ำ

เหตุการณ์วันที่การเคลื่อนไหว BTCระยะเวลาสิ่งที่ทดสอบ
COVID Crash12-13 มี.ค. 2020-50% ใน 48 ชม.2 วันการรอดจาก flash crash สุดขั้ว
การห้ามขุดเหมืองของจีนพ.ค.-มิ.ย. 2021-55% ตลอด 6 สัปดาห์6 สัปดาห์การลดลงแบบบดเซาะยืดเยื้อ
การล่มสลาย LUNA/USTพ.ค. 2022-35% ใน 1 สัปดาห์1 สัปดาห์การ crash จากการลุกลาม (contagion)
การล่มสลาย FTXพ.ย. 2022-25% ใน 1 สัปดาห์1 สัปดาห์การสูญสภาพคล่องจากวิกฤตความเชื่อมั่น
วิกฤต SVBมี.ค. 2023-10% แล้ว +25%2 สัปดาห์การฟื้นตัวรูป V อย่างฉับพลัน

สิ่งที่ควรวัดใน Stress Test

  1. Maximum drawdown: Position ดิ่งลงลึกแค่ไหน? DCA bot ที่มี safety order 5 ตัว และเงินทุน $3,000 — มันใช้ order จนหมดหรือไม่? โดน liquidate หรือไม่ (หากเป็น futures)?

  2. เวลาฟื้นตัว: หลังเหตุการณ์ ใช้เวลานานแค่ไหนกว่า bot จะปิด deal ที่ทำกำไรได้? หากการฟื้นตัวใช้เวลา 6+ เดือน เงินทุนก็ถูกล็อกไว้อย่างมีประสิทธิผล

  3. การตรวจสอบ liquidation (futures เท่านั้น): ที่ leverage 3x การ crash ไปถึงราคา liquidation ของคุณหรือไม่? COVID crash (-50%) จะ liquidate position long ใดๆ ที่ leverage 2x หรือสูงกว่าหากไม่มี stop loss วางไว้

  4. การใช้ safety order: Safety order ถูก trigger ไปกี่เปอร์เซ็นต์? หาก safety order ทั้งหมดถูกใช้ไปโดยยังมีพื้นที่เหลือ แสดงว่าการตั้งค่ามีขนาดที่เหมาะสมดี หาก crash เกิน safety order ที่ลึกที่สุดของคุณ คุณต้องการระยะห่างที่กว้างขึ้นหรือ order มากขึ้น

เมื่อทำ stress test อย่าเพียงตรวจ P&L สุดท้าย — ให้ตรวจสอบ เส้นทาง ด้วย กลยุทธ์ที่เคยติดลบ -40% ระหว่าง deal ก่อนจะฟื้นตัวมาทำกำไร +1.5% นั้นในทางเทคนิคถือว่า "ทำงานได้" แต่ drawdown ขนาดนั้นคงทำให้ trader ส่วนใหญ่ตื่นตระหนกแล้วปิด bot ด้วยมือ กลยุทธ์ที่ดีควรคุม drawdown ระหว่าง deal ให้อยู่ในขอบเขตที่ทนได้ (โดยทั่วไป < 25% สำหรับ spot, < 15% สำหรับ position ที่ใช้ leverage)


นัยสำคัญทางสถิติ

กลยุทธ์ที่ชนะ 8 จาก 10 ครั้งฟังดูน่าประทับใจ แต่ด้วยการเทรดเพียง 10 ครั้ง มีความน่าจะเป็น 4.4% ที่กลยุทธ์แบบสุ่ม (โยนเหรียญ 50/50) ก็จะให้ผลชนะ 8 ครั้งเช่นกัน นั่นไม่มีนัยสำคัญทางสถิติ คุณต้องการการเทรดที่มากพอเพื่อมั่นใจว่าผลลัพธ์ของคุณไม่ได้เกิดจากความบังเอิญแบบสุ่ม

จำนวนการเทรดขั้นต่ำ

จำนวนการเทรดความน่าเชื่อถือทางสถิติคำแนะนำ
< 10ต่ำมาก — ผลลัพธ์อาจเป็นความสุ่มได้ง่ายใช้ไม่ได้
10-29ต่ำ — บ่งชี้ทิศทางได้แต่ไม่น่าเชื่อถือเบื้องต้นเท่านั้น
30-49ปานกลาง — ขั้นต่ำสำหรับข้อสรุปพื้นฐานเกณฑ์ขั้นต่ำ
50-99ดี — น่าเชื่อถือพอสมควรยอมรับได้
100-199แข็งแกร่ง — มีนัยสำคัญทางสถิติที่ต้องการ
200+แข็งแกร่งมาก — ความมั่นใจสูงอุดมคติ

ช่วงความเชื่อมั่น 95% บนผลตอบแทน

ช่วงความเชื่อมั่น (confidence interval) บอกคุณถึงช่วงที่น่าจะเป็นไปได้ของผลการดำเนินงานที่แท้จริงของกลยุทธ์ นี่คือวิธีคำนวณและตีความ:

สูตร (อย่างง่ายสำหรับผลตอบแทน):

CI₉₅% = R̄ ± 1.96 × (σ / √n)

โดยที่:

  • R̄ = ผลตอบแทนเฉลี่ยต่อการเทรด
  • σ = ส่วนเบี่ยงเบนมาตรฐานของผลตอบแทนต่อการเทรด
  • n = จำนวนการเทรด

ตัวอย่าง: DCA bot ของคุณทำการเทรดเสร็จ 80 ครั้ง ด้วยผลตอบแทนเฉลี่ย 1.5% ต่อ deal และส่วนเบี่ยงเบนมาตรฐาน 0.8%

CI₉₅% = 1.5% ± 1.96 × (0.8% / √80) = 1.5% ± 0.175%

ผลลัพธ์: คุณมั่นใจได้ 95% ว่าผลตอบแทนเฉลี่ยที่แท้จริงต่อ deal อยู่ระหว่าง 1.325% และ 1.675% นี่เป็นช่วงที่แคบและมีประโยชน์เพราะคุณมีการเทรด 80 ครั้ง

เปรียบเทียบ: กลยุทธ์เดียวกันแต่มีการเทรดเพียง 15 ครั้ง:

CI₉₅% = 1.5% ± 1.96 × (0.8% / √15) = 1.5% ± 0.405%

ผลลัพธ์: CI 95% คือ 1.095% ถึง 1.905% — กว้างขึ้นมาก แน่นอนน้อยลงมาก ด้วยการเทรด 15 ครั้ง ผลตอบแทนที่แท้จริงอาจต่ำกว่าค่าเฉลี่ยที่วัดได้ของคุณถึง 27%

และด้วยการเทรดเพียง 8 ครั้ง:

CI₉₅% = 1.5% ± 1.96 × (0.8% / √8) = 1.5% ± 0.554%

ผลลัพธ์: CI 95% คือ 0.946% ถึง 2.054% — ผลตอบแทนที่แท้จริงของคุณอาจต่ำกว่าถึง 37% ด้วยการเทรด 8 ครั้ง คุณแทบไม่รู้ผลการดำเนินงานจริงของคุณเลย

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


ตัวอย่างจริง: ตรวจพบ Overfitting

มาเดินผ่าน walk-forward analysis ที่สมบูรณ์ ซึ่งเปิดโปง overfitting ในกลยุทธ์ DCA กัน

กลยุทธ์

DCA bot บน ETH/USDT ด้วยปริภูมิพารามิเตอร์ดังต่อไปนี้:

  • Take profit: 1.0% ถึง 3.0% (เพิ่มทีละ 0.5%)
  • Safety order: 3 ถึง 8
  • Step scale: 1.0 ถึง 2.0 (เพิ่มทีละ 0.2)
  • Volume scale: 1.0 ถึง 2.0 (เพิ่มทีละ 0.25)
  • Initial deviation: 1.5% ถึง 3.5% (เพิ่มทีละ 0.5%)

จำนวนชุดผสมพารามิเตอร์ทั้งหมด: 5 × 6 × 6 × 5 × 5 = 4,500

ผลลัพธ์ Backtest แบบพื้นฐาน (ช่วง 12 เดือน)

Optimizer หาพารามิเตอร์ที่ดีที่สุดบนชุดข้อมูล 12 เดือนเต็ม:

  • Take profit: 2.5%
  • Safety order: 5
  • Step scale: 1.8
  • Volume scale: 1.75
  • Initial deviation: 2.0%

ผลลัพธ์: ผลตอบแทนรายปี 45.2%, win rate 87%, max drawdown -14.3%, ทำ deal เสร็จ 62 ครั้ง

ดูเยี่ยมมาก แต่มันเป็นของจริงหรือเปล่า?

Walk-Forward Analysis (12 เดือนเดียวกัน)

ใช้หน้าต่าง rolling แบบ in-sample 6 เดือน, out-of-sample 2 เดือน:

รอบช่วง In-Sampleช่วง Out-of-Sampleผลตอบแทน In-Sampleผลตอบแทน Out-of-SampleTP ที่เหมาะสมStep ที่เหมาะสม
1เดือน 1-6เดือน 7-852.1% (รายปี)8.3% (รายปี)2.0%1.6
2เดือน 3-8เดือน 9-1048.7% (รายปี)15.1% (รายปี)2.5%1.8
3เดือน 5-10เดือน 11-1244.3% (รายปี)12.8% (รายปี)3.0%2.0

ผลลัพธ์

ตัวชี้วัดBacktest แบบพื้นฐานWalk-Forward (ผลรวม OOS)
ผลตอบแทนรายปี45.2%12.1%
Win Rate87%79%
Max Drawdown-14.3%-19.7%
Profit Factor3.81.9
Deal ที่วิเคราะห์6262

ผลตอบแทนรายปีของ walk-forward คือ 12.1% — เพียง 27% ของ 45.2% จาก backtest แบบพื้นฐาน Backtest แบบพื้นฐานประเมินผลการดำเนินงานสูงเกินไป 3.7 เท่า

เกิดอะไรขึ้น?

  1. พารามิเตอร์ที่เหมาะสมที่สุดเลื่อนไปมาระหว่างรอบ: Take profit อยู่ในช่วง 2.0% ถึง 3.0%, step scale จาก 1.6 ถึง 2.0 พารามิเตอร์ "ที่เหมาะสมที่สุด" จาก backtest แบบเต็มช่วง (TP=2.5%, Step=1.8) เป็นการประนีประนอมที่บังเอิญดูดีเมื่อเฉลี่ยตลอดทั้งช่วง แต่ที่จริงไม่ได้ดีที่สุดสำหรับช่วงย่อยใดๆ โดยเฉพาะ

  2. สภาวะตลาดเปลี่ยน: เดือน 1-6 เป็นช่วง bullish ปานกลาง (การเด้งบ่อย = ผลตอบแทนสูงสำหรับ DCA) เดือน 7-10 เป็น sideways ที่ความผันผวนต่ำ (ปิด deal ได้น้อยลง) เดือน 11-12 เป็นการปรับฐานอย่างรุนแรง (drawdown ลึกก่อนฟื้นตัว) พารามิเตอร์ที่ optimize สำหรับช่วง bullish ทำผลได้ต่ำกว่าในช่วงต่อมา

  3. 45.2% เป็นเรื่อง "โชคดี": Optimizer แบบเต็มช่วงพบพารามิเตอร์ที่บังเอิญสอดคล้องกับลำดับเฉพาะของจุดดิ่งและการฟื้นตัวใน 12 เดือนนั้น เลื่อนข้อมูลไปแม้เพียง 2-3 สัปดาห์ พารามิเตอร์ชุดเดียวกันนั้นก็จะให้ผลลัพธ์ที่ต่างกันมาก

12.1% ควรค่าแก่การเทรดหรือไม่?

อาจจะใช่ — ผลตอบแทนรายปี 12.1% บนกลยุทธ์ DCA bot หากทนทาน เป็นผลลัพธ์ที่น่าเคารพ ซึ่งเอาชนะกลยุทธ์ถือแบบ passive ส่วนใหญ่ในตลาด sideways/bear กุญแจสำคัญคือการเข้าใจว่า 12.1% คือความคาดหวังตามจริง ไม่ใช่ 45.2% จากนั้นคุณจึงสามารถประเมินได้ว่า 12.1% นั้นคุ้มค่ากับการล็อกเงินทุน, ความเสี่ยง และค่าธรรมเนียมหรือไม่

อัตราส่วนทั่วไปในกลยุทธ์ที่ออกแบบมาดี: ผลการดำเนินงานของ walk-forward โดยทั่วไปอยู่ที่ 25-50% ของผลการดำเนินงานจาก backtest แบบพื้นฐาน หากผลตอบแทน walk-forward ของคุณสูงกว่า 50% ของ backtest แสดงว่ากลยุทธ์ทนทานอย่างผิดปกติ หากต่ำกว่า 25% แสดงว่ามี overfitting รุนแรง ตัวอย่าง ETH DCA ที่ 27% (12.1/45.2) ตกอยู่ที่ปลายล่าง — overfitting ปานกลาง แต่กลยุทธ์ก็ยังมีความได้เปรียบอยู่


เช็กลิสต์การตรวจสอบ 10 ข้อ

ก่อนที่จะลงเงินทุนจริงกับกลยุทธ์ bot ใดๆ ให้ทำงานตามเช็กลิสต์นี้ กลยุทธ์ควรผ่านอย่างน้อย 8 จาก 10 ข้อ จึงจะถือว่าพร้อมสำหรับ production

#การตรวจสอบเกณฑ์ผ่านวิธีทดสอบ
1Walk-forward OOS เป็นบวกผลรวมผลตอบแทน OOS > 0 ในทุกรอบรัน WFA ด้วยอัตราส่วน IS/OOS 3:1
2OOS ≥ 25% ของผลตอบแทน backtestอัตราส่วนผลตอบแทน OOS/backtest ≥ 0.25เปรียบเทียบผลรวม OOS กับ backtest แบบเต็มช่วง
3เสถียรภาพพารามิเตอร์เปลี่ยนพารามิเตอร์ ±20% → สูญเสียผลการดำเนินงาน < 50%ปรับแต่ละพารามิเตอร์ทีละตัว
4ความทนทานข้ามคู่เทรดทำกำไร ≥ 2 จาก 3 คู่ที่ทดสอบทดสอบบน BTC, ETH และ alt หนึ่งตัว (เช่น SOL)
5การรอดข้ามหลายสภาวะผลตอบแทนเป็นบวกใน ≥ 2 จาก 3 สภาวะทดสอบบนช่วงข้อมูล bull, bear และ sideways
6การรอด stress testDrawdown < 2 เท่าของปกติระหว่างการเล่นซ้ำ black swanเล่นซ้ำเหตุการณ์ COVID crash, FTX collapse
7จำนวนการเทรดเพียงพอ≥ 30 การเทรด OOS (≥ 100 ที่ต้องการ)นับการเทรดในทุกรอบ WFA
8ขอบล่าง 95% CI เป็นบวกขอบล่างของ 95% CI บนผลตอบแทน > 0%คำนวณ CI ด้วยสูตรข้างต้น
9Profit factor ≥ 1.5 (OOS)กำไร OOS รวม / ขาดทุน OOS รวม ≥ 1.5คำนวณจากผลลัพธ์ WFA
10โมเดลค่าธรรมเนียม/slippage ตามจริงผลลัพธ์รวมค่าธรรมเนียม 0.04-0.1% ต่อการเทรด + slippageตรวจสอบการตั้งค่าค่าธรรมเนียมของ backtester

การให้คะแนนกลยุทธ์ของคุณ

คะแนนการประเมินการกระทำ
9-10ยอดเยี่ยม — ความได้เปรียบแข็งแกร่งด้วยความมั่นใจสูงนำไปใช้ด้วยขนาด position มาตรฐาน
7-8ดี — น่าจะมีความได้เปรียบจริงพร้อมความไม่แน่นอนบ้างนำไปใช้ด้วยขนาด position ที่ลดลง ติดตามอย่างใกล้ชิด
5-6ก้ำกึ่ง — อาจมีความได้เปรียบแต่หลักฐานยังอ่อนรัน paper trading 1-3 เดือนก่อนลงเงินทุน
3-4อ่อน — ความเสี่ยง overfitting สูงออกแบบพารามิเตอร์กลยุทธ์ใหม่ ทดสอบใหม่
0-2ล้มเหลว — ไม่มีหลักฐานของความได้เปรียบจริงทิ้งกลยุทธ์ทั้งหมดไปได้เลย

Trader หลายคนข้ามเช็กลิสต์นี้เพราะผลลัพธ์ backtest แบบพื้นฐานของพวกเขานั้นล่อตาล่อใจ กลยุทธ์ที่แสดงผลตอบแทนรายปี 80% ใน backtest นั้นยากที่จะเดินจากไป แม้ว่ามันจะไม่ผ่าน 7 จาก 10 ข้อการตรวจสอบ วินัยตรงจุดนี้แยกผู้ปฏิบัติการ bot ที่ยั่งยืนออกจากคนที่ระเบิดบัญชีของตัวเองภายในไม่กี่เดือน จงเชื่อในกระบวนการ ไม่ใช่ใน backtest


เคล็ดลับการนำไปใช้จริง

คุณภาพข้อมูลสำคัญ

Walk-forward analysis ดีได้เท่ากับข้อมูลที่คุณป้อนเข้าไปเท่านั้น ตรวจสอบให้แน่ใจว่าข้อมูลในอดีตของคุณ:

  • รวม wick จริง (high/low) ไม่ใช่แค่ open/close — DCA safety order มักถูก trigger บน wick ภายในแท่งเทียน
  • ไม่มีช่องว่างหรือแท่งเทียนที่หายไป (ตรวจสอบกับผู้ให้บริการข้อมูลของคุณ)
  • ใช้การจัดการ timezone ที่สอดคล้องกัน
  • คำนึงถึงความแตกต่างของราคาเฉพาะแต่ละ exchange (Binance BTC เทียบกับ Bybit BTC อาจต่างกัน 0.1-0.3% ระหว่างช่วงผันผวน)

ต้นทุนการคำนวณ

WFA ต้องการการรัน optimizer ของคุณหลายครั้ง หากการรัน optimization แต่ละครั้งใช้เวลา 5 นาที และคุณมี 9 รอบ WFA นั่นคือ 45 นาทีต่อกลยุทธ์แต่ละแบบ เมื่อรวมการทดสอบเสถียรภาพพารามิเตอร์ (5 ความแปรผัน × 4 พารามิเตอร์ = 20 รันเพิ่มเติม) คุณกำลังมองที่ 2+ ชั่วโมงต่อกลยุทธ์

เคล็ดลับ: เริ่มต้นด้วยตาราง (grid) พารามิเตอร์แบบหยาบ (ชุดผสมน้อยกว่า) สำหรับการคัดกรอง WFA เบื้องต้น รัน optimization แบบละเอียดเฉพาะกับกลยุทธ์ที่ผ่านการคัดกรองแบบหยาบแล้วเท่านั้น

การหลีกเลี่ยง Look-Ahead Bias

ตรวจสอบให้แน่ใจว่า backtester ของคุณไม่ใช้ข้อมูลอนาคตโดยไม่ตั้งใจ แหล่งที่มาทั่วไปของ look-ahead bias:

  • ใช้ราคาปิด (close) สำหรับการ fill order ทั้งที่ order ควร fill ที่ราคาเปิดของแท่งเทียนถัดไป
  • ใช้ indicator ที่คำนวณบนชุดข้อมูลทั้งหมด แทนการคำนวณแบบ rolling
  • รวมข้อมูลเกี่ยวกับเหตุการณ์ (เช่น การล่มสลายของ FTX) เข้าไปในตรรกะกลยุทธ์ก่อนที่มันจะเกิดขึ้น

เมื่อใดควรตรวจสอบความถูกต้องซ้ำ

กลยุทธ์ที่นำไปใช้แล้วควรถูกตรวจสอบความถูกต้องซ้ำทุก 3-6 เดือน หรือเมื่อ:

  • ผลการดำเนินงานเบี่ยงเบนจากความคาดหวังของ walk-forward มากกว่า 2 ส่วนเบี่ยงเบนมาตรฐาน
  • โครงสร้างตลาดเปลี่ยนแปลงพื้นฐาน (กฎระเบียบใหม่, การล่มสลายของ exchange รายใหญ่)
  • คุณแก้ไขพารามิเตอร์ใดๆ ของกลยุทธ์

สำหรับการ optimize อย่างต่อเนื่อง ดูคู่มือของเราเรื่อง การ Optimize ผลการดำเนินงานของ Trading Bot


คำถามที่พบบ่อย

Walk-forward analysis ต่างจากการทดสอบ out-of-sample แบบพื้นฐานอย่างไร?

การทดสอบ out-of-sample แบบพื้นฐานแบ่งข้อมูลออกเป็น training set หนึ่งชุดและ test set หนึ่งชุด (เช่น ฝึก 10 เดือน ทดสอบ 2 เดือน) Walk-forward analysis ทำสิ่งนี้ หลายครั้ง ด้วยหน้าต่างแบบ rolling โดยให้ผลลัพธ์ out-of-sample จำนวนมากข้ามสภาวะตลาดที่ต่างกัน สิ่งนี้ให้การกระจาย (distribution) ของผลการดำเนินงาน out-of-sample แก่คุณ แทนที่จะเป็นจุดข้อมูลเดียว — ซึ่งน่าเชื่อถือกว่ามากในการประมาณผลการดำเนินงานในโลกจริง

ฉันควรใช้อัตราส่วน in-sample ต่อ out-of-sample เท่าไหร่?

เริ่มต้นด้วย 3:1 (เช่น 6 เดือน IS / 2 เดือน OOS) หากกลยุทธ์ของคุณเทรดบ่อย (หลาย deal ต่อวัน) คุณสามารถใช้หน้าต่างที่สั้นกว่าได้ (3 เดือน IS / 1 เดือน OOS) หากเทรดน้อย (ไม่กี่ deal ต่อเดือน) ให้ใช้หน้าต่างที่ยาวกว่า (12 เดือน IS / 4 เดือน OOS) ข้อจำกัดสำคัญ: แต่ละหน้าต่าง OOS ควรมีการเทรดอย่างน้อย 8-10 ครั้ง เพื่อให้ผลลัพธ์มีความหมายในระดับขั้นต่ำ

ผลลัพธ์ walk-forward ของฉันแย่กว่า backtest — ฉันควรเลิกกลยุทธ์นี้หรือไม่?

ไม่จำเป็น ผลลัพธ์ walk-forward จะแย่กว่าผลลัพธ์ backtest เสมอ — นั่นเป็นเรื่องปกติและคาดได้ คำถามคือ แย่กว่ามากแค่ไหน หากผลตอบแทน WFA อยู่ที่ 25-50% ของผลตอบแทน backtest กลยุทธ์ก็น่าจะมีความได้เปรียบที่แท้จริง หากผลตอบแทน WFA ต่ำกว่า 10% ของผลตอบแทน backtest (เช่น backtest แสดง 50%, WFA แสดง 4%) กลยุทธ์ก็ overfit อย่างหนักและควรถูกออกแบบใหม่หรือทิ้งไป

ฉันต้องการกี่รอบ walk-forward?

ขั้นต่ำ 4-5 รอบสำหรับความน่าเชื่อถือพื้นฐาน ตามอุดมคติคือ 8-12 รอบสำหรับข้อสรุปที่ทนทาน รอบที่มากขึ้นหมายถึงจุดข้อมูล out-of-sample มากขึ้น ซึ่งทำให้ช่วงความเชื่อมั่นของคุณแคบลง ด้วยรอบที่น้อยกว่า 4 ผลรวม out-of-sample ของคุณอาจถูกบิดเบือนด้วยช่วง OOS ช่วงเดียวที่ดีหรือแย่ผิดปกติ

ฉันสามารถใช้ walk-forward analysis กับ grid bot หรือกลยุทธ์ที่ไม่ใช่ DCA อื่นๆ ได้หรือไม่?

ได้ WFA เป็นกลางต่อกลยุทธ์ (strategy-agnostic) — มันใช้ได้กับกลยุทธ์เทรดแบบมีพารามิเตอร์ใดๆ Grid bot, กลยุทธ์ mean-reversion, กลยุทธ์ momentum และแม้แต่ระบบเข้าตามสัญญาณ ล้วนได้ประโยชน์จากการตรวจสอบความถูกต้องแบบ walk-forward ระเบียบวิธีเหมือนกัน: optimize พารามิเตอร์บนข้อมูล in-sample, ทดสอบบนข้อมูล out-of-sample, เลื่อนไปข้างหน้า, ทำซ้ำ

จะเกิดอะไรขึ้นหากพารามิเตอร์ที่เหมาะสมที่สุดของฉันเปลี่ยนแปลงอย่างมากระหว่างรอบ WFA?

การเลื่อนพารามิเตอร์ครั้งใหญ่ระหว่างรอบบ่งชี้สองสิ่ง: (1) สภาวะตลาดเปลี่ยนแปลงอย่างมีนัยสำคัญระหว่างช่วง (ซึ่งเป็นข้อมูลจริงและสำคัญ) หรือ (2) ปริภูมิพารามิเตอร์ของคุณมีจุดที่เหมาะสมเฉพาะที่ (local optima) หลายจุดที่มีผลการดำเนินงานใกล้เคียงกัน (optimizer กระโดดไปมาระหว่างจุดเหล่านั้นแบบสุ่ม) เพื่อแยกแยะ ให้ตรวจสอบว่า ทิศทาง ของการเลื่อนสอดคล้องกันหรือไม่ หาก take profit เพิ่มขึ้นเรื่อยๆ ตามเวลา แสดงว่าตลาดกำลังมีแนวโน้มไปสู่ความผันผวนที่ต่ำลง หากมันแกว่งไปมาแบบสุ่ม พารามิเตอร์นั้นอาจไม่สำคัญมากนัก — ซึ่งที่จริงเป็นสัญญาณที่ดีสำหรับความทนทาน


สร้างบัญชี

นำความรู้ไปใช้จริงด้วยการเปิดบัญชี Freya วันนี้

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