การวัด SemiDeviation ด้วย Python
การทำ portfolio optimization ด้วย google colab V
ส่วนเบียงเบนมาตรฐาน (Standard Deviation : S.D.,S,s)และ ความแปรปรวน (Variance:σ2) มักจะนิยมใช้วัดวามผันผวนของการลงทุน แต่ตัวชี้วัดความผันผวนทั้งสองนี้ วัดทั้งด้านบวกและด้านลบ แต่ในการลงทุนเรากังวลกับความผันผวนที่เป็นด้านลบมากกว่า
SemiDeviation เป็นตัวชี้วัดทางเลือกจากเบี่ยงเบนมาตรฐานหรือความแปรปรวน โดยแตกต่างจากตัวชี้วัดดังกล่าว คือจะพิจารณาเฉพาะความเสี่ยงขาลงของการลงทุนโดยมีสูตรดังต่อไปนี้
มาเริ่มกันเลย
เราเริ่มต้นด้วยการเปิด google colab และเหมือนทุกครั้งที่เราต้อง load packages กันก่อน
# load packages
import pandas as pd
import numpy as np
ดึงและจัดการข้อมูล
เราจะดึงข้อมูลจาก yahoo และจัดการให้เหลือราคาปิดอย่างเดี่ยว
from pandas_datareader import data as pdrimport fix_yahoo_finance as yfyf.pdr_override() # <== that's all it takes :-)# ===========today = "2020-01-01" # to make static this script.
tckr = 'VOO'# download data
data = pdr.get_data_yahoo(tckr, "2010-01-01", today)# add frequency needed for some pandas functionalities releated with offsets
data = data.asfreq('B')
data.columns = data.columns.map(lambda col: col.lower())prices = data[['close']]
prices = prices.dropna()
prices
หลังจากนั้นเราก็ต้องหาผลตอบแทนกันก่อน
returns = prices.pct_change()
returns = returns.dropna()
returns.rename(columns={'close':'returns_Vanguard_S&P_500_ETF'},inplace=True)returns
Calculate Semideviaion
มาถึงไฮไลน์ของวันนี้นะครับเริ่มจากเราสร้างตัวแปร returns_negative คือผลตอบแทนที่น้อยกว่า 0 และเป็นเรื่องง่ายมากคือให้ความแปรปรวนด้วย ddof=0(Delta Degrees of Freedom.)
returns_negative = returns < 0
returns[returns_negative].std(ddof=0)
สร้างฟังชั่น Calculate Semideviaion
เราสามารถสร้างฟังชั่นในการคำนวณ Semideviaion ดังนี้
def semideviation(returns): returns_negative = returns < 0 return returns[returns_negative].std(ddof=0)semideviation(returns)
Note book ;
อ่านตอนอื่นๆได้ที่
- การคำนวณผลตอบแทนการลงทุนด้วย Python
- การหาความผันผวนของพอร์ตการลงทุนด้วย Python
- การหา Max Drawdown ด้วย Python
- การวัด การเบี่ยงเบนของผลตอบแทนด้วย Python
- การวัด SemiDeviation ด้วย Python
- การวัด VaR. และ CVaR. ด้วย Python
- รีวิวการใช้ ffn. ใน Python
- การหา Top Drawdown ด้วย Python
- การหาค่า Sharpe ratio ด้วย Python
- การหากลุ่มหลักรัพย์ที่เส้นประสิทธิภาพ Efficient Frontier ด้วย Python
- การหา shape ratio สูงสุดและเส้น CML ด้วย Python
- การสร้างมูลค่าตลาดแบบถ่วงน้ำหนักด้วย PYTHON
- ข้อจำกัดของการกระจายความเสี่ยงและการทำประกันพอร์ตการลงทุน
- การจำลอง ผลตอบแทนด้วย RANDOM WALK Generation และ Montecarlo simulation
- Sharpe Style Analysis
- Factor Investing ด้วย Python
- วิเคราะห์ ประเภทกองทุนรวมด้วย Python
- การทำ Portfolio optimization
- สร้างแนวรับแนวต้านวิเคราะห์หุ้นด้วย Python