Basic Trading through Machine Learning

ในบทความนี้ เราจะมาหาคำตอบกันว่า  ระบบเทรดที่ใช้ Machine Learning มีหน้าตาเป็นยังไง? และ มันเอาไปใช้อะไรได้บ้างในการเทรดของเรา?

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

แต่ในโพสนี้ ผมขอพูดถึงเฉพาะในแง่ของ “การ ML ในการทำนายราคาครับ”  ซึ่งเป็นส่วนหนึ่งในโปรเจ็คที่พวกเรากำลังทำวิจัยพัฒนากันอยู่ครับ

ขั้นแรก  << ทำความเข้าใจโมเดล >>

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

01

จะเห็นแล้วนะครับว่า จากรูปด้านบนข้อมูลของเราจะถูกแบ่งออกเป็น 2  ส่วน คือ  ข้อมูลสอน (X feature for Traning)  และ ข้อมูลทดสอบ (X feature for Testing) ถ้าจะพูดให้เข้าใจง่ายๆ ก็คือ ข้อมูลสอนมีไว้สร้างโมเดล ส่วนข้อมูลทดสอบมีไว้สำหรับทดสอบผลการทำงานของโมเดลที่สร้างขึ้นนั้นเองครับ … เมื่อเราเข้าใจโมเดลแล้ว แบ่งข้อมูลแล้ว เรามาดูขั้นตอนต่อไปกันเลยครับ …

ขั้นที่สอง  << สอนโมเดล>>

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

อย่างแรกที่เราต้องทำการเลือก feature เพื่อเอา feature ที่จะนำไปใช้สอนโมเดลของเรา ในการสอน เราต้องสอนให้ “มากพอ” คำว่า มากพอ อาจจะคิดได้ใน 2 แง่ ดังนี้ครับ

  • ต้องมีข้อมูลตัวอย่างให้ครอบคลุมเหตุการต่างๆ ที่อาจจะเกิดขึ้นกับข้อมูลของเราให้มากที่สุด
  • ต้องมีจำนวนข้อมูลที่มากเพียงพอ ที่โมเดลจะเรียนรู้

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

02

ขั้นที่สาม  << ทดสอบโมเดล>>

จากนั้นเราก็ทำโมเดลนี้ไปประกอบในระบบเทรดของเรา ด้วยข้อมูลที่เราได้แบ่งเอาไว้สำหรับทดสอบระบบ (X feature for Testing) หรือ ข้อมูลในอนาคตอื่นๆ ที่โมเดลตัวนี้ไม่เคยเห็นข้อมูลนั้นมาก่อน (unseen data) ในที่นี้โมเดลที่เราได้สร้างขึ้น จะรับข้อมูลเข้าไปแล้วส่งสัญญาณทำนายผลออกมา เราจึงเอาผลลัพธ์ที่ได้นั้นไปเทรดในระบบเทรดของเราครับ

เท่านี้เราก็จะได้ระบบทำนายอย่างง่ายๆ ของเรากันแล้วครับ แต่ในความเป็นจริง ระบบจะไม่ได้มีแค่ส่วนทำนายนะครับ มันต้องประกอบกับ การ filter คัดกรองดาต้า, การจัด portfolio management ประกอบกันด้วย ซึ่งเราจะค่อยๆ กล่าวถึงในตอนต่อๆ ไปนะครับ

ในเมื่อเราพูดถึงเรื่องระบบทำนาย เราก็ขอโชว์ผลแค่การทำนายอย่างเดียว โดยไม่ได้รวมระบบอื่นๆ โดยเทสกับ out of sample data กันซักหน่อยนะครับ

03.png

นี่คือผลลัพธ์ ของการเทรดหลักทรัพย์ตัวหนึง ด้วยโมเดล Machine Learning 11 Algorithms  โดยโมเดลสีเหลืองที่เป็นโมเดลที่ทำผลกำไรได้มากที่สุด! ซึ่งเจ้าโมเดลตัวนี้คือ ตัว ML ของเราเองที่ได้วิจัยพัฒนาขึ้นโดยเฉพาะครับ จะเห็นว่าทำงานได้ค่อนข้างดีเลยทีเดียว แต่นี้แค่ทำนายเพียว ๆ นะครับยังมีข้อด้อยอยู่มาก ยังมีอีกหลายอย่างที่ไม่ได้ใส่ลงไป ซึ่งเราจะพัฒนามาให้ดูกันในโอกาสต่อไปครับ

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s