close
一、前言
bata怎麼算?避險比率怎麼算?
手上股票太多不知道怎麼買期貨避險嗎!
但首先要先知道Bata係數!
二、Bata概念
β = Cov(ra,rm) / Var(rm) 其中,Cov(ra,rm)是ra與rm的共變異數, Var(rm)是rm的變異數
ra:個股報酬率(放你的部位,股票 ETF 基金等)
rm:市場報酬率(放你要用來避險的商品,期貨 ETF)
也就是說在1%的市場變動下你的部位會變動多少%
三、Bata計算及如何避險
完整程式碼及解說
import pandas, numpy
import pandas_datareader as web
# 從yahoo finance 下載資料
close_stock = web.DataReader('2330.TW', 'yahoo')['Close'] # 只抽取收盤價,此時為時間序列
close_index = web.DataReader('^TWII', 'yahoo')['Close'] # 期貨計算用加權指數代替 直接用期貨算更好
# 合併成df
df = pandas.DataFrame({'stock': close_stock,
'index': close_index})
# 計算報酬率
ret = (df - df.shift(1)) / df.shift(1)
# 資料處理
df = df.dropna() # 去掉遺失值
# 相關係數
corr = ret.corr() # 高度正相關,避險要空期貨
# 變異數矩陣(共變異數)
cov = ret.cov()
# 變異數
var = ret.var()
# bata係數
bata = cov / var['index'] # Cov(ra,rm) / Var(rm)
print(bata.iloc[0,1]) # 1.3597010457753163
# 避險口數 = bata * 現貨市值/ (期貨指數*每點價值)
# 台積電部位500萬,大台指期16000點為例
sell = bata.iloc[0,1] * 5000000 / (16000*200)
print(sell) # 2.1245328840239317 約空台指期2口
四、後記
其實變異數矩陣裡面已經有變異數,也就是自己跟自己的共變異,不用另外算拉~
至於期貨資料可以去quandl抓~可以看這一篇【Quandl】如何用Python取得國外期貨資料
股價資料可以看這一篇~【Python量化資料】用Python抓取Yahoo Finance、investing.com股價資料
文章標籤
全站熱搜
留言列表