[VBA] 小資族必看 ☆ 金融存股 <低買高賣> 的無痛賺錢法
☆ 小資族 / 退休存股族,妳們知道哪幾支金融股最值得買進嗎 ? 這裡通通告訴妳,包括 : 如何製作即時殖利率程式。
目錄 :
何謂 金融股 ?
金融股 指的是 : 金融控股公司,簡稱 : 金控。依據有無政府持股,分為 公股(官股) / 民營 兩種類型。
金控公司 底下 : 包含有 銀行業 / 證券業 / 壽險業 等三種行業。
金融股 vs 存股
[ 金融股 ] : 有穩定配息的優點,股價波動也不大,更因為有政府的嚴格監管,就無需擔心有倒閉的風險,這正適合小資族與退休族,作為投資的安心選擇。
[ 金融存股 指標 ] :
◎ 股本大 : 安全性較高,避免有倒閉的風險。
◎ 配息穩定 : 金融個股,幾乎年年配息。
◎ 獲利穩定 : 公司穩定成長,年年增長為佳。
[ 八大行庫 ] : 指的是政府直接或間接持有股份的八家銀行。
◎ 國營 : 台灣銀行 / 土地銀行,二家。
◎ 公股(官股) : 四金二銀。
1. 四金 : 華南金 / 合作金 / 兆豐金 / 第一金。
2. 二銀 : 台灣企銀 / 彰化銀行。
※ 公股行庫中,以第一金最受存股族喜愛,股東人數達 45.5萬人( 2022/05 計 )。股東人數資料查詢 : 請參考 — 集保戶股權分散表。
[ 歷年股息查詢 ] :
◎ Goodinfo! 台灣股市資訊網 : https://goodinfo.tw/tw/StockDividendPolicy.asp?STOCK_ID=2891&SHOW_ROTC=
◎ YAHOO! 股市 : https://tw.stock.yahoo.com/quote/2891/dividend
金融存股 無痛賺錢法之程式製作
※了解 金融股 特性,加上有政府的監管,不容易有被掏空或惡意倒閉的疑慮,這樣是否就能從金融個股的歷史資料中,找出其 殖利率 的慣性脈動,作為 低買/高賣 的投資依據 ?
◎ 根據上列說法,便可針對 金融股殖利率 設計一個 低買/高賣 的投資策略,其設計流程,如下 :
A. 金融類股 資料抓取及篩選 : 首先網路抓取 金融類股 的所有相關個股資料並篩選出股本大於500億的個股。
B. 金融個股 歷史股價資料抓取 : 依序抓取金融個股之歷史股價資料。
C. 金融個股 歷年除息資料抓取 : 依序抓取金融個股之歷年除息資料。
D. 計算個股 歷史殖利率 : 增加 除息 及 殖利率 欄位,計算出所有歷史資料之殖利率數值。
E. 計算殖利率區間均值 : 歸納並計算各區段殖利率數據,找出最適合 低買/高賣 的交易點位。
F. 設定金融個股 即時殖利率 : 利用DDE指令,抓取金融個股之即時收盤價,再計算出其殖利率。
金融類股 資料抓取及篩選
[ 金融類股 資料抓取及篩選 — 操作步驟 ]
0. 我使用的作業系統是 : Office 365。
1. 首先開啟 XQ全球贏家。
2. 再開啟 EXCEL 2022_殖利率排行表.xlsm 檔案,新增一個工作表 : 金融股總覽。
3. 切換到 XQ全球贏家,點選 : 左上角快捷鍵 ,進入功能表選項;再點選 : 自選股。如下圖 —
4. 進入 : 自選股表單,點選 : 上方 上市 工作夾,選擇 : 左方下拉式選單,往下移動,找到並點選 : 金融保險 類股。
5. 顯示以下金融類股後,在頁面中央,按 : 滑鼠右鍵,選擇 : Excel輸出 → 組合內所有商品。
6. 在 輸出欄位 中,只選擇 : 代碼 / 商品 / 股本 / 市值 等四個選項。( PS. 因為只針對大股本的金融公司,作策略分析,所以不需要其它欄位資料。)
7. 按下 : 確定 鈕後,系統會自動產生一個新活頁簿,出現下列帶有公式的金融股欄位資料。( PS. 帶有公式的資料,無法製作成表格。)
8. 先將以上帶有公式的資料全部選取,按 : 滑鼠右鍵,點選 : 複製,再切換到新增的工作表 : 金融股總覽,點選 : A1欄位,按 : 滑鼠右鍵,點選 : 貼上(數值)。
9. 如此便能根據下圖,選取: 所有欄位資料,點選 : 格式化為表格,確定 : 展現方式 後點下,進入第10步驟。
10. 出現下列 建立表格 視窗,桔框 : 是選擇建立表格的資料來源,紅框 : 是確定表格是否有標題 — 打勾。( PS. 因第一列有選取 : 標題。)
11. 按下 : 確定 後,所有資料便格式化為表格。
12. 格式化為表格後,點選 : 股本 ▼,選擇 : 從Z到A排序,資料 : 全選(預設)。
13. 所有金融股資料,會依照股本的 大 → 小 排列。
14. 篩選標的 : 股本 超過 500億 的個股。( PS. 將 500億以下股本的資料,全部刪除。)
金融存股 歷史股價資料抓取
[ 金融存股 歷史股價資料抓取 — 操作步驟 ]
1. 首先依據篩選出的15檔金融個股,各自新增EXCEL工作表,包含 : 歷史股價資料 及 歷年除息資料。
2. 利用下列 VBA程式,根據工作表(金融股總覽)之 商品及代碼 名稱,迅速新增15檔金融個股之 歷史股價資料及歷年除息資料 工作表。
[ 程式碼 / 新增工作表 ] :
Sub 新增工作表()
' 新增 金融個股歷史股價資料 工作表
xCount = 4
For I = 2 To 16
Sheets("金融股總覽").Select
Sheets.Add after:=Sheets(xCount) ' 新增工作表於 Sheets(4) -- 第4個工作表(金融股總覽)之後。
ActiveSheet.Name = Sheets("金融股總覽").Range("B" & I).Value ' 將工作表名稱 -- 改為 : B2儲存格的資料(中信金)名稱。
xCount = xCount + 1 ' 計數器 : 增加 1
Next
' 新增 金融個股歷年除息資料 工作表
yCount = 19
For J = 2 To 16
Sheets("金融股總覽").Select
Sheets.Add after:=Sheets(yCount) ' 新增工作表於 Sheets(19) -- 第19個工作表(臺企銀)之後。
ActiveSheet.Name = Sheets("金融股總覽").Range("A" & J).Value ' 將工作表名稱 -- 改為 : A2儲存格的資料(2891)名稱。
yCount = yCount + 1
Next
End Sub
3. 將XQ金融個股資料,依照股本大小排列。( PS. 點擊 : 下圖右上角 股本 位置,系統會自動 由大至小 排序。)
4. 點選第一個商品 : 中信金,雙擊 : 滑鼠左鍵,再由 商品盤勢 資料夾,切換至 技術分析 資料夾,如下圖 :
5. 調整欲下載的歷史股價年份資料 : 目標抓取十年份歷史資料 — 2013/01/01 ~ 現在日期。( PS. 參考上圖左下角 )
[ 記得 ] : 調整好下載日期,務必要點 : GO,系統才會進行日期資料調整。
6. 同 金融類股 資料抓取及篩選 的第5步驟,在技術線圖畫面中,按 : 滑鼠右鍵,選擇 : Excel輸出。
( PS. 等待幾秒 ……,系統會連結XQ,並自動開啟一個新工作表,名稱為 : 中信金(2891),用來存放下載的 中信金 歷史股價資料。)
7. 將新工作表 : 中信金(2891) 中的所有股價資料選取,複製到 步驟2 建立好的 中信金 工作表中,記得 : A1 為複製起點。
8. 將不需要的歷史欄位資料刪除,只剩下 : 時間 / 收盤價 / 成交量 3個欄位資料。
[ 重複動作 ] : 以上動作完成,便建構好第一個 中信金 的歷史股價資料,然後再將 第2 ~ 15個 金融個股,依照 步驟4 ~ 8 的動作,依序完成。
金融存股 歷年除息資料抓取
[ 金融存股 歷年除息資料抓取 — 操作步驟 ]
1. 點選 : 中信金 歷年除息網頁 — https://goodinfo.tw/tw/StockDividendPolicy.asp?STOCK_ID=2891&SHOW_ROTC= ,進入歷年股利政策一覽表。
或是經由 Goodinfo! 主頁 : https://goodinfo.tw,依照步驟1 — 填入股票查詢代碼 : 2891,點選 : 步驟2 — 股利政策,同樣能進入歷年股利政策一覽表。
2. 螢幕畫面往下拉,會出現如下圖的 股利政策 一覽表。
3. 選取 2022年 ~ 2013年 之股利政策資料,按 : 滑鼠右鍵,選擇 : 複製,或按 : 鍵盤 CTRL + C。
4. 再將複製的資料,貼在 工作表(2891)的 A2 開頭位置。
[ 重複動作 ] : 以上動作完成,便建構好第一個 中信金 的歷年(2013~2022)除息資料,然後再將 第2 ~ 15個 金融個股,依照 步驟1 ~ 4 的動作,依序完成。
計算個股歷史殖利率
[ 殖利率 計算公式 ] : 殖利率 = 股息 ÷ 股價
※ 根據抓取的 金融個股 歷史股價資料 及 歷年除息資料,便可利用殖利率公式,來計算歷年股價殖利率。
◎ 為了方便快速執行,直接以 VBA程式 來設計重複的步驟,完成 15檔 金融個股的殖利率計算。( PS. 資料完成,如下圖。)
[ VBA程式 — 計算歷年股價殖利率 ] :
[ 程式碼 / 計算歷年股價殖利率 ] :
Sub 增加_個股除息資料()
Dim lastRow As Integer
For xSheet = 5 To 19
Sheets(xSheet + 15).Select '選取"歷年除息"工作表
lastRow = Range("A2").End(xlDown).Row ' 藉由 A2 往下搜尋,找出最後一列列號。
Sheets(xSheet).Select '選取"歷史股價資料"工作表
bankRow = Range("A2").End(xlDown).Row ' 藉由 A2 往下搜尋,找出最後一列列號。
[D1] = "除息": [E1] = "殖利率" ' 欄位標題
For I = lastRow To 2 Step -1 ' 迴圈 : 從最後一列回數到第2列,每次減1
Sheets(xSheet + 15).Select
xYear = Range("A" & I).Text ' 依據迴圈列數 -- 抓取"年度"數值
Sheets(xSheet).Select
For J = 2 To bankRow
If xYear < Left(Range("A" & J), 4) Then Exit For ' 判斷式 : 歷史股價資料(年份) > 除息(年份),則跳脫本次迴圈!
If xYear = Left(Range("A" & J), 4) Then ' 判斷式 : 歷史股價資料(年份) = 除息(年份),往下執行 -- 資料複製。
Range("D" & J) = Sheets(xSheet + 15).Range("H" & I).Value ' 年度除息資料(H欄) 複製到 "歷史股價資料"工作表/除息欄位(D欄)
Range("E" & J) = Range("D" & J) / Range("B" & J) * 100 ' 計算殖利率,存放到 殖利率欄位(E欄)
End If
Next
Next
[G1] = "最大值" ' 欄位標題 -- 殖利率(最大值)
[G2] = "=MAX(E2:E" & bankRow & ")" ' 找出最大值
[H1] = "最小值" ' 欄位標題 -- 殖利率(最小值)
[H2] = "=MIN(E2:E" & bankRow & ")" ' 找出最小值
[J1] = "平均殖利率"
[J2] = "=SUM(E2:E" & bankRow & ")/(" & bankRow & "-1)" ' 算出平均值
Next
End Sub
計算殖利率區間均值
※ 計算殖利率區間均值的目的 : 歸納並計算各區段殖利率數據,找出最適合 低買/高賣 的交易點位。
[ 計算殖利率區間均值 — 操作步驟 ]
※ 利用 G2欄(最大值) 及 H2欄(最小值),來計算出每間隔 1 的殖利率區間,總共有多少個股歷史殖利率(E欄)資料符合條件,並求得其收盤均價。
◎ 為了搜尋符合條件的殖利率資料,還是要藉由 VBA程式 來設計搜尋條件並計算出區間收盤均價,再依序將 15檔 金融個股的資料,全部計算完成。( PS. 資料完成,如下圖。)
[ VBA程式 — 計算殖利率區間均值 ] :
[ 程式碼 / 計算殖利率區間均值 ]
Sub 計算各殖利率區間值()
For xBank = 5 To 19
Sheets(xBank).Select
lastRow = Range("A1").End(xlDown).Row
xSmall = Int([H2]) ' 殖利率最小值
xBig = Int([G2]) ' 殖利率最大值
xRow = 5 ' 顯示 : 殖利率區間欄位之開始列數
For xValue = xSmall To xBig ' 迴圈 : 最小 ~ 最大值
xTime = 0: xTotal = 0 ' 各區間累計總次數 -- 歸零 : 各區間累計收盤價數值 -- 歸零
For I = 2 To lastRow ' 資料搜尋 : 第2列 ~ 最後一列
If Range("E" & I) > xValue And Range("E" & I) < xValue + 1 Then ' 若殖利率>3 和 <4,則執行下面指令
xTime = xTime + 1: xTotal = xTotal + Range("B" & I) ' 各區間累計總次數 +1 : 各區間累計收盤價數值 : 加總
End If
Next
[G4] = "殖利率區間": [H4] = "次 數": [I4] = "總 數 值": [J4] = "均 值" ' 填入欄位標頭
Range("G" & xRow) = Str(xValue) & " ~" & Str(xValue + 1) ' 標示 :殖利率各區間值
Range("H" & xRow) = xTime ' 記錄 : 各區間累計總次數
Range("I" & xRow) = xTotal ' 記錄 : 各區間累計收盤價數值
If xTotal <> 0 Then Range("J" & xRow) = xTotal / xTime ' 計算 : 各區間之平均價
xRow = xRow + 1 ' 殖利率區間欄位之列數 +1
Next
Next
End Sub
15檔金融存股 殖利率區間列表
※ 根據 計算殖利率區間均值 的程式,會自動計算出 15檔金融個股 之殖利率區間數據 — 包含 各區間 符合條件次數 / 總收盤數值 及 均值。
[ 15檔金融存股 殖利率區間列表 ] :
★ 殖利率區間列表 : 顏色 : 淺綠色 — 賣出 / 淺橘色 — 買進 / 粉紅色 — 平均值 (同白色 — 不交易)。
1. 中信金 :
2. 開發金 :
3. 新光金 :
4. 合庫金 :
5. 兆豐金 :
6. 玉山金 :
7. 華南金 :
8. 國泰金 : 沒有規律 ( 放棄 )。
9. 第一金 :
10. 元大金 : 沒有規律 ( 放棄 )。
11. 富邦金 : 沒有規律 ( 放棄 )。
12. 台新金 :
13. 永豐金 :
14. 彰銀 :
15. 台企銀 :
※ 以上 15檔金融個股,除了 國泰金 / 元大金 / 富邦金 之外,其餘皆有 低買/高賣 的交易條件。
( PS. 至於 低買/高賣 的區間殖利率,各股均不相同,想如何 進/出 場 ? 請自行研判。)
[ 金融存股 買賣方式 ] :
◎ 存股買進 : 符合殖利率高檔買進條件時,可 按月 或 等待KD指標進入超賣區 買入。( PS. 至於籌碼每次下多少? 端看個人財務能力而定。
◎ 存股賣出 : 符合殖利率低檔賣出條件時,存股全部出清。
設定 金融存股 即時殖利率
[ 設定 金融存股 即時殖利率 — 操作步驟 ]
☆ 金融存股 即時殖利率 — 完成圖 :
1. 首先切換工作表至 金融股總覽,將 A欄(代碼) 及 B欄(商品) 資料,複製到 F ~ G欄。
2. H1欄 ~ L1欄 : 填入欄位標頭 — 收盤價 / 股利 / 殖利率 / 買進區間 / 賣出區間。
3. H2欄(收盤價) : 利用 RTD公式,抓取 F2欄(代碼) 的公司股票收盤價。
☆ 公式 : =RTD(“xqrtd.rtdserverxqlite”,,”” & F2 & “.TW-Price”)
4. H2欄公式完成,游標移至 H2欄右下角,出現 + 符號,雙擊 : 滑鼠左鍵,公式便會延伸複製到 H16欄。
5. I2 ~ I16欄(股利) : 將金融個股的股利資料,從各自 金融股除息 工作表中,複製到 I欄 股利位置。( PS. 如下圖 — 中信金 的複製動作。)
6. J2欄(殖利率) : 複製完15檔金融個股的股利資料後,再利用計算公式 : 殖利率 = 股息 ÷ 股價,算出所有各股 即時殖利率 數值。
☆ 公式 : =IFERROR(I2/H2*100,”尚未開盤”) — 會使用 IFERROR函式 的原因,是因為開盤前試撮,H欄(收盤價)尚未有數據進來,會導致J欄產生錯誤訊息,為避免這樣的錯誤情況,增加 IFERROR函式 來偵錯,發現錯誤,則顯示 : 尚未開盤。
7. J2欄公式完成,同步驟4,游標移至 J2欄右下角,出現 + 符號,雙擊 : 滑鼠左鍵,公式便會延伸複製到 J16欄。
8. K2 ~ K16欄(買進區間) : 將各 金融股除息 工作表中的 買進區間 的範圍資料,整合複製到 K欄(買進區間) 位置。( PS. 如下圖 — 中信金 的整合動作。)
9. L2 ~ L16欄(賣出區間) : 將各 金融股除息 工作表中的 賣出區間 的範圍資料,整合複製到 L欄(賣出區間) 位置。( PS. 如下圖 — 中信金 的整合動作。)
殖利率區間 <買進/賣出> 參考表
※ J欄(即時殖利率)數值,介於 K欄(買進區間) 或 L欄(賣出區間),則進行 買進 或 賣出 動作。
◎ M欄(10年高低差) : 是根據10年歷史買進區間的平均均值,減掉賣出區間的平均均值,而得到的利潤價差。
◎ N欄(5年高低差) : 是根據5年歷史買進區間的平均均值,減掉賣出區間的平均均值,而得到的利潤價差。
[ 殖利率區間 <買進/賣出> 參考表 ] :
★ 依照參考表的數據表現,黃色標註的三檔金融股,是最值得買進的標的。
◎ 兆豐金 : 近5年表現最好,低買高賣,不含歷年除息,利潤價差有 15.67元 之譜。
◎ 玉山金 : 近10年/5年的表現相對穩健,低買高賣,不含歷年除息,利潤價差皆在 10元 上下。
結論
本篇文章以 金融存股 為主軸,採樣15檔 : 股本500億以上之金融股,作歷史殖利率分析,再依據其慣性脈動,找出 低買/高賣 的投資區間。
會以「金融股」做投資標的,主要是因 金融股 配息穩定,股價波動不大,加上有政府的監管,不容易有被掏空或惡意倒閉的疑慮,這正適合小資族與退休族,作為理財投資的安心選擇。
文內程式的採樣標的,同樣也能改成 : 權重股 或 其它類型股票,製作方法皆相同,只是要花點時間下載歷史股價資料跟歷年除息而已。
( PS. 請注意一件事,一次就是15檔股票,因為VBA程式裡的迴圈設定,是寫死的;若懂得改迴圈參數,當然就沒問題了 ! )
若是對寫程式沒興趣,那文末的 殖利率區間 <買進/賣出> 參考表,提供您參考,表中各股的 買進/賣出 區間,皆不相同,請自行留意。
[ 提醒 ] : 建議您 ! 最起碼也要完成 設定 金融存股 即時殖利率 的操作步驟,這方便您隨時注意 各股殖利率 的變化,才好評估是否進場投資。
非常感謝您看到最後,若在閱讀的過程中,有任何疑問,歡迎您利用左下角 Messenger 直接提問或寫信給我,我會盡快回覆您,最後感謝您的閱讀,感恩 !
( PS. 如果喜歡 股小白 的文章,歡迎到 股小白臉書粉絲頁 點讚,衝人氣,目前不定期分析大盤趨勢,將來會有 每日公報 : 分析並公布跑分的個股資料,讓大家作為投資參考。 )
關 聯 文 章
- 上市櫃殖利率排行 設計重點 : 是將上市/上櫃的殖利率資料,做簡單的表格整合,再利用殖利率的排序選項,確定排列順序,輕鬆查找高殖利率股。
但高殖利率股的股價是「 真被低估 」,還是「 公司營運出問題 」,而造成股價過低的現象,這是投資人必須詳加確認的重點,以避免有誤判的情況發生。
2. 小資族必看 ☆ 金融存股 <低買高賣> 的無痛賺錢法
- [ 金融存股 ] 為主軸,哪幾支金融股最值得買進? 採樣15檔股本500億以上且穩定配息之金融股,按殖利率分析,再根據其慣性脈動,整合區間數據後,做出這15檔金融存股的殖利率區間買進/賣出參考表,同時計算出低買高賣的利潤價差,非常適合小資族與退休存股族,作為進/出場的投資參考。
V B A 資 源
- EXCEL & VBA功能 筆記 : 將針對文章中所使用的 EXCEL 及 VBA公式 / 工具操作 / 巨集設定 / 控制項的運用,做個整合記錄,方便大家在學習當下的參考與使用。
- VBA 提供相當多的指令用法,VBA指令 彙整筆記,將會陸續記錄 VBA文章 中,所用過的 VBA指令,方便學員們對照運用。
- 語法就是程式的文法。 使用者要與電腦溝通,就必須遵守這些規則。VBA程式語法 筆記 : 將針對 VBA文章 中所使用的 VBA程式語法,做個整合記錄,方便大家在學習當下參考與使用。