一、前言

bata怎麼算?避險比率怎麼算?

手上股票太多不知道怎麼買期貨避險嗎!

但首先要先知道Bata係數!

 

二、Bata概念

image

β = 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股價資料

 

arrow
arrow

    恩哥Python 發表在 痞客邦 留言(0) 人氣()