ลงทุนโดยใช้ Data Science 101: ตอนที่ 2— เริ่มโหลดโปรแกรม แล้วลองกันเลย

แนะนำวิธีดึงข้อมูล และพารู้จักกลยุทธ์ ในตอนที่ 2.1 และ 2.2

Vithan Minaphinant
investic
Published in
3 min readJul 3, 2017

--

ในตอนที่ 2 นี้ จะเป็นการแนะนำว่ามีกลยุทธ์อะไรบ้าง และเครื่องมือที่ใช้คืออะไร

เราจะใช้ Python ครับ (แถม Excel ด้วยนิดหน่อย)

และจะเน้นหนักไปที่ Logic และการเลือก Input ที่ถูกต้องครับ ถ้าเราไม่เข้าใจสิ่งที่จะนำมาเป็น input ก็จะได้ output ที่สื่อผิดๆให้เรา ดังสุภาษิตว่า

garbage in garbage out

แต่สำคัญที่สุดคือ การเริ่มต้น เราจะเริ่มกันเลยและค่อยๆเรียนรู้กันไประหว่างทาง!!

ขั้นตอนที่ 1 — โหลด โปรแกรม เลยครับ จะรออะไรล่ะ

ในคอร์สนี้จะสอนด้วย Excel และ Python ครับ แต่ไม่ต้องห่วง จะไปช้าๆครับ (แต่ไม่ใช่คอร์สสอน Python นะ จะหนักไปที่เทคนิคการลงทุน) สาย R ก็ลองประยุกต์ใช้ตามได้นะครับ แต่ผมขอไม่พูดถึง (เพราะตอนเขียนยัง ใช้ R ไม่ค่อยเป็น ฮ่าๆๆ)

เริ่มต้น Install Python โดยใช้ Anaconda ช่วยโหลดครับ จะรวม Packages ที่จำเป็นสำหรับการใช้งานไว้เกือบครบครับ และ IDE (คิดว่ามันคือโปรแกรม) เช่น Spyder ไว้เรียบร้อยครับ

download เวอร์ชั่นใหม่สุดไปเลยครับ 3.X

เราจะใช้ Spyder กันครับ หรือท่านจะใช้โปรแกรมอื่นก็ได้ครับไม่ต่างกันมาก ผมแค่ชอบแนวนี้ มันคล้าย R Studio ที่สุดแล้ว (เป็น IDE ที่ดีที่สุดในโลกเชียวนะ)

รูปอุ่นเครื่อง สำหรับสาย quant

กลยุทธ์ มีอะไรบ้าง?

อ่านระหว่างรอโหลด กลยุทธ์มีอะไรบ้าง เมื่อไหร่ใช้ Packages อะไร (ไม่รอ โหลดก็ควรอ่าน)

บางท่านอาจจะแบ่งตามลักษณะ เช่น แบ่งกว้างๆคือ Mean Reversion (กลับเข้าค่าเฉลี่ย) กับ Momentum(ขึ้นแล้วขึ้นอีก ลงแล้วลงอีก) หรือว่าง่ายๆ คือ บอกว่าจะขึ้นต่อ/ลงต่อ หรือจะสวนทาง

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

  1. Technical Analysis — มันคือก็พวกที่ตีกราฟ ดู indicator เทคนิคต่างๆ เช่น RSI, MACD, OBV, EMA, ATR, ICHIMOKU เส้นค่าเฉลี่ยตัดขึ้น ตัดลง

สายนี้เชื่อว่าประวัติศาสตร์ซ้ำรอยเสมอ โดยสะท้อนผ่านราคาครับ ดังนั้นเค้าจะเชื่อใน pattern เราจึงสามารถสร้าง indicator จำพวก pattern recognition ได้ ท่านอาจเคยได้ยินคำว่า “กระทะ” “ถ้วยมีหู” “Engulfing” .. “Harami” แหม่ นึกว่าเนื้อ ..โดย pattern ที่ win rate สูงๆ หรือเกิดขึ้นแล้วถ้าทำตาม จะกำไร ก็จะถูกนำมาสร้างเป็น indicator เพิ่มเติมไปเรื่อยๆ

พวก Robot/ Algorithmic Trading ของ Forex มักอยู่บนข้อ 1 นี้ครับ

2. Quantitative Analysis โดยทั่วไปมักใช้อย่างอื่นที่มากกว่า ราคาและ volume แต่ถ้าหากใช้ราคามาคำนวณ ก็มักจะเป็นเทคนิคประเภท rolling statistic เช่น นำผลตอบแทน 3 เดือนมาพล็อตกราฟ

พวกนี้หาเจอแล้วนิยมก็จะถูกนำไปสร้างเป็น Indicator ในข้อ 1 …

แต่โดยมากเขาจะ โฟกัสโดยใช้ข้อมูลอย่างอื่น เช่น ข้อมูลในงบการเงิน, relative P/E, P/E band , P/B band, SD band

รวมไปถึงการวิเคราะห์โดยใช้ Regression เช่นใช้ตัวเลขเศรษฐกิจ เงินเฟ้อ GDP มาคิด เพื่อหา EPS ของหุ้น หาราคาเป้าหมายก็ได ้.. รวมไปถึงกลยุทธ์ Arbitrage ต่างๆ

สำหรับ pair trade เป็นการดู Correlation และ Cointegration ครับ

High Frequency Trade (HFT) หรือ Algorithmic Trading ก็จะใช้ข้อ 2 นี้ซะมาก

3. จัดพอร์ต … Optimize Return vs Risk จากกลยุทธ์ที่เราสร้างขึ้นอีกที ไม่ว่าจะเป็นการจัดพอร์ตแบบ Mean Reversion Based, Scenario Based หรือแม้แต่ Arbitrage ก็ทำได้ รวมไปถึงกลยุทธ์การตั้ง Dynamic Stop loss ป้องกันเสียเงินต้น ก็ทำได้ อย่าลืมนะครับว่า ผมพูดถึงการลงทุนหลายสินทรัพย์ ไม่ใช่แค่หุ้น

หากนำข้อ 3 ผสม ข้อ 2 ก็จะ เข้าขั้นเทพได้ทุกเวลาไม่สนวิกฤต เช่น กองทุนของ Edward Thorp (คนที่เปิดเผยวิธีการ Count Blackjack) ก็ใช้วิธีนี้จนได้ดิบได้ดี เนื่องจาก Arbitrage พร้อมคุม Expected Return ให้เกิน 0 ได้อยู่หมัด เขาได้ผลตอบแทนเฉลี่ยปีละประมาณ 20–25%

แต่ Hedge Fund ที่ใช้ Quants Model ได้ที่เจ๋งที่สุดคือ Renaissance’s Medallion Fund เจ๋งขนาดไหน ดูรูปเอานะครับ

ผลตอบแทนรายปีของ Medallion Fund ผ่านปีที่ 2 ไปไม่เคยขาดทุนอีกเลย

จะสังเกตได้ว่า ข้อ 1 จะเล่นแค่ ตัวเดียว/สินทรัพย์เดียว , ข้อ 2 จะสามารถทำเป็นกลยุทธ์จับคู่ได้ , ข้อ 3 คือซื้อหุ้นหรือสินทรัพย์หลายๆอย่างครับ

เสน่ห์ของ Data Science คือ สามารถใช้ Machine Learning เข้ามาเสริมก็ได้ โดยเฉพาะการแปลงข้อมูลจำพวก คำพูด Text แล้วไปวิเคราะห์ต่อ หรือที่เรียกว่า sentiment analysis ผมจัดให้เรื่องนี้เป็นกลุ่มพิเศษ กลุ่มที่ 4 เพียงแต่ยังหาเจ้าที่โดดเด่นไม่ได้ .. เคยมีคนทำโดยจับจาก Twitter …แต่สุดท้าย “เจ๊ง” ครับ

ขั้นตอนที่ 2— เปิด Python Spyder ขึ้นมา

จัดการเปิดโปรแกรม Spyder ขึ้นมาเลยครับ (หรือเปิด cmd, python, ipython ก็ได้)

ตัวอย่างหน้าจอโปรแกรม Spyder

1.พื้นที่ทางซ้าย มีไว้เขียน คำสั่ง

2.ทางกล่องขวาบน เป็นเมนูอเนกประสงค์ ไว้กด import csv file ได้ เรียกดูได้ โดยไม่ต้องพิมพ์ code

3.ทางขวาล่าง ไว้แสดงผลครับ เช่น กราฟ หรือ ผลลัพธ์ของการคำนวณ การเรียกดูข้อมูล

ได้ข้อมูลมาแล้ว ทำอะไรได้บ้าง ถึงเวลาแล้วครับที่จะใช้ Package ช่วย

Package คืออะไร? ภาษาง่ายๆสำหรับคนที่ไม่ใช่ Programmer ให้คิดถึง Excel ครับที่มันพล็อตกราฟได้ มันเหมือน add-in ที่รวมสูตร รวมฟังก์ชั่นที่ต้องใช้ให้ครบแล้ว

  1. พลอตกราฟ — ใช้ packages plot graph เช่น matplotlib, Seaborn, Bokeh
  2. หาค่าเฉลี่ย จุดต่ำสุด จุดสูงสุด การคำนวณทั่วไป technical ต่างๆ— ใช้ Numpy, Pandas ไปนี่แหละครับ
  3. หาข้อมูลทาง สถิติ เช่น ค่า Standard Deviation, Correlation — ก็ยังใช้ Numpy, Pandas ของเค้าดี หรือลึกขึ้นมาอีกคือ
  4. Technical Analysis — มี package ชื่อ Ta-Lib ครับ แต่คำนวณกันเองก็ได้
  5. Quantitative Analysis — ถ้าไม่คำนวณเอง หรือมันยากเกินข้อ 2, 3 ก็ใช้ Machine Learning เข้ามาช่วย หรือโมเดลอื่นๆ ได้ — ใช้ Scikit-Learn , QuantLib
  6. ทำ Portfolio ดูผลตอบแทน ดู Risk Model — ใช้ Pyfolio (จริงๆแล้ว ถ้าใครทำถึงจุดนี้ยังไงก็แนะนำคำนวณเองก่อนครับ เบสิกต้องแน่น ไม่งั้นใช้ data ผิดๆ)

ดังนั้น การทำ Pair Trade จะใช้ Tool 1–3 รวมกันครับ

ขั้นตอนที่ 3 ไปต่อกันที่ ตอน 2.1 หรือใครมีข้อมูลพร้อมแล้ว ไป 2.2 เลย !!

2.1 http://bit.ly/2sN47qs

2.2 รอสักครู่ครับ กำลังจัดเรียงใหม่ ให้มันครบถ้วน จบในตัว

--

--