Robot แบบไหนที่ใช้เทรดได้จริง

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

1. พัฒนาโดยคนที่เข้าใจและมีประสบการณ์ เทรดจริงๆ

ระบบต้องพัฒนาโดยคนที่มีความเข้าใจ และมีประสบการณ์การเทรดมาจริงๆ ไม่ใช่นักทฤษฎี , Data Scientist , นักวิชาการ, นักวิจัย ที่เก่งในหลักการแต่ขาดความเข้าใจและประสบการณ์การเทรดจริงๆ

เพราะในตลาดจริงที่มีความหลากหลาย ทฤษฎีเพียงอย่างเดียวไม่เพียงพอ ต้องอาศัยความเข้าใจในตลาดด้วย

2. อย่าดูผลการเทรดย้อนหลังเพียงอย่างเดียว เพราะวัดผลยาก

อย่าไปดูผลการเทรดย้อนหลังเพียงอย่างเดียว เพราะวัดผลยาก ยกเว้นดูผลยาวๆ หลายๆ ปี ซึ่งบางทีก็อาจนานเกิน

ต้องดูว่าช่วงเวลาดังกล่าวครอบคลุมสภาพตลาดมากพอหรือไม่ เช่น หากเวลาช่วงนั้นเป็นเพียงช่วงสภาพตลาดเป็นขาขึ้นเพียงอย่างเดียว หากเรานำระบบนั้นมาใช้ เมื่อสภาพตลาดเปลี่ยนไปจากเดิม ระบบนั้นก็อาจจะไม่สามารถทำกำไรได้ เป็นต้น

หากดูย้อนหลัง ยาวๆ หลายๆ ปี เราต้องพิจารณาด้วยว่า ราคาของสินค้านั้นๆ มีช่วงราคาที่ใกล้เคียงกับปัจจุบันหรือไม่ มีโอกาสมากน้อยเพียงใดที่ราคาจะกลับไปใกล้เคียงในอดีต เช่น ราคาทองคำช่วงปี 2005-2007 ราคาอยู่ในช่วง 400-800 USD มีโอกาสมากน้อยเพียงใดที่ราคาทองคำจะกลับไปต่ำเช่นนั้นอีกครั้งในระยะเวลาอันใกล้นี้

และยังมีเรื่องพฤติกรรมการแกว่งตัวของราคาอีกที่เราจะต้องคำนึงถึงเช่นกัน เพราะด้วยเทคโนโลยีและการรับรู้ข่าวสารที่เปลี่ยนไปอย่างรวดเร็ว ทำให้พฤติกรรมตลาดแบบเมื่อ 15-20 ปี ที่แล้ว อาจมีโอกาสน้อยมาก ที่จะเกิดขึ้นซ้ำอีกในอนาคต เป็นต้น

ดังนั้น เราต้องพิจารณาให้น้ำหนักความสำคัญกับช่วงเวลาที่เหมาะสม

3. ต้องบอกให้ชัดว่าโมเดลนั้น เก่งหรือไม่ อย่างไร

ต้องบอกให้ชัดว่าโมเดล Robot นั้นๆ เก่งกับตลาดแบบไหน ไม่เก่งกับตลาดแบบไหน และเก่งกับสินค้าไหน ไม่เก่งกับสินค้าไหน

เพราะเป็นเรื่องที่ยากมากๆ ที่ระบบเทรดเดียวจะสามารถชนะตลาดได้ทุกรูปแบบ หรือทำกำไรได้ทุกสินค้า

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

4. ผ่านการเทรนโมเดล ทดสอบโมเดล และ Backtest มาอย่างดีไม่โกงการ Backtest

ผล Basktest ดีๆ สวยๆ ต้องพิจารณาดูว่า มีความตั้งใจที่จะปรับจูนให้ช่วงเวลาที่ต้องการโชว์ดูดีแค่ช่วงนั้นหรือไม่

เพราะหากเป็นเช่นนั้น จะเกิดการ Overfitting ได้ ซึ่งทำให้ระบบนั้นจะทำกำไรได้เพียงเวลาที่ทดสอบเท่านั้น เมื่อเกิดข้อมูลใหม่ในอนาคตก็จะไม่สามารถทำกำไรได้จริง

พวกที่ผล Basktest ดีๆ สวยๆ ถ้ามีการ Set โค้ดหรือพารามิเตอร์ในโค้ด ยังไงคนอื่นก็ดูไม่ออกว่าตั้งใจ Make ผลให้ดูดี

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

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

5. มีการทดสอบความทนทาน (Robustness) ของโมเดล

เป็นกระบวนการทดสอบความทนทานของระบบ เพื่อดูว่าหากเจอปัญหาต่างๆในสภาพตลาดจริง ระบบจะยังคงสามารถทำกำไรได้อยู่หรือไม่

เช่น การสุ่มนำราคาในอดีตมา Simulation เพื่อทดสอบราคาที่ระบบไม่เคยเจอมากก่อน , สุ่มใช้ค่า Spread ที่ต่างไปจากปกติ หรือ สุ่มค่า Slippage ให้หลากหลาย เป็นต้น

หากระบบนั้นยังคงทำกำไรได้อยู่ โดยผลทดสอบที่ได้ไม่แตกต่างไปจากเดิมมากจนรูปแบบกราฟแตกต่างกันจนสิ้นเชิง แสดงว่าระบบนั้นมีความทนทานและสามารถนำมาใช้เทรดจริงได้

หลักการ Training Testing และ Backtest ที่ใช้ได้จริง

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

ต้องแบ่งข้อมูล Training data และ Test data เป็น คนละชุดกัน

ต้องมีการแบ่งข้อมูลออกเป็น 2 ส่วน คือ

1. Training Data (In Sample)

2. Test Data (Out of Sample)

ถ้าไม่มีแบ่ง ใช้ชุดเดียวเทรนและเทส ก็เกิดการ Overfiting ได้สูงมาก

เมื่อทำการสร้างระบบออกมาแล้ว เราจำเป็นต้องพิสูจน์ว่า ระบบที่คิดค้นมานี้ สามารถทำกำไรได้ทุกช่วงเวลา หรือ ไม่ เราจึงต้องทำการแบ่งการทดสอบเป็น 2 ส่วน

1. In Sample คือ ช่วงระยะเวลาที่ทำ Optimization และ Backtest ให้กับระบบ เพื่อที่จะได้ค่าที่เหมาะสมที่สุดออกมา

2. Out Of Sample คือ ช่วงระยะเวลาที่ นอกเหนือจากที่เราทำการ Optimization และ Backtest

ในส่วนของ Out Of Sample จะเป็นการพิสูจน์ออกมาว่าระบบที่ได้นี้ สามารถใช้ได้ในทุกช่วงเวลา ไม่ใช่แค่เฉพาะช่วงเวลาใด เวลาหนึ่งเท่านั้น

แต่โดยส่วนมากแล้ว EA หรือ Robot ที่มีให้บริการในตลาดบ้านเรานั้น มักจะไม่ค่อยมีการแบ่งข้อมูลเป็น 2 ส่วนดังที่กล่าวมา นั่นเป็นเพราะว่ามันยากกว่าการใช้ข้อมูลชุดเดียวในการ Optimization นั่นเอง จึงส่งผลให้หลายๆ ระบบเทรด จึงไม่สามารถทำกำไรได้จริงในระยะยาว ต้องใช้แบบวัดดวงกันไป

ดังนั้น จะเห็นได้ว่าโจทย์ที่ยากที่สุดของการวิจัยออกแบบระบบการลงทุน กลับไม่ใช่การสร้างระบบที่ให้ผลตอบแทนสวยหรูเพียงแค่ในชุดข้อมูลในอดีตที่เรารู้จัก หรือ In Sample Data เท่านั้น แต่มันคือการสร้างระบบการลงทุน ที่มีผลตอบแทนที่ดีที่สุด และยังมีความเสถียรยั่งยืนในการลงทุนจริงๆ กับชุดข้อมูลในอนาคตที่เรายังไม่เคยพบเจอกันอีกด้วย

ถ้าข้อมูลน้อย มีรูปแบบตลาดไม่หลากหลายพอ โมเดลก็ไม่ Robust และ General พอ

นอกจากจะต้องแบ่งข้อมูลเป็น 2 ส่วนแล้ว ข้อมูลราคาที่นำมาใช้สร้างโมเดล จะต้องมากพอ มีรูปแบบตลาดที่หลากหลายด้วยเช่นกัน มิฉะนั้นแล้วโมเดลที่เราได้มานั้น จะไม่มีความทนทาน (Robust) มากพอ และอาจ Overfitting เฉพาะช่วงเวลาที่ทดสอบเพียงอย่างเดียว ไม่สามารถทำกำไรในการเทรดจริงได้

การ Backtest จำเป็นต้องคำนึงถึงสภาพแวดล้อมจริงที่มีผลต่อการเทรดด้วย

อย่างเช่น Slippage , Spread จะต้องใกล้เคียงกับเวลาเทรดจริง ดังนั้นจึงต้องมีเครื่องมือช่วยจำลองและทดสอบตรงจุดนี้ และเครื่องมือที่เป็นที่นิยมกันอย่างมาก คือ Monte Carlo Validation และ Walk Forward Validation

Monte Carlo Validation

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

Walk Forward Validation

เป็นหนึ่งเทคนิคที่ใช้ทดสอบเสถียรยั่งยืนของระบบเทรดที่ได้รับความนิยม

การทดสอบเริ่มด้วยการ Optimize Parameter ใน Training Data (In Sample) เพื่อหาค่าที่ให้ผลลัพธ์ที่ดีที่สุด จากนั้นนำค่าที่ได้จาก Training Data ไปใช้ในการทดสอบกับ Test Data (Out of Sample)

เมื่อทดสอบเรียบร้อย จะเริ่มทดสอบอีกครั้งกับช่วงของ Training Data ใหม่ ที่ถูกขยับไปข้างหน้าตาม Step ที่กำหนดโดยรวม Test Data ในการทดสอบครั้งก่อนเข้าไปใน Training Data ชุดใหม่ด้วย กระบวนการนี้จะถูกทำซ้ำไปเรื่อยๆจนกระทั่งหมดชุดข้อมูล

และนำค่า Equity ของช่วง Test Data เพียงอย่างเดียวมาเชื่อมต่อกันและคำนวนค่าสถิติมาเปรียบเทียบกับผลการทดสอบที่มาจากค่าที่เรากำหนดเองตอนออกแบบระบบ

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

ดังนั้นแล้ว วิธีการทั้งหมดที่เราอธิบาย จึงเป็นอีกวิธีการหนึ่งที่จะช่วยให้เราไม่ตกเป็นเหยื่อของหลุมพรางจากการ Overfitting หรือแม้แต่โฆษณาชวนเชื่อได้อย่างมีประสิทธิภาพในระดับหนึ่งเลยทีเดียว

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

และแน่นอนว่า Robot ของเรา ทุกระบบ ใช้กระบวนการในการสร้างระบบเทรดดังที่กล่าวมาทั้งหมด

ROBOT ของเรา ผ่านการทดสอบความทนทาน ความเสถียรยั่งยืนของระบบเทรด มาเป็นที่เรียบร้อย

%d bloggers like this: