成長價值指標(Growth Value Index)

更新 發佈閱讀 21 分鐘
投資理財內容聲明

淡江大學葉怡成教授發明的指標

GVI=(B/P)×(1+ROE)^n
  • B/P:淨值股價比 →PB Ratio的倒數→反應股價目前是否夠便宜
  • ROE:股東權益報酬率→反應公司成長性
  • N:變數參數,控制GVI指標偏向成長面還是價值面,數值愈高表示愈偏向成長面,若以年度ROE計算(N=5);若以季度ROE計算(N=20)為佳

公式前半部(B/P)是衡量股票的價格是否便宜,後半部則是衡量企業的成長性。兩者綜合的用意是要找出價格便宜又具有成長性的企業。GVI指數愈高,代表越值得投資。

GVI指標應用的投資記律:

1. 只選股不擇時

2. 以20支股票形成投資組合

3. 每個月交易一次為最佳(迅速反應,耐心持有,定期換股,留強汰弱)

根據GVI用shell script寫一隻不盡完善的選股工具,如有需要請自行取用

#!/bin/bash

getColumnByName(){
csv_file="$1"
column_name="$2"
column_number=$(awk -F ',' 'NR==1 { for(i=1; i<=NF; i++) { if($i == column_name) { print i; break } } }' column_name="$column_name" "$csv_file")
echo $column_number
}
YMD=$(date +%Y%m%d)
day_of_week=$(date +%u)
if [ "$day_of_week" -eq 6 ] || [ "$day_of_week" -eq 7 ]; then
current_timestamp=$(date +%s)
days_to_friday=$(( day_of_week % 5 ))
friday_timestamp=$((current_timestamp - (days_to_friday * 24 * 3600)))
YSTDAY=$(date -d "@$friday_timestamp" "+%Y%m%d")
else
YSTDAY=$(date +%Y%m%d)
fi
echo $YSTDAY

FILE_INCOME="income_${YMD}.csv"
FILE_BS="bs_${YMD}.csv"
FILE_PRICE="price_${YMD}.csv"
FILE_MERGE="merge_${YMD}.csv"
FILE_RAW="raw_${YMD}.csv"
FILE_TMP="temp_${YMD}.tmp"

YYY=$(( $(date +%Y) - 1911 ))
SS="0$(( ($(date +%_m) - 1 ) / 3 ))"

if [ $SS -eq 0 ] ; then
YYY=$(( YYY - 1 ))
SS=04
fi

curl 'https://mops.twse.com.tw/mops/web/ajax_t163sb04' \
-H 'Accept: */*' \
-H 'Accept-Language: zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Cookie: jcsession=jHttpSession@199002cc; _ga=GA1.3.1478531031.1681117556; _gid=GA1.3.1147883650.1684137366; _gat=1' \
-H 'Origin: https://mops.twse.com.tw' \
-H 'Sec-Fetch-Dest: empty' \
-H 'Sec-Fetch-Mode: cors' \
-H 'Sec-Fetch-Site: same-origin' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36' \
-H 'sec-ch-ua: "Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
--data-raw "encodeURIComponent=1&step=1&firstin=1&off=1&isQuery=Y&TYPEK=sii&year=${YYY}&season=${SS}" \
--compressed -o $FILE_TMP

grep -o "t163sb04_${YMD}_..........csv" $FILE_TMP | sort -u | while read -r CSV ; do
curl 'https://mops.twse.com.tw/server-java/t105sb02' \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
-H 'Accept-Language: zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
-H 'Cache-Control: max-age=0' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Cookie: _ga=GA1.3.1478531031.1681117556; _gid=GA1.3.1147883650.1684137366' \
-H 'Origin: null' \
-H 'Sec-Fetch-Dest: document' \
-H 'Sec-Fetch-Mode: navigate' \
-H 'Sec-Fetch-Site: same-origin' \
-H 'Sec-Fetch-User: ?1' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36' \
-H 'sec-ch-ua: "Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
--data-raw "firstin=true&step=10&filename=${CSV}&saveCSV=Y" \
--compressed -o income.${CSV}
done
FILE_X=$(ls -l income.t163sb04_${YMD}_*.csv | awk '{print $5, $9}' | sort -nr | head -n 1 | awk '{print $2}')
cp $FILE_X $FILE_INCOME

curl 'https://mops.twse.com.tw/mops/web/ajax_t163sb05' \
-H 'Accept: */*' \
-H 'Accept-Language: zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Cookie: jcsession=jHttpSession@279737b5; _ga=GA1.3.1478531031.1681117556; _gid=GA1.3.1147883650.1684137366; _gat=1' \
-H 'Origin: https://mops.twse.com.tw' \
-H 'Sec-Fetch-Dest: empty' \
-H 'Sec-Fetch-Mode: cors' \
-H 'Sec-Fetch-Site: same-origin' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36' \
-H 'sec-ch-ua: "Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
--data-raw "encodeURIComponent=1&step=1&firstin=1&off=1&isQuery=Y&TYPEK=sii&year=${YYY}&season=${SS}" \
--compressed -o $FILE_TMP

grep -o "t163sb04_${YMD}_..........csv" $FILE_TMP | sort -u | while read -r CSV ; do
curl 'https://mops.twse.com.tw/server-java/t105sb02' \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
-H 'Accept-Language: zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
-H 'Cache-Control: max-age=0' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Cookie: _ga=GA1.3.1478531031.1681117556; _gid=GA1.3.1147883650.1684137366; _gat=1' \
-H 'Origin: null' \
-H 'Sec-Fetch-Dest: document' \
-H 'Sec-Fetch-Mode: navigate' \
-H 'Sec-Fetch-Site: same-origin' \
-H 'Sec-Fetch-User: ?1' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36' \
-H 'sec-ch-ua: "Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
--data-raw "firstin=true&step=10&filename=$CSV" \
--compressed -o bs.${CSV}
done

FILE_X=$(ls -l bs.t163sb04_${YMD}_*.csv | awk '{print $5, $9}' | sort -nr | head -n 1 | awk '{print $2}')
cp $FILE_X $FILE_BS

curl "https://www.twse.com.tw/rwd/zh/afterTrading/MI_INDEX?date=${YSTDAY}&type=ALLBUT0999&response=csv" \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
-H 'Accept-Language: zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
-H 'Connection: keep-alive' \
-H 'Referer: https://www.twse.com.tw/zh/trading/historical/mi-index.html' \
-H 'Sec-Fetch-Dest: document' \
-H 'Sec-Fetch-Mode: navigate' \
-H 'Sec-Fetch-Site: same-origin' \
-H 'Sec-Fetch-User: ?1' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36' \
-H 'sec-ch-ua: "Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
--compressed -o ${FILE_PRICE}

tr -d '\r' < ${FILE_PRICE} > $FILE_TMP
iconv -f big5 -t utf-8 $FILE_TMP | sed 's/\"證券代號\"/公司代號/g' | sort > $FILE_PRICE
join -t ',' -1 4 -2 4 $FILE_INCOME $FILE_BS | iconv -f big5 -t utf-8 | sort > $FILE_MERGE
join -t ',' -1 1 -2 1 $FILE_MERGE $FILE_PRICE > $FILE_RAW
sed -i '1h;1d;$!H;$!d;G' $FILE_RAW
sed -i '1s/\"//g' $FILE_RAW
tr -d '\r' < ${FILE_RAW} > $FILE_TMP; mv $FILE_TMP $FILE_RAW
C1=$(getColumnByName "$FILE_RAW" "每股參考淨值")
C2=$(getColumnByName "$FILE_RAW" "收盤價")
C3=$(getColumnByName "$FILE_RAW" "本期綜合損益總額")
C4=$(getColumnByName "$FILE_RAW" "權益總計")
C5=$(getColumnByName "$FILE_RAW" "基本每股盈餘(元)")
C6=$(getColumnByName "$FILE_RAW" "公司名稱")
FILE_GVI=gvi_${YMD}.csv
echo "每股參考淨值 收盤價 本期綜合損益總額 權益總計 基本每股盈餘(元)"
echo "$C1 $C2 $C3 $C4 $C5"
awk -F'","' -v C1="$C1" -v C2="$C2" -v C3="$C3" -v C4="$C4" -v C5="$C5" -v C6="$C6" '{print $1,$C1,$C2,$C3,$C4,$C5,$C6 }' $FILE_RAW | sed 's/^\"//' > $FILE_TMP
tail -n +2 $FILE_TMP | awk '{gvi=($3/$2) * ((1+4*$6/$2)^5) ; print $1,gvi,$7}' | sort -r -n -k 2 > $FILE_GVI

rm -f $FILE_TMP
rm -f income.*.csv bs.*.csv

5/29使用N=5選出來的資料節錄如下

3308 180.382 聯德
4763 68.9303 材料-KY
4943 62.6762 康控-KY
2739 61.1958 寒舍
8454 60.9364 富邦媒
8478 59.355 東哥遊艇
2707 57.6594 晶華
2727 45.1315 王品
2345 41.4049 智邦
2404 41.0772 漢唐
1808 40.6105 潤隆
1475 38.6233 業旺
8996 33.3226 高力
2395 29.795 研華
1519 27.2633 華城
3653 26.8355 健策
1795 26.6598 美時
2912 26.2441 統一超
3046 25.5417 建碁
6691 22.4088 洋基工程
6515 21.7231 穎崴
6235 20.2265 華孚
3023 19.8833 信邦
2480 18.2976 敦陽科
2364 18.2192 倫飛
9943 18.0576 好樂迪
1609 16.7172 大亞




留言
avatar-img
蘇波麟投資與生活
20會員
57內容數
佛系投資.估值優先
2025/04/09
本文分享2024年10月至2025年3月VOO、SCZ、TLT的月度動量數據以及交易紀錄。回顧此期間的投資表現,發現紀律操作可以避開4月的大跌。
Thumbnail
2025/04/09
本文分享2024年10月至2025年3月VOO、SCZ、TLT的月度動量數據以及交易紀錄。回顧此期間的投資表現,發現紀律操作可以避開4月的大跌。
Thumbnail
2025/03/20
透過AI開發的「持股法說會Telegram通知」小工具,利用Telegram即時通訊,推播個人持股公司法說會訊息,不再錯過重要資訊。
Thumbnail
2025/03/20
透過AI開發的「持股法說會Telegram通知」小工具,利用Telegram即時通訊,推播個人持股公司法說會訊息,不再錯過重要資訊。
Thumbnail
2025/02/26
分享個人使用預估EPS自動化工具及 Telegram 通知提升效率的經驗,以紅、橘、綠燈號顯示股價與預估便宜價/昂貴價的比較結果。
Thumbnail
2025/02/26
分享個人使用預估EPS自動化工具及 Telegram 通知提升效率的經驗,以紅、橘、綠燈號顯示股價與預估便宜價/昂貴價的比較結果。
Thumbnail
看更多
你可能也想看
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
在<財報狗教你挖好股穩賺20%>一書中財報狗提出一個指標來衡量企業的成長性,也就是觀察短期營收年增率是否高於長期營收成長率。那這個指標是否真的能為我們帶來超額報酬嗎?答案是肯定的,以下的文章將會藉由數據回測證明這點。
Thumbnail
在<財報狗教你挖好股穩賺20%>一書中財報狗提出一個指標來衡量企業的成長性,也就是觀察短期營收年增率是否高於長期營收成長率。那這個指標是否真的能為我們帶來超額報酬嗎?答案是肯定的,以下的文章將會藉由數據回測證明這點。
Thumbnail
雖然現在個人美股投資的方法已經都走 Beta + 資產配置,操作個股部位、關心估值/評價不會是主要關注的焦點 (工作量升級 + 照顧嫩嬰 = 更有限的專注力),不過本業的分析師工作還是需要充分理解它,今天就來好好談一下我對估值/評價的思考方法論,作為我 2023 年的第一篇專欄文章。
Thumbnail
雖然現在個人美股投資的方法已經都走 Beta + 資產配置,操作個股部位、關心估值/評價不會是主要關注的焦點 (工作量升級 + 照顧嫩嬰 = 更有限的專注力),不過本業的分析師工作還是需要充分理解它,今天就來好好談一下我對估值/評價的思考方法論,作為我 2023 年的第一篇專欄文章。
Thumbnail
認識「本益成長比」 今天來認識一下「本益成長比」(PEG),也許有機會發現未來的飆股喔!! 我們都知道,評價股價是否合理的指標,常用的是「本益比」,亦即股價與每股盈餘的比值。本益比愈高,代表投資報酬率愈低,相對的股價就愈高,一般普通接受的合理本益比約為15倍左右。 但是,其實市場上…
Thumbnail
認識「本益成長比」 今天來認識一下「本益成長比」(PEG),也許有機會發現未來的飆股喔!! 我們都知道,評價股價是否合理的指標,常用的是「本益比」,亦即股價與每股盈餘的比值。本益比愈高,代表投資報酬率愈低,相對的股價就愈高,一般普通接受的合理本益比約為15倍左右。 但是,其實市場上…
Thumbnail
大綱: 1.可能會遇到的問題 2.時間區間的漲跌幅報酬計算 (1)抓取歷史股價 (2)抓取特定日期的收盤價 (3)自動抓取最後一筆報價資料 (4)VLOOKUP欄位在抓取日期的問題 3.抓取年初跟今日報價計算累積報酬 4.歷史股價平均值計算 5.標準差的計算 6.波動度的比較
Thumbnail
大綱: 1.可能會遇到的問題 2.時間區間的漲跌幅報酬計算 (1)抓取歷史股價 (2)抓取特定日期的收盤價 (3)自動抓取最後一筆報價資料 (4)VLOOKUP欄位在抓取日期的問題 3.抓取年初跟今日報價計算累積報酬 4.歷史股價平均值計算 5.標準差的計算 6.波動度的比較
Thumbnail
阿福投資週報內容包括投資洞察、投資組合個股分析、買賣策略與對帳單、觀盤重點與投資計畫,透過方格子訂閱專題每週發佈,提供投資朋友參考。
Thumbnail
阿福投資週報內容包括投資洞察、投資組合個股分析、買賣策略與對帳單、觀盤重點與投資計畫,透過方格子訂閱專題每週發佈,提供投資朋友參考。
Thumbnail
影片展示 營收月年增率用來做什麼? 【一起學程式】這次要帶大家來一起看一下如何用EXCEL VBA抓取營收報價,抓取營收報價來看營收年增率與股價之間的表現情況。 月營收年增率= 月營收YoY =( 當年某月營收-去年某月營收)÷ 去年某月營收x 100% 在這篇你會學到的技巧有: 程式設計的構想
Thumbnail
影片展示 營收月年增率用來做什麼? 【一起學程式】這次要帶大家來一起看一下如何用EXCEL VBA抓取營收報價,抓取營收報價來看營收年增率與股價之間的表現情況。 月營收年增率= 月營收YoY =( 當年某月營收-去年某月營收)÷ 去年某月營收x 100% 在這篇你會學到的技巧有: 程式設計的構想
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News