#ลงทุนแนวเทคนิคอล

Machine Learning กับ ระบบเทรดสุดคลาสสิก

โดย พิษณุ มุกดาประกร
เผยแพร่:
1,386 views

 หากพูดถึงการพัฒนาระบบเทรดด้วย ML (Machine Learning) คงจะมีคำถามเกิดขึ้นในใจหลายๆ คนว่า “มันคืออะไร......แล้วมันดีกว่าอย่างไร แต่ผมก็เชื่อว่าอีกหลายคนจะมาพร้อมกับคำถามที่ว่า “อะไรคือ Machine Learning…

 

สำหรับนักลงทุนในสายเทคนิคอล หรือนักพัฒนาระบบเทรดคงจะคุ้นเคยกับการใช้ราคา และ Indicator ต่างๆ มาช่วยในการตัดสินใจในการซื้อขายสินทรัพย์อย่างแน่นอน แต่ก่อนที่ผมจะสามารถตอบคำถามที่หลายคนสงสัยได้ทั้งหมด ผมจำเป็นต้องพูดถึงหลักการแบบง่ายๆ ของ Machine Learning กันก่อนว่ามันทำงานอย่างไร เพราะหากเราแปลเป็นภาษาไทยแล้วจะได้ว่า “การเรียนรู้ของเครื่องจักร” ซึ่งออกจะเป็นคำแปลที่ดูจะไม่ค่อยให้คำตอบกับเรามากเท่าไหร่นัก แต่ก่อนจะไปต่อ ผมขอเรียกโดยย่อว่า ML เพราะผมไม่อยากให้บทความนี้ยาวในแบบที่เต็มไปด้วยคำว่า Machine Learning

ย้อนกลับไปปี ค.ศ. 1959  อาเธอร์ ลี ซามูเอล (Arther Lee Samuel) เป็นนักวิทยาศาสตร์คอมพิวเตอร์ชาวอเมริกัน ได้ให้คำนิยามของ ML ไว้ว่า “The ability to learn without being explicitly programmed” หรือแปลได้ว่า “ความสามารถในการเรียนรู้โดยปราศจากชุดคำสั่งที่ชัดเจน” นั่นหมายความว่าเราสามารถใช้ข้อมูลใดๆ ก็ได้บนโลก แล้วปล่อยให้ ML ทำหน้าที่เรียนรู้เพื่อหาคำตอบในแบบที่เราต้องการได้ ตัวอย่างเช่น การประเมินราคาบ้านในเขตกรุงเทพฯ ซึ่งราคาบ้านจะขึ้นอยู่กับปัจจัยหลายๆ อย่างเช่น ขนาดที่ดิน ทำเลที่ตั้ง จำนวนห้องนอน พื้นที่ใช้สอย และอื่นๆ เราสามารถบรรจุข้อมูลมากมายที่มีอยู่แล้วเหล่านี้เข้าสู่กระบวนการทำ ML เพื่อทำนายราคาบ้านได้ทั้งทั่วกรุงเทพฯ ได้อย่างใกล้เคียงความจริงโดยที่คุณไม่ต้องนั่งปวดหัวกับข้อมูลในมหาศาลใน Excel ที่กำลังจะค้างในไม่ช้า

ถึงตอนนี้คงจะพอรู้จัก ML ไม่มากก็น้อย และผมก็พร้อมแล้วที่จะไปตอบคำถามที่ว่า “มันดีกว่าอย่างไรในบทความนี้ผมขอยกตัวอย่างกับระบบเทรดสุดคลาสสิกที่ปัจจุบันก็ยังคงมีการใช้งานอยู่อย่างต่อเนื่อง คือ เส้นค่าเฉลี่ย(Simple Moving Average) จำนวนสองเส้นที่มีค่าเท่ากับ 50 และ 200 ด้วยหลักการที่ว่า เส้น 50 ตัดเส้น 200 ขึ้นไปคือการเข้าซื้อ และทำการขายออกเมื่อเส้น 50 ตัดลงใต้เส้นค่าเฉลี่ย 200 ในบทความนี้ผมขอยกตัวอย่างกับการเทรดสินทรัพย์ที่เรียกว่าทองคำซึ่งเป็นสากลที่สุด


     การทดสอบครั้งนี้ผมขอเลือกช่วงเวลาตั้งแต่ปี 2005 จนถึงสิ้นปี 2018 และจะเทรดอยู่ในกรอบเวลา (Timeframe) ที่ 1 ชั่วโมง (H1) เพราะจะทำให้มีการเทรดในปริมาณมากพอสมควรเพื่อให้มีนัยสำคัญเพียงพอต่อการวัดผล เราก็มาดูกราฟ Equity กันว่าระบบแบบ SMA50 ตัด SMA200 จะให้ผลเป็นอย่างไร

 

    ต้องบอกตามตรงว่าผมก็ตกใจเล็กน้อย กับผลลัพธ์ที่ออกมาชนะตลาดได้พอสมควร แต่ไม่ได้หมายความว่านี่คือกลยุทธ์ที่สามารถเอาไปใช้งานได้ทันที เพราะในการทดลองนี้ผมได้ตัดค่าต่างๆ เช่น Commission, Spread และ Slipage ออกไปเพื่อความง่ายในการทำบทความ หรือหากพูดเป็นภาษาชาวบ้านแล้วคือขี้เกียจทำนั่นเอง ว่าแล้วก็ไปดู Performance กันซะหน่อย

 

 

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

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

 

 

แล้วถ้าหากเรานำระบบเดียวกันนี้ไปผ่านกระบวนการทำระบบด้วย ML จะได้ผลลัพธ์เป็นอย่างไร แต่ผมจะขอข้ามขั้นตอนต่างๆ ในการทำต่างๆ เช่น Label Research, Validation, Feature Engineering, Feature Selection, Model Selection ไม่เช่นนั้นบทความนี้คงจะยาวเกินกว่าที่ผมจะเขียนมันจบได้

 

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

การทดสอบครั้งนี้ผมจัดทำขึ้นเพื่อทดสอบให้เห็นความสามารถของ ML ว่าสามารถไปประยุกต์กับการทำระบบเทรดได้จริงๆ แต่ไม่ใช่ว่า ML จะมีความวิเศษ หรือเป็น  Holy Grail (จอกศักดิ์สิทธิ์) ในการสร้างระบบเทรด แต่อยากให้มองเป็นอีกหนึ่งเครื่องมือที่สามารถทำมาผนวกเข้ากับการลงทุนในยุคปัจจุบัน และไม่ใช่เครื่องมือที่เข้าถึงยากซึ่งถูกใช้งานแค่ในบริษัทใหญ่ หรือสถาบันการเงินเพียงเท่านั้น ในตอนนี้เราสามารถพัฒนามันด้วยเครื่องคอมพิวเตอร์ที่บ้าน คุณก็จะสามารถทำเครื่องมือในแบบฉบับของตัวเองได้แล้ว สุดท้ายนี้ขอฝากคำแนะนำสำหรับคนที่สนใจในด้านนี้ว่า ในการทำโมเดลที่ซับซ้อนมากๆ จะใช้เวลาในการประมวลผลค่อนข้างนาน อาจจะหลักชั่วโมง จนถึงหลักวัน มีสองอย่างที่ผมอยากจะให้ทำคือ 1. ปิด Window Update 2. หา UPS ซักตัว ไม่งั้นคุณอาจจะกรีดร้องแบบผมที่รันโมเดลทั้งคืน แล้วตื่นมาพบกับความว่างเปล่าที่หน้าจอ 

สวัสดีครับ...

 


  • ผู้ร่วมก่อตั้ง และ CEO บริษัท DeeperTrade Co.,Ltd
  • ผู้พัฒนาระบบเทรดร่วมกับ Classic Ausiris
  • ผู้บรรยาย Machine Learning Trading System ในงาน Quant Open House 2019 by Classic Ausiris
  • ที่ปรึกษา Trading model ที่ KULAP (Decentralized Exchange).

บทความอื่น ๆ ที่เกี่ยวข้อง