4 Main Types of Standard Backtesting

4 ประเภทการทดสอบมาตราฐาน สำหรับระบบเทรดหุ้น

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

 

การทดสอบระบบที่ ThaiQuants เคยแนะนำไว้มีทั้งหมด 13 ประเภท อย่างละเอียดทั้งในส่วนของ ทดสอบกลยุทธ์ ทดสอบเสถียรภาพ ทดสอบประสิทธิภาพสัญญาณซื้อขาย ทดสอบตลาด ทดสอบความเสี่ยง ทดสอบพอร์ต และอื่นๆ ดังที่ได้อธิบายอย่างละเอียดไว้ใน thaiquants.com/backtesting ซึ่งจะสร้างความมั่นใจให้ผู้ทดสอบและความน่าจะเป็นในการทำกำไรได้จริง แต่ทั้งกระนั้น ผู้ทดสอบจะต้องมีความรู้และประสบการณ์ที่มากพอ ซึ่งน่าจะยังไม่เหมาะกับผู้เริ่มต้นพัฒนาระบบเทรดหุ้น

 

ดังนั้น เพื่อลดประเภทการทดสอบให้ผู้เริ่มต้น แล้วยังสามารถสร้างระบบเทรดที่มีโอกาสสูงขึ้นในการทำกำไรได้จริงตามที่ได้ทดสอบไว้ ThaiQuants จึงทำการคัดเลือก 4 ประเภทการทดสอบหลักๆที่ต้องใช้ (มองว่าเป็นขั้นต่ำ!) ดังต่อไปนี้

  1. Simulation (จำลองความไม่แน่นอนในการทดสอบ เพื่อได้มาซึ่งความน่าจะเป็นในผลลัพธ์)
  2. Walk Forward (เสมือนว่าทดสอบและเทรดจริงด้วยการแบ่งข้อมูลออกเป็น 2 ชุด)
  3. Monkey Tests (วัดประสิทธิภาพสัญญาณซื้อขายแบบไม่ลำเอียง)
  4. Ruin Test (วิเคราะห์ความล้มเหลวของระบบในช่วงต้นและในระยะยาว)

 

ขอเตือนก่อนว่า การแค่กดปุ่ม Backtest ใน AmiBroker  แล้วได้ค่าผลลัพธ์ต่างๆเช่น Annual Return, Drawdown, CAR/MaxDD เพียงค่าคงที่ค่าเดียว นั้นไม่สามารถสรุปว่ากลยุทธ์นั้นๆจะสามารถทำผลกำไรได้จริงตามที่ทดสอบ!

 

แค่กดปุ่ม Backtest เป็น
ไม่ได้หมายความว่า ทดสอบระบบเป็น

 1. SIMULATION

Simulation เป็นการทดสอบระบบที่จำลองการเทรดให้เสมือนจริง ด้วยการใส่ความไม่แน่นอนลงไปในการทดสอบระบบของเรา โดยความไม่แน่นอนอาจอยู่ในรูปแบบของ เช่น 1. ราคาซื้อ/ขายที่ผันผวน (buy/sell price slippage) 2. การพลาดเข้าสัญญาณเทรด (missing trades)  หรือ 3. การเพิ่มความผันผวนในตัวแปร (noise in parameters)

ศึกษาอย่างละเอียด: http://thaiquants.com/vlog/monte-carlo-simulation-in-amibroker/

Concept ของ Simulation Backtesting
เป็นจุดเริ่มต้นของมาตราฐานการทดสอบแบบอื่นๆที่สำคัญ

วิธีสังเกตเบื้องต้นว่าโค้ดนั้นมีการใช้ Simulation Backtesting คือให้มองหา 1. ฟังก์ชั่น optimize และ 2. random ว่ามีอยู่ในโค้ดมั้ย เช่น ตัวอย่างการใช้ optimize และ random ฟังก์ชั่นใน AmiBroker Code สามารถศึกษาได้จาก Final Version of AmiBroker Code Template: https://thaiquants.com/template/

 

อ่านเพิ่มเติมที่:

https://www.amibroker.com/guide/h_montecarlo.html

https://www.marketcalls.in/amibroker/monte-carlo-analysis-using-amibroker.html

หมายเหตุ: ลิงค์ทั้งสองข้างต้นพูดถึง Trade Shuffling ซึ่งในเบื้องต้นถือว่าพอใช้ได้ แต่ในความเป็นจริง เราควรใช้ Trade Modeling ซึ่งใช้ Simulation ตามวิดีโอที่อธิบายไว้ในเวป

 

2. WALK FORWARD

Advanced Mode Walk Forward Analysis

Walk Forward เป็นการแบ่งข้อมูลเป็น 2 ชุด in-sample (IS) และ out-of-sample (OOS) เพื่อเปรียบเทียบเสมือนว่าทดสอบระบบด้วยข้อมูลชุด IS แล้วนำค่าต่างๆไปใช้กับทดสอบระบบด้วยข้อมูลชุด OOS (แต่ยังอยู่ในการทดสอบ ไม่ใช่เทรดจริง) สำหรับคนทั่วไป นี่คือหนึ่งในการทดสอบที่น่าเชื่อถือที่สุด (แต่สำหรับ ThaiQuants ยังต้องประกอบกับการทดสอบแบบอื่นๆ)

ศึกษาอย่างละเอียด: http://thaiquants.com/vlog/walk-forward-analysis/

Walk Forward เมื่อใช้ร่วมกับ Simulation
จะเห็นภาพรวมระยะยาวของกลยุทธ์ได้ดีมาก

3. MONKEY TESTS

Monkey Tests in AmiBroker and Excel

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

ศึกษาอย่างละเอียด: http://thaiquants.com/vlog/monkey-tests/

Monkey Tests เป็นการทดสอบประเภทเดียว
ที่โฟกัสประสิทธิภาพสัญญาณซื้อขาย

อ่านเพิ่มเติม: ประสบการณ์  Quant แชมป์ 3 สมัย Kevin J. Davey ผู้คิดค้น Monkey Tests http://thaiquants.com/abrr/quant-beginning-kevin-j-davey/

 

4. RUIN TEST

Ruin Test ใช้หาความน่าจะเป็นว่าระบบเทรดมีโอกาสพังพินาศ (ruin) มากน้อยแค่ไหน กี่เปอร์เซนต์ ซึ่งในอดีตจะใช้สูตรคณิตศาสตร์เบื้องต้นคร่าวๆในการหาความน่าจะเป็น แต่ในปัจจุบันควรใช้ Simulation ควบคู่กับ Ruin Test ในการจำลองการทดสอบระบบให้เสมือนจริง ด้วยการรวมความไม่แน่นอนและผันผวนต่างๆ (risk) ลงไป ซึ่งสูตรคณิตศาสตร์ไม่สามารถโมเดลได้สมจริง

ศึกษาอย่างละเอียด: http://thaiquants.com/vlog/risk-of-ruin/

Ruin Tests ทดสอบความเสี่ยงที่ระดับพอร์ต
ว่ามีโอกาสที่จะพังพินาศกี่เปอร์เซ็นต์

อ่านเพิ่มเติมที่: http://thaiquants.com/tag/risk/ เพื่อสร้างและทดสอบระบบเทรดหุ้นที่กันความเสี่ยงได้

 

สรุป

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

Simulation ผนวกความผันผวน
Walk Forward ผลลงทุนระยะยาว
Monkey ประสิทธิภาพซื้อขาย
Ruin ความเสี่ยงพอร์ตพังพินาศ

สำหรับผู้สนใจ การทดสอบแบบต่างๆที่อ้างอิงถึงในโพสนี้ ให้พิจาณา คอร์สทั้ง 2 ดังนี้

หรือดูวิดีโอแนะนำคอร์สทั้งหมดของ ThaiQuants ที่ thaiquants.com/courses