การวิเคราะห์ Market Trend ของหุ้น โดยใช้ปัจจัยพื้นฐานด้านข่าว

ผมชอบอ่านงานวิจัยของต่างประเทศ ที่เกี่ยวข้องกับ Machine Learning หรือ AI เนื่องจากเคยผ่านงานด้านนี้มาบ้างดังที่ได้เคยเขียน blog Support Vector Machine กับการวิเคราะห์มะเร็งเต้านม  ซึ่ง AI น่าจะมีบทบาทมาก ๆ ในหลายๆ  ธุรกิจในอนาคตอันใกล้นี้

ซึ่ง Machine Learning นั้นก็ต้องส่วนหนึ่งของการพัฒนา AI ในปัจจุบัน ที่พัฒนาความสามารถให้มีความฉลาดเพิ่มมากยิ่งขึ้นจากการเรียนรู้ข้อมูล ที่มีจำนวนมหาศาลในปัจจุบัน ในวงการ trading ก็เป็นวงการหนึ่งที่คิดว่า AI น่าจะมีบทบาทสำคัญมาซักพักหนึ่งแล้ว ซึ่งหลาย ๆ คนอาจจะยังไม่ทราบว่าทุกวันนี้ เราไม่ได้ trade แข่งกับมนุษย์เท่านั้น เรายังต่อสู้กับ AI อีกจำนวนมาก ซึ่งทำให้เราเสียเปรียบเป็นอย่างมาก

งานวิจัยหลาย ๆ ปีก่อนหน้านี้นั้น เน้นไปที่การนำ Technical indicator ต่าง ๆ มาประมวลผล โดยใช้ Machine learning และทำการ prediction อนาคต  ซึ่ง หลาย ๆ งาน  ก็ได้ผลที่น่าสนใจเป็นอย่างยิ่ง แต่ความแม่นยำนั้นต้องบอกว่าถ้านำไปเทียบกับอย่างอื่น ถือว่าความแม่นยำนั้นยังน้อยอยู่มาก เนื่องจาก ภาวะตลาดมีความผันผวนสูง มีผู้เล่นมากหน้าหลายตา ทั้งกองทุนต่าง ๆ รวมถึงรายย่อย ทำให้ AI ไม่สามารถสร้างความแม่นยำในการ trade ได้

แต่ช่วง 2-3 ปีมานี้ เริ่มมีการวิจัยโดยใช้ทฤษฎีใหม่ ซึ่งนำเรื่องของการวิเคราะห์ข่าวสารมาเป็นปัจจัยหลักแทน เพราะ ข่าวสารนั้นมีผลกระทบต่อจิตวิทยาการเทรดของนักลงทุน โดยตรง นัก trade หลาย ๆ คนซื้อตามข่าว ขายตามข่าว ทำให้ข่าวค่อนข้างมีปัจจัยสำคัญต่อราคาหุ้น เป็นอย่างมาก

แต่การวิเคราะห์เรื่องข่าวนั้น ไม่ได้เป็นสิ่งที่ง่ายเลย เผอิญ ผมได้ไปเจองานที่น่าสนใจ คือ Stock Trend Prediction Using News Sentiment Analysis  ซึ่งเป็นการศึกษาที่ใช้รูปแบบของ News Sentiment Analysis หรือการวิเคราะห์ข่าวเป็นปัจจัยที่จะส่งผลต่อการทำนายราคาขึ้นลงของหุ้นในวันถัดไป ซึ่งปัจจุบันนั้น นักลงทุนมีรูปแบบการทำนาย Market Trends ของตลาดในสองรูปแบบหลักคือ การวิเคราะห์ทางด้านเทคนิคอล โดยใช้ indicator ข้อมูลต่าง ๆ ส่วนอีกรูปแบบคือ การวิเคราะห์ปัจจัยพื้นฐานของหุ้น

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

 

System Design

งานวิจัยได้แบ่งการ design เป็น 3 phases โดยใน phase แรกนั้นจะเป็นส่วนของการวิเคราะห์ข่าว เพื่อหา Polarity Score เพื่อเป็น input ให้กับ phase 2 โดยที่ ใน phase 2 นั้นจะนำ document มา converted เป็น tf-idf vector space เพื่อให้สามารถทำการจำแนกข้อมูลได้   โดยจะใช้ เทคนิคในการทำจำแนกข้อมูล 3 แบบคือ Random Forest , Naive Bayes  และ SVM หรือ Support Vectore Machine ที่ผมเคยกล่าวถึงใน blog ก่อนหน้านั่นเอง การใช้ถึง 3 เทคนิค นั้นก็เพื่อวัด performance ว่าเทคนิคไหนจะให้ความแม่นยำสูงสุด

ส่วน phase สุดท้ายนั้น จะทำการเช็คความสัมพันธ์ระหว่าง ข่าว และ ราคาหุ้น โดยจะใช้การ plot ข้อมูลทั้งสองโดยจะใช้ภาษา R

News Collection

ผู้วิจัยได้ใช้ข้อมูลของ บริษัท Apple โดยจะเก็บข้อมูลย้อนหลัง 3 ปี ตั้งแต่ 1 กุมภาพันธ์ ปี 2013 ถึง 2 เมษายน ปี 2016  โดยข้อมูลนั้นจะรวมถึง ข่าวจาก events หลัก ๆ ทั้งหมดของ apple รวมถึงราคาหุ้นของ AAPL ในช่วงเวลาเดียวกัน  โดยข้อมูลของหุ้นนั้นจะประกอบด้วย 6 ข้อมูลหลัก คือ Open , High , Low , Close , Adjusted Close และ Volume  โดยข้อมูลของข่าวหลัก ๆ นั้นจะมาจากหลาย ๆ สื่อที่เป็นข้อมูล online เช่น  news.google.com , reuters.com finance.yahoo.com

Pre Processing

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

โดยใช้ข้อมูลอ้างอิงจาก  McDonald’s research  ซึ่งได้ทำการวิจัยข้อมูลที่เกี่ยวข้องกับ finance ไว้เป็นทีเรียบร้อยแล้ว ซึ่งจะตัดเหลือข้อมูลที่เกี่ยวข้องกับหุ้นจริง ๆ เช่น  วันที่ ตัวเลข ต่าง ๆ รวมถึง สกุลเงิน  และเพื่อหลีกเลี่ยง คำบางคำ ที่มีความหมายเดียวแต่ใช้ในหลายเหตุการณ์ เช่น คำว่า ‘developed’ , ‘development’ , ‘developing’ นั้นจะถูกทำให้กลายเป็นคำ ๆ เดียวคือ ‘develop’

Sentiment Detection Algorithm

สำหรับการวิเคราะห์ว่าข่าวใดจะเป็นข่าวดี หรือ ข่าวร้าย ให้ได้แบบอัตโนมัติ หรือ sentiment detection นั้น ทางงานวิจัยนั้นใช้ dictionary จากงานวิจัยของ J.Bean ที่เคยทำการวิเคราะห์โดยนำข้อมูลจาก twitter มาใช้ในการวิเคราะห์ทรรศนะคติที่มีต่อสายการบินผ่านข้อมูลจาก feed ใน twitter

ซึ่งการที่จะวิเคราะห์ว่าข่าวจาก article ไหนเป็นข่าวดีหรือข่าวร้ายนั้น ต้องแบ่งคำเป็น 2 ประเภท คือ positive words และ negative words  และทำการนับรวมคำทั้งสองประเภท เพื่อทำการคำนวณ score จากข่าวนั้น ๆ ซึ่งจากข้อมูลของ McDonald’s research ทางผู้วิจัยได้สร้าง dictionary ที่มีคำที่เป็น positive words จำนวน 2360 คำ และ คำที่เป็น negative words จำนวน 7383 คำ โดยการคำนวน score นั้นก็จะนำเอา ผลรวมของ positive words ลบด้วย ผลรวมของ negatives words ในข่าวนั้น ๆ ซึ่ง หาก score มากกว่า 0 นั้น ก็สามารถ assume ได้ว่าข่าวนั้นเป็นข่าวดี  แต่หาก score น้อยกว่า 0 ก็สามารถ assume ได้ว่า ข่าวนั้น ๆ เป็นข่าวร้ายหุ้นที่เราทดสอบ (AAPL)

Classifier Learning

งานวิจัยนี้ได้ใช้ 3 เทคนิค ตามที่ได้กล่าวข้างต้นคือ Support Vector Machine , Random Forest และ Naive Bayes เป็นเทคนิคในการใช้จำแนก ซึ่ง การใช้ 3 เทคนิค ก็เพื่อทำการวัด performance ว่าเทคนิคไหนได้ความแม่นยำสูงที่สุด เมื่อทำการทดสอบกับข้อมูลใหม่

EVALUATION

งานวิจัยนี้ได้ทำการทดสอบ model ด้วยเทคนิคการทดสอบหลาย ๆ แบบ และในหลายเงื่อนไข เพื่อเปรียบเทียบผล โดยประกอบไปด้วย

  • 5-fold cross validation
  • 10-fold cross validation
  • 15-fold cross validation
  • 70% Data split
  • 80% Data split
  • New testing data

 

Figure1 three classifiers against different test options

Figure2 result with new data

 

Figure3 news sentiment score vs stock price

CONCLUSION

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

สิ่งสำคัญอีกอย่างนึงที่จะวัดว่าเป็นข่าวดีหรือข่าวแย่ นั้น ข้อมูลจาก dictionary ตามงานวิจัยข้างต้นนั้นก็เป็นสิ่งสำคัญ การใช้ reference ของงานวิจัยที่ผ่านการทดสอบมาแล้วนั้น ทำให้ผลการทดสอบนี้มีประสิทธิภาพมากยิ่งขึ้น รวมถึงการลบข้อความที่เป็นขยะ ออกจากข่าว ซึ่ง มีผลกระทบต่อความแม่นยำในการจำแนกให้มีประสิทธิภาพ เพราะฉะนั้น ต้องใช้หลาย ๆ งานวิจัยที่เกี่ยวข้องร่วมกันเพื่อให้ผลการจำแนกดีที่สุด และผลจากการทดลองการจำแนกโดยใช้ 3 เทคนิค นั้น เทคนิค Random Forest สามารถจำแนกได้ผลแม่นยำสูงสุดในทุก test case โดยมีความแม่นยำสูงถึงระดับ 88% – 92%  โดยอันดับ 2 คือ Support Vector Machine ที่ให้ความแม่นยำประมาณ 86%  ส่วนเทคนิค Naive Bayes นั้นให้ความแม่นยำอยู่ที่ประมาณ 83%

แต่พอมาลอง test กับข้อมูลชุดใหม่นั้น จะพบว่า Support Vector Machine นั้นให้ความแม่นยำสูงถึง 90%  ตามมาด้วย Random Forest ที่ 80% และรั้งท้ายที่ Naive Bayes ที่ 75%  ซึ่ง โดยสรุปนั้นเราก็สามารถสรุปได้ว่า ข่าว เป็นปัจจัยหลัก ปัจจัยนึง ที่มีผลกระทบต่อราคาหุ้น อย่างแน่นอน ซึ่งเราสามารถนำข้อมูลเหล่านี้มาทำการวิเคราะห์และทำนาย Trend ที่จะเกิดขึ้นกับราคาหุ้น ๆ ที่เราสนใจได้ ซึ่งหากเราจะนำมาปรับใช้กับหุ้นไทยนั้น ก็คงจะต้องปรับกันพอสมควรโดยเฉพาะหากข่าวที่เป็นภาษาไทย ซึ่งไม่สามารถที่จะใช้การทดลองแบบนี้ได้แน่นอน แต่หากข่าวที่เป็นภาษาอังกฤษ นั้น คิดว่าผลน่าจะได้ใกล้ ๆ เคียงกัน ซึ่งก็เป็นสิ่งที่น่าสนใจที่จะมาทดสอบกับหุ้นไทยเหมือนกัน เพราะ เทคนิคต่าง ๆ ที่กล่าวในงานวิจัยนั้น สามารถนำมาใช้ได้ เพราะมีการ open ทั้งหมด ทั้ง เทคนิคการจำแนกอย่าง Support Vector Machine ก็สามารถโหลดมาใช้ได้ รวมถึง การใช้ Sentiment Detection Algorithm นั้นเราก็สามารถนำมันมา implement กับหุ้นไทยเพื่อทดสอบ model ข้างต้นได้

 

References :   arxiv.orgmotherboard.vice.com



ติดตามสาระดี ๆ อัพเดททุกวันผ่าน Line OA ด.ดล Blog


Line OA


Geek Forever’s Podcast


“Open Your World With Technology


AI , Blockchain และเทคโนโลยีใหม่ ๆ กำลังเข้ามามีบทบาทสำคัญในหลายธุรกิจ ทั้ง แวดวงการเงิน สุขภาพ หรือ งานด้านบริการต่าง ๆ ผมเป็นคนหนึ่งที่สนใจเกี่ยวกับ AI หรือ Machine Learning

Podcast ของผมจะเล่าเรื่องราวต่าง รวมถึงเรื่องที่ผมสนใจอื่น ๆ เช่น startup หนังสือ หนัง หรือ กีฬาฟุตบอล อยากชวนคนที่สนใจให้ลองมาติดตาม podcast ของผมกันด้วยนะครับ

ฟังผ่าน podbean
ฟังผ่าน podbean
ฟังผ่าน Apple Podcasts
ฟังผ่าน Apple Podcasts
ฟังผ่าน Google Podcasts
ฟังผ่าน Google Podcasts
ฟังผ่าน Spotify
ฟังผ่าน Spotify
ฟังผ่าน Youtube
ฟังผ่าน Youtube


ติดตาม ด.ดล Blog เพิ่มเติมได้ที่

Fanpage :facebook.com/tharadhol.blog
Blockdit :blockdit.com/tharadhol.blog
Twitter :twitter.com/tharadhol
Instragram :instragram.com/tharadhol
TikTok : tiktok.com/@tharadhol.blog
Linkedin : www.linkedin.com/in/tharadhol