คำตอบสั้น ๆ
การทดสอบย้อนหลังนำกฎการเทรดของคุณไปใช้กับราคาในอดีต เพื่อดูว่ากฎเหล่านั้นจะทำงานอย่างไร ทั้งรายการซื้อขาย ผลลัพธ์หลังหักต้นทุน และการลดลงมากที่สุดระหว่างทาง การทดสอบย้อนหลังที่น่าเชื่อถือจะรวมค่าธรรมเนียมจริงและ slippage เปรียบเทียบผลลัพธ์กับการถือเหรียญไว้เฉยๆ และใช้ข้อมูลมากกว่าหนึ่งช่วงเวลา ผลลัพธ์ในอดีตไม่ได้ทำนายผลลัพธ์ในอนาคต
โดย Toshendra Sharmaอัปเดตล่าสุด นโยบายด้านเนื้อหา
การทดสอบย้อนหลังคืออะไร
การทดสอบย้อนหลังคือการนำชุดกฎการเทรดไปใช้กับราคาในอดีต เพื่อดูว่ากฎเหล่านั้นจะทำงานอย่างไร ซอฟต์แวร์จะไล่ดูข้อมูลย้อนหลังทีละราคา ใช้กฎของคุณตามที่เขียนไว้อย่างเคร่งครัด และบันทึกทุกคำสั่งซื้อขายที่กฎจะสร้างขึ้น ต้นทุนของแต่ละรายการ และมูลค่าพอร์ตที่จะเพิ่มขึ้นหรือลดลง
การ backtest ตอบคำถามหนึ่งข้อ: กฎเหล่านี้จะใช้ได้ผลในอดีตหรือไม่ เมื่อรวมต้นทุนแล้ว? เป็นวิธีที่ประหยัดที่สุดในการคัดแนวคิดที่ไม่ดีออก กฎที่ขาดทุนในช่วงสองปีที่ผ่านมาไม่น่าจะเป็นจุดเริ่มต้นที่ดี
การทดสอบย้อนหลังไม่อาจบอกได้ว่ากฎจะใช้ได้ผลในเดือนหน้าหรือไม่ ตลาดเปลี่ยนแปลงอยู่เสมอ และกฎที่เหมาะกับช่วงเวลาหนึ่งอาจใช้ไม่ได้ในช่วงถัดไป นั่นจึงเป็นเหตุผลว่าทำไมขั้นตอนหลังการทดสอบย้อนหลังคือการเทรดจำลอง ไม่ใช่การใช้เงินจริง
backtest ทำงานอย่างไร
- เลือกตลาดและช่วงเวลา เช่น BTC/USDT บน Binance ในช่วง 2 ปีที่ผ่านมา
- เขียนกฎให้ชัดเจน "ซื้อเมื่อ BTC ลดลง 5% ภายใน 24 ชั่วโมง ขายเมื่อราคาสูงกว่าราคาซื้อ 4% ตั้ง stop loss ที่ต่ำกว่าราคาซื้อ 6% และเปิดออเดอร์ซื้อได้ไม่เกิน 2 รายการ"
- จำลองราคาย้อนหลัง ในแต่ละขั้นตอน ระบบทดสอบจะตรวจว่ากฎข้อใดทำงานหรือไม่ และจำลองออเดอร์ที่ราคานั้น
- รวมต้นทุน ออเดอร์จำลองแต่ละรายการจะคิดค่าธรรมเนียมของกระดานเทรดและเผื่อ slippage ซึ่งคือส่วนต่างระหว่างราคาที่คาดไว้กับราคาที่จับคู่ได้จริง
- สรุปผล การทดสอบจะแสดงผลลัพธ์ตลอดช่วงเวลา จำนวนออเดอร์ สัดส่วนออเดอร์ที่ได้กำไร และการลดลงมากที่สุดจากจุดสูงสุดระหว่างทาง
วิธีอ่านผล backtest อย่างตรงไปตรงมา
ตัวเลขสี่รายการนี้สำคัญกว่าผลลัพธ์ที่เห็นเด่นชัด:
- ช่วงเวลา ผลลัพธ์ที่ไม่ระบุช่วงเวลานั้นไม่มีความหมาย ช่วงเวลา 12 เดือนที่มีตลาดร่วงหนักแตกต่างจากช่วงเวลา 12 เดือนที่ราคาปรับขึ้นมาก
- การลดลงที่รุนแรงที่สุด หรือที่เรียกว่า max drawdown คือการลดลงมากที่สุดจากจุดสูงสุดก่อนราคาฟื้นตัว ตัวเลขนี้บอกว่าการใช้กลยุทธ์นั้นจริงจะทำให้คุณต้องรับมือกับการขาดทุนหนักแค่ไหน TradeCorgi แสดงตัวเลขนี้ให้เห็นชัดเจนเท่ากับผลลัพธ์ ไม่ซ่อนไว้ในตัวอักษรเล็ก ๆ
- เปรียบเทียบกับการซื้อแล้วถือ นำผลของกลยุทธ์มาเทียบกับการซื้อเหรียญตั้งแต่ต้นช่วงเวลาแล้วถือไว้ กฎหลายแบบให้ผลตามหลังการถือเหรียญในตลาดขาขึ้น และมีประโยชน์เฉพาะในตลาดขาลง ซึ่งอาจไม่เป็นปัญหา หากคุณเข้าใจเรื่องนี้
- จำนวนครั้งที่เทรด การเทรด 5 ครั้งเป็นเพียงตัวอย่างเล็ก ๆ ส่วน 50 ครั้งเริ่มบอกอะไรได้บ้าง กลยุทธ์ที่มีการเทรดน้อยมากใน backtest แทบยังไม่ได้รับการทดสอบ
ข้อผิดพลาดที่ทำให้ผล Backtest ชวนให้เข้าใจผิด
- ไม่รวมค่าธรรมเนียมและราคาไถล เป็นข้อผิดพลาดที่พบบ่อยที่สุดซึ่งทำให้ผลลัพธ์ดูดีเกินจริง กฎที่ซื้อขายทุกวันโดยเสียค่าธรรมเนียม 0.1% ต่อคำสั่งจะเสียค่าธรรมเนียมประมาณ 0.2% ในการซื้อขายครบหนึ่งรอบ และเมื่อผ่านไปหนึ่งปี ค่าใช้จ่ายนี้อาจลบข้อได้เปรียบเล็กน้อยจนหมด
- ทดสอบเพียงช่วงเวลาเดียว ลองใช้กฎเดิมกับช่วงเวลาที่แตกต่างกัน เช่น ปีที่ราคาขึ้น ปีที่ราคาลง และปีที่ราคาไม่เปลี่ยนแปลงมาก กฎที่ใช้ได้ผลเพียงช่วงเดียวคือการเดิมพันว่าตลาดรูปแบบนั้นจะกลับมาอีก
- ปรับแต่งจนเข้ากับข้อมูลย้อนหลังมากเกินไป หากปรับตัวเลขจนผลลัพธ์ดูสมบูรณ์แบบ (4.7% แทน 5%, 3.9% แทน 4%) คุณอาจกำลังปรับให้เข้ากับอดีต แทนที่จะค้นหารูปแบบจริง เลือกใช้กฎตัวเลขกลม ๆ ที่เรียบง่ายและใช้ได้กับค่าหลากหลายช่วง
- อคติจากการใช้ข้อมูลอนาคต การทดสอบที่ใช้ข้อมูลซึ่งกฎไม่อาจรู้ได้ในขณะนั้น เช่น ราคาปิดของวันในตอนเที่ยง จะให้ผลดูดีกว่าความเป็นจริงเสมอ
- มองข้ามการลดลงสูงสุด กลยุทธ์ที่จบด้วยมูลค่าสูงกว่าแต่ระหว่างทางลดลง 40% เป็นกลยุทธ์ที่คนส่วนใหญ่อาจเลิกใช้เมื่อราคาอยู่ที่จุดต่ำสุด
ตัวอย่างประกอบ
นำกลยุทธ์ BTC Dip Buyer ไปทดสอบย้อนหลังเป็นเวลา 90 วันบน Binance โดยคิดค่าธรรมเนียม 0.1% สำหรับการซื้อและขายทุกครั้ง และ Slippage 0.05% ต่อคำสั่ง:
- กฎดังกล่าวเทรด 9 ครั้ง: 6 ครั้งได้กำไร และ 3 ครั้งชน stop-loss
- ตลอด 90 วันนั้น ยอดบัญชีเมื่อสิ้นสุดสูงกว่าตอนเริ่มต้น 6.8% หลังหักค่าธรรมเนียมแล้ว
- การถือ BTC ไว้เฉย ๆ ตลอด 90 วันเดียวกัน ให้ผลลัพธ์สูงขึ้น 3.1% เมื่อสิ้นสุดช่วงเวลา
- ระหว่างทาง ยอดลดลงจากจุดสูงสุดมากที่สุด 4.9% เทียบกับ 10.7% สำหรับการถือเหรียญไว้
อ่านผลอย่างตรงไปตรงมา: ในช่วงเวลา 90 วันนี้ กฎทำผลงานได้ดีกว่าการถือสินทรัพย์ไว้ โดยมีการปรับตัวลงมากที่สุดน้อยกว่า แต่การเทรด 9 ครั้งในช่วงเวลาเดียวมีหลักฐานน้อย ขั้นต่อไปคือทดสอบย้อนหลังให้นานขึ้น แล้วจึงเทรดจำลอง นี่เป็นเพียงตัวอย่างประกอบ ไม่ใช่ผลลัพธ์จริง
การทดสอบย้อนหลังบน TradeCorgi
เมื่อคุณอธิบายกลยุทธ์ TradeCorgi จะทำแบ็กเทสต์ให้อัตโนมัติหลังจากคุณยืนยันกฎ:
- รวมค่าธรรมเนียมเสมอ โดยใช้อัตราค่าธรรมเนียมของระดับบัญชีคุณ พร้อมรวมราคาไถลและมูลค่าคำสั่งซื้อขายขั้นต่ำของตลาดซื้อขาย
- แสดงการถือเหรียญไว้บนกราฟเดียวกัน เพื่อให้คุณเห็นว่ากฎช่วยเพิ่มอะไรหรือไม่
- แสดงการลดลงสูงสุดในสเกลเดียวกับผลลัพธ์
- ข้อมูลย้อนหลังตามแพ็กเกจ: 90 วันบน Sandbox, 2 ปีบน Copilot, 4 ปีบน Autopilot และข้อมูลย้อนหลังทั้งหมดของตลาดซื้อขายบน Pro
ผลลัพธ์ทุกกรณีระบุช่วงเวลาและค่าธรรมเนียม แบ็กเทสต์ที่ดีจะปลดล็อกการเทรดจำลอง แต่จะไม่ปลดล็อกการเทรดเงินจริงโดยตรง
รายการตรวจสอบการทดสอบย้อนหลัง
- มีการระบุช่วงเวลา และครอบคลุมสภาวะตลาดมากกว่าหนึ่งรูปแบบ
- รวมค่าธรรมเนียมและ slippage ในทุกการเทรดแล้ว
- เปรียบเทียบผลลัพธ์กับการถือเหรียญไว้เฉย ๆ
- แสดงการลดลงที่มากที่สุด และคุณยอมรับได้
- มีจำนวนการเทรดมากพอที่จะใช้ประเมินผลได้
- กฎเรียบง่ายและเป็นตัวเลขกลม ๆ ไม่ได้ปรับแต่งจนละเอียดถึงทศนิยม
- ขั้นต่อไปคือ paper trading ไม่ใช่ใช้เงิน live ทั้งหมดของคุณ
คำถาม
ผลทดสอบย้อนหลังที่ดีพิสูจน์ได้หรือไม่ว่ากลยุทธ์ใช้ได้ผล?
ไม่ แสดงให้เห็นว่ากฎเหล่านั้นจะทำงานอย่างไรในช่วงเวลาหนึ่งในอดีตหลังหักต้นทุนแล้ว ผลลัพธ์ในอนาคตอาจต่างออกไป ดังนั้นให้ใช้ backtest เพื่อคัดกรองไอเดียที่ไม่ดี ไม่ใช่เป็นหลักฐานว่าไอเดียไหนดี
การทำ backtest คริปโตควรใช้ข้อมูลย้อนหลังนานแค่ไหน?
ควรครอบคลุมทั้งตลาดขาขึ้น ขาลง และตลาดที่ราคาไม่ค่อยเปลี่ยนแปลง ซึ่งสำหรับคริปโตโดยทั่วไปหมายถึงอย่างน้อย 1 ปี และควรมีข้อมูลหลายปี TradeCorgi มีข้อมูลย้อนหลัง 90 วันใน Sandbox, 2 years ใน Copilot, 4 years ใน Autopilot และประวัติการซื้อขายทั้งหมดของตลาดใน Pro
ทำไมต้องรวมค่าธรรมเนียมและสลิปเพจ?
เพราะการเทรดจริงทุกครั้งมีต้นทุน กฎที่เทรดบ่อยอาจดูดีเมื่อยังไม่คิดต้นทุน แต่ขาดทุนได้เมื่อรวมต้นทุนแล้ว การทดสอบย้อนหลังของ TradeCorgi รวมค่าธรรมเนียมกระดานเทรดและ slippage เสมอ
Overfitting คืออะไร?
ปรับกฎจนเข้ากับราคาในอดีตได้อย่างสมบูรณ์แบบ ผลลัพธ์ในช่วงทดสอบดูดีมาก แต่มักน่าผิดหวังในภายหลัง เพราะกฎเรียนรู้ความผันผวนแบบสุ่มแทนที่จะเรียนรู้รูปแบบจริง
ฉันทดสอบกลยุทธ์ย้อนหลังได้ฟรีไหม?
ได้ แผน Sandbox ฟรีทดสอบย้อนหลังจากข้อมูล 90 วัน โดยรวมค่าธรรมเนียม และใช้เอเจนต์เทรดจำลองได้ 1 ตัว
ควรเปรียบเทียบผลแบ็กเทสต์กับอะไร?
เทียบกับการซื้อแล้วถือเหรียญเดียวกันในช่วงเวลาเดียวกัน หากกฎเทรดทำผลงานได้ไม่ดีกว่าการถือหลังหักค่าธรรมเนียม หรือทำได้ดีกว่าแต่ต้องยอมรับการขาดทุนสูงสุดที่ลึกกว่ามาก ก็อาจไม่คุ้มที่จะนำไปรัน
ลองใช้เป็นเอเจนต์
นำคู่มือนี้ไปใช้กับ บอตซื้อ BTC ตอนราคาย่อตัว กลยุทธ์ เริ่มต้นด้วยการเทรดจำลองโดยใช้เงินเสมือน
บอตซื้อ BTC ตอนราคาย่อตัว
BTC/USDT บน Binance
เทรดจำลอง- จุดเข้า
- ซื้อเมื่อราคา BTC ลดลง 5% ภายใน 24 ชั่วโมง
- ขนาด
- $50 ต่อการซื้อ โดยเปิดสถานะซื้อได้สูงสุด 2 รายการ
- ออกจากสถานะ
- ขายเมื่อราคาสูงกว่าราคาซื้อ +4%
- Stop-loss
- ขายเมื่อราคาต่ำกว่าราคาซื้อ -6%
- ขีดจำกัดการขาดทุนรายวัน
- $25 จากนั้นเอเจนต์จะหยุดทำงานจนถึงวันพรุ่งนี้