Portfolio Risk Control

Portfolio Risk Control เป็นการควบคุมความเสี่ยงทั้งหมดของพอร์ตที่มาจากหุ้นทุกตัวในพอร์ต โดยที่หุ้นแต่ล่ะ position จะมีความเสี่ยงที่ไม่เท่ากัน ขึ้นอยู่กับ ราคาหุ้น จำนวนหุ้น (Position Sizing) ความผันผวน (Volatility) และวิธีการคำนวณความเสี่ยง (Risk Calculation) ณ สภาพตลาดนั้นๆ (Market Analysis)

เมื่อนำความเสี่ยงของแต่ล่ะ position มาบวกกันทั้งหมด ก็จะได้ Portfolio Risk (PR) ความเสี่ยงของทั้งพอร์ต ซึ่งจะมีการเปลี่ยนแปลงตลอดเวลา ทำให้มีความจำเป็นยิ่งที่จะต้องคอยตรวจสอบและควบคุม PR ไม่ให้เกินค่าความเสี่ยงที่ยอมรับได้ Allowable Portfolio Risk (APR) ซึ่งได้มาจากการทดสอบระบบ Backtest อย่างถูกต้องและครบถ้วน โดยสามารถควบคุมความเสียง PR ไม่ให้เกินค่า APR ด้วยการใช้วิธีเบื้องต้นดังนี้

  • Reject new signals
  • Scale In/Out
  • Balance portfolio

อีกค่าหนึ่งที่น่าสนใจคือ Average Portfolio Risk (avgPR) ที่บอกถึงสภาพความเสี่ยงของพอร์ตโดยเฉลี่ย ว่า ณ ปัจจุบันมี Portfolio Risk สูงหรือต่ำกว่า ค่าเฉลี่ย avgPR เท่าไหร่ ทำให้สามารถควบคุม Risk ได้ตั้งแต่เนินๆ อีกทั้งยังสะท้อนสภาพของพอร์ตในตลาดนั้นๆที่ลงทุนอยู่

ตัวอย่างการใช้ Portfolio Risk Control ร่วมกับ Momentum

Portfolio Risk Control in Improving Results

วิดีโอ Portfolio Risk Control (จากคอร์ส ABXC)

Description

X307-1-1 Introduction to Portfolio Risk Control สวัสดีครับ ในวิดีโอชุดนี้นะครับ เราก็มาขึ้นเนื้อหาใหม่แล้ว อันนี้ยังอยู่ใน Advanced Risk and Money Analyses อยู่นะครับ ซึ่งเนื้อหาใหม่นี้เป็นเนื้อหาเรื่องของ Portfolio Risk Control นะครับ อ่า..เรามาดูกันว่าเราจะควบคุม Risk ในportfolioของเราเนี่ยยังไง คราวนี้มาดูเรื่อง contents ก่อนว่าในบทนี้เราจะเรียน contents อะไรกันบ้างนะครับ นี่..Contents for Portfolio Risk Control นะครับ อันแรกก็พูดถึงคอนเซ็ปก่อน เดี๋ยวจะมาแนะนำวิดีโอชุดนี้ จะแนะนำให้ดูว่าคอนเซ็ปของ Portfolio Risk เป็นอะไร เราต้องมีการคำนวณอะไรบ้าง โอเคมั๊ยครับ พอได้คอนเซ็ปเสร็จปุ๊บเราก็จะมา มี Example Code Strategy ขึ้นมาให้ดูตัวนึง โอเคมั๊ยครับ คือเราจะไม่ใช้ตัวเบรกไฮแล้ว เออ..ประมาณอย่างนั้น ดูตัวใหม่ดีกว่า จะได้มีตัวมาเสริมด้วยเดี๋ยวตัวเสริมอยู่ข้างหลังนะครับเดี๋ยวค่อยว่ากัน เราก็จะมาทำ Challenge ก่อน หลังที่อธิบายนี่เสร็จไปแล้วนะครับ มีตัวอย่างโค้ดให้ดูปุ๊บเนี่ย เราก็จะมา Challenge ว่านักศึกษาเนี่ยสามารถเขียนโค้ด Portfolio Risk Control เนี่ยได้เองรึป่าว โอเคมั๊ยครับ base on คอนเซ็ปที่ให้ไปกับตัว Example Code นี่ อันนี้อยู่ในPhase 1 โด้ดนี่เป็น Amibroker Phase 1 นะครับ Phase 2 ก็ไปเขียนเองนี่ เราจะสามารถใช้ความรู้เนี่ยของ CBI (Custom Backtester Interface) กับคอนเซ็ปที่อัดในวิดีโอนี้นะครับ นักศึกษาลองไปเขียนโค้ดเองดู ดูว่าได้มั๊ย ซึ่งตัวโค้ดเนี่ยน่าจะใช้เวลาประมาณเดือนนึงนักศึกษา สองสัปดาห์ถึงเดือนนึงนะครับกว่าจะเขียนเสร็จ ลองไปchallenge ตัวเองดู เดี๋ยวผมจะมาแนะนำอีกทีนะครับว่าจะ challenge ยังไง จะมี guideline ยังไง guidelineเนี่ยละเอียดมาก นักศึกษาแค่จะต้องเอา piece by piece เนี่ย เอาจิ๊กซอว์มาต่อกันให้ได้ เดี๋ยวมี debug ด้วยเดี๋ยวค่อยว่ากันให้ดูว่าอะไรเป็นอะไรนะครับ และก็จะมาเฉลยก็เป็น Code for Portfolio Risk Control อันนี้ยังเป็น % Equity Position Sizing อยู่ ยังเป็นอย่างง่ายอยู่นะครับ แต่เราจะมีการควบคุมนี่ตัว Portfolio Risk ถัดมาเนี่ยจะแนะนำนะครับเรียกว่า Sum Momentum ถ้าหุ้นตัวนั้นๆเนี่ยมีโมเมนตัมอย่างเช่น RSI > 80 งี้ เป็นยังไง หรือ Money Flow Index > 80 นี่เป็นยังไง โอเคมั๊ยครับ ซึ่งอันนี้จะใช้ในส่วนของ Strategy ในส่วนของ BuyCon นะครับ แล้วก็จะใช้ในส่วนของ Position Score ด้วยนี่ Sum Momentum เนี่ยนะครับ อ่า..อันนี้ดีนะครับนักศึกษา ควรจะใช้เป็นหรือควรจะรู้ว่าอ๋อ..มันเป็นอย่างนี้นี่เอง โอเคมั๊ยครับ ถัดมาก็เป็น Detailed Code นี่หลังที่ได้ Code for Portfolio Risk Control แล้วเนี่ย ก็จะเพิ่ม Detail เข้ามา รายละเอียดนะครับ และก็จะมีตัวอย่างต่างๆนานาให้นักศึกษาเนี่ยลองเอาไปเทสดูนี่ ลองปรับเปลี่ยน นู่น นี่ นั่น ดูนะครับ และก็จะได้ผลออกมาว่าเป็นในส่วนของ Improving Results ว่าหลังจากที่เราปรับเปลี่ยนโค้ดดูเนี่ย ลองเทส หลายๆแบบดู เข้าใจว่าเรามี 6 แบบให้ลองเทสดูนะครับ เปลี่ยนBuyConบางอย่างนี่ แล้วก็มีเปลี่ยน Position Score บางอย่าง base on Portfolio Risk Control นะครับ กับ base on Sum Momentum นี่ ให้เราพัฒนานี่ Strategy ขึ้นมาเป็น Improving Results ดูว่าจากบ้านๆเลยเนี่ย ต่ำๆเลย เข้าใจว่า CAR นี่อยู่ประมาณ 8หรือ9% นักศึกษา ไปจนถึง 20% นิดเลยเนี่ย แล้ว Improve มายังไงเป็นเสต็ปๆ ซึ่งอันนี้ผมจะมาชี้แจงแนะนำนะครับและก็เอาโค้ดมาวางนี่ หน้าที่นักศึกษาคือเอาโค้ดเนี่ยไปใช้งานให้ถูกต้อง ถัดมาก็เป็นเรื่องของ Volatility หรือ Risk-Based Position Sizing อันนี้เนี่ยจะต่างจากก้อนบนนี่ ข้างบนนี้ ทั้งหมดนี้นะครับ อันนี้จะเป็น % Equity Position Sizing อยู่ base on Percent นี่ 4%, 3% นี่ พอเป็นอันนี้ปุ๊บ Position Sizing จะถูกกำหนดโดย Volatility / Risk-Based เข้ามาแล้ว อันนี้เริ่มหล่อแล้วน่ะครับ เพราะสุดท้ายเลยเนี่ย ก็เป็นเรื่องของ Dynamic Control นี่ เออ…ว่าจะมีการปรับเปลี่ยนยังไง Dynamic อย่างเช่นนักศึกษาอาจจะปรับเปลี่ยนตัว Portfolio Risk เนี่ยให้เปลี่ยนไปตามสภาพStrategyก็ได้ โอเคมั๊ยครับ เปลี่ยนไปตามสภาพตลาดก็ได้ สภาพตลาดเปลี่ยนไปเนี่ย เราจะControl Risk มากน้อยยังไง Performance ของนักศึกษาเนี่ยพอมันเริ่มมี Drawdown นะครับ หรือแม้กระทั่งดีมากๆก็ตามเนี่ย โอเคมั๊ยครับ จะปรับตัว Dynamic Control ยังไง อ่า..อันนี้ก็เป็น Contents นะครับซึ่งก่อนที่นักศึกษาจะมาลุย Contents พวกนี้ได้เนี่ย นักศึกษาควรจะมีการเตรียมพร้อมนักศึกษา โอเคมั๊ยครับ โดยที่Prerequisites for Portfolio Risk Control นะครับ นักศึกษาควรจะรู้ไอเดียคร่าวๆของ Money Management ซึ่งนักศึกษาส่วนมากก็คงจะรู้อยู่แล้วว่าคร่าวๆเป็นอะไรนะครับ Position Size ยังไง Position Score ยังไง เพื่อที่ตอนเราไปทำimproving resultเนี่ยนักศึกษาจะได้ปรับค่าขึ้นลงได้ ลองแปลง ลองเปลี่ยนดู ลองดูผลกระทบดูว่าเป็นยังไง และก็ต้องรู้เรื่องของ Two-Phase Operations ใน Amibroker นะครับอันนี้สำคัญมาก โอเคมั๊ยครับ เพราะว่าใน Phase 1 เนี่ย มันเป็นเรื่อง Position Size กับ Position Score โอเคมั๊ยครับ อ่า..หา Score ออกมา หา Position Size ออกมา หาว่าจะต้องเข้า Enter Signals ตัวไหน จะ Exit Open Positions ตัวไหน ซึ่งจะมาทำในPhase 2 คือ Mid-Level Custom Backtester Interface นี่ ในตัวของการ Control Risk เนี่ยจะอยู่ใน Mid-Level Custom Backtester Interface โดยที่เราเนี่ย..ใน CBI นะครับหลักๆตอนนี้เนี่ยของ Portfolio Risk Control นะครับจะต้องใช้นี่ Open-Position Object กับ Signal Object ออกมา เพราะว่าอะไร Open Position เนี่ยเราอยากรู้ว่าตอนเนี้ยหุ้นที่ถืออยู่ในมือเนี่ยมีความเสี่ยงเท่าไหร่ โอเคมั๊ยครับ อันนั้นอันแรกนะครับหุ้นที่ถืออยู่ในมือมีความเสี่ยงเท่าไหร่ ต่อไปก็คือว่าอะไร เวลามี Enter Signals เข้ามาเนี่ย Signal ไหนที่ควรจะเอามาไว้ในพอร์ท โอเคมั๊ยครับ เพื่ออะไร เพื่อไม่ให้ความเสี่ยงเนี่ยมันเกินที่เราจะรับได้หรือเกินไป นี่..หลักๆเลยเนี่ยในตัว Open Position หรือ Signal ก็ตามเนี่ยนะครับ มันจะมีเรื่องของ Risk ความเสี่ยงของPositionนั้นๆ หรือSignalนั้นๆออกมา ..ไอเนี้ย ในการวิเคราะห์ความเสี่ยงเนี่ยนะครับ อันนี้เรียกว่า Risk Per Share เนี่ย จะต้อง save ไว้ในอะไรครับ ใน Phase 1 ของ Amibroker เพื่ออะไร เพื่อจะนำมาใช้ใน Phase 2 เพราะฉะนั้นเนี่ยพอผมบอกว่า จะ save Variable ในPhase 1มาใช้ใน Phase 2 เนี่ย นักศึกษาก็ต้องมีความรู้เรื่อง StaticVarSet/Get นี่เห็นมั๊ยครับ ตัวนี้เป็นตัวที่สามารถทำให้เราเนี่ยเอา riskPerShare เนี่ย ความเสี่ยงเนี่ยจาก Phase 1 โค้ดในPhase1 นะครับมาใช้กับ CBI โค้ดในPhase 2 ได้ และก็มี AddToComposite ในการoutputข้อมูลออกมาในการdebugด้วยว่าเป็นยังไง และจะให้ดีนะครับตัวอย่างเนี่ย ตอนที่เราเรียน เราเรียนเรื่อง CBI ใช่ไหมครับ ตัวของ CBI เลยก็จะเป็นการเขียนโค้ดทั่วๆไปยังไม่ได้วิเคราะห์เรื่องRisk เรื่องอะไรเป็นเรื่องเป็นราว ยังไม่เห็นไอเดียของ Static หรือ Dynamic ในการ Control ต่างๆนานาเลยนะครับ นักศึกษาก็ควรจะทวนเรื่อง Risk of Ruin ด้วยเพื่อให้ยิ่งคุ้นเคยกับ Prerequisites ต่างๆข้างบนให้หมด อ่า..อันนี้ควรจะทวนนะครับ ถ้าทวนได้ก็ดีนะครับ โอเคมั๊ยครับ ส่วนข้างบนนี่รับใช้หมดอยู่แล้ว นี่..แล้วก็จะจบในเรื่องของ Prerequisites ของ Portfolio Risk Control อยู่แล้วนะครับ โดยที่โน้ตไว้ก่อนนะครับว่า “ ถ้านักศึกษาไม่ทวนวันนี้ ทั้งบทเนี้ยนะครับ ไม่ทวนวันนี้เนี่ย ยังไงบทหน้านักศึกษาก็ต้องทวนอยู่ดีเพราะบทหน้าจะพูดเรื่อง Stop Bleeding Systems ในการที่จะหยุดเลือดไหล หยุดการขาดทุน หรือหยุดการDrawdown เข้ามาเนี่ย ตัวเนี้ยยังไงก็ต้องใช้ Prerequisites ข้างบนทั้งหมด พวกนี้นะครับบวกกับอะไรครับ Closed Position object ด้วย “ เพราะว่าอะไร ตัว Stop Bleeding Systemsเนี่ย พอเราปิด Positions ไปแล้วใช่ป่ะครับ ถ้าเราเพิ่งปิดปุ๊บเนี่ยแล้วมันขาดทุนอยู่เนี่ย โอเคมั๊ยครับ เราก็ควรจะเอาการขาดทุนเนี่ยมาใช้ในการคำนวณด้วยว่าแล้วเราควรจะไปต่อมั๊ย หรือชะลอการลงทุนก่อน 20 วัน 30 วันอะไรก็แล้วแต่ เพราะฉะนั้นเนี่ยนอกจากตัวที่เปิดอยู่นี่ Open Position อยู่ Signal ที่เข้ามาใหม่ เราต้องมองย้อนหลังด้วยนี่ จะมองย้อนหลังกี่วันล่ะ 20 วัน 40 วัน จะมองย้อนหลัง 20 trades 40 trades นี่ ที่ไม่เกินกี่วันนี่ ก็คือ Closed-Position ทั้งนั้นเอามาใช้ โอเคมั๊ยครับ ซึ่งทั้งหลายทั้งปวงเนี่ยก็เพื่ออะไรครับ เพื่อทำการควบคุม Portfolio Risk นี่..อันนี้ไปให้ดูนะครับ อันนี้เป็น Equity Curve นี่..อันนี้เป็น Cash นี่ และส่วนนี้..สีฟ้าๆนี่คือ Value in Stop นะครับซึ่งในนี้จะไม่มี Risk เกี่ยวข้อง ไอแดงๆข้างล่างนี่เป็นอะไรครับ เป็น Drawdown คราวนี้เนี่ย ไอนี้คือ Risk ตัวนี้ นี่นะครับ portfolioRisk คือเส้นดำๆนี้ขึ้นมา อ่ะ..คราวนี้เราก็มีการหาค่าเฉลี่ย นี่..เห็นมั๊ยครับเฉลี่ย เฉลี่ยได้เส้นนี้ออกมาทั้งหมดเลยนะครับย้อนหลังจากอะไรครับ “ จากตรงนี้ไปถึงตรงนี้…..จากตรงนี้ย้อนหลังไปถึงตรงนี้เลย ” เอ้อ..อันนี้เอาง่ายๆก่อน ให้หมดนี่ก่อน แล้วก็มีเช็คด้วยว่า maxPortfolioRisk เป็นเท่าไหร่ โดยที่ตัวนี้เนี่ยเราเซท allowablePortfolioRisk = 100 หมายความว่าอะไร สมมติทั้งหมดนี่คือ Equity เรานะครับ เป็นก้อนนี่อยู่ข้างบนนี่ 100% เป็น Equity เรานี่ เราบอก allow นี่ allowablePortfolioRisk ทั้งหมดก็คือบอกว่าไม่มีการคุมเลย ปล่อยให้มันเนี่ย..เท่าไหร่ก็ได้ตามที่ Risk ที่เราคำนวณ โอเคมั๊ยครับ นักศึกษาจะสงสัยว่าเอ๊ะทำไมมันไม่มี 100 % ล่ะ ไม่มีนะครับเพราะอะไร เพราะไอส่วนดำๆเนี่ยเส้นเนี้ยถึงตรงเนี้ยมันเป็นแค่ Risk อย่างเดียว โอเคมั๊ยครับ ถ้าเราไม่พิจารณาหรือไม่คำนวณRisk ออกมาเนี่ย มันก็จะไม่อยู่ในเส้นนี้ อ่า…ถ้าเราคำนวณRiskออกมา มันก็จะอยู่บนเส้นนี้นะครับ add เข้าไป นี่..add เข้าไปเวลาเพิ่มPosition นักศึกษา นักศึกษาดูนี่นะครับ อันนี้คืออะไรครับ เราเพิ่ม Position เห็นมั๊ยฮะสีฟ้ามากขึ้น Cashน้อยลง พอPositionเพิ่มเราจะเห็น Risk นี่เพิ่มขึ้น โอเคมั๊ยครับ อ่ะ..ดูนี้ก็ได้นี่ อันนี้Cashเพิ่มขึ้นใช่มั๊ยครับ Cashเพิ่มเงินสดเพิ่ม เงินสดเพิ่มRiskก็ลดลงนี่เพราะเราเอาเงินไปเสี่ยงในตลาดนี่น้อยลง เห็นมั๊ยครับ พยายามGet Senseของรูปนี้ก่อนนะครับ ต่อไปเนี่ยผมจะแสดงตัวอย่างให้ดูว่าเราจะแนะนำนี่ allowablePortfolioRisk PortfolioRisk ที่เราallowหรืออนุญาตได้นี่ จาก 100% คือไม่มีกำหนดเลย เท่าไหร่ก็ได้ ไม่เป็นไร อันนี้เหลือแค่ 10% เท่านั้นของEquity นี่..ก็มาเส้นใหม่ จะเห็นว่าตรงนี้เนี่ยมีการควบคุมอยู่เห็นมั๊ยครับ อ่า..เดี๋ยวผมลากเส้นดู นี่ 10% !! เพราะฉะนั้นโดยส่วนมากเนี่ยตัว PortfolioRisk เนี่ยตัวจริงๆactualมันเนี่ยจะไม่เกิน 10% เพราะเรามากำหนดไว้ตรงนี้ เห็นมั๊ยครับ ซึ่งอันนี้ก็มี trade off นะครับระหว่าง….เอาตัวอย่างง่ายๆนี่ก็ได้ อันเนี้ยตอนจบมันจบที่ 2 ล้านนี่ แต่เพราะนี่คือเราไม่มีการควบคุมนี่ PortfolioRisk ใช่มั๊ยครับ เราให้เป็น 100% equityเลย Riskเท่าไหร่เรายอมหมด แต่พอเป็นตัวนี้ปุ๊บ ตัวนี้นะครับเราบอกRisk ห้ามเกิน 10% Portfolio Risk นะครับทำให้นี่..กำไรเราเหลือแค่ประมาณ 7 แสนนี่จากเริ่มต้นล้านนึงแถวๆนี้ “ เหลือแค่ 7 แสนนี่ลดลง ก็เป็นการtrade off ระหว่างตัว Risk กับReward หรือ Return นั่นเองนะครับ “ เราก็ลองมาbalanceตัวนี้ดูว่า ตัวไหนที่มันกำลังดี จะมีการปรับเปลี่ยนระหว่างทางเป็น Dynamic Control อะไรก็ว่ากันไป โอเคมั๊ยครับ อ่า…พยายามGet Idea ของตัวนี้ให้ได้นะครับ “ สีดำนี่คือ actualPortfolioRisk สีเขียวคือ เฉลี่ยจากวันที่เริ่มต้นถึงวันที่จบก็จะมีการปรับเปลี่ยนไปเรื่อยๆ โอเคมั๊ยครับ สีแดงคือ ค่าMaxมากสุดคุมไว้ แล้วพอเรามี allowablePortfolioRisk เสร็จปุ๊บก็จะคุมให้มันนี่ พยายามไม่เกินที่เราตั้งไว้นี่..ตัวนี้ ” อ่า..อันนี้ก็น่าจะ Get Sense คร่าวๆแล้วนะครับว่าจากที่ไม่คุมเลยเนี่ย Risk ขึ้นไปถึงประมาณ 20% พอคุมแล้วเหลือแค่ 10%เพราะเราตั้งไว้นะครับเป็นยังไง อันนี้ยังเป็นกรณีอย่างเบาๆนะครับเพราะว่าอันนี้เป็นไร ..อันนี้เป็น % Equity Position Sizing เพราะฉะนั้นเนี่ยมันจะไม่ค่อยผันผวนเยอะ หรือไม่aggressive นี่…สองกรณีนี้เป็นอันเดียวกันนะครับจะไม่ผันผวนเยอะ หรือไม่ aggressive แต่เมื่อไหร่ก็ตามที่เราไปใช้ volatility base นี่..Position Size เนี่ยคราวนี้จะ aggressive มากถึงขนาดว่าต้องมีการกำหนดเลยว่าอย่าเกินกี่ % ของEquity อ่ะ..เดี๋ยวจะมีตัวอย่างก็จะเห็นเองนะครับ คราวนี้มาดูนี่ดีกว่าว่า Portfolio Risk คืออะไร Portfolio Risk นะครับก็เป็นแค่เท่ากับ “ sum นี่ของ RiskPerPosition ..นี่หมายความว่าอะไร Per Position คือหุ้นที่เราถืออยู่ ซึ่งไอหุ้นที่เราถืออยู่มาจากการคำนวณ riskPerShare นี่คูณด้วย Shares จำนวนหุ้นของPositionนั้นๆนี่Sumกันให้หมด ” โอเคมั๊ยครับ จะได้เป็น Portfolio Risk ขึ้นมา โดยที่ Calculation ของ riskPerShare นี่ เราพยายามทำให้เป็น riskPerShare นะครับแล้วเราไปคูณSharesทีหลังได้ โอเคมั๊ยครับ อันนี้จะได้ง่าย นักศึกษา อย่างเช่นดูนี่ก็ได้ วิธีการคำนวณนะครับเอาง่ายๆสามตัวก่อน อันนี้คือ From basic price คือจากClose เนี่ยบอกไว้ว่าเป็น 15%ของClose นี่From basic price นะครับ อันนี้บอก 15%ของHHVนี่ของ High 20 วันย้อนหลัง อันนี้เป็น basic price ปกติ ต่อไปนี่ From volatility riskPerShare เท่ากับ 2.5 ATR นี่, 2.0 StDev โอเคมั๊ยครับ ต่อไปอันที่สามนี่เป็นแบบ combination ก็คือมี base ก่อน เป็น basic price เป็นbaseก่อน แล้วบวกเพิ่มด้วย volatility อะไรก็ได้นะครับจะเป็น ATR StDev หรือแม้กระทั่ง Bollinger band ก็ได้ โอเคมั๊ยครับ ก็คือค่อยๆอัพเกรดไปเรื่อยๆ โดยที่นักศึกษาต้องรู้ว่า ไอเนี้ย..ทั้งหมดเนี่ย อันนี้คือ riskPerShare โอเคมั๊ยครับ อีกทีนะครับ “ มันคือ riskPerShare ที่จะไปใช้ในการคำนวณนี่ คูณกับ Shares ให้ได้เป็น RiskPerPosition “ หุ้นแต่ละตัวนี่จะมี Close ไม่เหมือนกัน High ไม่เหมือนกัน ATR ไม่เหมือนกันโอเคมั๊ยครับ เพราะงั้นหุ้นแต่ละตัวก็จะมี riskPerShareของเค้า และก็ไปคูณ Shares ตามจำนวนนั้นๆ ซึ่ง..ไอตัว Shares เนี่ย..ปกติมันจะมาจากที่เราเรียนมาถึงปัจจุบันเนี่ยนะครับ หลักๆเนี่ยจะมาจาก % of Equity เอ้อ..ไอส่วนเนี้ยไม่ได้บอกเลยว่าเป็น Position Sizing ประเภทไหน มันเป็นแค่การคำนวณ riskPerShare เฉยๆ แล้วเดี๋ยวตอนที่ไปทำ Position Sizing เนี่ย เราไปเลือกได้ว่าจะเป็น base on % of Equity หรือไปเป็น base on Volatility base, Position Sizing ค่อยเลือกได้ ต่อมานะครับ There should always be minRiskByShare นี่..อย่างต่ำเนี่ยเราควรจะมีกำหนดค่าอย่างต่ำว่า อย่างต่ำควรจะเป็น 10% ของCloseก็ตาม หรือ10% ของ buyPrice ยังไงก็ตามเนี่ย ควรจะมี min ไว้เพื่อกำหนดว่าอย่างน้อยเนี่ย หุ้นทุกตัวเนี่ยจะต้องมีriskอยู่ จะต้องมี riskPerShareอยู่ อย่าบอกว่าเป็น 0 นี่ไม่ได้ อย่าบอกว่าเป็น 1% ของราคาหุ้นอันนี้ไม่ได้ จะต้องบอกนี่..จะเป็น 10 ก็ดี 15ก็ดี 20 ก็ดี แล้วแต่กรณี แต่จะต้องมี minRiskByShare อยู่ต่อหุ้น โดยที่ RiskPerPosition ก็คือเท่ากับอะไรครับ Min(minRiskByShare, riskPerShare) x Shares; “ Minimum… minRiskByShareนี่ หรือ riskPerShare……times..จำนวนหุ้นทั้งหมด ” โอเคมั๊ยครับ อ่า..อันนี้เอาเป็น Minimum ก่อนนะครับ “ อันนี้นักศึกษาจะมี Max ระหว่างสองตัวนี้ แล้วค่อยไปซ้อนทับด้วย Min อีกตัวนึงว่าห้ามต่ำกว่าอีกตัวนึง อย่างงั้นก็ได้” อันนี้เอาแบบbasic ก่อน อันนี้ก็ถือว่าเยอะแล้วนักศึกษา โอเคมั๊ยครับ อ่ะ..อันนี้ปาไปจะ 17 นาทีแล้ว เดี๋ยวผมควรจะหยุดวิดีโอตัวนี้ก่อน แล้วเดี๋ยววิดีโอหน้านี่ เรามาดูนี่ครับ Simple Illustration of Portfolio Risk มาเก็บรายละเอียดกัน ขอบคุณครับ

Description

X307-1-2 Illustration of Portfolio Risk Control สวัสดีครับ วิดีโอชุดนี้นะครับจะมาอธิบายเรื่อง Portfolio Risk Control ให้ดูนะครับ โดยใช้เป็นนี่ Illustration มีรูปให้ดูด้วย โดยก่อนอื่นเนี่ยขอกลับมาเน้นอีกทีนะครับว่า ตัว Portfolio Risk เนี่ยคือการ Sum ความเสี่ยงทั้งหมดของ Position ที่ เราถืออยู่ในมือ โอเคมั๊ยครับ Open Position ที่ถืออยู่ในมือ ความเสี่ยงทั้งหมดนี่ โดยที่ RiskPerPosition นี่ต้องคำนวณมาจาก riskPerShareแล้วคูณด้วยจำนวนShares เนี่ย หุ้นแต่ละตัวนี่มีความเสี่ยงเท่าไหร่ โอเคไหมครับ อันนี้เนี่ยเราคำนวณriskPerShareเนี่ย เราเก็บค่ามาจาก Phase 1 Amibroker Phase 1นะครับ แล้วมาใช้ใน CBI Phase 2 เพราะฉะนั้นสำคัญมากนะครับ จะต้องอะไรครับ ? “จะต้อง save ค่าอยู่ใน staticVarSet แล้วนำมาใช้ใน staticVarGet ” Calculation of riskPerShare นี่ เราสามารถหาได้ง่ายๆมีอยู่สามแบบ อันแรกนี่ base on basic price นี่เอาง่ายๆโง่ๆเลย 15%ของClose นี่ 15%ของHHVหรือHighย้อนหลังก็ได้ ต่อมาก็เป็น volatility หรือriskก็ตามนี่ ก็เป็น 2.5 ATR นี่ หรือ 2 ของ StDev หรือ 2 ของ Half-Bolinger bandwidth, Bolinger band ใช่มั๊ยครับ มันมี B-top นี่ กับมี B-bottom นี่ สองตัวนี้ลบกันหาร2นี่ ได้เป็น Half- bandwidth แล้วคูณ 2 ก็ได้ โอเคมั๊ยครับ แล้วอันที่สามเป็น combination ว่าเป็นนี่ อันแรกเป็น basic price เฉยๆ แล้วบวกด้วย volatility โอเคมั๊ยครับ อันนี้เป็นแบบท่าง่ายปกติ เอ้อ..ทำไมเรียกว่าท่าง่ายอ่ะ อันนี้กี่ % ของClose นี้ง่ายอยู่แล้ว โอเคมั๊ยครับ กี่ % ของHigh นี้ง่ายอยู่แล้ว ส่วน ATR นี้อะไรครับ อันนี้เป็น volatility มาตรฐานนี่ จะเป็น strategy อะไรก็ตามนะครับ นักศึกษาสามารถใช้ volatility ไปใช้ได้ หรือใช้ basic price ไปใช้ก็ได้ โอเคมั๊ยครับ combination นี่ก็ง่ายนี่ ก็เลือกนี่ basic price กับ volatility เอามารวมกันง่าย แล้วตัวที่สี่อะไรที่ยากอ่ะ อันที่สี่ตัวที่ยากคืออะไร คือการนำ BuyCon เนี่ย เราดู Main BuyCon ดู Parameters, Indicators ต่างๆเนี่ยใน BuyCon เราเนี่ยแล้วมาสร้าง Calculation ของ riskPerShare เอง อันนี้ยาก โอเคมั๊ยครับ อันนี้ต้องใช้รายละเอียดหน่อย ก็ต้องดูstrategy ดูอะไรหน่อย อ่าตัวที่สี่นะครับ อันนี้ไม่ได้ระบุไว้ โดยที่ทั้งหลายทั้งปวงก็ตามเนี่ยครับ เราจะต้องมี minRiskByShare โอเคมั๊ยครับ เอาง่ายๆโง่ๆเลยว่า จะต้องมีกี่ %ของClose กี่%ของHigh อะไรก็แล้วแต่เนี่ยต้องมี minRiskByShare ไว้ก่อน และก็มาเทียบกับ RiskPerShare เนี่ย นี่สองตัวนี้เอาminขั้นต่ำเข้ามาว่าเป็นยังไง แล้วก็ไปคูณ Shares ตามปกติเพื่อให้ได้เป็น RiskPerPosition แล้วไอ RiskPerPositionเนี่ยที่จะต้องกลับมาทวนเพราะมันสำคัญมาก เพราะอะไรครับ ? เพราะแต่ละ Position หุ้นแต่ละตัวที่เราถืออยู่ในมือนี่จะมี Risk ไม่เท่ากันใช่มั๊ยครับ เลยต้องเอา Risk ไม่เท่ากันเนี่ยมาบวกกัน แล้วดูว่ามันเกินอะไรครับ ? มันเกิน Risk ที่เรายอมได้รึป่าว เรียกว่า allowablePortfolioRisk คือปกติเมื่อก่อนผมเรียกว่า portfolioHeat ตลอดนะครับ แต่คราวนี้เนี่ยอยากให้นักศึกษามี consistency หรือว่าเข้าใจง่าย ผมเลยพยายามเปลี่ยนที่เวลาผมเรียกประจำว่า เรียกว่า portfolioHeat เนี่ยให้เปลี่ยนเป็น portfolioRisk เพราะมันเป็นความเสี่ยงของพอร์ทโฟลิโอ โอเคนะครับ คราวนี้มาดู Illustration ดีกว่ามั๊ยหลังจากที่นักศึกษาเข้าใจคอนเซ็ปคร่าวๆแล้วว่าต้องหาอะไรครับ riskPerPosition ให้ได้จาก Open Positions นี่..Simple Illustration นะครับ ตอนแรกเนี่ยนักศึกษามีนี่เป็น % of Equity นะครับทั้งหมด และก็มี Cash นี่เขียวๆทั้งหมด 100% นี่..ก่อนอื่นเลยนักศึกษาจะต้อง define นี่ ระบุก่อนว่า allowablePortfolioRisk ของนักศึกษาเป็นเท่าไหร่ โดยที่อันนี้เนี่ย “ allowablePortfolioRiskเนี่ยมีหน่วย นักศึกษาฟังดีๆนะครับ มีหน่วย โอเคมั๊ยครับ เป็น % of Equity ” ทั้งหมดเนี่ยคือ% of Equity 100%ก็คืออะไรครับ ? allowable 100% เลย ให้มี Risk เต็มร้อยเลย ถ้า 10% คืออะไร มี allowable เป็นriskได้แค่ 10%ของEquity อ่ะ..เราก็มาระบุนี่ allowablePortfolioRisk นี่อยู่ตรงนี้ จากนี่ถึงนี่กี่ % นี่ เราจะเอา Risk มากองไว้ที่ส่วนนี้ จะได้เห็นชัดนะครับนักศึกษา เอ้อ..ระบุเข้ามานี่ เสร็จปุ๊บนี่ อันนี้เป็นตัวถัดมานะครับเป็น Cash 100% อยู่ เสร็จปุ๊บมี Entry Signals เข้ามา3ตัว นักศึกษา เราก็เอาตัวแรก calculate ก่อนว่าในก้อนเนี้ย riskPerShare เป็นเท่าไหร่ แล้วเอา riskPerShare เนี่ยคูณจำนวนShares base on Position Sizing ของเราเนี่ยนะครับทั้งหมดเนี่ยว่ามีเป็น risk เป็นสีแดงๆเท่าไหร่ นี่คูณมาแล้วนี่ ทั้งก้อนนี่คือ Position Sizing สีแดงๆนี่คือ riskPerPosition ของแต่ละตัวจะมีไม่เท่ากัน เห็นมั๊ยครับ “ บางตัวนี่ Position Sizing เยอะแต่ Risk น้อย, บางตัว Position Sizing น้อยแต่ Risk เยอะ ” โอเคมั๊ย เอ้อ..อันนี้ก็แสดงว่าเรา base on แหละ จะเป็น base on price ก็ตาม จะเป็น base on ATR ก็ตาม อีกทีนะครับ “ Position Sizing เยอะอาจจะมี Risk น้อยก็ได้ หรือ Position Sizing น้อยอาจจะมี Risk เยอะก็ได้ เยอะกว่าเห็นมั๊ยครับ ” คราวนี้เราก็มาดูนี่มาเทียบ ตอนนี้เนี่ยเรามี จากตรงนี้ถึงตรงนี้เนี่ย เราจะเอา Risk มากองไว้ข้างบนนักศึกษา จะได้เห็นชัดนะครับเอ้อ ในการคำนวณมันเป็นตัวเลขปกติอยู่แล้ว จะได้เห็นชัดว่าอะไร ? จากนี่ถึงนี่.เนี่ย ห้ามเกินเท่าไหร่ 15%,10% …นี่ทั้งหมดนี่ ผมคำนวณมาแล้วว่าทั้งหมดเนี่ยสามารถ ..สีแดงๆนักศึกษาดูนะฮะ..เราเชื่อว่าสามารถเอามาวางในก้อนนี้ได้ เห็นมั๊ย !! เราก็สรุปว่าทั้งหมดเนี่ยจะกลายเป็น exposureอยู่ในอะไรครับ? พอร์ทโฟลิโอของเรา ..นี่ผมก็เอานี่ 3ก้อนนี้มากองไว้ ทั้งหมดนี้คือ exposure ซึ่งในเรื่อง Risk of Ruin เนี่ยหรือก่อนหน้านี้เนี่ย นักศึกษาก็มีเรียนเรื่องการควบคุม exposure อยู่แล้วนะครับ แต่เพียงแต่ว่านักศึกษายังไม่ได้แยกออกมา โอเคมั๊ย ระหว่างตัวexposureที่มีเป็นส่วนของRisk กับส่วนที่ไม่ใช่ Risk นี่ non-Risk ความจริงมันriskทั้งหมดน่ะนักศึกษาครับ แต่เอาbase on calculationเราเนี่ย อันนี้จะเป็น Risk..Risk..Risk อันนี้ถือว่าเป็น non-Risk ล่ะกัน ถ้าไม่ได้อยู่ในส่วนสีแดง นี่..ผมก็แยกออกมา ดึงออกมาๆ เพื่อจะได้ไปแจงออกว่า ทั้งหมดเนี่ยตอนนี้ ตรงนี้เป็น Cash แล้ว นี่..อาจจะเหลื่อมลงมาเห็นมั๊ยครับ เพราะอะไร ? เพราะสีฟ้าผมมากองไว้ตรงเนี้ย อันนี้เป็น exposure ของ non-Risk เนี่ย..exposure ลบ Risk ของเรา แล้ว Risk ผมมากองไว้ตรงนี้ นักศึกษาจะได้ตระหนักตลอดเวลานะครับว่า exposure เนี่ยมันมีทั้งส่วนที่เป็นส่วนของ Risk กับส่วนที่ non-Risk ไว้ นี่..สรุปก็คือต้องมีสองตัวนักศึกษา มันบวกกัน นี่ผมแยกเพื่อให้เห็นง่ายจะได้อธิบายถูก เอ้อ..ก็เป็นนี่นะครับ ตอนนี้เราก็สรุปว่ามี Risk ในส่วนนี้ ซึ่งอันนี้ต้องอะไรครับ ? ห้ามเกิน allowablePortfolioRisk ขึ้นมา เอ้อ…แล้วก็ทำการอัพเดทค่าต่างๆนานา อันนี้สมมตินะครับ อันนี้มี Entry Signals เข้ามาชุดเดียวใช่มั๊ย อันนี้สมมติว่าเป็นวันเดียว..วันที่มีการเข้าซื้อทั้งสามตัวนี้พร้อมกัน เพราะว่าไม่เกิน allowablePortfolioRisk เราก็ทำการอัพเดทว่า นี่..ไม่เกิน allowable นะ แล้วค่าล่าสุด portfolioRisk เป็นเท่าไหร่ pRเป็นเท่าไหร่ แล้วก็ทำการเฉลี่ย เพราะตอนนี้มันมีวันเดียวใช่มั๊ยนักศึกษา มีวันเดียวเฉลี่ยก็อยู่ตรงกลางพอดี avgPortfolioRisk เฉลี่ยไว้ แต่ละวันนี่เฉลี่ยไว้ ถัดมานี่เราเริ่มมาดู details แล้ว อันนี้เป็นท่าง่ายท่าปกตินักศึกษา อ่ะ..ก็คือมีการบวกลบคูณหารคำนวณไปเรื่อยๆ ต่อไปเรามาจะเก็บรายละเอียด details แล้วว่า นี่..อันนี้ต่อเนื่องจากสไลด์นี้นะครับ นี่..ว่ามี Risk อยู่เท่านี้ อันนี้คืออะไรครับ ? actualPortfolioRisk ณ วันนี้ โดยมี allowable อยู่ตรงนี้ (เส้นประ) อันนี้เป็น Exposure non-Risk อยู่ตรงนี้ เราต้องทำการ sum upนี่ ในนี้มันจะมีอยู่ 3 ตัวใช่มั๊ยครับ เอ้อ..เราก็บวก 3 ตัวนี้คืออะไรครับ? “ Open Position เอ้อ..พยายามฟังไว้นะนักศึกษาครับจะได้ชิน ก้อนนี้บวกก้อนนี้ (สีแดง+สีฟ้า) คือ Open Position, และในส่วนนี้คืออะไร (สีแดง) ? sumOpenPosRisk : Open Position ที่เราถืออยู่ในมือเนี่ยมี Risk อยู่จำนวนเท่านี้ ถัดมามี New Entry เข้ามาใหม่ อันนี้คือตัวใหม่นะนักศึกษาไม่ใช่ตัวที่แล้วนะครับ เราก็ต้องทำการนี่ “ลองเช็คว่า sumOpenPosRisk เนี่ยลองบวกกับ sigRisk” อันนี้ยังเป็น Signals อยู่นะครับยังไม่ได้เอามาบวกในexposureเรา ต้องเช็คก่อน เช็คว่าถ้าบวกแล้วมันจะเกินมั๊ย เพราะงั้นกว่าเช็คได้ต้องทำการอะไรครับ ? คำนวณ Risk ออกมา…เห็นมั๊ยก้อนแรกนี่คำนวณRiskมาได้เท่านี้ พอมันมาบวกกับก้อนนี้ที่เรา Update: sumOpenPosRisk พอขึ้นวันใหม่ใช่มั๊ยครับ อัพเดทมี 3 positions เสร็จปุ๊บ อันนี้บวกเกินแสดงว่าอันนี้ห้ามเข้า ให้ข้ามไปSignalถัดไป..Signal นี้มาปุ๊บเห็นมั๊ยครับว่านี้อะไรครับ ? พอบวกตรงนี้ละบวกมาไม่เกิน เข้าได้มาเป็นอะไรครับ ? มาเป็นexposureของเรา อ่า..เราก็เอาตัวนี้บวกเข้ามาเสร็จปุ๊บ …คราวนี้มาดูตัวที่3นักศึกษา Signalที่3ว่าเป็นยังไง เอามาวางจะเห็นว่าอะไรครับ ? ว่ามันเกินนี่สีดำตรงนี้นี่ มาตรงนี้นะครับ พอบวกปุ๊บมันเกิน เราก็เลยไม่เข้า เอ้อ..ก็จบ เพราะฉะนั้นเนี่ย วันๆนี้ที่มี Signals เข้ามา3ตัว สรุปว่าเราเข้าแค่ตัวเดียวคือตัวที่ 2 เนี่ยมาเข้าที่ตัวนี้ โอเคมั๊ยครับ โดยที่ Entry Signals เนี่ยถูกจัดเรียงลำดับโดย Position Score อ่า..เดี๋ยวนักศึกษาจะได้เรียนเรื่อง Sum Momentum นะครับ Position Score จะเข้ามาช่วยได้เยอะ นี่..อันนี้คืออะไรครับ Position Score สูงสุด ลดลงมา และก็ต่ำสุดนี่ กลายเป็นตัวที่2ได้เข้า ตัวแรกไม่ได้เข้า อ่า..เสร็จปุ๊บนี่ คราวนี้เป็นวันใหม่ละ มี Entry Signal เข้ามาใหม่ base on Entry Signal เนี้ย ถ้านักศึกษาคำนวณRisk ออกมาปุ๊บมาบวกเนี่ยจะเห็นว่าอะไรครับ ? วันนี้เข้าไม่ได้ เข้าไม่ได้เพราะเข้าแล้วRiskมันเกิน โอเคมั๊ยครับ อ่า..เดี๋ยวผมจะลืมพูดซะก่อน คราวนี้นักศึกษาจะถามว่า “ เอ๊ะ..อาจารย์ครับ แต่ตัว Signal แรก ( 1st )..พูดถึงวันนี้นะครับ..วันนี้ก่อน ตัวเนี้ยมันเกินใช่มั๊ย ทำไมอาจารย์ไม่เอาแค่เท่าที่พอดีล่ะ..เอาแค่นี้พอนี่ ตรงนี้ไม่ต้อง แล้วที่เหลือก็เลิกคิดเลยไม่เป็นไร..คำนวณแค่นี้พอ ” ทำอย่างนั้นก็ได้ โอเคมั๊ยครับไม่เสียหาย แล้วแต่ว่านักศึกษาเนี่ยจะคำนวณ riskPerShare ยังไง นักศึกษาจะทำการจัดแบ่งว่าให้ไอส่วนเนี้ยเข้ามายังไง แต่นักศึกษาจะต้องทำอะไรครับ ? จะต้องคำนวณ Position Size ใหม่หมดเลย เพราะว่าอะไร ? เพราะนี้มันเกินนี่ ถ้านักศึกษาตัดRiskส่วนนี้ออกใช่มั๊ยครับ นักศึกษาก็ต้องตัดอะไรครับ ? ตัด Position Size ในส่วนนี้ออกด้วย นึกภาพป่ะครับ เพราะฉะนั้นเนี่ยผมเอาท่าง่ายมาก่อน เอาว่าถ้ามันเกินปุ๊บเนี่ย reject ทิ้งไปเลย แล้วไปดูตัวอื่นซิว่าเข้าได้มั๊ย เอ้อ..ถ้าเข้าได้ก็เข้า เข้าไม่ได้ก็ reject ทิ้งไปก่อนอันนี้จะง่าย แต่นักศึกษาบอกว่า เอ๊ะ..มันเกินแค่นี้ใช่ไหม..งั้นเอาส่วนที่เป็น Risk แค่นี้พอ ถ้านักศึกษาจะเอาส่วนที่เป็น Risk แค่นี้พอ นักศึกษาก็ต้องมาจัดการส่วนนี้ด้วย ไม่ใช่ว่าเอา Risk แค่นี้ใช่มั๊ย แต่เอาทั้งก้อนนี้เข้ามางี้ อย่างนี้ก็ไม่ถูกต้องถูกมั๊ยครับ ไม่เป็นไปตามสัดส่วน เอ้อ…แล้วเวลาที่นักศึกษาทำ Position Size แบบยากๆเนี่ยนะครับ สัดส่วนของ Risk กับส่วนที่เป็น non-Risk เนี่ยบางทีมันไม่ได้แปรผันตรงซะทีเดียวนักศึกษา เพราะงั้นหลีกเลี่ยงความเสี่ยงนะครับ เอาท่าง่ายดีกว่า มีง่ายกว่านั้นอีก สมมติถ้าบวกตัวแรกแล้วเกินใช่มั๊ยครับนักศึกษา ตัวนี้เป็นตัวแรกใช่มั๊ย บวกแล้วเกินใช่มั๊ย งั้นเลิกทั้งหมดเนี่ยไม่ต้องพิจารณาเลย ตัดทิ้งให้หมดไม่เป็นไรก็เป็นไปได้ ก็ต้องลองไป backtest ดู โอเคมั๊ยครับ มาต่อดีกว่า คราวนี้เอาใหม่ let say ว่ามี Entry Signal เข้ามาใหม่ ..นี่ นักศึกษาดูสองตัวนี้สิ (4th, 5th) ถ้าสองตัวนี้มีRiskเท่ากัน โอเคมั๊ยครับ Position Size เท่ากันเนี่ยเข้ามาใหม่ อันนี้ก็เข้าไม่ได้อยู่ดีเพราะมันเกิน เห็นตรงนี้มั๊ยครับ portfolioRisk นะครับบวกนี่ เกิน..เข้าไม่ได้อยู่ดี แต่คราวนี้เนี่ยผมอยากมายกกรณีให้ดูว่า สมมติว่า What if there are Exit Signals ? ไอก้อนแรกที่เคยเข้าไปเนี่ย ปรากฎว่าวันเนี้ยมันถูกเอาออกไปแล้ว จะทำยังไง ? นี่..ถ้ามีการ Exit Signal ออกไปเนี่ยเราจะต้อง Omit ละเว้นอะไรครับ ? ละเว้น Open Position นี่ที่มันเท่ากับ Signal ที่จะถูกการ Exit ณ วันนี้ หมายความว่าก้อนเนี้ย (สีแดง) มันจะถูก Exit วันนี้ใช่มั๊ยครับ เพราะฉะนั้นนักศึกษาไม่ต้องเอาRiskมารวมในส่วนนี้ ..ในส่วนนี้ไม่ต้องรวมแล้วเพราะเดี๋ยวมันถูกเอาออกไปแล้ว Riskส่วนเนี้ยหายไปแล้ว นี่…จากนี่มานี่ใช่ไหมครับ นี่ก้อนแรกวันนี้นี่ขายไปหมดแล้ว และส่วนนี้ล่ะ ส่วนข้างล่างนี่ตรงนี้ (สีฟ้า) มาถึงนี่นะครับ ขายไปหมดแล้ว ตอนนี้เหลือเฉพาะอะไรครับ ? Risk ของตัวที่2 นี่มาอยู่ตรงนี้ และก็เหลือของอะไรครับ ? non-Risk ของตัวที่2 ก้อนนี้ (สีฟ้า) นี่…จากนี่มานี่ใช่มั๊ยครับ มาอยู่ตรงนี้ ผมก็มาเรียงใหม่ ..นี่เห็นมั๊ย ทำให้เราอะไรครับ ? ตอนนี้เรามี Risk น้อยลงละ เอ้อ..ทำให้ก้อนที่5เนี่ยสามารถเสียบเข้ามาได้ ลองมาเช็คซิ…นี่ต้องมา sumOpenPosRisk ใหม่ ว่าตอนนี้มีเท่านี้ โอเคมั๊ยครับ แล้วเช็คว่า sumOpenPosRisk เนี่ยบวก Signal Risk ตรงเนี้ยเกินมั๊ยโอเคมั๊ยครับ โดยที่ก่อนหน้าจะมาบวกเนี่ยต้องเช็คก่อนนี่ จากเนี่ย sumOpenPosRisk เนี่ยต้องเช็คว่าจะต้อง Omit รึป่าว Omit: openPos Positionที่ถืออยู่ในมือเราเนี่ยมันจะถูกExitวันนี้หรือเปล่า ถ้ามันถูกExitวันนี้เห็นมั๊ยครับ OpenPosเท่ากับIs Exit ณ วันนี้ ก็ต้องเอามันออก อย่าเอามันมารวมเลยนะครับใน Risk ของเราตรงนี้ ไม่เอา เอาออก แล้วเสร็จปุ๊บเราก็มานี่ ลองเช็คใหม่ว่า sumOpenPosRisk นี่บวกกับ signal Risk : อันนี้ยังเป็น signal อยู่นะครับ เออ..มันเกินมั๊ย ถ้าไม่เกินนี่ ทั้งก้อนก็มาเป็น Exposure ของเรา แล้วเราค่อยไปแบ่งว่าอะไรครับ ? นี่คือ Risk ใหม่ ตัวนี้มาเป็นRisk ใหม่เพิ่มเข้ามา ตัวนี้ non-Risk นี่ Exposure ก็เข้ามาอยู่แล้วตอนนี้ อันนี้ก็จบ อ่า..ลองไปทวนดูนะครับ จะได้เห็นภาพ คืออยากให้เห็นภาพคล่องๆ อยากให้นักศึกษาเหมือน get sense อ่ะ รู้สึกถึงมันเลยว่า Risk มันคืออะไร portfolioRisk มันคืออะไร โอเคมั๊ยครับ อ่ะ..วิดีโออัดตัวนี้ยาวมากนะครับ เดี๋ยววิดีโอหน้าเรามาพูดถึงเรื่อง Setting & Calculation ของ Portfolio Risk Control กันดีกว่า อันนี้ 16 นาทีแล้วหยุดก่อนดีกว่า ขอบคุณครับ

Description

X307-1-3 Main Settings and Calculation of Portfolio Risk Control วิดีโอชุดนี้นะครับจะมาพูดถึง Main Settings and Calculation of Portfolio Risk Control นะครับ ให้ดูว่าเป็นยังไง โดยที่หลักๆเนี่ยจะมีอยู่ 2 ส่วนก่อน เอาง่ายๆก่อน อันแรกนี่เป็นส่วนของ Amibroker Phase 1 เนี่ยจะเป็นเรื่องของ Strategy BuyCon Position Size อะไรต่อมิอะไรก็ตามเนี่ย และก็มีในส่วนของนี่ Main ของเราก็คือ riskPerShare นี่ต้องหาจากใน Phase 1 ให้ได้แล้วไปsaveใน StaticVarSet ก่อนแล้วเสร็จปุ๊บพอมา Phase 2 นี่ในส่วนของ CBI นะครับในการControl Risk เราก็เลยต้องนำนี่ riskPerShare เนี่ยใช้ StaticVarGet Getมาใช้ในนี้ แล้วมารวมกันนี่ รวม SumOpenPos ให้ได้เป็น portfolioRisk นะครับอย่าลืมนะครับว่า portfolioRisk เนี่ยมีหน่วยเป็น % of Equity โอเคมั๊ยครับ ถ้านี่เป็น10 ก็คืออะไรฮะ? 10% of Equity ถ้าportfolioRiskนี่ barนี่ วันนั้นๆ แต่ละวันจะมี portfolioRisk ไม่เท่ากัน เป็น 20 ก็คืออะไรครับ ? มี portfolioRisk เป็น 20% ของEquity อ่า..คราวนี้ก็มาดูในส่วนของ Strategyก่อน อันแรกก็ต้องมีการ Set: allowablePortfolioRisk ก่อนว่าเป็นเท่าไหร่ อันนี้เซทเป็น 100 ไปก่อนไม่เป็นไร เราจะต้องbaseจาก100ก่อนนะครับ เพื่อให้ดูว่าตอนเนี้ย ตัวportfolioRiskเนี่ยเป็นเท่าไหร่ แล้วเราค่อยปรับจาก 100 เนี่ยค่อยปรับลงเป็นเท่าไหร่ครับ ? เป็น 35 30 20 อะไรก็แล้วแต่ค่อยๆปรับกันไป แต่ตอนแรกต้องbase on 100 ไปก่อน แล้วก็ต้อง define นี่ riskPerShare ..ว่าจะdefine riskPerShare ยังไงที่ยกตัวอย่างให้ดูสามตัวใช่ไหมครับ basic price, volatility หรือเป็น combination ก็ว่ากันไป และให้ทำการ saving in StaticVarSet เพื่อไปใช้ใน Phase 2, Phase 2 ก็นำ StaticVarSet นี่เอามาใช้ใหม่เรียกว่าใช้อะไรครับ ? ใช้ StaticVarGet “ จาก Set เอามาเป็น Get นะครับ ” เพื่อทำการ Update : sumOpenPosRisk Positionที่ถืออยู่ในมือแต่ละตัวมีRiskเท่าไหร่ คราวนี้จะต้องทำการ Omit นี่ หรือ reject Signal ตัวที่มันกำลังจะถูก Exit : openPos ที่จะexiting today นี่ไม่ต้องเอาRiskมาบวกเพราะเดี๋ยวมันก็Exitออกไปแล้วถูกมั๊ยครับ เอ้อ..ก็ให้ใช้นี่โดยการเช็คนี่ from sig.IsExit() และก็Sumนี่..พอเรารวมRiskเสร็จปุ๊บใช่มั๊ยครับ เราก็มาเช็คว่าอะไร ? ว่าไอ : sumOpenPosRisk เนี่ยถ้าบวกกับ sigRisk ของตัวใหม่ที่เข้ามาปุ๊บเนี่ย มันเกิน allowable รึป่าว ถ้าเกินก็ไม่บวก ถ้าไม่เกินก็บวก เอ้อ..แล้วก็มาอัพเดทไว้ในนี้ portfolioRisk ในส่วนนี้นะครับ โดยที่จาก 3 ถึง 6 เนี่ยหลักๆเลยจะมีอยู่ 2 loops, loopแรกเป็น For-Loop ของOpenPosนี้ จะมี Open Position อยู่ For-Loop ให้ได้ sumOpenPosRisk ใช่มั๊ยครับ โดยที่ละเว้นอะไรครับ ? ละเว้น OpenPosที่มีSignal Exit today คือตอนSignalที่มันมีเข้ามาเนี่ย เผื่อนักศึกษาจำCBIไม่ได้นะครับ “ Signalที่มันมีเข้ามาเนี่ย มันมี IsEntry() ก็คือเข้ามาวันนี้รึป่าว กับ IsExit() : Position ที่ถืออยู่จะถูกExitวันนี้รึป่าว ” ถ้ามี..เรามี Position นั้นอยู่จริง แล้ว OpenPos นั้นนะครับจะถูก Exit ณ วันนั้นจริง เราไม่ต้องรวมเอา Risk ของ OpenPos นั้นมารวมเพราะมันกำลังจะถูกExit อ่า..แล้วส่วนที่สองนี้เช็คกับ Update นี้จะไปอยู่ในส่วนของนี่ครับ For-Loop ของSignal “ เห็นมั๊ยนี่ Signal ตัวนี้…sigRisk เนี่ยจะบวกไม่บวก ถ้าบวกหมายความว่าอะไร ? หมายความว่าเราจะเอาSignalตัวนั้นเข้ามาในพอร์ทโฟลิโอเรา แต่ถ้าเราไม่บวก เช่น risk มันเกินใช่มั๊ยครับ แสดงว่า Signalตัวนั้นจะต้องถูกrejectทิ้ง ..reject ก็คืออะไรครับ ใช้อะไรครับ ? sig.Pos = 0, Position Size = 0 ก็ได้ หรือใช้ sig.Price = -1 อันนี้เคยเรียนไปแล้วนะครับ ” อ่า..มาดูกัน อันนี้ก็เป็น Main Settings and Calculation นักศึกษาจำไว้ 6 ตัวแค่นี้เองนะครับ “ Set allowable ก่อน -> Define ให้ได้ว่าจะเอา riskPerShare เป็นเท่าไหร่ นี่นะครับ -> แล้วก็ Phase 2 ทำการ Update OpenPos มีRiskเท่าไหร่ รวมกันให้หมดยกเว้นตัวที่จะถูกExit ณ วันนั้น โอเคมั๊ยครับ -> ทำให้นักศึกษาได้ sumOpenPosRisk ไว้ แล้วมาบวก ถ้าบวกกับ sigRisk : signal Risk ที่กำลังจะเข้ามาใหม่ Entry ถ้าRiskไม่เกิน allowable ก็ให้บวกเข้ามา ถ้าบวกเข้ามาก็ Position Size, Position Score ปกติถูกมั๊ยครับ…แต่ถ้าไม่บวก นักศึกษาจะต้องเซทให้ .Price = -1 -> แล้วก็ Update: portfolioRisk เข้ามา ” นี่ก็จบแล้ว คราวนี้..มาทวนนะครับในเรื่องของ For-Loop ใน Portfolio Risk Controlนี่ baseนี่เราbaseจาก ML CBI นะครับ จะเห็นว่า มี Signals อยู่ และก็มี PreProcess มีloopปกติ อันนี้เป็นloopซ้อนloop, มี loop Bar กับ loop Signal นะครับ อันนี้แบบง่ายใน ML CBI นะครับ และก็มานี่จบนี่ ProcessTradeSignals(); ก่อนแล้วค่อยมาจบที่ PostProcess(); จบแล้ว “ Preprocess-> ProcessTradeSignal ->TradeSignal -> แล้วก็ PostProcess จบ ” แต่พอมาถึงในส่วนของที่ต้องมีการทำPortfolio Risk ใช่มั๊ยครับ จะมีรายละเอียดมากกว่านั้นโดยที่ว่าหลักๆเลยเนี่ย นี่..เซทก่อนจำได้มั๊ยข้อ 1 เซทก่อน allowablePortfolioRisk เป็นเท่าไหร่ ให้เป็น 100 ไปก่อน, riskPerShare เป็นเท่าไหร่ นักศึกษาต้องใช้ตาม basic price หรือ volatility ก็ได้ใส่ไปก่อน แล้วต้องอะไรครับ ? StaticVarSet นี่ “ svนี่คือStaticVarRiskPerShare บวกด้วยอะไรครับ? ชื่อหุ้นตัวนั้นๆ ” อันนี้ผมพยายามอธิบายให้ละเอียดหน่อยนะครับเพราะเดี๋ยวจะมี challenge ให้นักศึกษาไปเขียนเอง เสร็จปุ๊บอันนี้ก็เป็นตามปกติของ ML“ PreProcess -> TradeSignal -> แล้วก็ PostProcess นะครับ ”ปึ๊บ !! ตอนที่เราจะControl Risk ได้เนี่ยเราControl Risk ทุกวัน โอเคมั๊ยครับ ทุกวันก็คือทุกbar เพราะฉะนั้นเราต้องมี loop เนี่ย เป็น loop เห็นanimationมั๊ยครับ วน loop..วน loop ไว้ทุกวัน โดยที่เราเช็คทุกวันเนี่ยจะต้องมี loop หลักๆอยู่สองตัว อันแรกคือ OpenPos “ ว่าในOpenPosของเราเนี่ยมี Risk เท่าไหร่, sumOpenPosRisk เท่าไหร่ ” เสร็จปุ๊บนี่ แล้ว sig ที่เข้ามาใหม่ล่ะ อันนี้เป็น sig ที่เข้ามาใหม่ โอเคมั๊ยครับ เอ้อ..sig ที่เข้ามาใหม่มี Risk เท่าไหร่ จะบวกกันได้เลยมั๊ยหรือบวกไม่ได้เพราะว่าอะไร ? เพราะว่ามันจะเกิน allowable โอเคมั๊ยครับ คราวนี้..รายละเอียดนี่มันอยู่ตรง Omit จำได้มั๊ยครับว่าอะไรครับ ? ถ้า OpenPos ที่เราถืออยู่ในมือนี่มันกำลังจะถูกExit ณ วันนั้นน่ะ เราก็อย่ามารวมมัน เพราะฉะนั้นในนี้จึงต้องมีการวน loop sig อีกทีนึง ให้เช็คระหว่างอะไรครับ ? นี่..OpenPos กับ sig อันนี้คือ IsExit เช็คว่า Exit หรือเปล่า สองตัวนี้เช็คกัน อันนี้คือกรณีที่ Omit นะครับว่าอะไร ? ถ้าOpenPos.Symbol ชื่อตัวนั้นเนี่ย อันนี้คืออยู่ในพอร์ทโฟลิโอเรา เท่ากับ sig.Symbol ตัวที่เรากำลังวนloopอยู่นี้ โอเคมั๊ยครับ และ sig.IsExit() ตัวนี้นี่กำลังจะถูกExit ณ วันนั้นนี่ ก็บอกว่าอย่าไปแอด “don’t add riskPerPosition” แต่ถ้าไม่ใช่ โอเคมั๊ยครับ ไม่ใช่คือไม่ได้Exit ณ วันนั้น หรือ ไม่มีอยู่ในตัวsignal sig.Symbol เข้ามาเนี่ย..ให้แอด riskPerPosition เข้ามา ของตัวนั้นน่ะครับ เสร็จปุ๊บ นี่..ถ้าหาไม่เจอนี่ ถ้า OpenPos.Symbol ไม่ได้อยู่ใน sig.Symbol ไม่ว่าจะเป็น IsEntry หรือ IsExit ก็ตามเนี่ย ให้แอด riskPerPosition เข้ามาได้เลย ไม่เป็นไร อันนี้ง่าย แต่ถ้า OpenPos ที่เราถืออยู่เนี่ย มีsig ชื่อหุ้นตัวเดียวกันเข้ามาเนี่ย เราต้องเช็คว่าเป็น IsExit หรือเปล่า ? ถ้าเป็น IsExit ไม่ต้องแอด ถ้าไม่ใช่ IsExit จะต้องแอด เออ..แล้วก็ SumOpenPosRisk = sumOpenPosRisk + riskPerPosition อันนี้คืออะไรครับ ? OpenPos อันนี้ (riskPerPosition) เป็นหลักนะครับ บวกเข้ามา(sumOpenPosRisk) อ่ะ…เราก็มาปรับนี่ อันนี้คืออะไร( portfolioRisk[bar] ) อันนี้คือ barนี่..” portfolioRiskของแต่ละbarนี่ ” นี่ยังไม่สรุปนะครับ อันนี้เป็นคำนวณ อันนี้เป็นการอัพเดทค่าล่าสุดขึ้นมาก่อน จากOpenPos และก็ sig.IsExit() ก่อน โดยที่เราจะต้องมาปรับ นักศึกษาเห็นหารนี่มั๊ย ..หารtotalEquity เพื่ออะไร ? เพื่อทำให้ก้อนนี้เนี่ยอยู่ในหน่วยของเป็น % ของEquity .. อันนี้หารกันใช่มั๊ยครับ “ ตัวsumOpenPosRiskเนี่ยไม่มีทางเกิน total (totalEquity) อยู่แล้ว ..หารกันเต็มที่ก็ได้แค่ 1…คูณ 100 ก็เป็น 100% แค่นั้นเอง ” พอเราได้ portfolioRisk[bar] เสร็จปุ๊บเนี่ย คราวนี้เรามาดูเรื่อง Sig แล้ว ว่าไอตัวที่ IsEntry กำลังเข้ามาเนี่ย Sig มันเกินมั๊ย นี่..นี่..ความจริงตรงนี้ต้องมีตัวเช็คนะครับ นี่ต้องเช็คอีกทีนึงว่าต้องเป็น IsEntry เท่านั้น แล้ว IsEntry เนี่ยมาคำนวณหา sigRisk นี่..อันนี้ก็ต้องเป็นอะไรครับ “ต้องเป็น % ของ TotalEquity ด้วย” ตัวนี้นะครับ (portfolioRisk[bar]) อันนี้เป็น %TotalEquity ถูกมั๊ยครับนักศึกษา อันนี้ (sigRisk) เราต้องเปลี่ยนเป็น % TotalEquity ด้วย แล้วดูว่ามันเกิน allowable หรือเปล่า ถ้าไม่เกินนี่ให้แอด sigRisk เข้าไปในอัพเดทตัว portfolioRisk[bar]นี่ …Signal จำได้มั๊ยครับ Signalตัวแรกไม่ได้เข้าใช่มั๊ย..ถ้าตัวที่สองเข้าเราต้องทำการอัพเดท portfolioRisk[bar] โดยการแอด sigRisk Signalที่ถูกเข้าไปแล้วด้วย เพื่อตอนที่เรามาคำนวณใหม่ คำนวณ signal ตัวถัดไปเนี่ย ตัวนี้ (portfolioRisk[bar]) จะไม่มีการอัพเดทหรือว่ามีการบวกsignalตัวใหม่เข้าไปแล้วนะ เอ้อ..แล้วถ้าบวกเพิ่มจะเกินรึยัง โดยการแอด sigRisk เข้าไปในนี้ (portfolioRisk[bar]) แล้วเราก็ต้องทำการนำเข้ามาในexposureเรา อย่าไปเปลี่ยนแปลง อย่าไปrejectตัวsignalเรา โอเคมั๊ยครับ แต่ถ้า Else คือถ้าเกินก็คือไม่ต้องแอด ข้ามไปเป็นsignal ตัวถัดไป วนloopเสร็จปุ๊บก็ทำการ ProcessTradeSignal(); ของวันนั้นๆ หรือ bar นั้นๆ ทำอย่างงี้วน bar เนี่ย จำนวนbarแต่ละวันเนี่ย..วนไปเรื่อยๆจนจบ แล้วทำการ PostProcess(); ก็จบแล้ว อ่า..ดีนะครับๆ ดูรายละเอียดนี้ดีๆเดี๋ยว challenge เนี่ย ถ้านักศึกษาตั้งใจทำจริงๆนะ นักศึกษาก็ต้องกลับมาดูวิดีโอชุดนี้ใหม่ อ่ะ..โอเคครับ เดี๋ยววิดีโอชุดหน้านี่ เดี๋ยวจะทำเขียนโค้ด Example Code Strategy เพื่อที่นักศึกษาจะได้ไปสามารถทำ challenge ต่อได้ เดี๋ยวใน challenge มีอธิบายเพิ่มนะครับ อ่ะ..นักศึกษาจะได้คุ้นโค้ดมากขึ้นจะได้สามารถทำ challenge ได้ แต่ก่อนอื่นเดี๋ยวเรามาพูดเรื่อง Example Code Strategy ดีกว่าว่าจะใช้ตัวใหม่ยังไง ขอบคุณครับ

หนังสืออ่านเพิ่มเติม

 

ลิงค์ที่เกี่ยงข้องกับ Portfolio Risk