로그인
← Glossary

แบ็กเทสต์ (Backtest)

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

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

ลองยกตัวอย่าง สมมติแบ็กเทสต์กฎ 'ถ้า RSI ลงต่ำกว่า 30 ให้ซื้อ แล้วขายในอีก 24 ชั่วโมงถัดมา' ถ้าในข้อมูลแท่ง 1 ชั่วโมงย้อนหลัง 2 ปี สัญญาณนี้เกิดขึ้น 500 ครั้ง และมี 260 ครั้งที่ราคาสูงขึ้นหลังผ่านไป 24 ชั่วโมง อัตราชนะก็คือ 52% ในเมื่อโยนเหรียญยังได้ 50% เราก็ได้รู้ว่ากฎนี้ดีกว่าการโยนเหรียญแค่นิดเดียวเท่านั้นเอง

ดูแค่อัตราชนะอย่างเดียวไม่ได้ ต้องคำนวณด้วยว่า ตอนถูกได้เท่าไหร่ ตอนผิดเสียเท่าไหร่ ต่อให้อัตราชนะ 52% แต่ถ้าเป็นกฎที่ชนะทีละ 1% แพ้ทีละ 2% พอร์ตก็มีแต่จะหด แล้วพอหักค่าธรรมเนียมที่จ่ายทุกรอบออกอีก ความได้เปรียบบาง ๆ ที่เหลืออยู่ก็อาจหายไปทั้งก้อน

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

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

What the data actually shows

หน้า แคตตาล็อกเซตอัป และหน้า /odds ของ Barobara ก็คือผลแบ็กเทสต์พวกนี้แหละ เราเปิดเผยตรง ๆ ว่าสัญญาณกราฟยอดนิยมของบิตคอยน์เคยเกิดขึ้นกี่ครั้งในอดีต แล้วหลังจากนั้นราคาขึ้นกี่ % บอกผลล่วงหน้าเลยก็ได้ว่าสัญญาณส่วนใหญ่ให้ผลขึ้นลงเกือบครึ่งต่อครึ่ง ลองดู ผลจริงของ RSI Oversold (TF 1 ชั่วโมง) จะเห็นว่าความเชื่อ 'oversold แล้วต้องเด้ง' ต่างจากตัวเลขจริงแค่ไหน ส่วนค่าธรรมเนียมกัดกินผลลัพธ์แค่ไหน ดูได้ที่หน้าค่าธรรมเนียม

Common misconceptions

'แบ็กเทสต์อัตราชนะสูง = ทำเงินได้' เป็นความเข้าใจผิดที่เจอบ่อย อัตราชนะแค่นับว่าถูกกี่ครั้ง ไม่ได้บอกเลยว่าตอนถูกได้เท่าไหร่ ตอนผิดเสียเท่าไหร่ กฎที่ชนะ 90% แต่สิบครั้งมีหนึ่งครั้งที่เสียหนัก ๆ ก็ทำพอร์ตติดลบได้

'เคยเวิร์กในอดีต อนาคตก็ต้องเวิร์ก' ก็เป็นความคิดที่อันตราย พอบรรยากาศตลาดเปลี่ยน กฎที่เคยแม่นก็ใช้ไม่ได้อีกเป็นเรื่องปกติ แบ็กเทสต์คือบันทึกในอดีต ไม่ใช่คำรับประกัน

FAQ

Q. ต้องเขียนโค้ดเป็นถึงจะทำแบ็กเทสต์ได้ไหม?

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

Q. อัตราชนะจากแบ็กเทสต์ 52% ถือว่าดีไหม?

แทบไม่ต่างจากการโยนเหรียญ (50%) และเป็นความได้เปรียบที่อาจหายไปทันทีที่หักค่าธรรมเนียม ยิ่งถ้าจำนวนตัวอย่างน้อย ส่วนต่าง 2%p นั้นเองก็อาจเป็นแค่ความบังเอิญ อย่าดูแค่อัตราชนะตัวเดียว ต้องดูจำนวนตัวอย่าง ขนาดกำไรขาดทุน และค่าธรรมเนียมไปพร้อมกัน

Related terms

Overfitting (ฟิตกับอดีตเกินไป)อัตราชนะ (Win Rate)ค่าคาดหวัง (EV)
For reference, not a prediction. Term explainers and historical data are not a guaranteed direction.
barobara.com · not a signal group — honest term explainers