“การลงทุนที่ดีที่การลงทุนที่กำไรมากที่สุด” นั่นมันสำหรับมือใหม่เค้าว่ากันครับ การลงทุนที่ได้กำไรมากๆ อาจจะเป็นการลงทุนที่ห่วยแตกก็ได้ และเราไปสนใจกับแค่ช่วงเวลาหนึ่งๆ (one point in time) แล้วพบว่าระบบลงทุนของเรานี่มันดี เพราะทำกำไรได้มาก แต่จริงๆ อาจจจะฟลุ๊กก็ได้ ในการลงทุนที่ดี สิ่งที่ต้องสนใจไม่แพ้ผลกำไร ก็คือ “ความเสี่ยง” ครับ portfolio ที่ดีจะต้องให้น้ำหนักกับเรื่องนี้ให้มาก วันนี้เราเลยจะมาดูเรื่องผลกระทบของการ “Rebalance Portfolio” กันครับ โดยตัวอย่างที่ผมเลือกมาเพื่อให้เราเห็นว่า การลงทุนที่ดีที่สุดไม่จำเป็นต้องทำกำไรมากที่สุด และทำไมต้อง Rebalanced Portfolio กันครับ ก่อนอื่นดึง library ที่ต้องใช้มาก่อน ก็ตัวเดิมๆทั้งนั้น ดึงข้อมูลหุ้น สองตัว Google และ 3M อันนี้เราจะเลือกสุ่มๆนะครับ และเพื่อความเรียบง่าย ผมจะใช้แค่หุ้น 2 ตัวในพอร์ตเป็นตัวอย่าง เราจะสมมุติว่าการถือหุ้นสองตัวนี้จะแบบ equal weight จะดีกับ risk profile ก็แล้วกันครับ หา return ของหุ้นทั้ง 2…
Category: Risk Manament
Backtesting Part2: Adding Stoploss
หลังจากเราทำ backtest แบบง่ายๆไปกันแล้ว เรามาลองเพิ่มรายละเอียดให้กับมันโดยใช้การหยุดการขาดทุน หรือ Stoploss กันดีกว่าครับ เราจะใช้ Technical Analysis indicator ซักตัวหนึงมาใช้เพื่อรักษาระดับกำไรของเราไว้ ในบทความนี้ก็ยังคงพื้นๆอยู่ครับ แต่หลังจากโพสนี้ ยังมีรายละเอียดเกี่ยวการ backtest อีกหลายอย่าง เช่น ความสมจริงของราคาซื้อ-ขาย การเก็บ log วันที่ซื้อ-ขาย หรือปัญหาทาง assumption ทางคณิตศาสตร์ของการ backtest (รวม vectorize ด้วย) ที่เราจะมาพูดคุยและค่อยๆประกอบมันกันครับ เราจะใช้อินดิเคเตอร์ชื่อดังอย่าง Average True Range (ATR) มาช่วยในการรักษาระดับกำไรของเรา อินดิเคเตอร์ตัวนี้ถูกคิดค้นโดยคุณ J. Welles Wilder Jr. ที่เปิดตัวในหนังสือในตำนานทางเทคนิคคอลชื่อ New Concepts in Technical Trading Systems คุณคนนี้เค้ายังคิดค้นเทคนิคอลอินดิเคเตอร์ที่เรารู้จักกันดี และยังใช้กันอยู่ในทุกวันนี้อีกหลายตัวด้วยกัน เช่น Relative strength index(RSI), Average…
กลยุทธ์ Day of Week ของคุณ Larry R. Williams ทำงานได้จริงไหม
สองสามวันก่อนผู้เขียนได้ อ่านหนังสือ “Long-term secrets to short-term trading” (มีเวอร์ชั่นแปลไทยโดยใช้ชื่อว่า กลยุทธ์เก็งกำไรเทรดระยะสั้น) ของคุณ Larry R. Williams ก็เลยอยากทดลองใช้กลยุทธ์ในการวิเคราะห์ข้อมูลหุ้นตามคุณ Larry ด้วยภาษา Python ดูซะหน่อย จึงถือโอกาสหยิบยกการทดลองนี้มาให้เพื่อนๆ ได้ดูกัน ถือเป็นการฝึกมือภาษา Python และทำความรู้จักกับข้อมูลหุ้นให้มากขึ้นกันไปในตัวด้วยค่ะ สมมุติฐานเริ่มต้น คุณ Larry ได้ตั้งสมมุติฐานของกลยุทธ์นี้ไว้ว่า “ราคาของหลักทรัพย์ในแต่ละวันของสัปดาห์มีลักษณะนิสัย (Characteristic) บางวันมีการปรับตัวขึ้นของราคามากกว่าวันอื่นๆ ในขณะที่บางวันที่การปรับตัวของราคาลดลงมากกว่าวันอื่นๆ อย่างมีนัยยะสำคัญ เช่น หุ้นอย่าง Google อาจจะมีลักษณะของการมีแรงซื้อเข้ามามากใน วันเริ่มต้น ของสัปดาห์ และ มีแรงขายมากใน วันสุดท้าย ของสัปดาห์ ถ้าหุ้นเหล่านั้นมีลักษณะนิสัยแบบที่ว่าจริง เราก็น่าจะสามารถนำข้อมูลนี้มาใช้ประโยชน์ในการสร้างกลยุทธ์การลงทุนได้” ผู้เขียนจึงขออาสา พามาทดลองกลยุทธ์ที่ว่านี้ไปด้วยกันค่ะ บทความนี้ผู้เขียนจะขอใช้หุ้นใน Dow Jones Industrial Average (DJIA) ในการทดลองนะคะ เราจะนำหุ้นเหล่านี้วิเคราะห์ลักษณะเฉพาะ (Characteristic)…
กลยุทธ์ง่ายๆ อย่างการเลือกหุ้นผู้ชนะ ทำกำไรได้จริงหรือ [แจก Code Portfolio Selection with Python]
สวัสดีครับ ไม่ได้เขียน blog ซะนาน วันนี้มีโอกาสได้กลับมาอัพเดต blog กันซะหน่อย วันนี้เรามาวอร์มอัพ Python กับการ backtest แบบง่ายๆกันดีกว่าครับ สมมุติว่าเราต้องการซื้อหุ้นด้วยเงื่อนไขสุดเบสิค คือ ถ้าเราซื้อหุ้นเฉพาะที่ “เป็นหุ้นผู้ชนะ” ในช่วงนี้ผ่านมาแล้วถือไว้ซักระยะหนึ่ง เราจะสามารถทำกำไรได้หรือไม่? ลองมาขยายความกันหน่อยดีกว่า ว่าเงื่อนไขนี้เป็นอย่างไร ทำการเรียงหุ้นใน pool (กลุ่มของหุ้นที่เราเลือกมา) ทั้งหมด ที่มีผลงานดีที่สุดในช่วงเวลาที่ p โดยที่ p อาจจะเป็น 1 สัปดาห์ 1 เดือน 3 เดือน ฯลฯ ผ่านมา เลือกหุ้นที่ทำผลงานได้ดีที่สุดมา n ตัว แล้วถือไว้ใน portfolio ของเราเป็นช่วงเวลา อีก q หนึง (หรือจะมากกว่าน้อยกว่าก็แล้วแต่เราจะดีไซน์) คิดผลกำไร / ขาดทุนของช่วงเวลาที่ถือหุ้นเหล่านั้นไว้ใน portfolio (ช่วงเวลา q) ให้เราเริ่มกระบวนการเดิมซ้ำคือการไปเรียงลำดับผลงานของหุ้นใน portfolio…
กรองสัญญาณเทรดง่ายๆ ด้วย K-mean clustering
สวัสดีครับ ห่างหายจากการอัพบล๊อคกันไปนานมาก เนื่องจากติดภารกิจหลายเดือน วันนี้จะกลับมาเขียนอัพบล็อคตามปรกติแล้วครับ ขอถือโอกาสมาปัดฝุ่นกันด้วยไอเดียง่ายๆ ที่ใช้ในการกรองสัญญาณเทรดด้วย Machine Learning กันก่อนก็แล้วกันครับ ข้อมูล ในที่นี้เราจะใช้ ขอมูลหุ้น MSFT(microsoft corporation) เป็นตัวอย่างในการทดลองนี้นะครับ โดยใช้ข้อมูลในการทดลองตั้งแค่ปี 2016 จนถึงปี 2018 เริ่มทำงาน โดยแรกเริ่ม เราจะใช้กลยุทธ์อย่าง Trend Following แบบธรรมดาๆ คือ ใช้ Feature หรือ indicator แค่ Simple Moving Average (SMA) 2 เส้น เท่านั้น SMA1 เส้นเร็ว xx วัน โดยผมจะปรับให้สั้นเพื่อให้เกิด noise SMA2 เส้นช้า yy วัน โดยผมจะปรับให้สั้นเพื่อให้เกิด noiseเช่นกัน จากนั้น ก็ประยุกต์ใช้ไอเดียง่ายๆ ที่ทราบกันอยู่แล้วคือ ให้ SMA1…
ปรากฏการณ์ 26 กุมภาพันธ์ 2020 หุ้นไทยตก 72 จุดในวันเดียว!!! ใช้ Value-at-Risk ประเมินกันดีกว่า (แจก code Python)
วันที่ 26 ก.พ. 2020 ตลาดหลักทรัพย์แห่งประเทศไทยเกิดอาการ “เทกระจาด” หล่นลงวันเดียว ถึง 72.69 จุดนับเป็น นับเป็นหล่นลงวันเดียวถึง 5.05% นับเป็นความเสี่ยงอย่างหนึ่งที่นักลงทุนต้องแบกรับ แต่โชคดีที่เราที่มีวิธีการประเมินความเสี่ยงในการลงทุนเพื่อวิเคราะห์ความเสี่ยงล่วงหน้าทำให้เราสามารถวางแผนรับมือกับความเสี่ยงนี้ได้อยู่แล้ว คือ การใช้ทฎษี Value at Risk เข้ามาช่วย ดังที่เราได้เคยนำเสนอไปแล้วในบทความสองพาร์ทแรกซึ่งหาอ่านได้ที่ Value at Risk (VaR) Part 1: VaR แต่ละแบบมีข้อดีข้อเสียอย่างไร Value-at-Risk Part 2: Cornish-Fisher Expansion – Deal with Fat-tailed ในบทความนี้เราจะนำตัวอย่าง index ตลาดหลักทรัพย์ไทยมาวิเคราะห์ด้วย value at risk ทั้งสองแบบมาวิเคราะห์ให้ดูว่าเราสามารถคาดการณ์ความเสี่ยงในครั้งนี้ล่วงหน้าได้อย่างไร พร้อมทั้งแจกโค้ด python ไปให้เพื่อนๆลองทดลองดูได้อีกด้วย ก่อนอื่นเราจะอธิบายขั้นตอนคร่าวๆก่อนว่าแต่ละโค้ดแต่ล่ะส่วนที่สำคัญทำงานอย่างไรเพื่ออธิบายหลักการทำงานก่อน จากนั้นเราจะนำโค้ดทั้งหมดมาแจกในตอนท้ายของบทความ อธิบายส่วนสำคัญของโค้ด Python เริ่มต้นเราต้อง Import library…
รวมขุมทรัพย์การเรียนรู้ (ฟรี) จากนักลงทุนผู้ยิ่งใหญ่ “Ray Dalio”
คุณ Ray Dalio เป็นอีกหนึ่งนักลงทุนที่มีอุปนิสัยชื่นชอบ “การจดบันทึก” มากเป็นพิเศษ ถึงกับเคยกล่าวไว้ว่า เป็นเวลานานกว่า 30 ปี มาแล้วที่ตนเองทำการจดบันทึกการเรียนรู้ และ ประสบการณ์ในเรื่องต่างๆ เอาไว้อย่างละเอียด และ ใช้เป็นแนวทางในการดำเนินชีวิตมาตลอด ซึ่งสามารถเห็นได้จากความละเอียดของหนังสือ “Principles” ที่เจ้าตัวเขียนขึ้นเองเพื่อบอกเล่าหลักการในชีวิตของตน ที่มีส่วนนำพาให้ทั้งชีวิตส่วนตัว หน้าที่การงาน รวมไปถึงบริษัท “Bridgewater” ประสบความสำเร็จอย่างสูง โดยหวังว่าหลักการต่างๆ ที่เจ้าตัวค้นพบ และ ยึดถือเป็นแนวทางมาตลอดนี้จะช่วยให้ผู้อ่านประสบความสำเร็จได้เช่นกัน บทความนี้จึงขอรวบรวม ความรู้และหลักการต่างๆ ที่คุณ Ray Dalio นำเสนอเอาไว้ทั้งผ่านสื่อต่างๆ ไม่ว่าจะเป็น หนังสือ วิดีโอ หรือ บทสัมภาษณ์ต่างๆ สามารถหาฟัง หาอ่านได้ฟรี! เอาไว้ให้ผู้ที่สนใจได้ติดตามกันค่ะ 3-VDOs มาเริ่มกันจากวีดีโอกันก่อนค่ะ คุณ Dalio ไม่ใช่คนที่จัดทำวิดีโอออกมามากมายนัก แต่เมื่อทำออกมาแล้ว แต่ละวีดีโอก็ได้รับความสนใจอย่างล้นหลาม มีจำนวนการเข้าชมมากกว่า 17 ล้านครั้ง (นับถึงปีเดือน มิถุนายน 2562)…
10 ไอเดียใช้ Machine Learning ในงาน Finance พร้อมแนะนำ paper ไปอ่านกันให้จุใจรับปีใหม่ (part 2)
เมื่อพูดถึงการใช้ Machine Learning ในงานด้านการลงทุนแล้ว คนส่วนใหญ่มักจะนึกถึง “การทำนาย” ราคาข้องหุ้นเป็นหลัก แต่จริงๆ แล้ว Machine Learning ไม่ได้ทำได้เพียงแค่การทำนายค่าราคาเท่านั้นในการลงทุน บทความนี้จะพาไปดู ไอเดียต่างๆ ในการนำ Machine Learning มาใช้ในการด้านการลงทุน โดยการสรุปของคุณ Marcos Lopez de Prado อดีตหัวหน้าทีมนักวิจัย Machine Learning แห่ง AQR Capital และ CIO แห่ง True Positive Technologies (TPT) CIO of True Positive Technologies (TPT) มาดูกันเลยค่ะว่า 10 ทางเลือกในการใช้ Machine Learning ในการลงทุน จะมีอะไรกันบ้าง บทความที่แล้ว เราได้เขียนเกี่ยวกับไอเดียการใช้ Machine Learning ใน 3…
10 ไอเดียใช้ Machine Learning ในงาน Finance พร้อมแนะนำ paper ไปอ่านกันให้จุใจรับปีใหม่ (part 1)
เมื่อพูดถึงการใช้ Machine Learning ในงานด้านการลงทุนแล้ว คนส่วนใหญ่มักจะนึกถึง “การทำนาย” ราคาข้องหุ้นเป็นหลัก แต่จริงๆ แล้ว Machine Learning ไม่ได้ทำได้เพียงแค่การทำนายค่าราคาเท่านั้นในการลงทุน บทความนี้จะพาไปดู ไอเดียต่างๆ ในการนำ Machine Learning มาใช้ในการด้านการลงทุน โดยการสรุปของคุณ Marcos Lopez de Prado อดีตหัวหน้าทีมนักวิจัย Machine Learning แห่ง AQR Capital และ CIO แห่ง True Positive Technologies (TPT) CIO of True Positive Technologies (TPT) มาดูกันเลยค่ะว่า 10 ทางเลือกในการใช้ Machine Learning ในการลงทุน จะมีอะไรกันบ้าง 1. Price Prediction (การทำนายราคา) ปัญหายอดฮิตของ Machine…
Value-at-Risk Part 2: Cornish-Fisher Expansion – Deal with Fat-tailed
วันนี้เรามาต่อกันที่เรื่อง Value at Risk แบบที่ 3 ที่เรียกว่า “Semi Parameter Approach” กันครับ ผู้อ่านท่านใดสนใจบทความเรื่อง Value-at_Risk: part 1 ซึ่งพูดถึง VaR ใน 2 แบบแรก สามารถตามอ่านได้ที่ลิงก์ด้านล่างครับ ประเมินความเสี่ยงด้วย Value at Risk (VaR) แต่ละแบบมีข้อดีข้อเสียอย่างไร ปัญหาของสองแบบแรก ปัญหาของการประเมินสองแบบแรกที่กล่าวถึงในบทความที่ผ่านมา ประเมินความเสี่ยงด้วย Value at Risk (VaR) ก็คือ แบบ Historical มีปัญหาเรื่องการใช้ดาต้าอย่างเดียวในการอธิบายมันจึงไม่มีการตั้งสมมุติฐานใดๆ การประเมินสามารถกระโดดได้มากช่วงปลายการแจกแจง แบบ Parametric เราจะต้องมีการสร้างโมเดล โดยตั้งสมมุติฐานว่าดาต้ามีการแจกแจงแบบใดซักแบบหนึง สมมุติว่าเราใช้ Gaussian distribution มันก็จะมีการใช้ Parameter ในการประเมิน โดยคิดว่าข้อมูลที่เราประเมินเป็น Gaussian ตลอด ถ้าเราตั้งไว้ว่าเป็น Student distribution…
ประเมินความเสี่ยงด้วย Value at Risk (VaR) Part 1: VaR แต่ละแบบมีข้อดีข้อเสียอย่างไร
ความจริงเรื่องนี้ผมเคยเขียนไปเมื่อ 2-3 ปีก่อนแล้ววันนี้มีโอกาสผมขอนำกลับมาเขียนให้เป็นระบบและครอบคลุมขึ้นนะครับ Value at Risk (VaR) คืออะไร VaR คือ “โมเดลที่ใช้ในการประเมินความเสี่ยง” ของพอร์ตฟอลิโอวิธีหนึ่ง ที่ถูกนำมาใช้เพื่อตอบคำถามประเภทที่ ในช่วงเวลาหนึ่งๆ พอร์ตฟอลิโอของเราจะมีโอกาสเสียเงินได้มากเท่าไหร่ ที่ระดับความเชื่อมั่น (Confident Level) แค่ไหน ตัวอย่าง เช่น “จากข้อมูลรายเดือนที่เราของหุ้น ABC เป็นเวลา 30 ปี เรามีความมั่นใจ 95% ว่าถ้าเราถือหุ้นตัวนี้ไว้ในพอร์ตฟอลิโอของเรา หุ้นตัวนี้จะไม่ลดลงเกินกว่า 4% ในช่วงเวลา 1 เดือน” พูดง่ายๆคือ “มีโอกาสแค่ 5% ที่หุ้น ABC จะลดลงเกินกว่า 4% ในช่วง 1 เดือน” นั่นเองเป็น “VaR” เป็นโมเดลที่ใช้กันอย่างแพร่หลายในการวิเคราะห์ความเสี่ยง และวิธีการคำนวณ VaR ก็มีหลายวิธี ซึ่งผมจะแยกประเภท ดังนี้ Non-Parametric วิธีการที่ไม่ต้องใช้ตัวแปรใดๆ ใช้แค่…
Basic Pair Trading with cointegration
สืบเนื่องจากที่แอดได้ไปเข้าร่วมประชุมกับทีมงาน Quantopian ที่ลอนดอน เมื่อปีที่แล้ว หัวข้อที่ทำ workshop กันในงานประชุมก็คือ การพัฒนาเทคนิคการ Hedging ด้วยการทำ Pair Trading ด้วย การใช้ค่าทางสถิติ Cointegration เข้ามาช่วย ซึ่งเป็นหัวข้อที่น่าสนใจมากอีกหัวข้อนึง หลังกลับมาจากงานประชุม แอดจึงได้เขียนบทความขึ้นมา 2 บทความ เพื่ออธิบายทฤษฏี และ แนวทางการประยุกต์ใช้ Cointegration ในการทำ Pair Trading ซึ่งสามารถหาอ่านได้ใน blog (เดี๋ยวจะลงลิงก์ด้านล่างให้นะคะ) หลังจากลงบทความไปแล้ว ได้รับความสนใจอย่างมากหลังไมค์ มีแฟนเพจหลายท่านต้องการนำไอเดียไปพัฒนาต่อ ทางเราจึงนำทฤษฏีนี้เข้ามาในคอร์สใหม่ เพื่อ ทำการพัฒนา และ Backtest อย่างละเอียด ซึ่งตอนนี้กำลังอยู่ระหว่างการจัดทำ ระหว่างนี้ เลยนำไฟล์ Source code มาฝากหลายๆ ท่านที่สนใจกันก่อนค่ะ เผื่อใครอยากนำไปพัฒนาต่อ และ Backtest ด้วยตัวเอง ไม่ต้องรอเรียนก็จะได้สามารถทำได้ (สำหรับการสอนอย่างละเอียดรวมถึงการ Backtest เพื่อใช้งานจริง…