ในโลกปัจจุบัน Algorithmic trading เพิ่มขึ้นอย่างมากขั้นตอนหนึ่งที่มีส่วนความสำคัญในการพัฒนากลยุท์ของ Algorithmic trading คือbacktesting เราทำ Backtest เพื่อเข้าใจ Characteristic ของกลยุทธ์การลงทุน จะเกิดอะไรขึ้นถ้าเราใช้กลยุทธ์การลงทุนแบบที่เราสร้างขึ้น
แน่นอนว่าเรามีทางเลือก ในการทำ backtesting มากมายทั้ง แพลตฟอร์ตต่างๆ รวมถึง Library Open source แล้วเมื่อไหร่แหละเราควรสร้างมันขึ้นมาเอง ผมสรุป Video”When Should You Build Your Own Backtester?” by Dr. Michael Hallshttps://www.youtube.com/watch?v=OhGdVdolqkU ให้ทุกคน
ข้อผิดพลาดทั่วไปในการทดสอบกลยุทธ์ Trading Strategies
In-Sample Testing
เกิดขึ้นเมื่อคุณใช้ชุดข้อมูลเดียวกันในการ "พัฒนากลยุทธ์" และ "ทดสอบ" ในโมเดลการซื้อขายของคุณ(รวมถึงการปรับตัวแปร และการใช้ ML) การปฏิบัติเช่นนี้มักนำไปสู่การประเมินผลการดำเนินงานที่สูงเกินจริงซึ่งไม่สามารถใช้ได้จริงในการซื้อขายจริง ปัญหาหลักที่นี่คือการขาดการตรวจสอบกับข้อมูลที่ยังไม่ได้เห็น ซึ่งอาจแตกต่างจากชุดข้อมูลการฝึกอย่างมาก สาระสำคัญของมันคือการตั้งค่าโมเดลให้เข้ากับข้อมูลประวัติศาสตร์อย่างละเอียดแต่ล้มเหลวในการปรับตัวเข้ากับสภาพตลาดที่เปลี่ยนแปลงได้
ความลำเอียงจากการอยู่รอด (Survivorship Bias)
เพราะบางครั้งการหาองค์ประกอบของหุ้นในดัชนี ณ เวลาในอดีตจริงๆ เป็นเรื่องยาก ดัชนีตลาดหุ้นเช่น SET หรือ S&P 500 มีการเปลี่ยนแปลงโดยการเพิ่มและลดรายชื่อบริษัทเป็นระยะ ข้อผิดพลาดทั่วไปในการทดสอบย้อนหลังคือการละเลยการเปลี่ยนแปลงเหล่านี้ ทำให้โดยไม่ตั้งใจเน้นไปที่ 'ผู้ชนะ' ที่ยังคงอยู่ในดัชนีเนื่องจากมีมูลค่าตลาดที่แข็งแกร่ง การหลีกเลี่ยงจุดอ่อนนี้ จำเป็นต้องใช้ข้อมูลที่ปราศจากความลำเอียงจากการอยู่รอด เฉพาะเมื่อทำการทดสอบย้อนหลังระยะยาวที่ครอบคลุมการเปลี่ยนแปลงดัชนีหลายครั้ง
Look-Ahead Bias
ความลำเอียงนี้สามารถเข้าไปอยู่ในการทดสอบย้อนหลังได้อย่างละเอียด เช่นเมื่อกลยุทธ์การซื้อขายคำนวณเมตริก เช่น อัตราส่วนการถดถอยเชิงเส้นในกรอบเวลาที่กำหนด แล้วใช้ในกรอบเวลาเดียวกัน การกระทำนี้ทำให้ข้อมูลอนาคตเข้ามาใน
โมเดลโดยไม่ได้ตั้งใจ ซึ่งอาจนำไปสู่การประเมินผลการดำเนินงานของกลยุทธ์สูงเกินจริง การใช้งาน backtester ที่ขับเคลื่อนด้วยเหตุการณ์สามารถลดปัญหานี้ได้มาก โดยให้ความมั่นใจว่าข้อมูลอนาคตไม่ถูกใช้ในกระบวนการตัดสินใจปัจจุบัน
Market Regime Changes
พลวัตของตลาดหุ้นไม่คงที่; พารามิเตอร์ที่ควบคุมการเคลื่อนไหวของตลาดสามารถเปลี่ยนแปลงไปตามเวลาได้ ความไม่คงที่นี้หมายความว่าโมเดลที่สร้างจากข้อมูลประวัติศาสตร์อาจไม่มีประสิทธิภาพอย่างต่อเนื่องเมื่อสภาพตลาดเปลี่ยนไป การทำให้โมเดลที่ใช้พารามิเตอร์เป็นหลัก (ซึ่งหลายกลยุทธ์การซื้อขายเป็นตัวอย่าง) ทำงานได้ในสภาพตลาดที่แตกต่างกันนั้นเป็นงานที่ท้าทาย ทำให้ผลการดำเนินงานในการจำลองสูงกว่าในการซื้อขายจริง
ต้นทุนการทำธุรกรรม
การมองข้ามต้นทุนการทำธุรกรรม เช่น ค่าธรรมเนียม ค่าคอมมิชชั่น และค่าใช้จ่ายอื่นๆ ในการซื้อขายเป็นสิ่งที่พบบ่อยในการทดสอบย้อนหลัง โดยเฉพาะในบริบทการศึกษา กลยุทธ์ที่ดูเหมือนจะทำกำไรได้ในการจำลองที่ไม่มีค่าใช้จ่ายอาจไม่สามารถรักษาผลกำไรได้ภายใต้แรงกดดันทางการเงินของการซื้อขายจริง ซึ่งต้นทุนเช่นสเปรด ผลกระทบต่อตลาด และการเลื่อนลอยสามารถลดผลกำไรได้อย่างมาก การทดสอบย้อนหลังที่ realistic ควรคำนึงถึงต้นทุนเหล่านี้เพื่อให้ได้การประเมินที่แม่นยำยิ่งขึ้นของความเป็นไปได้ของกลยุทธ์
ปัญหาที่พบในการทำ Backtesting
ข้อมูล OHLC
ข้อมูล OHLC ซึ่งแสดงถึงราคาเปิด (open), ราคาสูงสุด (high), ราคาต่ำสุด (low), และราคาปิด (close) ที่มักได้มาจากแพลตฟอร์มอย่าง Yahoo Finance มักจะเป็นการรวมฟีดจากหลายตลาด. ดังนั้นราคาสูงสุดและต่ำสุดที่รายงานอาจไม่สามารถแสดงถึงสิ่งที่ระบบการซื้อขายจริงสามารถทำได้อย่างแท้จริง. ความไม่ตรงกันดังกล่าวจำเป็นต้องพิจารณาการจัดการคำสั่งซื้อในกระบวนการจำลอง เนื่องจากข้อมูลรวมอาจไม่สะท้อนถึงพลวัตของตลาดที่เข้าถึงได้อย่างแม่นยำ.
ข้อจำกัดของเงินมาร์จิ้น
ในระหว่างการทดสอบย้อนหลัง มักมองข้ามข้อจำกัดทางปฏิบัติของทุนและมาร์จิ้น บ่อยครั้งดำเนินการเสมือนมีแหล่งทุนไม่จำกัด. อย่างไรก็ตาม ในโลกแห่งความจริงไม่เป็นเช่นนั้น นอกจากนี้ การพิจารณาเช่นปริมาณการซื้อขายเฉลี่ยต่อวัน (ADV) มีความสำคัญเป็นพิเศษ เมื่อต้องจัดการกับหุ้นขนาดเล็กที่อาจเป็นตัวเคลื่อนตลาดได้จากการซื้อขายขนาดใหญ่. การรวมผลกระทบต่อตลาดเหล่านี้เป็นสิ่งจำเป็นสำหรับการจัดการความเสี่ยงที่เข้มแข็งและการประเมินกลยุทธ์อย่างเป็นจริง.
การเลือก Benchmark
การเลือก Benchmark ที่เหมาะสมสำหรับการประเมินผลการดำเนินงานของกลยุทธ์ที่ทดสอบย้อนหลังมีความสำคัญ. ตัวอย่างเช่น การใช้ดัชนี S&P 500 เป็นมาตรฐานเปรียบเทียบสำหรับกลยุทธ์การซื้อขายสินค้าโภคภัณฑ์ซึ่งเป็นกลางต่อดัชนีหุ้นสหรัฐอาจไม่เหมาะสม. การเปรียบเทียบกับกลุ่มกองทุนการค้าสินค้าโภคภัณฑ์อื่น ๆ อาจเป็นทางเลือกที่เกี่ยวข้องมากขึ้นและสอดคล้องกับตลาดและเป้าหมายของกลยุทธ์มากขึ้น.
Overfitting และ Bias-Variance Tradeoff
Overfitting ถูกหารือไว้ข้างต้นในบริบทของการทดสอบภายในตัวอย่าง อย่างไรก็ตาม Overfitting ยังคงเป็นปัญหาที่แพร่หลายในทุกด้านของการเรียนรู้ของเครื่องที่มีการดูแล (supervised machine learning) รวมถึงการเงินปริมาณ. วิธีการหลักในการแก้ไขปัญหานี้คือการใช้เทคนิคการตรวจสอบแบบข้ามอย่างเข้มงวด. อย่างไรก็ตาม จำเป็นต้องระมัดระวังเพื่อให้แน่ใจว่าโมเดลไม่ได้ปรับตัวเข้ากับความแปลกประหลาดหรือเสียงรบกวนของชุดข้อมูลการฝึก.
ความอดทนทางจิตใจ
แม้ว่าการเงินปริมาณมักจะละเลยปัจจัยทางจิตวิทยาโดยใช้ระบบอัลกอริธึม แต่
อารมณ์ของมนุษย์ยังคงมีอิทธิพลต่อการตัดสินใจ โดยเฉพาะอย่างยิ่งเมื่อนักวิเคราะห์ "ปรับ" หรือ "แทรกแซง" กลยุทธ์หลังจากการใช้งานจริง. นอกจากนี้การทดสอบย้อนหลังอาจไม่สามารถจับความเครียดทางจิตใจที่เกิดจากการเผชิญกับการลดลงอย่างมากในการซื้อขายสดได้เต็มที่. ตัวอย่างเช่น กลยุทธ์ที่แสดงถึงการลดลง 50% ในระหว่างการทดสอบย้อนหลังจะต้องได้รับการประเมินไม่เพียงแค่ในเชิงตัวเลข แต่ยังต้องพิจารณาว่าการลดลงดังกล่าวสามารถทนทานได้ทางจิตใจในสภาวะการซื้อขายจริงหรือไม่. แง่มุมนี้เน้นถึงความสำคัญของการรวมความอดทนทางจิตใจเข้ากับกรอบการประเมินกลยุทธ์และการจัดการความเสี่ยง.
คุณควรเขียน Backtester ของคุณเองหรือไม่?
คำตอบคือใช่!
การเขียนระบบการทดสอบย้อนหลังของคุณเองเป็นประสบการณ์เรียนรู้ที่ยอดเยี่ยม อย่างแรกเลย มันบังคับให้คุณพิจารณาถึงทุกด้านของโครงสร้างพื้นฐานการซื้อขายของคุณ ไม่ใช่แค่ใช้เวลาหลายชั่วโมงในการปรับแต่งกลยุทธ์ แม้ว่าคุณอาจไม่ได้ใช้ระบบนี้สำหรับการซื้อขายจริง แต่มันจะให้คำถามจำนวนมากที่คุณควรจะถาม ตัวอย่างเช่น: ระบบจริงของคุณมีความแตกต่างจากระบบการจำลองการทดสอบย้อนหลังอย่างไรในแง่ของ: การดำเนินการตามอัลกอริทึมและการส่งคำสั่ง? การกระจายค่าธรรมเนียม และผลกระทบต่อตลาด? การจัดการความเสี่ยงและการกำหนดขนาดคำสั่ง?
แม้ว่าระบบที่ขับเคลื่อนด้วยเหตุการณ์จะไม่เร็วหรือง่ายในการเขียน แต่ประสบการณ์ที่ได้รับจะให้ผลตอบแทนทางการศึกษาที่มีค่าอย่างมากในภายหลัง.
ส่งท้าย
ในการพัฒนา Algorithmic trading ที่ท้าทายนี้ ไม่มี "วิธีแก้ไขอย่างรวดเร็ว" เพื่อบรรลุความสำเร็จ; มันต้องการความพยายามอย่างต่อเนื่องและความมุ่งมั่นอย่างลึกซึ้งในการเรียนรู้ ผู้ค้าที่มีประสบการณ์เข้าใจดีว่าการพึ่งพา "กลยุทธ์ที่ดีที่สุด" อย่างมากเกินไปนั้นไม่ยั่งยืน; กลยุทธ์เหล่านี้มักจะเสื่อมสภาพลงเมื่อเวลาผ่านไป ดังนั้นการวิจัยและพัฒนากลยุทธ์ใหม่ๆ อย่างต่อเนื่องจึงมีความสำคัญยิ่ง การรักษา "ท่อส่งกลยุทธ์" ที่เต็มไปด้วยและการลงทุนเวลาในการปรับปรุงโครงสร้างพื้นฐานการซื้อขายของคุณเป็นสิ่งจำเป็นในการปรับตัวและรักษาความเป็นผู้นำในสภาพแวดล้อมทางการเงินที่เปลี่ยนแปลงไปอย่างรวดเร็ว
นอกจากนี้ วิธีการที่มีประสิทธิภาพในการพัฒนาความเข้าใจที่แข็งแกร่งเกี่ยวกับระบบการซื้อขายคือการเขียนโปรแกรม backtester ของคุณเอง สิ่งนี้ไม่เพียงแต่ให้ประสบการณ์การเรียนรู้โดยตรงเท่านั้น แต่ยังช่วยให้สามารถปรับปรุงกลยุทธ์การซื้อขายของคุณได้อย่างต่อเนื่อง สำหรับผู้ที่อาจไม่เริ่มต้นจากศูนย์ การเลือกผู้ขายที่เชื่อถือได้และการมีส่วนร่วมอย่างลึกซึ้งกับเครื่องมือผ่านการสอบถามอย่างเข้มข้นก็อาจมีประโยชน์เช่นเดียวกัน การติดตามความก้าวหน้าล่าสุดในสาขานี้ผ่านวรรณกรรมวิชาการ เช่น บทความใน arXiv, SSRN และบล็อกต่างๆ เกี่ยวกับ quant ยังมีความสำคัญสำหรับการศึกษาและการปรับปรุงในการซื้อขายแบบปริมาณอย่างต่อเนื่อง“Backtesting is not live trading”
Comentarios