# 防禦型股票填權息探討

## 前言

beta值代表與大盤連動的相關性，大家所熟知的0050，beta值大概在於1左右，也能說明他能反映大盤的漲跌，高股息etf 0056，beta值介於0.75~1之間，說明了他的變動程度稍微較0050低一點，

1. Beta值
2. 累積營收成長 (yoy)
3. Q1毛利率成長率(yoy)

## 編輯環境及模組需求

```###匯入套件##########數據分析三寶
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
#################TEJ
import tejapi
tejapi.ApiConfig.ignoretz = True```

## 資料處理

```data=tejapi.get('TWN/EWNPRCSTD' ,chinese_column_name=True )
select=data["上市別"].unique()```
```select=select[1:3]
condition =(data["上市別"].isin(select)) & ( data["證券種類名稱"]=="普通股" )
data=data[condition]
twid=data["證券碼"].to_list()```

```year='2017'  ######選擇年度 本年度選擇2017~2021
start= year+'-01-01'
end  = year+"-12-31"```
```dividend=tejapi.get('TWN/AREINT' ,
coid=twid,
mdate={'gt':start,'lt':end},
paginate=True,
chinese_column_name=True)```

```start= year+'-05-09'
end=   year+"-05-11"
opts={'columns': ['coid','mdate', 'beta_1y']}
beta = tejapi.get('TWN/ABETA',
coid=twid,
mdate={'gt':start,'lt':end},
paginate=True,
chinese_column_name=True
)
beta.set_index("證券代碼",inplace=True) #方便合併```

```start= year+'-05-9'
end=   year+"-05-11"
getperatio=tejapi.get('TWN/APRCD' ,
coid=twid,
mdate={'gt':start,'lt':end},
paginate=True,
chinese_column_name=True )
getperatio.set_index("證券代碼",inplace=True)```

```twid1=twid
groups = []
while True:
if len(twid1) >= 50:
groups.append(twid1[:50])
twid1 = twid1[50:]
elif 0 <= len(twid1) < 50:
groups.append(twid1)
break```

`fin_data = pd.DataFrame()`
```start=year+'-01-01'
end=  year+"-03-22"    ##抓取第一季
for group in groups:
fin_data = fin_data.append(tejapi.get('TWN/EWIFINQ',
coid = group,
mdate={'gt':start,'lt':end},

chinese_column_name = True,
paginate = True)).reset_index(drop=True)
fin_data.set_index("證券碼",inplace=True)```

`opts={'columns': ['coid','mdate','d0007']}`
```start=year+'-04-30'
end=year+"-05-15"
coid=twid,
mdate={'gt':start,'lt':end},
opts=opts,
paginate=True,
chinese_column_name=True)

```dividend["累計營收成長率%"]=trade["累計營收成長率%"]
dividend["股利殖利率-TSE"]=getperatio["股利殖利率-TSE" ]
dividend["現金股利率"]=getperatio["現金股利率" ]
dividend["營業毛利率"]=fin_data["營業毛利率"]
dividend["CAPM_Beta 一年"]=beta['CAPM_Beta 一年']
dividend["填權息(Y/N)"]=dividend["填權息(Y/N)"].apply(lambda x : 1 if x == "Y" else 0)  ###將y n變成0 或 1
dividend["填權息(Y/N)"].value_counts()
dividend["本益比"]=getperatio["本益比-TSE" ]```

```def count(x):
a,b =  x["填權息(Y/N)"].value_counts()
c=x["填權息天數"].mean()
return f'填息機率 : {a/(a+b)}' , f'填息家數 : {a}' ,f'未填息家數 : {b}', f'填息天數 : {c}'```
```###算出資料及裡面填權息天數 與機率
div5=dividend[dividend["股利殖利率-TSE"]>5]
count(div5)```

2017年的殖利率>5%的股票填息機率為0.78，平均天數為46天。

```def capmselect(df,b,c):
yy=df[(df["股利殖利率-TSE"]>5)&(df["CAPM_Beta 一年"]>b)&(df["CAPM_Beta 一年"] < c)]
return count(yy)```
`def capmpeselect(df,b,c,d ):   ########條件增加月營收的`
```yy=df[(df["股利殖利率-TSE"]>5)&(df["CAPM_Beta 一年"]>b)&(df["CAPM_Beta 一年"] < c)& (df["累計營收成長率%"] > d )]
return count(yy)```
`def ncapmpeselect(df,b,c,d ):  #####累計成長負的`
```yy=df[(df["股利殖利率-TSE"]>5)&(df["CAPM_Beta 一年"]>b)&(df["CAPM_Beta 一年"] < c)& (df["累計營收成長率%"] < d )]
return count(yy)```
`def allcondition(a,b,c,d,e,f):  #累計營收正 毛利率成長正`
```  allcondition=dividend[(dividend["股利殖利率-TSE"]>a)&(dividend["本益比"]<b)&(dividend["CAPM_Beta 一年"]>c)&
(dividend["CAPM_Beta 一年"]<d)&
(dividend["累計營收成長率%"]>e)&
(dividend["營業毛利成長率"]>f)]
return count(allcondition)```
`def nallcondition(a,b,c,d,e,f): #累計營收負 毛利率成長負`
`  allcondition=dividend[(dividend["股利殖利率-TSE"]>a)&(dividend["CAPM_Beta 一年"]>c)&(dividend["CAPM_Beta 一年"]<d)&(dividend["累計營收成長率%"]< e)&(dividend["營業毛利成長率"]<f)]`
`  return count(allcondition)`

## 結論

1 .在營收、毛利成長 ，填息機率較高 。

2. 營收、毛利衰退，填息機率較低

3. 防禦型股票(beta較小)填息率並無優於股性較活潑的股票(beta值較大)

4.具有較高的Beta值股票填息率較高，時間也較短。

Procesing