มารวยหุ้น ด้วย เม่าบอท AI ติดปีก

DSE#4 G2
8 min readSep 18, 2021

--

ให้ Machine Learning ทำนายหุ้น ตัวไหนจะปังหรือจะพัง?

ทำงานประจำมาหลายปี บัญชีเงินเดือนเป็นเหมือนบัญชีพัก…รับเงินเข้ามาแป๊ปเดียว ก็ต้องกระจายรายได้ไปชำระหนี้ผ่อนบัตรเครดิตจากการช้อป ตั้งแต่ 1 เดือน 1 จนถึง 9 เดือน 9…เงินฝากที่เหลือน้อยนิด ก็ได้ดอกเบี้ยต่ำเตี้ยติดเพดานล่าง

…อยากจะรวยทางลัด อยากจะฝึกหัดการลงทุน…ทำงานเดือนละสองวัน ลงทุนซื้อใบละร้อย (เค้าให้ขายใบละ 80 นะ!!) ผลตอบแทนได้หลักล้าน แถมช่วงนี้หมอดูหลายสำนักก็บอกตรงกันว่ามีเกณฑ์ได้โชคลาภไม่คาดฝัน…

ออกไปตามหาซื้อเลขแม่น้ำหนึ่งก็เกลี้ยงแผง…เอาน่า…เราทำดีมาตลอดต้องมีดวงกันบ้างสิ….หลับตาหยิบมา 2 ใบ สุดท้ายได้แต่ขยำ โยนทิ้งถังขยะไป #สภาพพพพพพ 🗑💸💸

หันซ้ายแลขวา ยังไม่เจอหนทาง อยากจะติดอันดับ อายุน้อยร้อยล้าน ต้องทำอย่างไร…ลองเสิร์ช How to จะรวยได้ไวๆ…เจอกูรูหลายท่าน บอกให้ลงทุนในหุ้น ลงหมื่นได้แสน กำไรดีงาม…เก็บมาจินตนาการ ฝันหวาน…ชีวิตจะไม่ต้องลำบากแล้ว ง่ายๆ สบายๆ ขนาดนี้ ลาออกมาเป็นนักลงทุนอิสระเต็มเวลาซะเลย…คิดแล้วก็อยากจะเปิดพอร์ตลงทุนซะเดี๋ยวนี้…

Image by https://www.pngegg.com/th/png-dfvgb/

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

Image by Mao-Investor

แบบนี้นี่เอง ที่เค้าเรียกว่า ติดดอย….พี่จ๋า ฉันหนาวววว ❄❄

อยากเล่นหุ้น แต่ไม่อยากหนาววววอยู่บนดอย มันพอจะมีวิธีดีๆ ไหมนะ 🤔🤔

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

“An important key to investing is to remember that stocks are not lottery tickets”

“จงจำไว้ว่า “หุ้น” คือส่วนหนึ่งของธุรกิจ ไม่ใช่ลอตเตอรี่หนึ่งใบ”

นี่เป็นคำกล่าวของ Peter Lynch นักลงทุนระดับตำนานที่เคยบริหารกองทุน Magellan Fund ให้เติบโต จาก 18 ล้านเหรียญสู่ 14,000 ล้านเหรียญในเวลา 13 ปีและถือเป็นกองทุนที่ให้ผลตอบแทนสูงที่สุดในประวัติศาสตร์

ความหมายก็คือ

…หวย ใช้การทายผลแบบ “เดาสุ่มตัวเลข” มีคนมายืนประจำแต่ละหลักแล้วหมุนๆ หยิบลูกบอลขึ้นมาแล้วลุ้นกันว่าจะออกเลขไหน

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

…ดังนั้น เราจึงต้องเข้าใจก่อนว่า ปัจจัยใดบ้างที่จะเป็นตัวกำหนดราคาหุ้น…

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

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

…แต่ทราบหรือไม่ว่า ณ วันที่ 15 กันยายน 2564 ตลาดหลักทรัพย์ของไทยมีจำนวนบริษัทจดทะเบียนทั้งสิ้นถึง 580 บริษัท…

หากเราต้องศึกษาทุกปัจจัย อ่านงบการเงินของทุกบริษัทก็คงจะไม่หวาดไม่ไหว จะเลือกมาวิเคราะห์แค่บางตัวหรือบางธุรกิจ ก็อาจจะเสียโอกาสในหุ้นตัวอื่นๆที่น่าสนใจไป แบบนี้กว่าจะได้ซื้อหุ้นสักตัว…อาจต้องไปซื้อยาไมเกรนมาทานแก้มึนแทน

Image by Mao-Investor

…มันจะดีกว่าไหม ถ้าเราจะมีตัวช่วยที่สามารถนำข้อมูลปัจจัยมากมายมาวิเคราะห์แทนเรา สามารถเอาหุ้นทั้งหมดในตลาดมาพิจารณาพร้อมๆ กัน โดยใช้เวลาสั้นกว่าที่เราจะมานั่งอ่านและวิเคราะห์เอง…แล้วค่อยร่อนตะแกรงเอาเฉพาะหุ้นตัวที่น่าสนใจจริงๆ เพื่อมาพิจารณาอีกทีว่าหุ้นตัวไหนที่เราจะฝากความหวังความเป็นเศรษฐีไว้กับมัน…

S: ห๊ะ…มันมีวิธีอะไรแบบนั้นจริงๆ เหรอจอร์จ

G: แน่นอน…Machine Learning ยังไงหละซาร่า

S: โอ้วว พระเจ้าจอร์จมันยอดมาก…แล้วถ้าชั้นสนใจ จะต้องเริ่มยังไงหละ

[Inspired by จอร์จและซาร่าผู้ขายเครื่องออกกำลังกายทาง TV Direct ในปี 2550]

มารู้จักข้อมูล Time Series กันก่อน

Time Series หรือชื่อไทยๆ ของน้องคือ อนุกรมเวลา (แปลเป็นไทยแล้วก็ยิ่งงง…) แปลให้เข้าใจขึ้นมาอีกหน่อยก็คือ ข้อมูลที่เปลี่ยนแปลงไปตามเวลา เช่น ยอดขายลอตเตอรี่รายวัน จำนวนผู้ติดเชื้อโควิดตลอดปีที่ผ่านมา รวมไปถึงราคาหุ้นในแต่ละวันด้วยเช่นกัน ซึ่งความแตกต่างของข้อมูลแบบนี้กับข้อมูลทั่วไปก็คือจะมีลักษณะที่เกี่ยวข้องกับเวลา เช่น Seasonal (ความแปรผันตามฤดูกาล) Trend (แนวโน้ม) และ Cyclical (วัฏจักร) ซึ่งเราสามารถนำมาใส่เข้าไปในโมเดล เพื่อให้ผลการทำนายของเราแม่นยำมากยิ่งขึ้นได้นั่นเอง

Image by https://quantdare.com/decomposition-to-improve-time-series-prediction/

แล้ว Machine Learning: Time Series Trend Forecasting คืออะไร

Machine Learning คือการนำประสบการณ์หรือข้อมูลในอดีตมาสอนให้ Machine เรียนรู้รูปแบบฟังก์ชันของโมเดลในการวัดผลต่างๆ และทำการตรวจสอบผลลัพธ์ พูดง่ายๆ ก็คือ ป้อนข้อมูลและปัจจัยต่างๆ เพื่อสอนให้คอมพิวเตอร์ตัดสินใจแทนเรา ซึ่งจะช่วยลดเวลาในการวิเคราะห์ของเราได้อย่างมาก ที่สำคัญ ยังลดการตัดสินใจโดยการใช้อารมณ์เป็นตัวนำมากกว่าเหตุผล เหมือนที่พวกเราชอบนำมาใช้ รู้ตัวบ้าง ไม่รู้ตัวบ้าง…มันก็ต้องมีกันบ้างแหละ…ก็ตัวย่อหุ้นตัวนั้น คล้ายๆ ชื่อคนที่เราแอบชอบเลย ลงทุนในตัวนี้ดีกว่า เราจะได้เป็นเจ้าของเค้าซะที 😍😘 อรั๊ย…

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

และแล้ว…โอกาสที่จะทำฝันให้เป็นจริงก็มาถึง…

ในครั้งนี้ คลาส DSE4 ของ Botnoi จะมาช่วยเติมเต็มจินตนาการของพวกเรา ครั้งนี้ Botnoi ใจป้ำ ให้งบมา 20,000 บาท โดยให้พวกเราช่วยเลือกหุ้นมา 1 ตัวจาก SET100 เนื่องจากมีสภาพคล่องสูง ซื้อง่ายขายคล่อง ซึ่งหุ้นตัวนั้นต้องเป็นหุ้นที่เราคิดว่าจะสามารถทำเงินให้งอกเงยได้มากที่สุดในช่วงระยะเวลาสั้นๆ 1 สัปดาห์…

ได้โจทย์มารู้สึกตื่นเต้น ฝันที่จะสร้างความมั่งคั่งอาจจะเป็นจริง …เราจะร๊วยย เราจะรวยยยยย!!! ว่าแล้วก็มาเริ่มวิเคราะห์หาหุ้นเด็ดตัวนั้นของเรากันเลยยยยยย…

DSE#4 G2: Machine Learning Pipeline

ขั้นตอนที่ 1: Collect Data เก็บข้อมูล

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

แล้วเราจะใช้ข้อมูลย้อนหลังไปนานแค่ไหนดีหละ???

เนื่องจากการทำ Trend Forecasting เรื่องกรอบเวลาเป็นสิ่งสำคัญ…ถึงแม้ว่าข้อมูลยิ่งมีมากอาจจะยิ่งดี เพราะอาจทำให้เราเห็นรูปแบบในอดีต ซึ่งอาจบอกเราได้ว่าราคาหุ้นนั้นๆ มีลักษณะพิเศษ เช่น มีความแปรผันตามฤดูกาล (Seasonal) หรือวัฏจักร (Cycle)…แต่ข้อมูลมากก็คงไม่สู้ข้อมูลที่เหมาะสม…

ดังนั้น เมื่อพิจารณาจากโจทย์ที่ได้รับจะพบว่าระยะเวลาที่เราจะถือหุ้นเพื่อทำกำไรนั้นเป็นช่วงเวลาสั้นๆเพียง 1 สัปดาห์ และตั้งแต่ตั้นปี พ.ศ. 2563 ที่ผ่านมา โควิด…ก็เปลี่ยนแปลงทุกอย่างไม่เว้นแม้กระทั่งตลาดหุ้น ดังนั้น ข้อมูลย้อนหลังที่ยาวนานอาจจะไม่สู้ข้อมูลที่อยู่ในช่วงสถานการณ์ที่ใกล้เคียงกัน ซึ่งก็คือข้อมูลในช่วงที่มีโควิดเข้ามาในชีวิต ดังนั้น เราจึงใช้ข้อมูลย้อนหลังตั้งแต่ 1 มกราคม 2563 ถึงปัจจุบัน (วันที่ 15 ก.ย. 2564) เนื่องจากเรามองว่าข้อมูลย้อนหลังนี้ ครอบคลุมช่วงของการเกิดโรคระบาดโควิดซึ่งพวกเราก็ยังคงต่อสู้กับมันอยู่ในทุกวันนี้

เมื่อได้กรอบเวลาแล้ว พวกเราไม่รอช้า…ไปโหลดข้อมูลที่ต้องการ เช่น ราคาปิด ราคาสูงสุดต่ำสุด ปริมาณและมูลค่าการซื้อขาย โดยใช้ Library StarfishX เพื่อไปดึงข้อมูลมาจากตลาดหลักทรัพย์แห่งประเทศไทยที่ https://www.set.or.th

ขั้นตอนที่ 2: Cleansing & Transformation อาบน้ำ ปะแป้ง แต่งตัวข้อมูลให้พร้อมใช้งาน

1) ข้อมูลตอนแรกที่ดึงมาเป็นข้อมูลของหุ้นที่ไม่สามารถนำ Column Date มาใช้งานได้ เนื่องจากข้อมูลส่วนนี้ยังไม่ถูกทำเป็นดัชนีฐานข้อมูลไว้ (Index คือ ข้อมูลที่จะถูกจัดทำดัชนี เพื่อให้การเข้าถึงและเรียงลำดับของข้อมูลทำได้ง่ายขึ้น) พวกเราจึงทำการแปลง Column Date ให้เป็น Index เพื่อให้สามารถนำ Date ไปใช้ในการคำนวณหรือสร้างโมเดลได้

2) สร้าง Technical Indicators (Transformation)

มาถึงขั้นตอนนี้ แค่ความรู้ด้านการสร้างโมเดลนั้นคงยังไม่พอ เธอคงไม่รักกันนน รักคงยังไม่พออออ (นึกถึงเพลง รักคงยังไม่พอ ver สงกรานต์) เอ้ย!!!!

ความรู้ด้านการวิเคราะห์หุ้นแบบ Technical Analysis ก็ต้องถูกนำมาใช้ด้วยเช่นกัน Oh woo!! ทีมเราจึงคัดเลือกเครื่องมือที่เอาไว้ช่วยในการวิเคราะห์สภาพตลาด แนวโน้ม และทิศทางของราคาหุ้น (Technical Indicators) ที่นักวิเคราะห์หุ้นเค้านิยมใช้กัน ได้แก่ EMA, MACD, RSI, STO, STOCH RSI เพื่อมาประกอบร่างดูความแตกต่างก่อนที่จะไปสร้างโมเดลซึ่งก็จะได้ ค่าสหสัมพันธ์ (Correlation ความสัมพันธ์ของตัวแปรที่มีต่อระดับการเปลี่ยนแปลงของตัวแปรหนึ่งตามการเปลี่ยนแปลงของตัวแปรอื่น ยิ่งเข้าหา 0 แปลว่าไม่มีความสัมพันธ์) ได้หน้าตาออกมาแบบนี้…

ค่าสหสัมพันธ์ (Correlation) ที่ได้จากการสร้าง Indicator

ว่าแต่ Indicators แต่ละตัวคืออะไรบ้างนะ… (ถ้าใครไม่สนใจการวิเคราะห์เชิงเทคนิคสามารถเลื่อนผ่านตรงนี้ไปได้เลย…)

  1. EMA (Exponential Moving Average)

EMA คือเส้นแสดงค่าเฉลี่ยของราคาปิดของหุ้นย้อนหลัง ตามจำนวนวันที่เราต้องการ โดยให้วันหลังๆ มีน้ำหนักมากกว่า เพราะราคาที่ใกล้ปัจจุบันมากกว่าย่อมมีความสำคัญมากกว่า เราใช้ EMA12 และ 26 วัน คือ เส้นที่คิดค่าเฉลี่ยของราคาหุ้นตัวนั้นย้อนหลัง 12 และ 26 วัน เพื่อให้ครอบคลุมการซื้อขายระยะสั้น เนื่องจากให้สัญญาณที่ค่อนข้างไว

แล้วจะอ่านค่า EMA อย่างไร…

เราจะเน้นให้โมเดลเลือกหุ้นในส่วนที่เป็น Golden Cross นั่นคือราคาหุ้นกำลังจะเปลี่ยนเป็นเทรนด์ขาขึ้น แสดงถึงราคาหุ้นที่แข็งแกร่งในช่วงนั้นนั่นเอง ซึ่งถ้าใครอยากศึกษาเพิ่มเติมก็ลองไปอ่านต่อได้ที่ https://knowledge.bualuang.co.th/knowledge-base/whatisema/

Image by https://knowledge.bualuang.co.th/knowledge-base/whatisema/

2. MACD (Moving Average Convergence Divergence) หรือเรียกง่ายๆ ว่า Mac-Dee

สำหรับ MACD นั้น เราสามารถใช้งานเค้าได้หลายอย่าง โดยใช้เป็น Indicator ที่บอกทิศทางแนวโน้มของราคาหุ้น (Trend) แรงส่งของราคาหุ้น (Momentum) และบอกจุดซื้อ-ขาย ทั้งระยะกลางและระยะสั้นได้ แต่น้องก็มีจุดบอด คือ ไม่สามารถบอกภาวะการซื้อมากเกินไป (Overbought) หรือขายมากเกินไป (Oversold) ได้ โดยทีมเราใช้ MACD ในการดู Trend ของราคาหุ้น

แล้วจะอ่านค่า MACD อย่างไร…

MACD = ผลต่างหรือระยะห่างของเส้น EMA12 วัน (เส้นสีแดงด้านบน) และ EMA26 วัน (เส้นสีน้ำเงินด้านบน) โดยเราจะดูที่ MACD Line (เส้นสีเหลืองด้านล่าง) ซึ่งหาก MACD Line ต่ำกว่า Zero Line (MACD = 0) ราคาหุ้นช่วงนั้นก็จะเป็นขาลง (Zone A) และหากสูงกว่า Zero Line ก็จะเป็นช่วงขาขึ้น (Zone B) นั่นเอง

Image by https://m.pantip.com/topic/31058179?

อย่างที่บอก น้องมีความสามารถอีกหลายอย่าง ถ้าจะให้อธิบายกันแบบละเอียดนั้นรับรองว่าอีกยาว ขอแนะนำว่าถ้าใครสนใจสามารถตามไปศึกษาต่อได้ที่บทความนี้ คลิกเลยยย https://www.finnomena.com/daddy-trader/macd/

3. RSI (Relative Strength Index)

เป็นเครื่องมือที่เอาไว้ดูว่าในช่วงระยะเวลาหนึ่ง…หุ้นตัวที่เราสนใจถูกขายมากเกินไป (Oversold) หรือถูกซื้อมากเกินไป (Overbought) หรือเปล่า โดยเราพิจารณาโดยใช้หลักเกณฑ์ดังนี้

  • RSI = 50 จะถือเป็นช่วงที่หุ้นกำลังลังเลว่าราคาจะขึ้นหรือจะลง ทีมของเราจึงกำหนดกรอบไว้ว่า หาก RSI > 50 นั่นแปลว่า ราคาหุ้นนั้นกำลังจะเป็นขาขึ้น แต่ถ้า RSI < 50 จะถือว่าราคาหุ้นกำลังอยู่ในช่วงขาลง
  • RSI > 70 หมายความว่า ในช่วงนั้นหุ้นตัวนี้ถูกซื้อมากเกินไป (Overbought) หรือหมายถึงเป็นจุด “ขาย” หุ้นเพื่อทำกำไร นั่นคือ เมื่อมีคนซื้อหุ้นนั้นมากเกินไป ราคาหุ้นอาจสูงเกินความเป็นจริง ทำให้คนมักจะเทขายทำกำไร ทำให้ราคาของหุ้นมีโอกาสเข้าสู่ขาลงได้ในอนาคตอันใกล้
  • RSI < 30 หมายความว่า ในช่วงนั้นหุ้นตัวนี้ถูกขายมากเกินไป (Oversold) หรือหมายถึงเป็นจุดเข้า “ซื้อ” นั่นคือ เมื่อมีคนขายหุ้นนั้นมากเกินไป ราคาของหุ้นก็จะต่ำกว่าภาวะปกติ มักจะทำให้เกิดแรงซื้อจึงทำให้ราคาของหุ้นมีแนวโน้มที่จะมีราคาสูงขึ้น จึงเป็นจุด “เข้าซื้อเพื่อช้อนเก็บของถูกไว้”
Image by https://stock2morrow.com/article-detail.php?id=2533

4. STO (Stochastic Oscillator)

เป็นเครื่องมือที่นำ MACD และ RSI มารวมกัน ประกอบไปด้วย 2 ส่วนคือ เส้น %K และเส้น %D

  • ถ้าเส้น %K ตัด %D ขึ้นที่บริเวณค่าน้อยกว่า 20 หมายความว่าในช่วงนั้นหุ้นตัวนี้ถูกขายมากเกินไปแล้ว (Oversold) และเป็นจุดเข้า “ซื้อ” หุ้น
  • ถ้าเส้น %D ตัด %K ลงที่บริเวณค่าน้อยกว่า 80 หมายความว่าในช่วงนั้นหุ้นตัวนี้ถูกซื้อมากเกินไปแล้ว (Overbought) และเป็นจุดที่ควร “ขาย” หุ้น
Image by https://www.finansiahero.com/slow_stochastic_oscillator/

5. STOCH RSI (Stochastic RSI)

STOCH RSI เป็น Indicator ของ Indicator เพราะเป็นการใช้ STO มาคำนวณ RSI อีกที ทำให้สามารถหาจุดสูงสุดต่ำสุดของการเกิดสัญญาณได้ไวยิ่งขึ้น โดยใช้สำหรับการหาสภาวะ Overbought และ Oversold ซึ่งพวกเราเห็นว่า Indicator ตัวนี้แหละที่ทำให้โมเดลสามารถทำนายอนาคตไปข้างหน้าได้ง่ายขึ้น ซึ่งถ้าใครอยากทราบรายละเอียดก็สามารถศึกษาต่อได้เลยที่ https://th.tradingview.com/scripts/stochasticrsi/

เมื่อทำความรู้จักกับ Indicators ทั้ง 5 กันแล้ว พวกเราได้เตรียม Indicators ทั้งหมดไว้ใช้สำหรับสอนให้โมเดล Linear Regression ได้รู้จักรูปแบบความสัมพันธ์ต่างๆ ของแต่ละ Indicators (Supervised Learning) เพื่อที่จะสามารถจัดประเภท (Classification) ว่าราคาหุ้นแต่ละตัวจัดอยู่ในกลุ่มขาขึ้น (Uptrend) ขาลง (Downtrend) หรือไม่รู้ว่าจะไปทางไหนดี (Sideway)

ขั้นตอนที่ 3: Feature Engineering คัดเลือกข้อมูลเฉพาะที่จะใช้

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

ขั้นตอนที่ 4: Prediction Model ใช้สมการพยากรณ์

พวกเราเลือกใช้โมเดล Linear Regression เพื่อหาความสัมพันธ์ระหว่าง Features และ Labels ต่างๆ ดังที่กล่าวไว้ในขั้นตอนที่สอง โดยเราแบ่งข้อมูลที่ได้มาออกเป็น 2 กลุ่ม คือ Training Set เพื่อใช้ในการสอนให้โมเดลเรียนรู้ และ Test Set เพื่อใช้ทดสอบว่าโมเดลทำงานได้ดีแค่ไหนกับข้อมูลที่ไม่เคยเห็นมาก่อน ด้วยอัตราส่วน Train:Test = 80:20

เนื่องจากเราต้องการทำนายราคาหุ้นในอนาคต (Prediction Model) เราจึงเลือก Facebook Prophet มาใช้ในการทำนาย เพราะ Facebook Prophet ใช้สำหรับการพยากรณ์แบบ Time-series และมี Tools อีกหลายโมเดลในตัวเค้าเอง เช่น ARIMA, TBATS, Linear & Logistic trend(Sigmoid curve) และอื่นๆ ซึ่งจะทำให้ค่อนข้างมั่นใจได้ว่า โมเดลจะสามารถทำนายราคาหุ้นได้ใกล้เคียงความจริงมากที่สุด Facebook Prophet ยังสามารถกำหนด Seasonal ที่เหมาะสมกับการทำนายราคาหุ้นได้ โดยเราได้กำหนดให้โมเดลคำนวณราคาตามวันทำการที่มีการซื้อขายจริงๆ (ตัดวันเสาร์อาทิตย์ออก)

กราฟด้านบนนี้แสดงราคาที่ได้จากการทำนายด้วย Prophet โดยจุดสีดำคือราคาจริง เส้นสีฟ้าคือราคาที่ได้จากการทำนาย จากกราฟที่เห็นนี้ สามารถตีความได้ว่าหุ้นทั้งสองตัวนี้มีแนวโน้มราคาที่สูงขึ้น

สำหรับกราฟนี้ แสดงแนวโน้ม (Trend) ของหุ้นทั้งสองตัว ซึ่งจะเห็นได้ว่าแนวโน้มกำลังปรับตัวสูงขึ้น ถ้าได้เห็นกราฟแบบนี้แล้วหละก็…จะรออะไรกันหละ ไปเติมเงินเข้าพอร์ทกันได้เลยทุกคนนนนนน

ได้โมเดลมาแล้ว ก็ต้องวัดประสิทธิภาพกันหน่อย…

พวกเราได้ใช้ RMSE (Root Mean Square Error) เพื่อตรวจสอบประสิทธิภาพของโมเดล ถ้า RMSE ยิ่งมีค่าต่ำ แปลว่าค่าความผิดพลาดยิ่งน้อย นั่นคือมีความแม่นยำในการทำนายมากกว่านั่นเอง เอ๊ะ…แล้วหุ้นที่เพิ่งเข้าตลาดปีนี้หละ…โมเดลจะทำนายได้แม่นยำหรือเปล่านะ เพื่อความมั่นใจ ลองเช็คทุกตัวเลยละกัน ผ่ามมม!!

โอ๊ะ!! ทำไม RMSE ของพวกหนูถึงแปลกขนาดนั้นหละลูกกกก

…พอเราไปหาข้อมูลเพิ่มเติมปรากฎว่า เด็กๆ ทั้ง 4 เป็นหุ้นที่เพิ่งเข้าตลาดหลักทรัพย์ฯ ไปหมาดๆ เราก็เลยทำการตัดฉับๆ เพราะถือว่าเด็กๆ เป็น Outlier นั่นเอง…

จากหุ้น 100 ตัว เราตัดออก 4 ตัว…แหม่ DSE G.2 เราทำ Index ใหม่นะเออ SET96 ไงหล่ะ ฮ่าๆๆ เมื่อตัดเสร็จเรียบร้อย เราก็ส่งต่อไปให้น้อง Prophet จัดการทำนายราคาให้เรา ลุยยยยย…

ขั้นตอนที่ 5: Result & Visualization ทดสอบผลลัพธ์และแสดงผล

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

เนื่องจากเรามีเงินลงทุนที่จำกัดจำนวน 20,000 บาท และซื้อได้แค่จำนวนเต็มร้อย…ดังนั้น หุ้นตัวใดที่มีราคาเกิน 200 บาท เราจะกำหนดให้กำไรที่คาดการณ์เป็น 0 (ซึ่งใน SET100 มีหุ้น 2 ตัวที่เราซื้อไม่ได้)…เอ๊ะ…ไหงเป็นงั้นหละ??

Board Lot vs Odd Lot

สิ่งสำคัญที่นักลงทุนมือใหม่ต้องทราบก็คือ การลงทุนหุ้นในตลาดหลักทรัพย์ของบ้านเรานั้น สามารถซื้อได้ 2 แบบ นั่นคือ

  • Board Lot เป็นหน่วยการซื้อขายหุ้นบนกระดานหลัก โดย 1 Board lot = 100 หุ้น (ยกเว้นหุ้นที่มีราคาปิดสูงกว่า 500 บาทต่อเนื่องยาวนานเกิน 6 เดือน จะสามารถซื้อ Lot ละ 50 หุ้นได้ แต่กรณีนี้ไม่เกี่ยวกับเรา เพราะเราซื้อหุ้นได้แค่ราคาไม่เกิน 200 บาทต่อหุ้น)
  • Odd Lot เป็นหน่วยย่อยในการซื้อขายหุ้นบนกระดานย่อย นั่นคือ หุ้นที่มีจำนวนต่ำกว่า 100 หุ้น จะมาซื้อขายหุ้นบนกระดานย่อยนี้ หรือที่เค้าเรียกชื่อเล่นว่า เศษหุ้น (ซื้อได้ตั้งแต่ 1–99 หุ้น) ซึ่งสามารถส่งคำสั่งได้ในช่วงตลาดเปิดทำการเท่านั้น

ดังนั้น จากโจทย์ที่เราได้รับคือทาง Botnoi จะส่งคำสั่งซื้อเข้าไปก่อนปิดตลาด (Pre-close) ตั้งแต่คืนวันพฤหัสที่ 16 ก.ย. 2564 หรือที่ภาษานักเล่นหุ้นเรียกว่า ATC (At The Close) และจะไม่มีการซื้อขายระหว่างตลาดเปิด ทำให้เราไม่สามารถซื้อแบบ Odd lot ได้นั่นเอง

กลุ่มเราจึงได้พิจารณาความคุ้มค่าในการลงทุนด้วยเงินลงทุน 20,000 บาท ด้วยแนวคิดตามตัวอย่างดังต่อไปนี้

จะเห็นได้ว่า ในกรณีที่กำไรเท่ากัน หากเราสามารถใช้เงินทุนที่มีได้สูงสุด (จากตัวอย่างคือหุ้น B ซึ่งสามารถซื้อหุ้นได้จำนวนมากกว่า) เราจะมีโอกาสได้กำไรเป็นเม็ดเงินสูงกว่า และเพราะเงื่อนไขการซื้อแบบ Board Lot นี่เอง ที่ทำให้เราไม่สามารถลงทุนในหุ้นที่มีราคาเกิน 200 บาทได้

เสร็จซะที…เย่!!

<<หากใครเป็นสายฮาร์ดคอร์ ขอเชิญไปติดตามผลงานของทีม Dev ของเราได้ที่ Google Colab>>

ผลจากการใช้โมเดลและ Indicators ต่างๆ ที่แสนจะเข้าใจยากตามที่ว่ามาทั้งหมดข้างต้น และแล้ว…พวกเราก็ได้รายชื่อหุ้นที่เข้ารอบ 20 คนสุดท้าย เอ้ย 20 หุ้นที่คาดว่าจะทำกำไรให้เรามากที่สุด ดังนี้…แถ่นแท้นนนน…

รายชื่อและราคาของหุ้นที่เป็น Top 20
กราฟแสดงกำไรของหุ้นที่เป็น Top 5

จากรายชื่อและกราฟแสดงกำไรของหุ้นที่เป็น Top 5 ข้างบนจะเห็นว่า…หุ้นที่จะสร้างผลกำไรให้เราได้สูงที่สุดในวันที่ 23 ก.ย. 2564 คือ JMART ดังนั้นทีมเราเลือกหุ้นอันดับแรกที่ทำกำไรสูงสุดตามที่โมเดลบอกเลยใช่มั้ยหละ????

คำตอบคือ…ไม่ใช่!!!…ว๊อททททท???

…หลายๆ คนอาจจะคิดในใจว่า เอ๊า แล้วจะใช้โมเดลทำไม ถ้าไม่เชื่อผลของโมเดล…

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

Image by https://ewminteractive.com

นอกจากนั้น การที่จะประสบความสำเร็จในการซื้อขายได้นั้น ยังคงมีองค์ประกอบมากมาย เช่น การบริหารความเสี่ยง บริหารเงินทุนที่เรามี ไหนจะเรื่องของจิตใจ ความอดทน ความมีวินัย เป็นต้น ตัวอย่างง่ายๆ ก็เช่น ไม่ใช่ได้ยินว่าจะเปิดประเทศใน 120 วันก็รีบไปช้อนหุ้นสายการบินเลยหรือราคาหุ้นสะดุดนิดนึง ก็ตื่นเต้นมือสั่น กดขายทิ้งซะเลย

ดังนั้น เมื่อเราได้หุ้นที่คาดว่าจะทำกำไรสูงสุดจากโมเดลที่เราเลือกมาใช้แล้วนั้น เราจึงมาระดมกำลังความคิด เพื่อช่วยกันวิเคราะห์พิจารณาเลือกหุ้นที่น่าจะเป็นหุ้นเด็ดของเรา โดยเมื่อพิจารณากำไรที่โมเดลทำนายแล้วนั้นจะพบว่า BANPU ตามมาเป็นอันดับ 2 ซึ่งทิ้งลำดับ 3 ถึงเกือบๆ 200 บาท เราจึงเลือกหุ้นลำดับที่ 1 JMART และลำดับที่ 2 BANPU มาเข้ากระบวนการพิจารณาคัดสรรกันเป็นรอบสุดท้าย ดังนี้

1) พิจารณาจากราคาซื้อที่เหมาะสมด้วย Technical Indicator

เราใช้ทั้ง EMA และ MACD มาช่วยในการพิจารณาหุ้นทั้งสองตัว โดยทั้ง 2 Indicators แสดงให้เห็นว่าหุ้นทั้งคู่นั้นมีสัญญาณแนวโน้มราคาขาขึ้น แต่เมื่อพิจารณา Stochastic และ RSI จะพบว่า JMART มี Momentum Signal ที่แสดงให้เห็นว่าหุ้นนั้นมีการซื้อที่มากเกินไปหรือ Overbought (RSI > 70) ซึ่งจะมีความเสี่ยงที่ราคาจะตกลงได้ในอนาคตอันใกล้ เมื่อเหลือบไปมองของ BANPU จะเห็นว่าค่า RSI ยังต่ำกว่า 70 ซึ่งถือว่ายังมีความน่าสนใจมากกว่า JMART เนื่องจากยังมีโอกาสที่ราคาหุ้นจะทะยานขึ้นไปได้อีกนั่นเอง

ภาพแสดง Indicators ของ JMART
ภาพแสดง Indicators ของ BANPU

นอกจากนั้น ในช่วงวันที่เราเลือกหุ้น หากลองเปรียบเทียบราคาของหุ้นทั้ง JMART และ BANPU ตามรูปด้านล่างแล้วจะเห็นได้ว่า ราคาของ JMART (เส้นสีส้ม) มีแนวโน้มราคาที่กำลังจะลง ในขณะที่ BANPU (แท่งเทียน) มีแนวโน้มที่ราคาจะเป็นขาขึ้น เราจึงทดไว้ในใจว่า BANPU ดูจะน่าสนใจกว่า JMART

ภาพแสดงการเปรียบเทียบราคาของหุ้น JMART (เส้นสีส้ม) & BANPU (แท่งเทียน)

2) พิจารณาอัตราส่วนทางการเงิน

  • แม้ P/E (เปรียบเทียบระหว่างราคาหุ้นกับกำไรต่อหุ้น) ของ BANPU (45.8) จะสูงกว่า JAYMART (40.67) แต่ P/BV (เปรียบเทียบระหว่างราคาหุ้นกับมูลค่าหุ้นทางบัญชี) ของ BANPU ยังต่ำกว่า JMART (8.58 เท่า) BANPU (1.35 เท่า) แสดงว่าราคา BANPU จะดูแพงกว่า JMART เล็กน้อยเมื่อดูในมุมของการทำกำไรสุทธิ (Earning)
  • แต่หากเทียบในมุมมองของ P/BV จะเห็นได้ว่า BANPU ถูกกว่า JMART มาก แสดงว่า BANPU มี “ของ” มากกว่า และของนั้นมีโอกาสสร้างกำไรขึ้นได้อีก

ดูทรงจากผลของกราฟเทคนิคและอัตราส่วนทางการเงิน พวกเราเริ่มจะเอนเอียงไปทาง BANPU ซึ่งเป็นหุ้นที่โมเดลของเราบอกว่าจะทำกำไรเป็นอันดับสองรองจาก JMART แต่ก่อนที่เราจะตัดสินใจแตกต่างจากโมเดลที่พวกเราประคบประหงมสร้างขึ้นมา อย่าลืมว่า การลงทุนในหุ้นคือการเป็นเจ้าของกิจการ ดังนั้นเราจึงหาข้อมูลปัจจัยพื้นฐานของหุ้น BANPU กันอีกซักนิด…

แม้แต่ปรมาจารย์ในการลงทุนอย่าง Warren Buffet ยังกล่าวไว้ว่า เราต้องเข้าใจตัวธุรกิจของหุ้นที่เราจะลงทุน (แปลว่าพวกเราก็น่าจะมาถูกทางแล้วสินะ…)

อยากทำฝันให้เป็นจริง ก็ต้องเข้าใจพื้นฐานของกิจการ…ดูช้างให้ดูหาง ดูนางให้ดูแม่ จะดูหุ้นไหนกำไรแน่ๆ ให้ดูตัวกิจการ…

BANPU หรือ บมจ. บ้านปู เป็นบริษัทผู้ผลิตและจำหน่ายถ่านหินรายใหญ่ที่สุดในประเทศไทย ดำเนินธุรกิจอยู่ 3 กลุ่มหลัก ได้แก่ กลุ่มธุรกิจแหล่งพลังงาน กลุ่มธุรกิจผลิตพลังงานและกลุ่มธุรกิจเทคโนโลยีพลังงาน โดยมีโครงสร้างรายได้ในแต่ละกลุ่มธุรกิจในปี 2563 ดังนี้

จุดแข็งหลักๆ ที่ทำให้กลุ่มเราสนใจหุ้นตัวนี้…ได้แก่…

นอกจากนั้น ตัวบริษัทยังมีแผนที่จะลุยพลังงานสะอาดและเทคโนโลยีพลังงาน ซึ่งปัจจุบันมีข่าวว่าบริษัทมีการลงทุนในโรงไฟฟ้า 2 แห่งในต่างประเทศ ดังนี้

  1. 6 มิ.ย. 64 ลงทุนใน Solar plant ที่ออสเตรเลีย มูลค่า 2,332 ล้านบาท (166.8 เมกะวัตต์)
  2. 10 ส.ค. 64 ลงทุนในโรงไฟฟ้าแก๊สในสหรัฐอเมริกา มูลค่า 14,147 ล้านบาท (768 เมกะวัตต์)

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

จากการทำงานร่วมกันระหว่างเรากับโมเดล ก็ถึงเวลาประกาศผลผู้ได้รับมงกุฏ เอ้ย ได้รับคัดเลือกกันเลย…แทน ทะดะแด้น แทน แท่น แทน แทน แท้นนนนน (ใส่เสียงรัวกลองเพื่อความตื่นเต้น)…

“BANPU” (บ้านปู๊วววววว…ใช้โทนเสียงเหมือนนางงามแนะนำตัวว่ามาจากจังหวัดอะไร)

เราเลือก BANPU เป็นหุ้นเด็ดที่คาดว่าจะสามารถทำกำไรได้สูงสุดในช่วงระยะเวลา 1 สัปดาห์ต่อจากนี้ (ระหว่างวันที่ 17 ถึง 23 ก.ย. 2564)

โดยราคาหุ้นของ BANPU ณ วันที่ 23 ก.ย. 2564 ที่พวกเราคาดการณ์นั้นจะอยู่ที่หุ้นละ 13.08 บาท

และแล้วพวกเราก็ได้นำเสนอ BANPU ให้กับ Botnoi เมื่อทำการกดซื้อหุ้น BANPU ไปแล้ว พวกเราก็ได้แต่ภาวนาว่า ราคาจะเป็นไปอย่างที่เราคาดการณ์…(จะไม่ลุ้นได้ยังไง…หลายคนในกลุ่มก็แอบซื้อตามไปด้วย…จะปังไปด้วยกัน หรือจะอบอุ่นเพราะมีเพื่อนร่วมติดดอย อีกไม่กี่วันเดี๋ยวได้รู้กัน)

Image by Mao-Investor

สุดท้ายนี้ พวกเราอยากฝากไว้ว่า…โจทย์ครั้งนี้เป็นการลงทุนวัดผลในระยะสั้นมากๆ เพียง 1 สัปดาห์ อีกทั้ง การลงทุน มีความเสี่ยง…แต่ไม่ลงทุน อาจเสี่ยงกว่า…เอ้ยยย ไม่ใช่…เอาใหม่ๆ…

การลงทุนมีความเสี่ยง ผู้ลงทุนควรศึกษาข้อมูลให้รอบคอบก่อนตัดสินใจ

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

Reference:

https://www.moneybuffalo.in.th/stock/pick-stocks

https://marketdata.set.or.th/mkt/sectorquotation.do?sector=SET100&language=th&country=TH

https://www.finnomena.com/daddy-trader/macd/

https://github.com/matplotlib/mpl-finance

https://mrjbq7.github.io/ta-lib/doc_index.html

https://facebook.github.io/prophet/

https://www.educba.com/revenue-vs-profit/

https://medium.com/future-vision/intro-to-prophet-9d5b1cbd674e

https://www.publichealthnotes.com/linear-regression-vs-logistic-regression/

--

--

DSE#4 G2

กลุ่มคนที่เห็นความสำคัญของ Data รวมตัวกันมาเรียนรู้งานด้าน Data Science