เมื่อ Candlestick มาเจอกับ Deep learning

ใครที่อยู่ในแวดวงการลงทุนคงไม่มีใครไม่รู้จัก “Candlestick Pattern” ที่มีการเปิดคอร์สสอนกันอย่างแพร่หลายในบ้านเรา โดยเนื้อหาหลักๆ ก็คือ การจดจำ Pattern ว่า ถ้าในอดีตเคยเกิดรูปแบบของข้อมูลแท่งเทียนในรูปแบบหนึ่งจะก่อให้เกิดรูปแบบราคาที่ตามมาในอนาคต ตัวอย่างเช่น ถ้าเกิด Evening star เป็น Bearish pattern ที่จะส่งผลให้หุ้นลงหรือเพิ่มโอกาสในการที่หุ้นจะลงมากกว่าขึ้น หรือ ถ้าเกิด Morning start แล้วก็จะเป็น Bullish pattern ก็จะส่งผลตรงกันข้ามกับด้านบนคือไปเพิ่มโอกาสทางฝั่งขึ้นแทน เป็นต้น

grade2-morning-evening-star

ตัวอย่าง Pattern Evening Star และ Morning Star

ความรู้เหล่านี้ได้กลายเป็นองค์ความรู้ที่ถูกกระทำซ้ำ ท่องจำกัน และ นำไปใช้งานกันอย่างแพร่หลายในช่วงหลายปีที่ผ่านมาในตลาดหุ้นไทยเรา บ้างก็นำไปเปิดคอร์สสอน state of art อย่าง technical analysis หรือชื่ออื่นๆ เช่น วิเคราะห์พฤติกรรมราคา วิเคราะห์หุ้นด้วยชาร์ต ราคาที่เก็บกันของแต่ละคอร์สก็ไม่น้อยเลย หลายคนไปเรียนกันและใช้มันมาเทรดกันจริงๆ ผมก็สงสัยว่าทำแบบนี้ต่อไปจะดีแน่หรอ (ถึงจะกำไร) ทั้งต่อตัวผู้ใช้งานเอง และ ต่อสังคมการลงทุนในบ้านเรา

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

ข้อดี

  • ง่าย เพราะ Candlestick Pattern เป็นการ Visualize ออกมาให้เราเห็นเหมือนรูปด้านบนง่ายต่อการตีความหมายmaxresdefault.jpg

แต่ก็ต้องไม่ลืมกันนะครับ ว่าที่มันดูง่าย ก็เพราะข้อมูลที่ได้มามันจบไปแล้ว และเป็นการ Visualize Data ดิบเท่านั้นเอง

เรามาลองดูตัวออย่างข้อมูลจริงกันครับ ข้อมูลที่ใช้คือ ข้อมูล SET50 ตั้งแต่ปี 02-01-2006 – 18-05-2017

Screenshot from 2017-05-18 22-06-49

ผมได้ทดลอง Candlestick pattern ด้วยการใช้ “Function Pattern Recognition” มาทดลองกับข้อมูลข้างต้นดูเผื่อสรุปผลหลายๆอย่าง

สิ่งที่ผมค้นพบ

มีความเป็น Overlap หลาย Pattern อาจเกิดขึ้นซ้อนกันทับวันกันได้ จะทำได้เราตีความด้วยตาตัวเองได้ยาก แต่ถ้าด้วยคอมก็ไม่มีปัญหาครับ กราฟด้านล่างเป็น การเกิด Pattern ต่างๆ โดย มี 2 ค่า ถ้าเป็น 1 จะเป็น  Bullish และ -1 เป็น Bearish ซึ่งบางครั้งมันก็เกิดโอเวอร์เลปกันบางช่วงเวลา

(จากรูปมันจะเห็นแค่ -0.2 ถึง 0.2 เพราะผมซูมมันครับ)figure_1.pngรูปบนคือจำนวนครั้งที่เกิด Pattern แท่งเทียนแต่ละแบบ ในรูปนี้ผมใส่แค่ไม่กี่แบบเพราะกลัวดูไม่รู้เรื่องครับ แต่เวลาทดลองจริงๆผมใช้มากกว่านี้ ประมาณ 3 เท่าเห็นจะได้

Screen Shot 2017-05-28 at 09.17.31

ส่วนรูปนี้ก็อย่างเดียวกับด้านบนแต่ซูมดูใกล้ๆ ครับจะเห็นว่ามีบางครั้งที่ Bullish และ Bearish ของสอง Pattern เกิดพร้อมกันมันคงทำให้เราวิเคราะห์ยากขึ้นไปอีก หลายคนอาจจะบอกว่าเพราะผมไม่เก่ง Technical หรือเปล่า ก็ต้องตอบว่า ใช่ครับผมไม่เก่งเลย แต่ผมสนใจที่ความคงทน เราจะมามองมันเป็น Art ตลอดไปไม่ได้ในที่สุดมันต้องวัดผลมันออกมาให้ได้ครับ จะมาหวังให้ตาดีได้ตาร้ายเสียไปตลอดก็ไม่เหมาะนักถ้าใช้วิธีการนี้แล้วเราจะเพิ่มเติม และ แก้ไขและพัฒาได้อย่างไร ถ้าเราตัดสินใจซื้อขายเอง ถ้าผิดถูกไปเรื่อยๆด้วยวิธีการนี้เราจะเก็บข้อมูลมา validation  อย่างไรก็คงยากต่อการพัฒนาในขั้นต่อไป

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

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

ทดลองด้วย Deep Learning 

ผมได้ทำการใช้ Candlestick pattern หลายรูปแบบ เพื่อมาเป็น Feature จากนั้นใช้อัลกอริทึ่มที่สามารถคำนวณได้ซับซ้อนหน่อยอย่าง Deep Learning ด้วยโครงสร้างที่ไม่ได้ Big เท่าไหร่หรอกนะครับ แต่ก็เพื่อพิสูจน์ถึงความสำคัญของ Feature เหล่านี้ว่ามันช่วยเรื่องความถูกต้องของพฤติกรรมราคา x วัน หลังจากการเกิด pattern นั้นๆมากน้อยแค่ไหน แบบ combination probability อย่างไรครับ

W170109_SINGH_DEEPLEARNINGNETOWRKS-1.png

ผลการทดลอง แต่ละ Epoch ของ Deep Learning ตอนแรกนั้นเริ่มที่ความแม่นยำประมาณ 48 % แต่ละ Epoch ผ่านไป ความแม่นยำก็เพิ่มขึ้นทีละน้อยตามทฤษฎี 48, 48.2, 48.3 บลาๆ โดยเมื่อผมเทรนไปได้หลาย Epoch ความแม่นยำของอัลกอริทึ่มเริ่ม saturate function อยู่ในกรอบ 52-54% โดย Epoch สุดท้ายจบที่ประมาณ ~52%

จากนั้นลองเทสกับข้อมูล Out of Sample สองปีหลังสุด ได้ความแม่นยำที่ 53% ครับ 

Screenshot from 2017-05-28 13-18-23

จากผลการทดลอง ผมก็ขอสรุปไว้ว่า Feature เหล่านี้ก็ดูจะมีผลอยู่หรอกนะครับ แต่ความถูกต้องระดับ Combination ของ Feature ขนาดนี้แล้วมันยังได้ความแม่นยำประมาณนั้น เป็นที่น่าสังเกตว่า ถ้าเรามอง แพทเทรินด้วยตาเปล่าแล้วเทรดอย่างเดียวจะได้ความแม่นยำแค่ไหน? ผมตอบไม่ได้ครับ บางท่านอาจจะมองเป็นศิลป์และทำกำไรและความแม่นยำกว่าก็ได้ แต่ถ้าเราไม่เก่งศิลป์เราก็มาทำให้มันเป็นศาสตร์กันเถอะครับ!!!

ปล1. ผมพยายาม Overfitting Data ด้วยการสร้างโครงข่ายที่ละเอียดขึ้น สรุปผล Out of Sample ก็แย่ลงจนเหลือ ~51% ครับ (ฮา)

ปล2. การทดลองนี้ผมไม่ได้เพิ่มพลังด้วยอัลกอริทึ่มหลีกเลี่ยง Overfitting ใดๆให้กับโมเดลนะครับ แต่จะว่ากันในบทต่อๆไป

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