<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>股票策略 &#8211; FinLab</title>
	<atom:link href="https://www.finlab.tw/category/%E8%82%A1%E7%A5%A8%E7%AD%96%E7%95%A5/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.finlab.tw</link>
	<description>深入淺出的量化投資，讓你在在茫茫股海中，找到專屬於自己的投資方法</description>
	<lastBuildDate>Wed, 08 Oct 2025 02:05:33 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.11</generator>

<image>
	<url>https://www.finlab.tw/wp-content/uploads/2020/07/favicon.png</url>
	<title>股票策略 &#8211; FinLab</title>
	<link>https://www.finlab.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">179699571</site>	<item>
		<title>把「靈感」煉成「因子」：從感覺到證據的逆襲</title>
		<link>https://www.finlab.tw/factor_analysis_3_factor/</link>
					<comments>https://www.finlab.tw/factor_analysis_3_factor/#respond</comments>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Fri, 22 Aug 2025 04:09:08 +0000</pubDate>
				<category><![CDATA[FinLab 量化平台]]></category>
		<category><![CDATA[Python新手教學]]></category>
		<category><![CDATA[PYTHON財經]]></category>
		<category><![CDATA[基本面分析]]></category>
		<category><![CDATA[投資新手]]></category>
		<category><![CDATA[股票策略]]></category>
		<category><![CDATA[財經PYTHON教學]]></category>
		<category><![CDATA[PYTHON]]></category>
		<category><![CDATA[程式交易]]></category>
		<category><![CDATA[股票]]></category>
		<category><![CDATA[量化投資]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=6685</guid>

					<description><![CDATA[你一定懂那種瞬間——螢幕上跳出一檔飆股，心裡直覺「它會漲」。但直覺不會每次都對。於是我們決定反過來做：把靈感拆 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img width="683" height="1024" src="https://www.finlab.tw/wp-content/uploads/2025/08/image-2-683x1024.png" alt="image 2" class="wp-image-6701" srcset="https://www.finlab.tw/wp-content/uploads/2025/08/image-2-683x1024.png 683w, https://www.finlab.tw/wp-content/uploads/2025/08/image-2-200x300.png 200w, https://www.finlab.tw/wp-content/uploads/2025/08/image-2-768x1152.png 768w, https://www.finlab.tw/wp-content/uploads/2025/08/image-2.png 1024w" sizes="(max-width: 683px) 100vw, 683px" title="把「靈感」煉成「因子」：從感覺到證據的逆襲 1"><figcaption>封面圖片</figcaption></figure>



<p></p>



<p>你一定懂那種瞬間——螢幕上跳出一檔飆股，心裡直覺「它會漲」。但直覺不會每次都對。於是我們決定反過來做：把靈感拆成可驗證的「因子」，把「為什麼漲」說清楚，然後用資料驗證。</p>



<p>難嗎？不簡單。因為我們有工具可以把難的事做得乾淨俐落。</p>



<h2><strong>和一般做法，哪裡不一樣？</strong></h2>



<p>一般做法：先選幾個看起來厲害的指標，湊一套回測；結果好就覺得是神功，結果差就再換一套。</p>



<p>我們的做法：先把策略拆解，再逐一檢驗每個因子的線索：它帶來的超額報酬是多少？在什麼狀態下有效？會不會太擁擠（大家都在用）？彼此相關性高不高？</p>



<p>沒有 Finlab 我們得自己處理：資料下載、清洗、對齊、換股對齊、月/季頻率對接… 一個環節錯了，結果就不可信。</p>



<p>有了 finlab，我們可以直接用一致頻率的資料集與安全的 resample 邏輯，把時間對齊、避免偷看未來；剩下的，就是認真跟資料搏鬥。</p>



<h2><strong>我們的範例策略：</strong></h2>



<p>三個最基本、卻常被忽略「為什麼」的因子：市值、營收動能、價格動能。</p>



<ul><li>為什麼要小市值？因為小市值在資訊修正與資金挹注時，彈性常常更大。</li><li>為什麼看營收加速？因為是最扎實的推力。</li><li>為什麼要動能？因為市場的從眾與慣性，往往延長趨勢。</li></ul>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab import data, backtest

marketcap = data.get('etl:market_value')
revenue   = data.get('monthly_revenue:當月營收')
close     = data.get('price:收盤價')

cond_smallcap = marketcap.rank(pct=True, axis=1) &lt; 0.3
cond_revgro   = (revenue.average(3) / revenue.average(12)).rank(pct=True, axis=1) &gt; 0.7
cond_momentum = (close / close.shift(20)).rank(pct=True, axis=1) &gt; 0.7

pos = cond_smallcap &amp; cond_revgro &amp; cond_momentum
report = backtest.sim(pos, resample='ME', upload=False)
report.display()</code></pre>



<blockquote class="wp-block-quote"><p><strong>為什麼要用 rank？</strong>比較的是「相對位置」，而不是絕對數值。</p></blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="1011" src="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-10.46.02@2x-1024x1011.png" alt="CleanShot 2025 08 22 at 10.46.02@2x" class="wp-image-6687" srcset="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-10.46.02@2x-1024x1011.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-10.46.02@2x-300x296.png 300w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-10.46.02@2x-768x758.png 768w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-10.46.02@2x-1536x1516.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-10.46.02@2x.png 1544w" sizes="(max-width: 1024px) 100vw, 1024px" title="把「靈感」煉成「因子」：從感覺到證據的逆襲 2"><figcaption>回測結果</figcaption></figure>



<h2><strong>把策略拆成可驗證的語言：特徵 &amp; 標籤</strong></h2>



<p>先定義我們「到底要預測什麼」：未來一段時間的超額報酬（相對市場平均）。這是策略的真目標，而不是單看漲跌。</p>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab import data
import finlab.ml.feature as feature
import finlab.ml.label as label

features = feature.combine({
    'marketcap' : cond_smallcap,
    'revenue'   : cond_revgro,
    'momentum'  : cond_momentum
}, resample='ME')

labels = label.excess_over_mean(index=features.index, resample='ME')</code></pre>



<blockquote class="wp-block-quote"><p>為什麼用超額報酬？ 因為我們將焦點從「追隨市場」轉向「超越對手」。我們比較的不是大盤的絕對速度，而是相對於競爭者的反應速度。</p></blockquote>



<h2><strong>因子報酬（Factor Return）：它到底有沒有賺到「解釋力」？</strong></h2>



<p>把每個因子的「獨立效果」抽出來，看長期累積報酬線條。線條不只代表報酬，更是「這個因子值得被相信」的證詞。</p>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab.tools.factor_analysis import calc_factor_return
from finlab.plot import plot_line

factor_return = calc_factor_return(features, labels).cumsum()
plot_line(factor_return, unit='.0%', title='因子累積報酬')</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" width="788" height="435" src="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.03.52.png" alt="CleanShot 2025 08 22 at 11.03.52" class="wp-image-6688" srcset="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.03.52.png 788w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.03.52-300x166.png 300w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.03.52-768x424.png 768w" sizes="(max-width: 788px) 100vw, 788px" title="把「靈感」煉成「因子」：從感覺到證據的逆襲 3"><figcaption>因子累積報酬</figcaption></figure>



<blockquote class="wp-block-quote"><p><strong>為什麼先看累積線？</strong> 因為短期雜訊會騙人，長期線條的斜率與轉折，才能看出它是偶然還是規律。</p></blockquote>



<h2><strong>因子集中度（Centrality）：因子擁擠嗎？</strong></h2>



<p>當一個因子被同時大量採用，接著因子趨向擁擠、碰到回檔風險上升。我們用主成分分析的權重，量化「共同性」。</p>



<ul><li>數值大：近期用它選股都賺，表示擁擠；下一步要<strong>警戒回檔</strong>。</li><li>數值小：近期表現差，反而可能接近「冷門反擊」的起點。</li></ul>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab.tools.factor_analysis import calc_centrality
centrality = calc_centrality(calc_factor_return(features, labels), 12)

plot_line(centrality, title='因子集中度')</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="576" src="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.12.41@2x-1024x576.png" alt="CleanShot 2025 08 22 at 11.12.41@2x" class="wp-image-6689" srcset="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.12.41@2x-1024x576.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.12.41@2x-300x169.png 300w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.12.41@2x-768x432.png 768w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.12.41@2x-1536x863.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.12.41@2x-800x450.png 800w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.12.41@2x.png 1580w" sizes="(max-width: 1024px) 100vw, 1024px" title="把「靈感」煉成「因子」：從感覺到證據的逆襲 4"><figcaption>因子集中度</figcaption></figure>



<blockquote class="wp-block-quote"><p>為什麼要看擁擠度？ 因為市場是動態的，當所有人一起衝進同一個因子，邊際報酬就會變脆弱。</p></blockquote>



<h2>因子貢獻度 (<strong>Shapley Values)：把功勞分清楚</strong></h2>



<p>我們不只看「有賺」，還要知道「誰在出力」。Shapley 用公平分配的方式，拆解各因子的邊際貢獻。</p>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab.tools.factor_analysis import calc_shapley_values
shapley = calc_shapley_values(features, labels)
plot_line(shapley, title='因子貢獻度')</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="572" src="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.16.23@2x-1024x572.png" alt="CleanShot 2025 08 22 at 11.16.23@2x" class="wp-image-6690" srcset="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.16.23@2x-1024x572.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.16.23@2x-300x168.png 300w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.16.23@2x-768x429.png 768w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.16.23@2x-1536x859.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.16.23@2x.png 1578w" sizes="(max-width: 1024px) 100vw, 1024px" title="把「靈感」煉成「因子」：從感覺到證據的逆襲 5"><figcaption>因子貢獻度</figcaption></figure>



<blockquote class="wp-block-quote"><p>為什麼要拆貢獻？ 因為多因子策略容易「誰都沾一點」，但在壓力時刻，你要知道要砍誰、留誰。</p></blockquote>



<h2><strong>IC（Information Coefficient）：預測力的體檢表</strong></h2>



<p>我們把分數和未來報酬做相關（可用 rank），長期 IC 穩定偏正、且不是只靠少數極端時期拉高，才叫做真正的「可預測」。</p>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab.tools.factor_analysis import calc_ic

features_ic = {
    'marketcap': -marketcap,  # 小市值用負號
    'revenue'  : revenue.average(3) / revenue.average(12),
    'momentum' : close / close.shift(20),
}
features_ic = feature.combine(features_ic, resample='ME')

ic_df = calc_ic(features_ic, labels, rank=True)
plot_line(ic_df, title='因子相關性')</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="572" src="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.35.02@2x-1024x572.png" alt="CleanShot 2025 08 22 at 11.35.02@2x" class="wp-image-6692" srcset="https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.35.02@2x-1024x572.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.35.02@2x-300x168.png 300w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.35.02@2x-768x429.png 768w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.35.02@2x-1536x858.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/08/CleanShot-2025-08-22-at-11.35.02@2x.png 1582w" sizes="(max-width: 1024px) 100vw, 1024px" title="把「靈感」煉成「因子」：從感覺到證據的逆襲 6"><figcaption>因子相關性</figcaption></figure>



<blockquote class="wp-block-quote"><p><strong>為什麼要看 IC？</strong> 因為報酬可能來自風格或偶然，但「相關性」在長期裡更難偽裝。</p></blockquote>



<h2><strong>趨勢偵測：隨時間變化數值</strong></h2>



<p>我們用回歸去看「集中度、貢獻、IC」的趨勢：上升？下降？還是平？</p>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab.tools.factor_analysis import calc_regression_stats
centrality_trend = calc_regression_stats(centrality)</code></pre>



<p></p>



<ul><li><strong>p 值小 + 斜率正</strong>：真正在升溫；</li><li><strong>p 值小 + 斜率負</strong>：退潮真正發生；</li><li><strong>解釋力低（R²小）</strong>：暫時別下定論，當它不存在。</li></ul>



<figure class="wp-block-table"><table><thead><tr><th><strong>p_value</strong></th><th><strong>r_squared</strong></th><th><strong>slope</strong></th><th><strong>trend</strong></th><th><strong>含義</strong></th></tr></thead><tbody><tr><td><strong>小</strong></td><td><strong>高</strong></td><td><strong>正</strong></td><td>up</td><td>強烈且穩定的上升趨勢</td></tr><tr><td><strong>小</strong></td><td><strong>高</strong></td><td><strong>負</strong></td><td>down</td><td>強烈且穩定的下降趨勢</td></tr><tr><td><strong>小</strong></td><td><strong>低</strong></td><td>任意</td><td>flat</td><td>趨勢存在但效果小/雜訊大</td></tr><tr><td><strong>大</strong></td><td><strong>高</strong></td><td>任意</td><td>flat</td><td>樣本少，雜訊高，無法判斷</td></tr><tr><td><strong>大</strong></td><td><strong>低</strong></td><td>任意</td><td>flat</td><td>基本無趨勢且模型無解釋力</td></tr></tbody></table></figure>



<h3><strong>實例分析</strong></h3>



<ul><li><strong>Marketcap (市值因子)</strong></li></ul>



<p><code>slope: -0.000111 (負值) </code><br><code>p_value: 3.10e-17 (極度顯著) </code><br><code>r_squared: 0.40 (中等偏強解釋力) </code><br><code>trend: down</code></p>



<p><strong>解讀</strong>: 市值因子的集中度呈現非常強烈且統計上極度顯著的下降趨勢。</p>



<ul><li><strong>Revenue (營收因子)</strong></li></ul>



<p><code>slope: 0.000018 (正值)</code><br><code>p_value: 0.0048 (顯著) </code><br><code>r_squared: 0.056 (解釋力較弱) </code><br><code>trend: flat (因 r_squared &lt; 0.1)</code></p>



<p><strong>解讀</strong>: 營收因子有統計上顯著的上升趨勢，但由於解釋力不足 (r_squared &lt; 0.1)，被歸類為 flat。</p>



<ul><li><strong>Momentum (動能因子)</strong></li></ul>



<p><code>slope: 0.000093 (顯著正值) </code><br><code>p_value: 1.14e-17 (極度顯著) </code><br><code>r_squared: 0.41 (中等偏強解釋力) </code><br><code>trend: up</code></p>



<p><strong>解讀</strong>: 動能因子的集中度呈現非常強烈且統計上極度顯著的上升趨勢。這是一個明確的信號，表明動能因子非常「熱門」，大量資金正在追逐這個策略。</p>



<blockquote class="wp-block-quote"><p><strong>為什麼做趨勢？</strong> 因為資金有輪動。與其死守某一信仰，不如跟著證據調整權重。</p></blockquote>



<h2>總結</h2>



<h3>解決分析前的難點</h3>



<ul><li>多頻資料對齊：日價、月營收、季財報……沒有統一索引會災難。</li><li>風險：偷看未來、不同頻率窗口誤用，都會讓結果「看起來很美」。</li><li>擁擠：策略跑出來以後，大家都用，它就不香了。這就是為什麼<strong>Centrality</strong>與<strong>趨勢偵測</strong>是必要的。</li><li>因子工具把「報酬、擁擠、貢獻、IC」變成<strong>可重複</strong>的研究流程。</li></ul>



<h3><strong>行動建議：你可以直接用這篇當「研究框架」模板</strong></h3>



<ol><li>用 feature.combine/label.excess_over_mean 定義問題；</li><li>跑 因子報酬 / 集中度 / Shapley / IC / 趨勢 五件套；</li><li>用趨勢結果去<strong>調整權重</strong>，而不是迷信單因子。</li></ol>



<p>歡迎參考&nbsp;<a href="https://colab.research.google.com/drive/1pa27imv0k_O-qRKjg4fSr9Eq4tx-GwyL?usp=sharing" data-type="URL" data-id="https://colab.research.google.com/drive/1pa27imv0k_O-qRKjg4fSr9Eq4tx-GwyL?usp=sharing" target="_blank" rel="noopener">Colab 範例檔</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/factor_analysis_3_factor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6685</post-id>	</item>
		<item>
		<title>復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」</title>
		<link>https://www.finlab.tw/%e5%be%a9%e5%88%bb%e8%88%87%e5%84%aa%e5%8c%96-00900-%ef%bc%9a%e4%bd%bf%e7%94%a8-ic-decay-%e5%84%aa%e5%8c%96%e9%ab%98%e8%82%a1%e6%81%af%e7%ad%96%e7%95%a5%e6%88%90%e3%80%8c%e9%95%b7%e8%b7%91%e8%bb%8d/</link>
					<comments>https://www.finlab.tw/%e5%be%a9%e5%88%bb%e8%88%87%e5%84%aa%e5%8c%96-00900-%ef%bc%9a%e4%bd%bf%e7%94%a8-ic-decay-%e5%84%aa%e5%8c%96%e9%ab%98%e8%82%a1%e6%81%af%e7%ad%96%e7%95%a5%e6%88%90%e3%80%8c%e9%95%b7%e8%b7%91%e8%bb%8d/#respond</comments>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Tue, 03 Jun 2025 08:02:23 +0000</pubDate>
				<category><![CDATA[VIP文章]]></category>
		<category><![CDATA[FinLab 量化平台]]></category>
		<category><![CDATA[Python新手教學]]></category>
		<category><![CDATA[PYTHON財經]]></category>
		<category><![CDATA[基本面分析]]></category>
		<category><![CDATA[投資新手]]></category>
		<category><![CDATA[股票策略]]></category>
		<category><![CDATA[財經PYTHON教學]]></category>
		<category><![CDATA[PYTHON]]></category>
		<category><![CDATA[VIP限定]]></category>
		<category><![CDATA[程式交易]]></category>
		<category><![CDATA[股票]]></category>
		<category><![CDATA[選股策略]]></category>
		<category><![CDATA[量化投資]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=6620</guid>

					<description><![CDATA[前言 市場上的高股息 ETF 各有特色，這次將以富邦特選高股息30（00900）為例，分析其追蹤的「臺灣指數公 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" width="820" height="1024" src="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-10.03.35@2x-820x1024.png" alt="CleanShot 2025 05 22 at 10.03.35@2x" class="wp-image-6648" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-10.03.35@2x-820x1024.png 820w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-10.03.35@2x-240x300.png 240w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-10.03.35@2x-768x959.png 768w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-10.03.35@2x-1229x1536.png 1229w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-10.03.35@2x.png 1436w" sizes="(max-width: 820px) 100vw, 820px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 7"><figcaption>封面圖片</figcaption></figure>



<h2>前言</h2>



<p>市場上的高股息 ETF 各有特色，這次將以富邦特選高股息30（00900）為例，分析其追蹤的「<strong>臺灣指數公司特選臺灣上市上櫃高股息30指數</strong>」。這檔ETF 的選股邏輯強調多次審核與財務、流動性標準，選擇高股息且具備穩定配息能力的個股。</p>



<h3>00900 特色整理</h3>



<blockquote class="wp-block-quote"><p>一年三次審核，嚴選 30 檔高息股；納入市值＋流動性＋營業利益安全閥。</p></blockquote>



<figure class="wp-block-table"><table><thead><tr><th>特色</th><th>說明</th><th>帶來的好處</th></tr></thead><tbody><tr><td><strong>三次定審（4 / 7 / 12 月）</strong></td><td>每次重新計算股利率</td><td>配息資訊更新更即時</td></tr><tr><td><strong>流動性硬指標</strong></td><td>近 3 個月日均成交金額前 90 %</td><td>降低買賣滑價</td></tr><tr><td><strong>營業利益必須為正</strong></td><td>最近四季 &gt; 0</td><td>過濾偽高息股</td></tr></tbody></table></figure>



<h2><strong>復刻 00900：研究流程全解析</strong></h2>



<h3><strong>資料來源與規則拆解</strong></h3>



<p>根據<a style="font-weight: bold;" href="https://etrade.fsit.com.tw/homelink/Prospectus/94.pdf" target="_blank" rel="noopener">公開說明書</a>，復刻「<strong>特選臺灣上市上櫃高股息30指數（00900）</strong>」的成分股篩選與調整流程，重點如下：</p>



<h3><strong><strong>初始採樣母體</strong></strong></h3>



<ul><li>臺灣上市與上櫃普通股股票為基礎。</li><li>選取發行市值前 200 大股票。</li></ul>



<h3><strong>流動性條件</strong></h3>



<ul><li>最近三個月日均成交金額排名前 90%者</li></ul>



<h3><strong>財務健全性與指標篩選</strong></h3>



<ul><li><strong>定期審核</strong>（四月、七月、十二月）：最近四季營業利益總和須為正</li></ul>



<h3><strong>股利率計算</strong></h3>



<ul><li><strong>四月定審（第一次）</strong><ul><li><strong>已公告現金股利者</strong>：股利率 = 最近四季現金股利總和 ÷ 審核資料截止日股價</li><li><strong>未公告現金股利者</strong>：股利率 = 最近四季 EPS 總和 × 過去三年平均現金股利發放率 ÷ 審核資料截止日股價</li></ul></li><li><strong>七月定審（第二次）</strong><ul><li>股利率 = 最近四季現金股利總和 ÷ 審核資料截止日股價</li></ul></li><li><strong>十二月定審（第三次）</strong><ul><li>股利率 = 最近四季 EPS 總和 × 過去三年平均現金股利發放率 ÷ 審核資料截止日股價</li></ul></li></ul>



<h3><strong>成分股數量</strong></h3>



<ul><li><strong>每次均固定 30 檔</strong></li></ul>



<h3><strong>指數調整與生效時點</strong></h3>



<ul><li><strong>每年三次定期審核</strong>：4月、7月、12月第7個交易日為基準日</li></ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1>復刻結果</h1>



<p>在經過一連串比對後，復刻而得的策略股池與原版 00900 報酬率曲線有高度相關。這意味著，我們的 復刻版 00900 確實能有效重現 00900 的選股結果。</p>



<p><strong>相關性分析：</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" width="691" height="1024" src="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.25.29@2x-691x1024.png" alt="CleanShot 2025 05 22 at 11.25.29@2x" class="wp-image-6664" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.25.29@2x-691x1024.png 691w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.25.29@2x-202x300.png 202w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.25.29@2x.png 758w" sizes="(max-width: 691px) 100vw, 691px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 8"><figcaption>相關性分析</figcaption></figure></div>


<p><strong>復刻 00900 報酬</strong>&nbsp;:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" width="1024" height="886" src="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.26.49@2x-1024x886.png" alt="CleanShot 2025 05 22 at 11.26.49@2x" class="wp-image-6666" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.26.49@2x-1024x886.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.26.49@2x-300x260.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.26.49@2x-768x664.png 768w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.26.49@2x-1536x1329.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.26.49@2x.png 1542w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 9"><figcaption><strong>復刻 00900 報酬</strong></figcaption></figure></div>


<p>我們的「<strong>復刻版 00900</strong>」與官方版本高相關，證明邏輯拆解合理。</p>



<h2>進階優化</h2>



<h3>IC Decay：讓「好因子」真正常駐</h3>



<h4>什麼是IC Decay？為什麼分析IC Decay很重要？</h4>



<blockquote class="wp-block-quote"><p>想像一下：同一份藏寶圖，今天不只告訴你哪裡有金礦，還附上一張「礦脈多久才會枯竭」的熱力圖——這就是 IC Decay 帶來的視野。</p></blockquote>



<p>「IC」（Information Coefficient，資訊係數）是用來衡量一個因子對未來報酬預測力的重要指標，IC 高代表這個因子和未來報酬關聯性強。</p>



<p><strong>IC Decay</strong>，則是指「這個預測力會隨時間流逝而衰退嗎？衰退速度如何？」</p>



<p>簡單來說，我們不僅看因子對短期報酬有沒有預測力，也要觀察對長期如 60天、120天以後的報酬還有沒有預測力。</p>



<ul><li><strong>IC Decay 平緩：</strong> 這個因子在不同持有期間都有效，適合長線</li><li><strong>IC Decay 快：</strong> 因子適合短線，長線預測力不佳</li></ul>



<p><strong>應用在多因子策略：</strong></p>



<ul><li>幫助我們挑出「<strong>耐久型</strong>」的好因子</li><li>可以依照持股週期調整因子組合，強化策略穩定性</li></ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2>用 IC Decay 檢驗 00900 因子品質</h2>



<p>我們針對前述幾個因子，進行 IC Decay分析，步驟如下：</p>



<ol><li>計算各因子對不同持有期（如20天、60天、120天）的 IC</li><li>畫出IC Decay曲線，觀察哪些因子「<strong>報酬預測力持久</strong>」</li><li>排除短線效應太明顯、容易失效的因子</li></ol>



<figure class="wp-block-image size-full"><img loading="lazy" width="1000" height="800" src="https://www.finlab.tw/wp-content/uploads/2025/05/newplot.png" alt="newplot" class="wp-image-6625" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/newplot.png 1000w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot-300x240.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot-768x614.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 10"><figcaption>IC mean &amp;  ICIR Decay</figcaption></figure>



<h4><strong>重點解讀：</strong></h4>



<ul><li><strong>市值</strong>：IC IR 明顯是負值，且隨預測天數加長而下降，代表市值這個因子的預測不只失準，而且不穩定。</li><li><strong>七月股利率</strong>、<strong>十二月股利率</strong>：IC IR 明顯隨持有天數增加而上升（橘線到 1.5 以上），代表這兩個因子隨時間拉長後，預測力不只穩定，甚至更強。</li></ul>



<h2>多因子組合 IC Decay</h2>



<p>接下來，我們將這些因子進行整合，<strong>以組合分析的方式評估其綜合效果</strong>。</p>



<h4>分析 120 天預測期的前三名因子組合: </h4>



<ul><li><strong>七月股利率</strong></li><li><strong>七月股利率</strong> + <strong>十二月股利率 </strong></li><li><strong>四月股利率</strong> + <strong>七月股利率</strong></li></ul>



<figure class="wp-block-image size-full"><img loading="lazy" width="1000" height="800" src="https://www.finlab.tw/wp-content/uploads/2025/05/newplot2.png" alt="newplot2" class="wp-image-6627" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/newplot2.png 1000w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot2-300x240.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot2-768x614.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 11"><figcaption>120天預測期 &#8211; 最佳因子組合的IC和IC IR衰減分析</figcaption></figure>



<p><strong>綜合解讀 ：</strong></p>



<ul><li><strong>組合因子</strong>（如「<strong>七月股利率 + 十二月股利率</strong>」）能提供更高的平均預測能力 (IC Mean)。</li><li>單因子「<strong>七月股利率</strong>」或「<strong>七月股利率+十二月股利率</strong>」的組合，在預測的穩定性 (IC IR) 上可能更優，尤其是在較長的預測期。</li><li>整體來看，這些以股利率為基礎的因子組合在中長期（如 60 天至 200 天）展現出較好的預測潛力，並且其預測的穩定性隨時間增長。</li></ul>



<h4>分析最佳單一因子 IC Decay : 七月股利率 ,十二月股利率 </h4>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" src="https://www.finlab.tw/wp-content/uploads/2025/05/newplot3.png" alt="newplot3" class="wp-image-6629" width="840" height="672" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/newplot3.png 1000w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot3-300x240.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot3-768x614.png 768w" sizes="(max-width: 840px) 100vw, 840px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 12"><figcaption>最佳單一因子 IC Decay</figcaption></figure>



<h4><br></h4>



<h3><strong>綜合解讀 ：</strong></h3>



<ul><li>在單因子比較中，「<strong>七月股利率</strong>」無論是在平均預測能力 (IC Mean) 還是預測穩定性 (IC IR) 上，都優於「<strong>十二月股利率</strong>」。</li><li>「<strong>七月股利率</strong>」的 IC IR 隨預測天數增加而上升的特性。</li></ul>



<h3><strong>總體結論：</strong></h3>



<ol><li><strong>「七月股利率」是核心強勢因子：</strong> 無論是作為單因子還是組合的一部分，「<strong>七月股利率</strong>」都表現出強勁的預測能力和非常好的穩定性（尤其是其 IC IR 持續上升）。</li><li><strong>因子組合的價值：</strong> 將不同月份的股利率因子進行組合，有潛力獲得比單一因子更高的 IC Mean，即更強的平均預測信號。</li><li><strong>IC Mean vs. IC IR 的考量：</strong><ul><li>「<strong>七月股利率 + 十二月股利率</strong>」組合擁有最高的 IC Mean，如果追求最強的平均預測信號，這是一個好選擇。</li><li>但若更看重預測的穩定性，「<strong>七月股利率</strong>」（單獨或與十二月股利率組合）則因其較高的 IC IR 而更具吸引力。這是策略構建中需要權衡的一點。</li></ul></li><li><strong>適用的預測週期：</strong> 這些因子/組合的 IC Mean 大多在約120天至160天達到高峰或保持強勢，而 IC IR 甚至在200天時仍在上升。這暗示它們更適合中長期的投資策略，而非短期的預測。IC Mean 初期（20天至~120天）的上升趨勢值得注意，可能表示因子效應的滯後性。</li><li><strong>潛力因子/組合：</strong> 「七月股利率 + 十二月股利率」因其高 IC Mean 顯示出很好的潛力。而「七月股利率」因子本身因其優異的 IC IR 表現，是構建因子模型時的重要候選。<br>另外也附上同<a href="https://www.finlab.tw/%e5%be%a9%e5%88%bb%e8%88%87%e5%84%aa%e5%8c%96-00919%ef%bc%9a%e7%8e%a9%e8%bd%89%e9%ab%98%e8%82%a1%e6%81%af-etf/">前一篇</a>的分析結果，整理出各預測週期內，因子在前10名組合中的出現頻率，以及120天預測期下，不同因子數量與 ICIR 的關係，並列出120天預測期的前10組最佳因子組合。</li></ol>



<figure class="wp-block-image size-full"><img loading="lazy" width="1000" height="500" src="https://www.finlab.tw/wp-content/uploads/2025/05/newplot-1.png" alt="newplot 1" class="wp-image-6631" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/newplot-1.png 1000w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot-1-300x150.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot-1-768x384.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 13"><figcaption>各預測週期中因子在前10名組合中的出現頻率</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" width="800" height="600" src="https://www.finlab.tw/wp-content/uploads/2025/05/newplot2-2.png" alt="newplot2 2" class="wp-image-6635" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/newplot2-2.png 800w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot2-2-300x225.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot2-2-768x576.png 768w" sizes="(max-width: 800px) 100vw, 800px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 14"><figcaption>120天預測期 – 因子數量與ICIR關係</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" width="900" height="600" src="https://www.finlab.tw/wp-content/uploads/2025/05/newplot3-3.png" alt="newplot3 3" class="wp-image-6636" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/newplot3-3.png 900w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot3-3-300x200.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/newplot3-3-768x512.png 768w" sizes="(max-width: 900px) 100vw, 900px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 15"><figcaption>120 天預測期 – 前10個最佳因子組合</figcaption></figure>



<h2>優化後的成績單</h2>



<p>最後我們使用表現較好的 <strong>七月股利率 + 十二月股利率</strong> <strong>+  yield_ratio</strong> 組合進行優化，可以發現績效、夏普值、最大回檔都有更好的結果。</p>



<p><strong>獲利能力分析：</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" width="1024" height="943" src="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.06@2x-1024x943.png" alt="CleanShot 2025 05 22 at 11.33.06@2x" class="wp-image-6667" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.06@2x-1024x943.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.06@2x-300x276.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.06@2x-768x707.png 768w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.06@2x-1536x1414.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.06@2x.png 1540w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 16"><figcaption>獲利能力分析</figcaption></figure></div>


<p><strong>抗風險能力分析：</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" width="1024" height="853" src="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.36@2x-1024x853.png" alt="CleanShot 2025 05 22 at 11.33.36@2x" class="wp-image-6668" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.36@2x-1024x853.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.36@2x-300x250.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.36@2x-768x640.png 768w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.36@2x-1536x1279.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.33.36@2x.png 1544w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 17"><figcaption><strong>抗風險能力分析</strong></figcaption></figure></div>


<p><strong>風險報酬分析：</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" width="1024" height="353" src="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.34.34@2x-1024x353.png" alt="CleanShot 2025 05 22 at 11.34.34@2x" class="wp-image-6669" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.34.34@2x-1024x353.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.34.34@2x-300x104.png 300w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.34.34@2x-768x265.png 768w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.34.34@2x.png 1530w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 18"><figcaption><strong>風險報酬分析</strong></figcaption></figure></div>


<p><strong>勝率期望值分析：</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" width="968" height="1024" src="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.35.06@2x-968x1024.png" alt="CleanShot 2025 05 22 at 11.35.06@2x" class="wp-image-6670" srcset="https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.35.06@2x-968x1024.png 968w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.35.06@2x-283x300.png 283w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.35.06@2x-768x813.png 768w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.35.06@2x-1451x1536.png 1451w, https://www.finlab.tw/wp-content/uploads/2025/05/CleanShot-2025-05-22-at-11.35.06@2x.png 1544w" sizes="(max-width: 968px) 100vw, 968px" title="復刻與優化 00900 ：使用 IC Decay 優化高股息策略成「長跑軍火庫」 19"><figcaption><strong>勝率期望值分析</strong></figcaption></figure>



<h2>結論</h2>



<p><strong>00900 高股息ETF</strong>的選股規則已經相當嚴謹，但我們透過 <strong>IC Decay 分析</strong>，能夠再進一步挑選出「<strong>預測力持久</strong>」的黃金因子組合，打造更穩健、具備長期優勢的量化策略。未來也能持續利用 <strong>IC Decay</strong>動態追蹤因子表現，讓自己的策略不斷升級，也歡迎參考&nbsp;<a href="https://colab.research.google.com/drive/1rw86fwPLxq-nAPN-YCHABDpRaJ7lXCJU?usp=sharing" data-type="URL" data-id="https://colab.research.google.com/drive/1rw86fwPLxq-nAPN-YCHABDpRaJ7lXCJU?usp=sharing" target="_blank" rel="noopener">Colab 範例檔</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/%e5%be%a9%e5%88%bb%e8%88%87%e5%84%aa%e5%8c%96-00900-%ef%bc%9a%e4%bd%bf%e7%94%a8-ic-decay-%e5%84%aa%e5%8c%96%e9%ab%98%e8%82%a1%e6%81%af%e7%ad%96%e7%95%a5%e6%88%90%e3%80%8c%e9%95%b7%e8%b7%91%e8%bb%8d/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6620</post-id>	</item>
		<item>
		<title>復刻與優化 00919：玩轉高股息 ETF</title>
		<link>https://www.finlab.tw/%e5%be%a9%e5%88%bb%e8%88%87%e5%84%aa%e5%8c%96-00919%ef%bc%9a%e7%8e%a9%e8%bd%89%e9%ab%98%e8%82%a1%e6%81%af-etf/</link>
					<comments>https://www.finlab.tw/%e5%be%a9%e5%88%bb%e8%88%87%e5%84%aa%e5%8c%96-00919%ef%bc%9a%e7%8e%a9%e8%bd%89%e9%ab%98%e8%82%a1%e6%81%af-etf/#respond</comments>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Tue, 06 May 2025 08:08:01 +0000</pubDate>
				<category><![CDATA[VIP文章]]></category>
		<category><![CDATA[FinLab 量化平台]]></category>
		<category><![CDATA[Python新手教學]]></category>
		<category><![CDATA[基本面分析]]></category>
		<category><![CDATA[投資新手]]></category>
		<category><![CDATA[股票策略]]></category>
		<category><![CDATA[財經PYTHON教學]]></category>
		<category><![CDATA[選股策略]]></category>
		<category><![CDATA[PYTHON]]></category>
		<category><![CDATA[VIP限定]]></category>
		<category><![CDATA[程式交易]]></category>
		<category><![CDATA[股票]]></category>
		<category><![CDATA[量化投資]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=6561</guid>

					<description><![CDATA[前言 市面上的高股息 ETF 百花齊放，這次要來復刻 00919 群益台灣精選高息 ETF，如果 0056 是 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" width="683" height="1024" src="https://www.finlab.tw/wp-content/uploads/2025/04/ChatGPT-Image-2025年4月20日-下午01_52_50-1-683x1024.png" alt="ChatGPT Image 2025年4月20日 下午01 52 50 1" class="wp-image-6596" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/ChatGPT-Image-2025年4月20日-下午01_52_50-1-683x1024.png 683w, https://www.finlab.tw/wp-content/uploads/2025/04/ChatGPT-Image-2025年4月20日-下午01_52_50-1-200x300.png 200w, https://www.finlab.tw/wp-content/uploads/2025/04/ChatGPT-Image-2025年4月20日-下午01_52_50-1-768x1152.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/ChatGPT-Image-2025年4月20日-下午01_52_50-1.png 1024w" sizes="(max-width: 683px) 100vw, 683px" title="復刻與優化 00919：玩轉高股息 ETF 20"><figcaption>封面圖片</figcaption></figure>



<h2>前言</h2>



<p>市面上的高股息 ETF 百花齊放，這次要來復刻 <strong>00919</strong> <strong>群益台灣精選高息 ETF，</strong>如果 <strong>0056</strong> 是台股存股族的啟蒙，<strong>00919 </strong> 就像下一代改裝版。它主打「<strong>精準高息、精準卡位、精準領息</strong>」三大賣點，看似簡單，其實暗藏許多量化細節。本文帶你：</p>



<ol><li><strong>完整拆解官方邏輯</strong>，一步步復刻 00919 的選股流程。</li><li><strong>用量化工具驗證</strong>：驗證相關性和重疊率。</li><li><strong>再往前優化</strong>：刪掉雜訊因子、加入高效指標，打造報酬更高、回撤更低的 <strong>00919 優化版</strong>。</li></ol>



<h2>一、00919 三大「精準」拆解</h2>



<p>查看<a href="https://www.capitalfund.com.tw/etf/product/detail/195/basic" data-type="URL" data-id="https://www.capitalfund.com.tw/etf/product/detail/195/basic" target="_blank" rel="noopener">基金介紹</a>發現有幾個特色</p>



<ul><li><strong>精準高息：用「實際宣告」取代「預估數字」</strong></li></ul>



<p>00919 選擇鎖定「<strong>已公告現金股利</strong>」的企業，<strong>從確定的金額計算真實殖利率</strong>，進一步提升股息來源的可靠度與穩定性。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<ul><li><strong> 精準卡位：提前布局的策略優勢</strong></li></ul>



<p>00919 採雙階段審核機制，五月、十二月<strong>雙審核</strong>，透過這種<strong>快與早並重</strong>的選股機制，達到真正「買在除息前」與「走在市場前」的投資節奏。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<ul><li><strong>精準領息：每一分股息都不浪費</strong></li></ul>



<p>選股時機對應企業除息時程，投資人持有期間能真正參與除息、獲取現金配息，<strong>讓每一分錢都落袋為安</strong>。</p>



<blockquote class="wp-block-quote"><p><strong>名詞解釋 &#8211; 殖利率</strong>：每股現金股利 ÷ 股價。殖利率越高，代表用相對便宜的股價就能拿到較高現金回報。</p></blockquote>



<h2>二、復刻 00919：研究流程</h2>



<ol><li><strong>資料擷取</strong><ul><li>00919 <a href="https://www.capitalfund.com.tw/ECStorge/fund/ec/event/00919Prospectus/Prospectus.pdf" data-type="URL" data-id="https://www.capitalfund.com.tw/ECStorge/fund/ec/event/00919Prospectus/Prospectus.pdf" target="_blank" rel="noopener">公開說明書</a></li></ul></li><li><strong>邏輯拆解</strong><ul><li>採樣母體 → 流動性 / 財務健全性 → 股利資訊 → 排序 → 替換規則。</li></ul></li></ol>



<h2>三、復刻 00919 的關鍵步驟</h2>



<ol><li><strong>初始採樣母體</strong>：<ul><li>臺灣上市與上櫃普通股股票為基礎。</li></ul><ul><li>選取發行市值前 300 大股票。</li></ul></li><li><strong>基本條件篩選</strong>：<ul><li>日平均成交金額需高於 8,000 萬元。</li><li>近四季稅後股東權益報酬率 (ROE) 皆為正數。</li></ul></li><li><strong>股利資訊篩選（五月定審限定）</strong>：<ul><li>排除董事會尚未決定股利金額的公司。</li><li>排除已除息且於審核生效日前已完成發放的股票。</li></ul></li><li><strong>排序並選取成分股</strong>：<ul><li><strong>五月定審</strong>：依近四季股利率排序，選出前 30 檔。</li><li><strong>十二月定審</strong>：依據預估股利率排序，選出前 30 檔。</li></ul></li></ol>



<pre class="wp-block-code"><code lang="python" class="language-python">def calculate_ranks(date, is_may_review=True):
    """計算特定審核日期的股票排名"""
    nearest_date = get_nearest_past_trading_date(date, all_trading_dates)
    if nearest_date is None:
        return pd.Series(dtype=float)  # 空序列
        
    if is_may_review:  # 5月定審
        # 計算排名 - 5月定審使用股利率
        score = (市值.rank(axis=1, pct=True) + 股利率.rank(axis=1, pct=True) + yield_ratio.rank(axis=1, pct=True))[conds &amp; (board_cash_dividend &gt; 0)]
    else:  # 12月定審
        # 計算排名 - 12月定審使用預估股利率
        score = (市值.rank(axis=1, pct=True) + 預估股利率.rank(axis=1, pct=True) + yield_ratio.rank(axis=1, pct=True))[conds]
        
    if nearest_date not in score.index:
        return pd.Series(dtype=float)  # 空序列
        
    return score.loc[nearest_date].dropna().rank(ascending=False, method='min')</code></pre>



<ol><li><strong>成分股替換規則</strong>：<ul><li>排名前 15 名直接納入成分股。</li><li>既有成分股若跌出 46 名以外則剔除。</li><li>排名 16 至 45 名的股票列為候補，優先保留既有成分股。</li><li>十二月定審單次最多更替 8 檔股票。</li></ul></li></ol>



<pre class="wp-block-code"><code lang="python" class="language-python"># 建立空的結果DataFrame
position = pd.DataFrame(False, index=effective_dates, columns=close.columns)

# 處理所有調倉日期和排名數據
all_ranks = {}
valid_dates = []

for date in effective_dates:
    try:
        is_may_review = (date.month == 5)
        ranks = calculate_ranks(date, is_may_review)
        if not ranks.empty:
            all_ranks[date] = ranks
            valid_dates.append(date)
    except Exception as e:
        print(f"處理 {date} 時發生錯誤: {e}")

valid_dates = sorted(valid_dates)  # 確保日期順序

if not valid_dates:
    print("沒有有效的調倉日期，無法進行模擬")
else:
# 使用 Pandas 向量化處理成分股替換
    prev_components = None
    target_component_count = 30 # 設定目標成分股數量

    for i, date in enumerate(valid_dates):
                ranks = all_ranks[date]

                # 1. 排名在第15名以內者納入成分股
                top_15 = set(ranks[ranks &lt;= 15].index)

                # 2. 排名16至45名為候補名單
                candidates = set(ranks[(ranks &gt; 15) &amp; (ranks &lt;= 45)].index)

                # 暫定的成分股 (先加入前15名)
                current_components_tentative = set(top_15)

                # 如果不是第一次調倉
                if prev_components is not None:
                        # 加入排名16-45之間的既有成分股
                        existing_in_candidates = prev_components.intersection(candidates)
                        current_components_tentative.update(existing_in_candidates)

                        # 對於12月定審，額外限制最多替換8檔
                        if date.month == 12:
                                # 計算基於 Top15 + 既有候補 所得的新增股票
                                added = current_components_tentative - prev_components

                                # 如果新增超過8檔，需要減少替換數量
                                if len(added) &gt; 8:
                                        # 取出新增的股票並按排名排序 (rank越小越好)
                                        added_with_rank = pd.Series({stock: ranks.get(stock, float('inf')) for stock in added})
                                        # 只保留排名最好的前8名新增的股票
                                        to_keep = set(added_with_rank.sort_values().index[:8])
                                        to_remove_due_to_limit = added - to_keep

                                        # 從暫定名單中移除因超過8檔限制而被剔除的股票
                                        current_components_tentative = current_components_tentative - to_remove_due_to_limit

                # --- 補滿至目標數量 ---
                num_needed = target_component_count - len(current_components_tentative)
                if num_needed &gt; 0:
                        # 找出所有排名16-45，但尚未被選入的股票
                        remaining_candidates = candidates - current_components_tentative
                        if remaining_candidates: # 確保還有候選股可補
                                # 依排名排序這些候選股
                                remaining_candidates_with_rank = pd.Series({stock: ranks.get(stock, float('inf')) for stock in remaining_candidates})
                                sorted_remaining_candidates = remaining_candidates_with_rank.sort_values().index

                                # 選取排名最好的 num_needed 檔來補滿
                                stocks_to_add = set(sorted_remaining_candidates[:num_needed])
                                current_components_tentative.update(stocks_to_add)
                # --- 補滿邏輯結束 ---

                # 最終確認的成分股
                current_components = current_components_tentative

                # 設定成分股
                # 確保只設定存在的欄位
                valid_cols = [col for col in current_components if col in position.columns]
                position.loc[date, valid_cols] = True

                # 更新前一期成分股
                prev_components = current_components

    # 5. 前向填充空值，確保非調倉日也有持股
    position = position.loc[valid_dates]</code></pre>



<ol><li><strong>生效日期計算</strong>：<ul><li>審核基準日後第 5 個交易日正式生效。</li></ul></li></ol>



<pre class="wp-block-code"><code lang="python" class="language-python">def calculate_review_dates(trading_dates: pd.DatetimeIndex):
    """
    計算台灣高股息指數的審核與調倉日期
    
    台灣高股息指數規則:
    - 5月: 第17個交易日為審核基準日，審核資料截至5月第10個交易日
    - 12月: 第7個交易日為審核基準日，審核資料截至11月最後交易日
    - 生效日: 審核基準日後第5個交易日
    """
    review_dates_info = []
    start_year = trading_dates[0].year
    end_year = trading_dates[-1].year

    for year in range(start_year, end_year + 1):
        # 5月定審
        may_review_basis_day = get_trading_day_of_month(year, 5, 17, trading_dates)
        may_data_cutoff_day = get_trading_day_of_month(year, 5, 10, trading_dates)
        
        if may_review_basis_day and may_data_cutoff_day:
            target_effective_day_index = trading_dates.searchsorted(may_review_basis_day) + 5
            if target_effective_day_index &lt; len(trading_dates):
                may_effective_day_target = trading_dates[target_effective_day_index]
                may_effective_day = get_nearest_future_trading_date(may_effective_day_target, trading_dates)
                if may_effective_day:
                    review_dates_info.append({
                        'year': year, 
                        'month': 5,
                        'cutoff_date': may_data_cutoff_day,
                        'basis_date': may_review_basis_day,
                        'effective_date': may_effective_day
                    })

        # 12月定審
        dec_review_basis_day = get_trading_day_of_month(year, 12, 7, trading_dates)
        nov_data_cutoff_day = get_last_trading_day_of_month(year, 11, trading_dates)
        
        if dec_review_basis_day and nov_data_cutoff_day:
            target_effective_day_index = trading_dates.searchsorted(dec_review_basis_day) + 5
            if target_effective_day_index &lt; len(trading_dates):
                dec_effective_day_target = trading_dates[target_effective_day_index]
                dec_effective_day = get_nearest_future_trading_date(dec_effective_day_target, trading_dates)
                if dec_effective_day:
                    review_dates_info.append({
                        'year': year, 
                        'month': 12,
                        'cutoff_date': nov_data_cutoff_day,
                        'basis_date': dec_review_basis_day,
                        'effective_date': dec_effective_day
                    })

    # 按生效日期排序
    review_dates_info = sorted(review_dates_info, key=lambda x: x['effective_date'])
    # 移除無效日期
    review_dates_info = [info for info in review_dates_info if info['effective_date'] is not None]
    
    if not review_dates_info:
        raise ValueError("無法計算出任何有效的審核與生效日期，請檢查日期計算邏輯或資料範圍。")
    
    return review_dates_info</code></pre>



<h2>四、復刻結果</h2>



<p><br>在經過一連串比對後，復刻而得的策略股池與原版 00919 報酬率曲線有高度相關。這意味著，我們的 復刻版 00919 確實能有效重現 00919 的選股結果。</p>



<p><strong>相關性分析：</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" width="382" height="549" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-11.48.55.png" alt="CleanShot 2025 04 20 at 11.48.55" class="wp-image-6566" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-11.48.55.png 382w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-11.48.55-209x300.png 209w" sizes="(max-width: 382px) 100vw, 382px" title="復刻與優化 00919：玩轉高股息 ETF 21"><figcaption>相關性分析</figcaption></figure></div>


<p><strong>復刻 00919 報酬</strong> : </p>



<figure class="wp-block-image size-full"><img loading="lazy" width="761" height="599" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-11.59.52.png" alt="CleanShot 2025 04 20 at 11.59.52" class="wp-image-6568" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-11.59.52.png 761w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-11.59.52-300x236.png 300w" sizes="(max-width: 761px) 100vw, 761px" title="復刻與優化 00919：玩轉高股息 ETF 22"><figcaption><strong>復刻 00919 報酬</strong></figcaption></figure>



<p><strong>長期持有 00919&nbsp;報酬</strong> :</p>



<figure class="wp-block-image size-full"><img loading="lazy" width="770" height="772" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-12.01.12.png" alt="CleanShot 2025 04 20 at 12.01.12" class="wp-image-6569" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-12.01.12.png 770w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-12.01.12-300x300.png 300w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-12.01.12-150x150.png 150w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-12.01.12-768x770.png 768w" sizes="(max-width: 770px) 100vw, 770px" title="復刻與優化 00919：玩轉高股息 ETF 23"><figcaption><strong>長期持有 00919&nbsp;報酬</strong></figcaption></figure>



<p>我們的「<strong>復刻版 00919</strong>」與官方版本高相關，證明邏輯拆解合理。</p>



<h2>五、進階優化：</h2>



<p>雖然我們已成功復刻 00919 的選股邏輯，但這僅是起點。在接下來的優化階段，我們希望<strong>進一步提升策略效率與穩定性</strong>。因此，我們先行<strong>剔除效度不高的條件，以降低雜訊與過度擬合（overfitting）的風險</strong>，同時<strong>納入經過 IC/IR 驗證、具高預測力的關鍵因子</strong>，讓策略在維持高息特性的同時，具備更好的長期報酬潛力。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" width="662" height="480" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-12.04.40@2x.png" alt="CleanShot 2025 04 20 at" class="wp-image-6570" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-12.04.40@2x.png 662w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-12.04.40@2x-300x218.png 300w" sizes="(max-width: 662px) 100vw, 662px" title="復刻與優化 00919：玩轉高股息 ETF 24"><figcaption>IC / IR 分析</figcaption></figure></div>


<p><strong>IC/IR</strong> 指標告訴我們，有些條件不但沒幫忙，還在拖後腿，列如：</p>



<ul><li>市值條件 IC 為 <strong>負值</strong></li><li>流動性條件 IC 也是 <strong>負值</strong></li></ul>



<blockquote class="wp-block-quote"><p><strong>名詞小辭典 </strong>&#8211; <strong>IC / IR</strong> <br>• <strong>IC</strong>（Information Coefficient）：因子對未來報酬的預測能力，&gt;0 正向、&lt;0 反向。 <br>• <strong>IR</strong>（Information Ratio）：IC 均值 ÷ IC 標準差，衡量穩定度，&gt;1 代表因子「又準又穩」。</p></blockquote>



<p></p>



<p>當我們發現市值與流動性條件的 IC 為負時，決定剔除。這樣的做法其實也呼應了我們作為一般投資人的一項優勢，<strong>不像 ETF 必須考量大規模資金進出時的流動性風險</strong>，我們可以更靈活地聚焦在報酬潛力本身，因此不再納入這些與 ETF 結構相關的限制性條件，也是合理的選擇。</p>



<p>接下來，我們回頭檢視先前 <a href="https://www.finlab.tw/%e5%a6%82%e4%bd%95%e5%be%a9%e5%88%bb0056%e9%ab%98%e8%82%a1%e6%81%afetf%ef%bc%8c%e4%b8%a6%e6%89%93%e9%80%a0%e8%b6%85%e8%b6%8a%e5%b8%82%e5%a0%b4%e7%9a%84%e9%80%b2%e9%9a%8e%e7%ad%96%e7%95%a5%ef%bc%81/">先前文章</a>， 「復刻 0056 ETF」文章中表現優異的因子，將這些經驗延伸應用到本次策略中。透過重新分析其 IC 與 IR 指標，我們挑選出具有預測力的關鍵因子，<strong>將其納入排序邏輯中與原有條件結合</strong>。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" width="838" height="1024" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.08.07@2x-838x1024.png" alt="CleanShot 2025 04 20 at 13.08.07@2x" class="wp-image-6572" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.08.07@2x-838x1024.png 838w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.08.07@2x-246x300.png 246w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.08.07@2x-768x938.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.08.07@2x.png 866w" sizes="(max-width: 838px) 100vw, 838px" title="復刻與優化 00919：玩轉高股息 ETF 25"><figcaption>因子 IC IR 分析</figcaption></figure></div>


<p>可以發現，<strong>股利率、預估股利率、cash_dividend_annual 以及 ROE</strong> 都展現出良好的表現，屬於具有預測力的優質因子。</p>



<p>接下來，我們將這些表現突出的因子進行整合，<strong>以組合分析的方式評估其綜合效果</strong>，並驗證是否能進一步提升選股策略的穩定性與報酬潛力。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="498" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.50@2x-1024x498.png" alt="CleanShot 2025 04 20 at 13.13.50@2x" class="wp-image-6577" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.50@2x-1024x498.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.50@2x-300x146.png 300w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.50@2x-768x374.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.50@2x-1536x747.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.50@2x.png 1982w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00919：玩轉高股息 ETF 26"><figcaption>各預測週期中因子在前10名組合中的出現頻率</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.12.34@2x-1024x763.png" alt="CleanShot 2025 04 20 at 13.12.34@2x" class="wp-image-6573" width="840" height="625" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.12.34@2x-1024x763.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.12.34@2x-300x224.png 300w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.12.34@2x-1536x1145.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.12.34@2x.png 1540w" sizes="(max-width: 840px) 100vw, 840px" title="復刻與優化 00919：玩轉高股息 ETF 27"><figcaption>60天預測期 &#8211; 因子數量與ICIR關係</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="760" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.02@2x-1024x760.png" alt="CleanShot 2025 04 20 at 13.13.02@2x" class="wp-image-6574" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.02@2x-1024x760.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.02@2x-300x223.png 300w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.02@2x-768x570.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.02@2x.png 1520w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00919：玩轉高股息 ETF 28"><figcaption>120天預測期 &#8211; 因子數量與ICIR關係</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="679" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.22@2x-1024x679.png" alt="CleanShot 2025 04 20 at 13.13.22@2x" class="wp-image-6575" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.22@2x-1024x679.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.22@2x-300x199.png 300w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.22@2x-768x509.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.22@2x-1536x1018.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.22@2x.png 1780w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00919：玩轉高股息 ETF 29"><figcaption>60 天預測期 &#8211; 前10個最佳因子組合</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="677" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.34@2x-1024x677.png" alt="CleanShot 2025 04 20 at 13.13.34@2x" class="wp-image-6576" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.34@2x-1024x677.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.34@2x-300x198.png 300w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.34@2x-768x508.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.34@2x-1536x1015.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.13.34@2x.png 1782w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00919：玩轉高股息 ETF 30"><figcaption>120 天預測期 &#8211; 前10個最佳因子組合</figcaption></figure>



<p>可以發現，無論是在 60 天或 120 天的時間尺度下，<strong>ROE 與年化股息率的組合表現穩定且亮眼</strong>。因此我們將這組優勢因子正式納入五月與十二月的選股排序邏輯中。接著，我們<strong>進一步精簡成分股數量，並取消複雜的替換規則</strong>，打造出更簡潔、集中、操作效率更高的「終極策略版本」。這樣的設計，能兼顧高勝率與操作彈性，真正貼近一般投資人的實戰需求。</p>



<h2><br>六、優化後的成績單</h2>



<ol><li><strong>年化報酬率：</strong>&nbsp;提高至約&nbsp;<strong>47%</strong>，相較於原版明顯領先。</li><li><strong>夏普比率：</strong>&nbsp;從遠本的 <strong>1.16 </strong>提高至約&nbsp;<strong>1.83</strong>，相較於原版明顯領先。</li></ol>



<p>更難能可貴的是在差不多的最大下跌風險下，提高報酬率和穩定性，不必日日擔心股價大幅震盪。如此一來，投資人就能同時享有領股利的安心感，又能捕捉股價成長的爆發力。<br><strong>獲利能力分析：</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" width="1024" height="930" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.24.40@2x-1024x930.png" alt="CleanShot 2025 04 20 at 13.24.40@2x" class="wp-image-6579" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.24.40@2x-1024x930.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.24.40@2x-300x273.png 300w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.24.40@2x-768x698.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.24.40@2x-1536x1395.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.24.40@2x.png 1550w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00919：玩轉高股息 ETF 31"><figcaption>獲利能力分析</figcaption></figure></div>


<p><strong>抗風險能力分析：</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" width="1024" height="942" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.25.36@2x-1024x942.png" alt="CleanShot 2025 04 20 at 13.25.36@2x" class="wp-image-6580" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.25.36@2x-1024x942.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.25.36@2x-300x276.png 300w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.25.36@2x-768x707.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.25.36@2x-1536x1413.png 1536w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.25.36@2x.png 1552w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00919：玩轉高股息 ETF 32"><figcaption><strong>抗風險能力分析</strong></figcaption></figure></div>


<p><strong>風險報酬分析：</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="347" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.13@2x-1024x347.png" alt="CleanShot 2025 04 20 at 13.26.13@2x" class="wp-image-6581" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.13@2x-1024x347.png 1024w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.13@2x-300x102.png 300w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.13@2x-768x260.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.13@2x.png 1534w" sizes="(max-width: 1024px) 100vw, 1024px" title="復刻與優化 00919：玩轉高股息 ETF 33"><figcaption><strong>風險報酬分析</strong></figcaption></figure>



<p><strong>勝率期望值分析：</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" width="960" height="1024" src="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.40@2x-960x1024.png" alt="CleanShot 2025 04 20 at 13.26.40@2x" class="wp-image-6582" srcset="https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.40@2x-960x1024.png 960w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.40@2x-281x300.png 281w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.40@2x-768x819.png 768w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.40@2x-1440x1536.png 1440w, https://www.finlab.tw/wp-content/uploads/2025/04/CleanShot-2025-04-20-at-13.26.40@2x.png 1522w" sizes="(max-width: 960px) 100vw, 960px" title="復刻與優化 00919：玩轉高股息 ETF 34"><figcaption><strong>勝率期望值分析</strong></figcaption></figure>



<p>在不犧牲「領息」特色的前提下，<strong>獲利更高、風險更低</strong>。</p>



<h2>七、行動建議</h2>



<ol><li><strong>進階派</strong>：跟著本文邏輯，自行用FinLab 復刻並優化。</li><li><strong>客製派</strong>：把優化後因子丟進量化平台，持續調參，打造專屬高息策略。</li></ol>



<blockquote class="wp-block-quote"><p>風險提醒：高息 ≠ 無風險。股息遞延、宏觀逆風都可能影響績效。請按自身資金配置與風險承受度操作。</p></blockquote>



<h2>結語：高息，也可以很聰明</h2>



<p>復刻只是起點，希望這篇文章能點燃你的研究慾望，讓「領息」不再只是被動等待，而成為可以精雕細琢、持續進化的好策略。</p>



<p>若你已經迫不及待想動手，接下來：</p>



<ul><li>依本文框架補上程式碼段並回測驗證。</li><li>加入自己的好因子和條件，調整策略。</li><li>也歡迎參考 <a href="https://colab.research.google.com/drive/1uD2DkcugVXwHLZvHEceMG2BQWTRDRypA?usp=sharing" data-type="URL" data-id="https://colab.research.google.com/drive/1uD2DkcugVXwHLZvHEceMG2BQWTRDRypA?usp=sharing" target="_blank" rel="noopener">Colab 範例檔</a>。</li></ul>



<p>祝你在下一個除息季，順利把每一分股息都握在手中！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/%e5%be%a9%e5%88%bb%e8%88%87%e5%84%aa%e5%8c%96-00919%ef%bc%9a%e7%8e%a9%e8%bd%89%e9%ab%98%e8%82%a1%e6%81%af-etf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6561</post-id>	</item>
		<item>
		<title>如何復刻0056高股息ETF，並打造超越市場的進階策略！</title>
		<link>https://www.finlab.tw/%e5%a6%82%e4%bd%95%e5%be%a9%e5%88%bb0056%e9%ab%98%e8%82%a1%e6%81%afetf%ef%bc%8c%e4%b8%a6%e6%89%93%e9%80%a0%e8%b6%85%e8%b6%8a%e5%b8%82%e5%a0%b4%e7%9a%84%e9%80%b2%e9%9a%8e%e7%ad%96%e7%95%a5%ef%bc%81/</link>
					<comments>https://www.finlab.tw/%e5%a6%82%e4%bd%95%e5%be%a9%e5%88%bb0056%e9%ab%98%e8%82%a1%e6%81%afetf%ef%bc%8c%e4%b8%a6%e6%89%93%e9%80%a0%e8%b6%85%e8%b6%8a%e5%b8%82%e5%a0%b4%e7%9a%84%e9%80%b2%e9%9a%8e%e7%ad%96%e7%95%a5%ef%bc%81/#respond</comments>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Tue, 25 Mar 2025 05:09:58 +0000</pubDate>
				<category><![CDATA[VIP文章]]></category>
		<category><![CDATA[FinLab 量化平台]]></category>
		<category><![CDATA[Python新手教學]]></category>
		<category><![CDATA[PYTHON財經]]></category>
		<category><![CDATA[基本面分析]]></category>
		<category><![CDATA[股票策略]]></category>
		<category><![CDATA[財經PYTHON教學]]></category>
		<category><![CDATA[選股策略]]></category>
		<category><![CDATA[PYTHON]]></category>
		<category><![CDATA[VIP限定]]></category>
		<category><![CDATA[歷史回測]]></category>
		<category><![CDATA[程式交易]]></category>
		<category><![CDATA[股票]]></category>
		<category><![CDATA[量化投資]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=6547</guid>

					<description><![CDATA[復刻0056高股息ETF，並打造超越市場的進階策略]]></description>
										<content:encoded><![CDATA[
<h1>一、復刻0056高股息ETF的核心邏輯</h1>



<p>市面上最受投資人青睞的高股息 ETF，莫過於&nbsp;<strong>元大高股息 ETF（0056）</strong>。它是許多台灣投資人「存股領股利」的代表標的。0056 的選股方法，是從<strong>臺灣50指數</strong>與<strong>臺灣中型100指數</strong>為母體，優先篩選出具備相對高殖利率（預期下一年股息）之公司，最終組成 50 檔成分股。</p>



<p>然而，許多人只知道它「<strong>給股利</strong>」、風險似乎不高，卻很少真正挖掘其選股邏輯背後的細節和可能的缺陷。為了讓大家更深入了解這套機制，我們運用量化交易的方法，去「<strong>復刻</strong>」0056 的篩選邏輯，並嘗試更進一步的優化。這項研究花了相當多時間精力，從龐大資料的爬取、清洗、到回測比對，都一一經歷反覆測試，只為了呈現給投資人更清晰且更具行動價值的策略思路。</p>



<h3>復刻 0056 的關鍵步驟</h3>



<ul><li><strong>市值排名前 150 名股票作為初始篩選標的這代表先從台灣市值規模較大、較有流動性的公司中著手，排除一些可能成交量低、營運風險較高的股票。</strong></li><li><strong>近三年皆穩定發放現金股利0056 著重於「股息」，因此公司能否穩定配發現金股息，就顯得至關重要。</strong></li><li><strong>毛利率持續成長反映公司基本營運體質是否健康；若毛利率維持增長，通常代表公司具備較佳的競爭力。</strong></li><li><strong>設定交易流通性條件確保標的能有效買賣，避免「有好策略，卻掛不到單」的尷尬情況。</strong></li><li><strong>最終根據現金股利殖利率和現金股息年化報酬，選出前 50 檔股票這基本就複製了 0056 的核心精神：高殖利率作為重要排序依據。</strong></li></ul>



<p>在經過一連串比對後，復刻而得的策略股池與原版 0056 股池有&nbsp;<strong>72%</strong>&nbsp;的重疊率，報酬率曲線也高度相關。這意味著，我們的 復刻版 0056 確實能<strong>有效重現 0056 的選股結果</strong>。</p>



<h3>相關性分析：</h3>


<div class="wp-block-image">
<figure class="aligncenter is-resized"><img loading="lazy" src="https://www.finlab.tw/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-11.50.56.png" alt="CleanShot 2025 03 17 at 11.50.56" width="354" height="705" title="如何復刻0056高股息ETF，並打造超越市場的進階策略！ 35"><figcaption>相關性分析</figcaption></figure></div>


<h1><br>二、為什麼要優化 0056？</h1>



<p>雖然 0056 深受大眾喜愛，但其單一依賴「殖利率」的選股標準，也帶來了不少潛在問題。<strong>最常見的疑問在於：如果公司未來的獲利或股價下滑，殖利率再高也未必保得住報酬。</strong>&nbsp;因此，僅看現金股利殖利率，有時候會忽略公司實際的成長動能與股價穩定度。</p>



<ul><li><strong>缺乏成長潛力考量：</strong> 0056 更重視「現在」的高股息，卻無法保證公司未來能維持同等配息水準。</li><li><strong>忽略股價風險：</strong> 有些殖利率高的公司，股價可能因營運不佳或大環境衝擊而下跌，使投資人因價差損失抵銷了領股息的好處。</li></ul>



<p>事實上，根據許多長期回測的結果，0056 的投資績效常<strong>落後大盤</strong>。</p>



<h3><strong>復刻 0056 報酬：</strong></h3>


<div class="wp-block-image">
<figure class="aligncenter"><img src="https://www.finlab.tw/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-11.39.43@2x-1024x729.png" alt="CleanShot 2025 03 17 at 11.39.43@2x" title="如何復刻0056高股息ETF，並打造超越市場的進階策略！ 36"><figcaption>復刻 0056 報酬</figcaption></figure></div>


<h3><strong>長期持有 0056&nbsp;報酬：</strong></h3>


<div class="wp-block-image">
<figure class="aligncenter"><img src="https://www.finlab.tw/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-11.47.46@2x-1024x790.png" alt="CleanShot 2025 03 17 at 11.47.46@2x" title="如何復刻0056高股息ETF，並打造超越市場的進階策略！ 37"><figcaption><strong>長期持有 0056&nbsp;報酬</strong></figcaption></figure></div>


<p>這也是為什麼我們要繼續進行第二階段的<strong>策略優化</strong>，希望既能拿到<strong>股利</strong>，也能兼顧成長與風險控管。</p>



<p></p>



<h1>三、策略的優化方向</h1>



<p>為了進一步提升報酬並減少下跌風險，我們引入了更全面的選股因子與風險控管條件，包括：</p>



<ol><li><strong>營收成長指標</strong><ul><li><strong>為什麼重要？</strong> 相較於只看當前股息，營收成長能更直接反映公司未來的成長動能。假如一家公司營收年年進步，往後維持股息或提高配息的機率也相對提高。</li></ul></li><li><strong>長期均線條件</strong><ul><li><strong>為什麼重要？</strong> 均線是一種技術分析常用的趨勢判定法。挑選「股價在長期均線之上」的公司，能有效排除股價長期走弱或進入空頭趨勢的標的。</li></ul></li><li><strong>股價波動率限制</strong><ul><li><strong>為什麼重要？</strong> 高波動可能意味著市場對公司基本面有疑慮，或財務體質波動度較大。過高的波動率會拉大投資組合的風險，限制波動度有助於穩定心態與獲利表現。</li></ul></li><li><strong>殖利率門檻</strong><ul><li><strong>為什麼重要？</strong> 雖然不能只看殖利率，但也不應該放棄。透過設置「殖利率至少在前 40%（或 60 百分位數以上）」的條件，既能保有高股息優勢，又不至於過度犧牲穩定度與成長性。</li></ul></li></ol>



<p>這些篩選條件的核心邏輯，就在於想同時享受「<strong>股利</strong>」與「<strong>成長</strong>」。最終，我們挑出能在長期維持向上趨勢、營運持續成長、且具有一定股利保證的股票，打造一個較能兼顧「<strong>領息</strong>」與「<strong>資本利得</strong>」的投資組合。<br></p>



<h1>四、優化後的策略範例</h1>



<p>以下程式碼範例，示範如何在量化平台上落實上述篩選邏輯。除了維持原先 0056「市值前 150 名」、「三年皆有發放股利」等規範，我們另外納入了<strong>營收成長</strong>、<strong>長期均線</strong>、<strong>波動度</strong>及<strong>殖利率門檻</strong>等條件。最後再綜合每檔股票的排名結果，只選擇前 20 檔表現優異的公司。</p>



<pre class="wp-block-code"><code class="">base_stocks = 市值.is_largest(150)
yield_ratio = data.get('price_earning_ratio:殖利率(%)')
殖利率條件 = (yield_ratio &gt;= yield_ratio.quantile(0.6, axis=1))
去年同月增減 = data.get("monthly_revenue:去年同月增減(%)")
rev = data.get('monthly_revenue:當月營收')
營收成長 = (rev.average(3) &gt; rev.average(12))
均線條件 = (close&gt;close.average(120)) &amp; (close&gt;close.average(240))
std = close.pct_change().rolling(60).std().rank(axis=1, pct=True)
波動條件 = (std &lt; 0.5)

conds = (
 (close&gt;0)
 &amp; base_stocks
 &amp; vol_cond
 &amp; eps_cond
 &amp; 近三年皆有發放現金股利
 &amp; 毛利成長率優良
 &amp; 營收成長
 &amp; 均線條件
 &amp; 波動條件
 &amp; 殖利率條件
)
position =  (cash_dividend_annual.rank(axis=1, pct=True) + 現金股利殖利率.rank(axis=1, pct=True) + 去年同月增減.rank(axis=1, pct=True))[conds].is_largest(20)
dates = []
y_start = position.index[0].year
y_end = position.index[-1].year
for y in range(y_start, y_end+1):
  dates.append(f"{y}-05-31")
  dates.append(f"{y}-12-27")
resample = pd.to_datetime(dates)
report2 = sim(position.reindex(resample, method='ffill'), resample=resample, upload=False)
report2.display()</code></pre>



<p>以上範例，用來呈現大致邏輯。重點在於「<strong>為什麼要加入這些條件</strong>」，而不只是條件本身。唯有理解每一步驟背後的意義，才能在投資時有所依據，也更能說服自己這樣嘗試，也歡迎大家優化加入更多因子或是優化相關的參數。</p>



<p></p>



<h1>五、因子IC/IR分析</h1>



<p>在量化投資的領域，經常會透過「<strong>Information Coefficient</strong>&nbsp;<strong>資訊係數</strong>」來確認某個因子是否確實能帶來正向貢獻。以下名詞簡單解釋：</p>



<ul><li><strong>IC（Information Coefficient，訊息係數）：</strong> 量度某因子的預測能力，IC &gt; 0 代表該因子對未來報酬有正向預測力。</li><li><strong>IR（Information Ratio，訊息比率）：</strong> 代表因子收益與風險的平衡程度，IR &gt; 1 通常表示該因子效果不錯。</li></ul>



<p>更詳細的內容歡迎參考之前的文章，<a href="https://www.finlab.tw/information-coefficient/">Information Coefficient 是什麼，要如何使用？</a></p>



<p>經分析顯示，<strong>營收成長</strong>、<strong>現金股息年化報酬</strong>、<strong>殖利率條件</strong>等因子都對整體績效貢獻較大，尤其是營收成長與長期均線兩因子的 IC/IR 表現最亮眼。這進一步佐證了「高息 + 成長 + 走勢向上」的組合，更能帶來勝率與報酬的提升。</p>



<h3><strong>因子 IC / IR 分析：</strong></h3>


<div class="wp-block-image is-style-default">
<figure class="aligncenter is-resized"><img loading="lazy" src="https://www.finlab.tw/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-11.38.57.png" alt="CleanShot 2025 03 17 at 11.38.57" width="315" height="468" title="如何復刻0056高股息ETF，並打造超越市場的進階策略！ 38"><figcaption><strong>因子 IC / IR 分析</strong></figcaption></figure></div>


<p></p>



<h1>六、終極版策略的績效分析</h1>



<p>把所有優化條件整合後，使用強大的&nbsp;<a href="https://doc.finlab.tw/reference/optimize/#finlab.optimize.combinations.sim_conditions" target="_blank" rel="noopener"><code>finlab.optimize</code></a>&nbsp;「<a href="https://doc.finlab.tw/reference/optimize/#finlab.optimize.combinations.sim_conditions" target="_blank" rel="noopener">文檔連結</a>」可以更方便的進行<strong>條件排列組合</strong>與大規模回測，最終得到「<strong>終極版</strong>」的選股策略。其結果遠遠優於單純追求殖利率的 0056，以下為量化回測的關鍵指標：</p>



<ol><li><strong>年化報酬率：</strong>&nbsp;提高至約&nbsp;<strong>31%</strong>，相較於原版 0056 明顯領先。</li><li><strong>最大回撤：</strong>&nbsp;降至&nbsp;<strong>24.3%</strong>，顯示波動與下跌風險獲得更佳控管。</li><li><strong>夏普比率：</strong>&nbsp;超過&nbsp;<strong>2</strong>&nbsp;以上，代表收益相對於風險具高度吸引力。</li></ol>



<p>除了高報酬率，更難能可貴的是兼顧到風險面與投資體驗：投資組合的走勢相對平穩，不必日日擔心股價大幅震盪。如此一來，投資人就能同時享有領股利的安心感，又能捕捉股價成長的爆發力。</p>



<h3><strong>獲利能力分析：</strong></h3>


<div class="wp-block-image">
<figure class="aligncenter"><img src="https://www.finlab.tw/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-11.42.27.png" alt="CleanShot 2025 03 17 at 11.42.27" title="如何復刻0056高股息ETF，並打造超越市場的進階策略！ 39"><figcaption><strong>獲利能力分析</strong></figcaption></figure></div>


<h3><strong>抗風險能力分析：</strong></h3>


<div class="wp-block-image">
<figure class="aligncenter"><img src="https://www.finlab.tw/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-11.42.51.png" alt="CleanShot 2025 03 17 at 11.42.51" title="如何復刻0056高股息ETF，並打造超越市場的進階策略！ 40"><figcaption><strong>抗風險能力分析</strong></figcaption></figure></div>


<h3><strong>風險報酬分析：</strong></h3>


<div class="wp-block-image">
<figure class="aligncenter"><img src="https://www.finlab.tw/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-11.43.13.png" alt="CleanShot 2025 03 17 at 11.43.13" title="如何復刻0056高股息ETF，並打造超越市場的進階策略！ 41"><figcaption><strong>風險報酬分析</strong></figcaption></figure></div>


<h3><strong>勝率期望值分析：</strong></h3>


<div class="wp-block-image">
<figure class="aligncenter"><img src="https://www.finlab.tw/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-11.43.45.png" alt="CleanShot 2025 03 17 at 11.43.45" title="如何復刻0056高股息ETF，並打造超越市場的進階策略！ 42"><figcaption><strong>勝率期望值分析</strong></figcaption></figure></div>


<h1><br>七、結語與投資行動建議</h1>



<p>從最初單純「<strong>復刻 0056 高股息</strong>」的思路，到後來發現 0056 可能有所不足，再進一步優化篩選條件並不斷迭代測試。正是因為投入了大量的程式回測、因子分析，才有這次所呈現的量化成果。</p>



<p>對於想靠股息過日子，或喜歡「<strong>領息 + 穩定增值</strong>」的投資人而言，本文提供了另一個思考角度：</p>



<ul><li>高殖利率當然好，但若同時輔以「<strong>營收成長</strong>」、「<strong>股價走勢</strong>」以及「<strong>風險控管</strong>」等條件，也許能得到更好的投資體驗與回報。</li><li>0056 作為大眾入門選擇並無不可，但若你願意花些心思了解量化策略，自己動手選股或透過更進階的工具優化組合，或許就能在領股期的同時「多賺一點，少跌一點」，甚至大大超越原始 ETF 的表現。</li></ul>



<p>最後，若對量化選股或因子策略有更多好奇心，不妨實際嘗試應用文中提到的篩選方式，或直接透過量化平台進行回測調整，也歡迎參考&nbsp;<a href="https://colab.research.google.com/drive/1Gkz7n7jniMAqqEzwh96eV3JI1YTplS3g" target="_blank" rel="noopener">Colab範例檔</a>&nbsp;。<strong>祝大家研究和投資順利、盈收長紅！</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/%e5%a6%82%e4%bd%95%e5%be%a9%e5%88%bb0056%e9%ab%98%e8%82%a1%e6%81%afetf%ef%bc%8c%e4%b8%a6%e6%89%93%e9%80%a0%e8%b6%85%e8%b6%8a%e5%b8%82%e5%a0%b4%e7%9a%84%e9%80%b2%e9%9a%8e%e7%ad%96%e7%95%a5%ef%bc%81/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6547</post-id>	</item>
		<item>
		<title>分散風險的迷思？當心「攤薄」效應！</title>
		<link>https://www.finlab.tw/risk-of-diversification/</link>
					<comments>https://www.finlab.tw/risk-of-diversification/#respond</comments>
		
		<dc:creator><![CDATA[FinLab - 韓承佑]]></dc:creator>
		<pubDate>Sun, 23 Feb 2025 04:00:00 +0000</pubDate>
				<category><![CDATA[FinLab 量化平台]]></category>
		<category><![CDATA[Python新手教學]]></category>
		<category><![CDATA[PYTHON財經]]></category>
		<category><![CDATA[股票策略]]></category>
		<category><![CDATA[選股策略]]></category>
		<category><![CDATA[量化投資]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=6444</guid>

					<description><![CDATA[在投資世界裡，我們常聽到「不要把雞蛋放在同一個籃子裡」這句箴言，強調投資分散風險的重要性。然而，是不是持有的股 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="585" src="https://www.finlab.tw/wp-content/uploads/2025/02/DALL·E-2025-02-15-00.43.45-A-3D-rendered-glass-basket-with-a-smooth-rounded-and-high-quality-translucent-surface.-The-basket-has-a-refined-and-elegant-curvature-enhancing-its-1024x585.webp" alt="DALL·E 2025 02 15 00.43.45 A 3D rendered glass basket with a smooth rounded and high quality translucent surface. The basket has a refined and elegant curvature enhancing its" class="wp-image-6457" srcset="https://www.finlab.tw/wp-content/uploads/2025/02/DALL·E-2025-02-15-00.43.45-A-3D-rendered-glass-basket-with-a-smooth-rounded-and-high-quality-translucent-surface.-The-basket-has-a-refined-and-elegant-curvature-enhancing-its-1024x585.webp 1024w, https://www.finlab.tw/wp-content/uploads/2025/02/DALL·E-2025-02-15-00.43.45-A-3D-rendered-glass-basket-with-a-smooth-rounded-and-high-quality-translucent-surface.-The-basket-has-a-refined-and-elegant-curvature-enhancing-its-300x171.webp 300w, https://www.finlab.tw/wp-content/uploads/2025/02/DALL·E-2025-02-15-00.43.45-A-3D-rendered-glass-basket-with-a-smooth-rounded-and-high-quality-translucent-surface.-The-basket-has-a-refined-and-elegant-curvature-enhancing-its-768x439.webp 768w, https://www.finlab.tw/wp-content/uploads/2025/02/DALL·E-2025-02-15-00.43.45-A-3D-rendered-glass-basket-with-a-smooth-rounded-and-high-quality-translucent-surface.-The-basket-has-a-refined-and-elegant-curvature-enhancing-its-1536x878.webp 1536w, https://www.finlab.tw/wp-content/uploads/2025/02/DALL·E-2025-02-15-00.43.45-A-3D-rendered-glass-basket-with-a-smooth-rounded-and-high-quality-translucent-surface.-The-basket-has-a-refined-and-elegant-curvature-enhancing-its.webp 1792w" sizes="(max-width: 1024px) 100vw, 1024px" title="分散風險的迷思？當心「攤薄」效應！ 58"><figcaption>雞蛋放在同一個籃子不好嗎？</figcaption></figure>



<p>在投資世界裡，我們常聽到「不要把雞蛋放在同一個籃子裡」這句箴言，強調投資分散風險的重要性。然而，<strong>是不是持有的股票越多，投資就越安全、「報酬/風險」比就越高呢？</strong> 事實並非如此簡單。想像一下，如果你有一套祕方湯頭，只放一兩種獨特香料就風味十足，但你貪心地把<strong>一百種味道差不多的香料</strong>通通丟進鍋裡，結果滋味可能變得怪異又平淡無奇。投資組合也是一樣，如果<strong>過度分散在同類型的「Alpha股票」</strong>上（所謂 Alpha 股票即預期能帶來超額報酬的股票），你的優勢可能會被<strong>「攤薄」</strong>到幾乎嚐不出味道來。學術研究與數學證明告訴我們：當投資組合過度集中於<strong>同質的Alpha策略</strong>時，反而無法有效提升績效。最佳策略其實是<strong>精簡每一類Alpha股票的持有數量</strong>，同時在<strong>組合中納入多種不同類型的Alpha</strong>，透過異質性的多樣化來維持高報酬和分散風險。聽起來有點矛盾嗎？讓我們一步步拆解其中的奧祕。</p>



<h2>過度分散：當所有股票「一個樣」，報酬/風險變成大盤的模樣</h2>



<p>直覺上，多元分散應能降低風險，但若分散的對象彼此<strong>高度相似</strong>，那麼風險並不會隨持股數量無限下降，反而<strong>報酬被攤薄</strong>得厲害。學術研究早在1960年代就證實了分散投資的<strong>遞減效益</strong>：持股數增加到一定程度後，<strong>剩餘的風險下降幅度趨近於零</strong> (<a href="https://www.mdpi.com/1911-8074/14/11/551#:~:text=required%20to%20eliminate%2095,the%20number%20of%20stocks%20required" target="_blank" rel="noopener">How Many Stocks Are Sufficient for Equity Portfolio Diversification? A Review of the Literature</a>)。例如，Tang（2004）的分析指出：約20支股票的投資組合已能消除約95%的可分散風險，再額外加入80支股票，僅額外降低約4%的風險 (<a href="https://www.mdpi.com/1911-8074/14/11/551#:~:text=required%20to%20eliminate%2095,the%20number%20of%20stocks%20required" target="_blank" rel="noopener">How Many Stocks Are Sufficient for Equity Portfolio Diversification? A Review of the Literature</a>)！換言之，超過一定數量後，每新增一支相似的股票<strong>幾乎沒有降低風險的作用</strong>。</p>



<p>讓我們用數學觀點看看發生了什麼：假設這些股票都屬於同一類型（高度相關的Alpha股票），各股票報酬之間的相關係數為ρ，單支股票的標準差為σ。如果平均分散投資於N支這類股票，整體組合的波動率公式近似為：</p>



<p><img src="https://s0.wp.com/latex.php?latex=%5Csigma_%7Bport%7D+%5Capprox+%5Csigma+%5Csqrt%7B%5Crho+%2B+%5Cfrac%7B1-%5Crho%7D%7BN%7D%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#092;sigma_{port} &#092;approx &#092;sigma &#092;sqrt{&#092;rho + &#092;frac{1-&#092;rho}{N}} " class="latex" title="分散風險的迷思？當心「攤薄」效應！ 59"></p>



<p>這公式意味著：當N增加時，組合風險<img src="https://s0.wp.com/latex.php?latex=%5Csigma_%7Bport%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#092;sigma_{port} " class="latex" title="分散風險的迷思？當心「攤薄」效應！ 60">不斷降低，但有一個<strong>下限</strong>。隨著N趨近無限大，<img src="https://s0.wp.com/latex.php?latex=%5Cfrac%7B1-%5Crho%7D%7BN%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#092;frac{1-&#092;rho}{N} " class="latex" title="分散風險的迷思？當心「攤薄」效應！ 61">項趨近於0，<strong>組合風險逼近 <img src="https://s0.wp.com/latex.php?latex=%5Csigma%5Csqrt%7B%5Crho%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#092;sigma&#092;sqrt{&#092;rho} " class="latex" title="分散風險的迷思？當心「攤薄」效應！ 62"></strong> (<a href="https://www.aqr.com/-/media/AQR/Documents/Journal-Articles/JPM-The-Death-of-Diversification-Greatly-Exaggerated.pdf#:~:text=Grinold%E2%80%99s%20,diversified%20portfolio%20seem%20to%20behave" target="_blank" rel="noopener">JPM-ILMANEN.indd</a>)。如果這些股票完全同質移動（相關係數ρ接近1），那麼無論持有再多股票，整體波動率幾乎跟單一股票一樣高（因為<img src="https://s0.wp.com/latex.php?latex=%5Csigma%5Csqrt%7B%5Crho%7D%5Capprox+%5Csigma&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#092;sigma&#092;sqrt{&#092;rho}&#092;approx &#092;sigma" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 63">），風險無法進一步分散。也就是說，當所持股票<strong>高度相關</strong>時，<strong>有效的獨立投資機會數並未增加</strong> (<a href="https://joim.com/wp-content/uploads/emember/downloads/p0543.pdf#:~:text=IR%20%3D%20IC%E2%88%9A%20BR,Grinold%20and%20Kahn" target="_blank" rel="noopener">P0543</a>)。Richard Grinold在《投資組合管理期刊》1989年的經典論文中就強調：提升組合表現靠的是<strong>獨立的Alpha投注</strong>數量，而非單純增加持股數 (<a href="https://joim.com/wp-content/uploads/emember/downloads/p0543.pdf#:~:text=IR%20%3D%20IC%E2%88%9A%20BR,Grinold%20and%20Kahn" target="_blank" rel="noopener">P0543</a>)。如果增加的持股彼此並不獨立（例如同類型股票，共同隨著某一產業或因子波動），那麼對應的「獨立押注」數其實並沒有同步增加。</p>



<p>更糟的是，在報酬端，當我們不加篩選地持有太多<strong>同類型的股票</strong>時，投資組合的<strong>平均超額報酬（Alpha）</strong>也會被稀釋。想像你原本挑選出幾支最具Alpha潛力的股票，但為了「分散」，你把次優甚至泛泛之輩的股票也納入組合。結果，<strong>優秀股票的超額報酬被一堆平庸股票攤薄</strong>掉了。這有點像把一杯濃縮咖啡倒進一桶水裡，咖啡的濃醇香氣（超額報酬）會被沖淡到喝不出來。實證研究正好印證了這點：</p>



<ul><li><strong>基金經理的「最佳點子」</strong>：哈佛商學院和倫敦政經學院的<a href="https://personal.lse.ac.uk/polk/research/bestideas.pdf#:~:text=We%20find%20that%20the%20stocks,organization%20of%20the%20money%20management" target="_blank" rel="noopener">一項研究</a>發現，基金經理投資組合中他們<strong>最有信心的「最佳點子」股票</strong>，其表現遠勝過他們持有的其他股票。不僅擊敗大盤，甚至比他們自己組合裡的其他持股每年多出約2.8%～4.5%的超額報酬 ！而<strong>「大多數其他持股並沒有顯著超額報酬」</strong>。也就是說，經理那些為了「分散風險」而加入的次要持股，幾乎沒有貢獻額外報酬。研究者直言：若這些經理<strong>提高組合集中度</strong>、只持有他們最看好的標的，投資人反而會獲益更多。這強烈說明過度分散（持有太多股票）其實拉低了整體報酬/風險比。</li><li><strong>主動型基金的「隱形指數化」問題</strong>：另一項發表於《金融研究評論》（Review of Financial Studies）的研究引入了“Active Share”指標來衡量基金投資組合和基準指數的差異程度。結果顯示，<strong>Active Share最高</strong>（也就是持股最與指數不同、最集中）的那群主動型基金，顯著<strong>跑贏</strong>了市場基準；而那些<strong>Active Share最低</strong>（持股幾乎就是大雜燴指數的基金）不但沒有帶來超額收益，<strong>反而落後基準</strong> (<a href="https://ideas.repec.org/a/oup/rfinst/v22y2009i9p3329-3365.html#:~:text=Active%20Share%20predicts%20fund%20performance%3A,Published%20by%20Oxford" target="_blank" rel="noopener">How Active Is Your Fund Manager? A New Measure That Predicts Performance</a>)。換句話說，<strong>過度分散導致基金表現平庸甚至不佳</strong>。研究指出，最高組合差異的基金在扣除費用後每年仍高出基準2.5%～3.8%的報酬，而「過度分散」的基金則<strong>顯著輸給市場</strong>。這充分證明了當投資組合過度分散在相同類型資產時，<strong>報酬被削弱</strong>，而風險卻沒有成比例下降，導致<strong>報酬/風險比趨近於零</strong>的結果。投資領域甚至有個諷刺的說法稱這種現象為“Diworsification”（越分散越糟）<strong>。當你的投資組合變得和大盤沒兩樣時，你實質上失去了Alpha，但仍承擔著市場風險，</strong>用高昂的風險去換取幾乎為零的超額報酬。</li></ul>



<p>總結來說，如果一個投資組合<strong>持有過多同質的Alpha股票</strong>，那麼隨著持股數量的增加：<strong>(1)</strong> 可分散的風險很快被消除殆盡，只剩下系統性風險無法化解；<strong>(2)</strong> 超額報酬卻被愈來愈多的低Alpha成分攤薄，漸漸趨近於零。結果，<strong>報酬與風險的比值大幅下降</strong>，甚至接近<strong>無效投資</strong>（冒風險卻沒有額外報酬）的狀態。正如一項南非市場研究所說：「只需持有10～15檔股票即可達到高度分散，<strong>再增加股票，風險降低已經微乎其微</strong>」 (<a href="https://www.mdpi.com/1911-8074/14/11/551#:~:text=Irala%20and%20Patil%20%20,10%E2%80%9315%20stocks" target="_blank" rel="noopener">How Many Stocks Are Sufficient for Equity Portfolio Diversification? A Review of the Literature</a>)。過度分散只是在做無用功，反而可能讓我們失去原本的優勢。</p>



<h2>最優策略：集中優勢，搭配多元類型 Alpha</h2>



<p>既然過度分散會稀釋Alpha，那麼極端集中是否就是良方？只買一支股票當然風險過高，這走向另一個極端也不可取。真正聰明的策略是：<strong>在每一種Alpha策略內部要精挑細選、適度集中持股</strong>，但在整體組合層面上<strong>結合多種不同類型的Alpha策略</strong>，達到「<strong>大處分散、小處集中</strong>」的平衡。換句話說，<strong>把雞蛋放在不同的籃子裡，但每個籃子裡都只裝最優質的雞蛋</strong>。這樣一來，每個籃子（每種策略）本身帶來高報酬/風險比，而不同籃子之間的風險又彼此分散。</p>



<p>在學術上，這個思路可以用被稱為<strong>「主動管理基本法則」</strong>（Fundamental Law of Active Management）的公式來闡明。該法則由Grinold於1989年提出，指出一個主動投資組合的訊息比（Information Ratio，衡量超額報酬對超額風險的比率）可以表示為：</p>



<p><img src="https://s0.wp.com/latex.php?latex=IR+%3D+IC+%5Ctimes+%5Csqrt%7BBR%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="IR = IC &#092;times &#092;sqrt{BR} " class="latex" title="分散風險的迷思？當心「攤薄」效應！ 64"></p>



<p>其中，<img src="https://s0.wp.com/latex.php?latex=IC&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="IC" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 65">（Information Coefficient）代表投資經理的<strong>選股技能</strong>（對超額報酬的預測精度），而<img src="https://s0.wp.com/latex.php?latex=BR&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="BR" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 66">（Breadth）則代表<strong>獨立投資機會的數量</strong> (<a href="https://joim.com/wp-content/uploads/emember/downloads/p0543.pdf#:~:text=IR%20%3D%20IC%E2%88%9A%20BR,Grinold%20and%20Kahn" target="_blank" rel="noopener">P0543</a>)。通俗地說，如果你有很多彼此<strong>獨立</strong>的Alpha來源，而且每一個來源你都頗有把握（IC高），那整體表現就會相當亮眼。值得注意的是，這裡強調的是<strong>「獨立」</strong>的機會數。如果你的多個投注其實<strong>不獨立</strong>（例如都押在同一類型股票上），那麼有效的<img src="https://s0.wp.com/latex.php?latex=BR&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="BR" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 66">並沒有增加多少，<img src="https://s0.wp.com/latex.php?latex=IR&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="IR" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 68">也不會顯著提高 (<a href="https://joim.com/wp-content/uploads/emember/downloads/p0543.pdf#:~:text=IR%20%3D%20IC%E2%88%9A%20BR,Grinold%20and%20Kahn" target="_blank" rel="noopener">P0543</a>)。相反地，如果你將資金分散在<strong>數個相關性低、互相獨立的策略</strong>上，每新增一個<strong>不同</strong>的Alpha來源，就如同增加了一個新的獨立押注，可以大幅提升整體的風險調整後報酬。從公式上看，若每個策略的預測能力<img src="https://s0.wp.com/latex.php?latex=IC&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="IC" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 65">相近，將兩種獨立策略結合，<img src="https://s0.wp.com/latex.php?latex=IR&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="IR" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 68">約提升<img src="https://s0.wp.com/latex.php?latex=%5Csqrt%7B2%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#092;sqrt{2}" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 71">倍；結合四種獨立策略，<img src="https://s0.wp.com/latex.php?latex=IR&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="IR" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 68">則約提升<img src="https://s0.wp.com/latex.php?latex=%5Csqrt%7B4%7D%3D2&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#092;sqrt{4}=2" class="latex" title="分散風險的迷思？當心「攤薄」效應！ 73">倍 (<a href="https://www.aqr.com/-/media/AQR/Documents/Journal-Articles/JPM-The-Death-of-Diversification-Greatly-Exaggerated.pdf#:~:text=Grinold%E2%80%99s%20,diversified%20portfolio%20seem%20to%20behave" target="_blank" rel="noopener">JPM-ILMANEN.indd</a>)。這不是天方夜譚——金融界實證也發現了類似的結果。</p>



<p>AQR資產管理公司的一項研究將<strong>幾個彼此相關性極低的策略</strong>組合在一起（例如<strong>動能</strong>、<strong>價值</strong>、<strong>趨勢追蹤</strong>、<strong>套利</strong>等不同類型的Alpha策略），結果發現：<strong>組合的夏普比率幾乎是單一策略的兩倍</strong> (<a href="https://www.aqr.com/-/media/AQR/Documents/Journal-Articles/JPM-The-Death-of-Diversification-Greatly-Exaggerated.pdf#:~:text=Grinold%E2%80%99s%20,diversified%20portfolio%20seem%20to%20behave" target="_blank" rel="noopener">JPM-ILMANEN.indd</a>)！具體而言，他們發現結合五個不同因子的多元策略組合，其夏普比率約1.4，遠高於單獨持有某一資產類別時的0.7左右 (<a href="https://www.aqr.com/-/media/AQR/Documents/Journal-Articles/JPM-The-Death-of-Diversification-Greatly-Exaggerated.pdf#:~:text=the%20portfolio%20Sharpe%20ratio%20increases,we%20are%20in%20the%20right" target="_blank" rel="noopener">JPM-ILMANEN.indd</a>)。這相當於<strong>有效擁有了四個彼此獨立的投資</strong>所得到的效果 (<a href="https://www.aqr.com/-/media/AQR/Documents/Journal-Articles/JPM-The-Death-of-Diversification-Greatly-Exaggerated.pdf#:~:text=the%20portfolio%20Sharpe%20ratio%20increases,we%20are%20in%20the%20right" target="_blank" rel="noopener">JPM-ILMANEN.indd</a>)。原因在於，不同類型Alpha之間的相關性低，當一類策略短期失靈時，另一類策略可能依然奏效，<strong>彼此風險可以互相抵消</strong>，卻各自提供超額報酬來源。正如前面提到的公式所示，<strong>把多種獨立Alpha結合</strong>，就好比增加了投注次數，透過<strong>平方根效應</strong>成倍提升整體的報酬/風險比。這個策略在學術上有時被稱為<strong>“多元阿爾法”</strong>或<strong>“Alpha疊加”</strong>策略，即將來自不同市場或因子的阿爾法來源放在一起。金融分析師期刊上也多次討論過類似概念，例如強調<strong>同時配置多種風格因子</strong>（價值、成長、規模、動能等）可降低組合波動並提高夏普比率 (<a href="https://www.aqr.com/-/media/AQR/Documents/Journal-Articles/JPM-The-Death-of-Diversification-Greatly-Exaggerated.pdf#:~:text=Grinold%E2%80%99s%20,diversified%20portfolio%20seem%20to%20behave" target="_blank" rel="noopener">JPM-ILMANEN.indd</a>)。事實證明，「不要把雞蛋放同個籃子」的箴言在這裡要進一步細化為：「<strong>不要把雞蛋都放在同一種類型的籃子</strong>裡，但<strong>也不要在每個籃子裡裝太多雞蛋</strong>。」</p>



<h2>結語：聰明的分散，才能兼顧收益與風險</h2>



<p>綜合以上研究與證明，我們可以明確地說：<strong>分散投資並非越多越好</strong>。當投資組合<strong>過度分散在同一類型的Alpha股票</strong>上時，我們所得到的，只是一個和市場表現差不多的組合，却承擔著近似市場的風險，導致[<strong>報酬/風險比趨近於零</strong>](<a href="https://ideas.repec.org/a/oup/rfinst/v22y2009i9p3329-3365.html#:~:text=Active%20Share%20predicts%20fund%20performance%3A,Published%20by%20Oxford" target="_blank" rel="noopener">How Active Is Your Fund Manager? A New Measure That Predicts Performance</a>)。這種情況下，我們幾乎等同於在做無謂的冒險——因為承擔了波動，卻沒有獲得相應的超額收益回報。正如研究者戲稱的那樣，這樣的過度分散就是「<strong>資產配置變成了資產折磨</strong>」，徒有分散之名，卻無分散之實。</p>



<p>反之，<strong>最優的策略</strong>是在不同類型的Alpha之間取得<strong>平衡的多樣性</strong>。透過<strong>精簡每種Alpha策略內的持股數</strong>（只挑選最有信心的標的），我們確保每個策略都能貢獻可觀的超額報酬；再透過<strong>結合多種彼此相關性低的Alpha策略</strong>，我們讓整體組合的風險大幅降低而報酬保持高水準。這就是所謂「<strong>在集中中求分散，在分散中求集中</strong>」的藝術。實證結果一再支持此觀點：基金經理應當<strong>專注於自己的最佳想法</strong> 、投資人應當挑選<strong>高主動性且多元化策略配置</strong>的基金 (<a href="https://ideas.repec.org/a/oup/rfinst/v22y2009i9p3329-3365.html#:~:text=Active%20Share%20predicts%20fund%20performance%3A,Published%20by%20Oxford" target="_blank" rel="noopener">How Active Is Your Fund Manager? A New Measure That Predicts Performance</a>)。透過多元Alpha的配置，我們可以同時「享受蛋糕又吃蛋糕」——既獲得<strong>多樣化降低風險</strong>的好處，又保有<strong>豐厚超額收益</strong>的潛力。</p>



<p>總而言之，打造一個<strong>高報酬/風險比</strong>的投資組合的祕訣，在於<strong>聰明的分散</strong>：避免過度分散在同質的標的上，而要追求<strong>來源多元</strong>但各自精選的Alpha組合。正如老高講故事般的風格，我們最後用一句話來總結這個耐人尋味的道理：<strong>「分散」不是簡單地什麼都買一點，而是要懂得選擇地分散、策略地分散</strong>。唯有如此，你才能在市場中同時捕獲收益與控制風險，讓你的投資組合既美味又營養，真正做到立於不敗之地。 (<a href="https://www.mdpi.com/1911-8074/14/11/551#:~:text=required%20to%20eliminate%2095,the%20number%20of%20stocks%20required" target="_blank" rel="noopener">How Many Stocks Are Sufficient for Equity Portfolio Diversification? A Review of the Literature</a>) (<a href="https://www.aqr.com/-/media/AQR/Documents/Journal-Articles/JPM-The-Death-of-Diversification-Greatly-Exaggerated.pdf#:~:text=Grinold%E2%80%99s%20,diversified%20portfolio%20seem%20to%20behave" target="_blank" rel="noopener">JPM-ILMANEN.indd</a>)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/risk-of-diversification/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6444</post-id>	</item>
		<item>
		<title>大跌後的底氣 &#8211; 獨家主力波動指標</title>
		<link>https://www.finlab.tw/broker_transaction_indicator/</link>
					<comments>https://www.finlab.tw/broker_transaction_indicator/#respond</comments>
		
		<dc:creator><![CDATA[FinLab - 韓承佑]]></dc:creator>
		<pubDate>Wed, 07 Aug 2024 04:06:32 +0000</pubDate>
				<category><![CDATA[FinLab 量化平台]]></category>
		<category><![CDATA[Python新手教學]]></category>
		<category><![CDATA[籌碼面]]></category>
		<category><![CDATA[股票策略]]></category>
		<category><![CDATA[財經PYTHON教學]]></category>
		<category><![CDATA[PYTHON]]></category>
		<category><![CDATA[VIP限定]]></category>
		<category><![CDATA[歷史回測]]></category>
		<category><![CDATA[程式交易]]></category>
		<category><![CDATA[量化投資]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=6277</guid>

					<description><![CDATA[券商分點理論上是非常有效果的數據，應用得當，可以用來預測股價的走勢，然而，市場上主要將券商分點資料來計算「主力買賣超」、「買賣家數差」，該指標在選股的有效程度上，並非顯著。

本文將提出一種新的方式，來提取券商分點資料，製作更有效的選股指標，其效果非常顯著，搭配回測策略能夠有效獲得卓越的效果。]]></description>
										<content:encoded><![CDATA[
<h1>介紹</h1>



<p>券商分點理論上是非常有效果的數據，應用得當，可以用來預測股價的走勢，然而，市場上主要將券商分點資料來計算「主力買賣超」、「買賣家數差」，該指標在選股上，效果不好。</p>



<p>本文將提出一種新的方式，來提取券商分點資料，製作更有效的選股指標，其效果非常顯著，搭配回測策略能夠有效獲得卓越的效果。本文將詳細說明這些概念的定義、計算方法及應用，並展示如何將這些知識綜合應用於投資策略的設計與回測。</p>



<p>建議讀者可以自行修改，將策略調整後，有很大的進步空間。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="585" src="https://www.finlab.tw/wp-content/uploads/2024/08/DALL·E-2024-08-07-12.04.12-A-minimalist-stock-price-V-shaped-recovery-chart-on-a-black-background.-The-V-shape-is-prominently-illuminated-giving-it-a-sleek-high-end-look.-The--1024x585.webp" alt="DALL·E 2024 08 07 12.04.12 A minimalist stock price V shaped recovery chart on a black background. The V shape is prominently illuminated giving it a sleek high end look. The" class="wp-image-6299" srcset="https://www.finlab.tw/wp-content/uploads/2024/08/DALL·E-2024-08-07-12.04.12-A-minimalist-stock-price-V-shaped-recovery-chart-on-a-black-background.-The-V-shape-is-prominently-illuminated-giving-it-a-sleek-high-end-look.-The--1024x585.webp 1024w, https://www.finlab.tw/wp-content/uploads/2024/08/DALL·E-2024-08-07-12.04.12-A-minimalist-stock-price-V-shaped-recovery-chart-on-a-black-background.-The-V-shape-is-prominently-illuminated-giving-it-a-sleek-high-end-look.-The--300x171.webp 300w, https://www.finlab.tw/wp-content/uploads/2024/08/DALL·E-2024-08-07-12.04.12-A-minimalist-stock-price-V-shaped-recovery-chart-on-a-black-background.-The-V-shape-is-prominently-illuminated-giving-it-a-sleek-high-end-look.-The--768x439.webp 768w, https://www.finlab.tw/wp-content/uploads/2024/08/DALL·E-2024-08-07-12.04.12-A-minimalist-stock-price-V-shaped-recovery-chart-on-a-black-background.-The-V-shape-is-prominently-illuminated-giving-it-a-sleek-high-end-look.-The--1536x878.webp 1536w, https://www.finlab.tw/wp-content/uploads/2024/08/DALL·E-2024-08-07-12.04.12-A-minimalist-stock-price-V-shaped-recovery-chart-on-a-black-background.-The-V-shape-is-prominently-illuminated-giving-it-a-sleek-high-end-look.-The-.webp 1792w" sizes="(max-width: 1024px) 100vw, 1024px" title="大跌後的底氣 - 獨家主力波動指標 74"></figure>



<h1>籌碼分點資料（Broker Transactions）</h1>



<h2>什麼是籌碼分點資料</h2>



<p>籌碼分點資料是指某一股票在不同券商之間的買賣交易情況。這些資料包括買入量、賣出量等，反映了不同券商在特定時間段內的交易行為。這些數據能提供市場上資金流動的資訊，有助於投資者理解市場動向。</p>



<h2>資料來源與取得方式</h2>



<p>在台灣，投資者可以通過一些金融資料平台，如Finlab，來獲取籌碼分點資料。這些平台提供了方便的API接口，使投資者能夠輕鬆下載和分析數據。</p>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab import data
bt = data.get('broker_transactions', force_download=True)

buysell = bt.groupby(['date', 'stock_id']).agg({'buy': 'sum', 'sell': 'sum'})\
  .reset_index().pivot(columns='stock_id', index='date', values=['buy', 'sell'])

buysell.head()</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="254" src="https://www.finlab.tw/wp-content/uploads/2024/08/image-1-1024x254.png" alt="image 1" class="wp-image-6279" srcset="https://www.finlab.tw/wp-content/uploads/2024/08/image-1-1024x254.png 1024w, https://www.finlab.tw/wp-content/uploads/2024/08/image-1-300x74.png 300w, https://www.finlab.tw/wp-content/uploads/2024/08/image-1-768x190.png 768w, https://www.finlab.tw/wp-content/uploads/2024/08/image-1-1536x381.png 1536w, https://www.finlab.tw/wp-content/uploads/2024/08/image-1-2048x508.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" title="大跌後的底氣 - 獨家主力波動指標 75"></figure>



<p></p>



<h2>籌碼分點資料的深度分析</h2>



<h3>過往如何通過籌碼分點資料識別主力資金動向</h3>



<p>主力資金的動向通常對市場影響巨大。通過分析籌碼分點資料中的大額交易，可以識別出主力資金的買賣行為，從而提前佈局。</p>



<h3>過往的券商分點指標</h3>



<p>過往有一些券商分點指標，對於選股有一些效果，然而實測上，顯著程度有限。以下列舉最常見的兩種指標：</p>



<h3>主力買賣超</h3>



<p><strong>定義</strong>：</p>



<p>主力買賣超是指某一特定時間段內，主要券商的買入量與賣出量之差。</p>



<p><strong>計算公式</strong>： </p>



<p>主力買賣超=∑(主要券商買入量)−∑(主要券商賣出量)</p>



<p><strong>效用：</strong></p>



<ul><li><strong>資金動向指標</strong>：主力買賣超反映了市場中資金流向的變化，主要券商的大額買入或賣出行為通常代表著市場主力資金的動向，能夠影響股票價格。</li><li><strong>市場情緒指標</strong>：通過觀察主力買賣超，投資者可以了解市場主力的投資情緒，進而做出相應的投資決策。</li></ul>



<h3>買賣家數差</h3>



<p><strong>定義</strong>：</p>



<p>買賣家數差是指買入股票的券商家數與賣出股票的券商家數之差。</p>



<p><strong>計算公式</strong>： </p>



<p>買賣家數差=買入券商家數−賣出券商家數</p>



<p><strong>效用：</strong></p>



<p><strong>市場參與度指標</strong>：買賣家數差反映了市場中多空雙方的力量對比，當買入券商家數多於賣出券商家數時，表示市場散戶的偏好。</p>



<p><strong>供需平衡指標</strong>：買賣家數差能夠幫助投資者判斷市場供需平衡狀況，從而預測未來價格走勢。</p>



<p>上述指標效果平平，接下來，我們將藉由 ChatGPT 發想更優秀的指標。</p>



<h1>券商分點資料建構指標</h1>



<h2>利用 ChatGPT 發想相關想法</h2>



<p>為了創建更好的指標，我們可以透過 ChatGPT 來輔助產生不同的 factor 進行運算，這種方法並非標新立異，其實早就在</p>



<blockquote class="wp-block-quote"><p>Cheng, Yuhan, and Ke Tang. &#8220;GPT&#8217;s idea of stock factors.&#8221;&nbsp;<em>Quantitative Finance</em>&nbsp;(2024): 1-26.</p></blockquote>



<p>被介紹過。</p>



<h2>指標種類與計算方式</h2>



<p>以下為 ChatGPT 產生的指標，其中有一些是滿有參考性的，我們可以拿來使用看看，下圖中，雖然它誤以為 ICIR 是一種協會（等等介紹這是什麼），然而也提供了一些不錯的指標：</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="941" height="1024" src="https://www.finlab.tw/wp-content/uploads/2024/08/image-5-941x1024.png" alt="image 5" class="wp-image-6293" srcset="https://www.finlab.tw/wp-content/uploads/2024/08/image-5-941x1024.png 941w, https://www.finlab.tw/wp-content/uploads/2024/08/image-5-276x300.png 276w, https://www.finlab.tw/wp-content/uploads/2024/08/image-5-768x835.png 768w, https://www.finlab.tw/wp-content/uploads/2024/08/image-5.png 1412w" sizes="(max-width: 941px) 100vw, 941px" title="大跌後的底氣 - 獨家主力波動指標 76"></figure>



<h2>產生程式碼</h2>



<p>ChatGPT 除了可以幫忙發想指標外，也可以用來產生出相對應的程式，這樣就不需要親自撰寫程式。</p>



<p></p>



<pre class="wp-block-code"><code lang="python" class="language-python">import warnings
warnings.filterwarnings('ignore')

net_volume = buysell['buy'] - buysell['sell']
buy_sell_ratio = buysell['buy'] / buysell['sell']
balance_index = (buysell['buy'] - buysell['sell']) / (buysell['buy'] + buysell['sell'])

feature_dfs = {
    'net_volume': net_volume,
    'buy_sell_ratio': buy_sell_ratio,
    'balance_index': balance_index,

}</code></pre>



<p></p>



<h2>有效性</h2>



<p>我們當然會希望這些指標是有效的，需要有一個衡量標準，能夠一致性的對於這些不同的指標進行評分，方便我們從中選出最適合選股的指標，通常我們會使用 IC、ICIR 來衡量這些指標是否對於未來的股價有相關性。</p>



<h1>Information Coefficient (IC)</h1>



<h2>介紹</h2>



<p>IC，即Information Coefficient，是衡量一個指標在預測資產回報方面的能力的數值。簡單來說，IC代表了預測回報與實際回報之間的相關性。IC的範圍一般在-1到1之間，其中正值表示預測回報與實際回報正相關，負值表示兩者負相關。IC的絕對值越高，表示預測能力越強。</p>



<p>IC的計算方法如下：</p>



<p>IC = Cov(r,x) / σrσx</p>



<p>其中，r 為實際回報，x 為預測回報，Cov(r,x) 為兩者的協方差，σr、σx​ 分別為實際回報和預測回報的標準差。</p>



<p>IC主要用於衡量單一時點上的預測能力，而ICIR則進一步綜合多個時點上的IC，評估一段時間內的整體預測能力。</p>



<h2>ICIR</h2>



<h2>如何計算ICIR</h2>



<p>ICIR的計算主要基於Information Coefficient（IC），其公式如下：</p>



<p>ICIR = Mean(IC) × Std(IC)</p>



<h2>在投資中的應用</h2>



<p>ICIR能幫助投資者評估不同策略或指標的預測能力，從而選擇具有較穩定的預測能力的策略。高ICIR值通常表示策略具有穩定的預測能力，適合在實際投資中應用。</p>



<h3>程式碼</h3>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab.tools.factor_analysis import ic

adj_close = data.get('etl:adj_close')
# 每個時間點的IC
ics = ic(feature_dfs, adj_close, days=[10, 20, 60]) 

# 取平均
ics.mean()

# 取得ICIR
ics.mean() / ics.std()</code></pre>



<h3>遞迴優化參數</h3>



<p>藉由 ICIR，我們可以疊代不同的公式，產生出更好的指標：</p>



<ol><li>產生指標庫：先計算與發想指標</li><li>計算IC、ICIR</li><li>更新指標指標庫<ol><li>移除沒有效果的指標</li><li>有效果的指標進行參數優化，列舉多個變體</li></ol></li><li>重複步驟 1</li></ol>



<h2>成果</h2>



<pre class="wp-block-code"><code lang="python" class="language-python">import numpy as np

def std(df, n):
  return df.rolling(n).std().replace(0, np.nan)

buy_change = buysell['buy'] - buysell['buy'].shift(1)
sell_change = buysell['sell'] - buysell['sell'].shift(1)
net_volume_change = net_volume - net_volume.shift(1)

feature_dfs = {
    'net_volume': net_volume,
    'buy_sell_ratio': buy_sell_ratio,
    'balance_index': balance_index,

    'avg20_net_volume': net_volume / net_volume.rolling(20).mean(),
    'avg20_buy_sell_ratio': buy_sell_ratio.rolling(20).mean(),
    'avg20_balance_index': balance_index.rolling(20).mean(),

    'sharpe5_net_volume': net_volume.rolling(5).mean() / std(net_volume, 5),
    'sharpe10_net_volume': net_volume.rolling(10).mean() / std(net_volume, 10),
    'sharpe20_net_volume': net_volume.rolling(20).mean() / std(net_volume, 20),
    'sharpe60_net_volume': net_volume.rolling(60).mean() / std(net_volume, 60),
    
    'sharpe5_balance_index': balance_index.rolling(5).mean() / std(balance_index, 5),
    'sharpe10_balance_index': balance_index.rolling(10).mean() / std(balance_index, 10),
    'sharpe20_balance_index': balance_index.rolling(20).mean() / std(balance_index, 20),
    'sharpe60_balance_index': balance_index.rolling(60).mean() / std(balance_index, 60),
    
    'sharpe5_buy_sell_ratio': buy_sell_ratio.rolling(5).mean() / std(buy_sell_ratio, 5),
    'sharpe10_buy_sell_ratio': buy_sell_ratio.rolling(10).mean() / std(buy_sell_ratio, 10),
    'sharpe20_buy_sell_ratio': buy_sell_ratio.rolling(20).mean() / std(buy_sell_ratio, 20),
    'sharpe30_buy_sell_ratio': buy_sell_ratio.rolling(30).mean() / std(buy_sell_ratio, 30),
    'sharpe60_buy_sell_ratio': buy_sell_ratio.rolling(60).mean() / std(buy_sell_ratio, 60),
}

from finlab.tools.factor_analysis import ic

adj_close = data.get('etl:adj_close')
ics = ic(feature_dfs, adj_close, days=[10, 20, 60])</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" width="559" height="596" src="https://www.finlab.tw/wp-content/uploads/2024/08/image-6.png" alt="image 6" class="wp-image-6307" srcset="https://www.finlab.tw/wp-content/uploads/2024/08/image-6.png 559w, https://www.finlab.tw/wp-content/uploads/2024/08/image-6-281x300.png 281w" sizes="(max-width: 559px) 100vw, 559px" title="大跌後的底氣 - 獨家主力波動指標 77"></figure>



<p>上圖中可以發現，最終做出來的指標，其 IC 最高，高達 0.04，其中一種指標，雖然表現並不是非常理想，但用選股策略上非常有效果，我把它叫做「主力波動指標」。</p>



<h1>主力波動與穩定性</h1>



<p>主力常常上攻後又迅速熄火，讓投資者難以捕捉到持續的上漲機會。甚至是隔日沖主力，常常當天買、隔天賣，使得券商分點特別難用。為了克服這一問題，我們需要構建一個更為有效的指標，以更準確地識別市場中的主力動向，特別是穩定買入、持續買入的主力，並提高投資決策的穩定性。</p>



<h2>指標的需求</h2>



<p>指標必須滿足以下需求：</p>



<ol><li><strong>主力買賣比率</strong>：滾動平均值（rolling mean）能夠平滑短期波動，使得我們能夠觀察到買賣比率的中期趨勢。通過計算10日滾動平均值，我們可以避免因單日大幅波動而帶來的誤判，更清晰地看到市場主力的買入行為。</li><li><strong>買入波動性</strong>：標準差（std）是衡量數據波動性的重要指標。當買賣比率的標準差較低時，意味著買賣比率在這段時間內波動較小，主力行為相對穩定。低波動性通常表明市場中存在持續且穩定的買入或賣出行為。</li><li><strong>識別持續買入</strong>：該指標將滾動平均值與標準差進行比值計算，即買賣比率的均值除以其標準差。當這個比值較高時，說明在這段時間內，買賣比率不僅處於較高水準，且波動較小，這表明市場中可能存在持續且穩定的買入行為。這些行為通常是由市場主力資金推動的，因為他們在積極且穩定地買入股票，從而推高買賣比率並保持其穩定性。</li></ol>



<h2>公式如下</h2>



<p>買賣比率 = 前 15 大主力買入 / 前 15 大主力賣出</p>



<p>主力波動 = 買賣比率的10日平均 / 買賣比率的10日​標準差</p>



<h2>效果</h2>



<p>當該指標數值較高時，說明在過去的10日內，主力買入大量且不輕易變化，這表明市場中可能存在持續且穩定的買入行為，這些行為通常由主力資金推動。相反，若該指標數值較低，則表示買賣比率波動較大且不穩定，市場中可能缺乏持續的買入力量、或是有隔日沖的行為。</p>



<p>該指標能夠獲得非常高的 IC，並且利用該指標，可以輕易做出效果顯著的策略。</p>



<h1>回測</h1>



<p>以下是一個簡單的回測範例，展示如何通過籌碼分點資料來進行策略回測，我們利用「主力波動指標」為主體，月營收YOY為輔助，來尋找短期具有爆發力的股票標的。值得一提的是，這個策略當前並非最佳解，還有很多種方式可以大幅優化此策略的效果，建議讀者可以稍做調整，而非直接使用。</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import datetime
from finlab.dataframe import FinlabDataFrame
from finlab.backtest import sim

ind = FinlabDataFrame(feature_dfs['sharpe10_buy_sell_ratio'])

close = data.get('price:收盤價')
volume = data.get('price:成交股數')
rev = data.get('monthly_revenue:當月營收')

# 1. 尋找月營收YOY大於1.5的股票標的
# 2. 成交量來到 300 張，確保流動性
# 3. 以主力波動指標進行排序，選最高的 20 檔
pos = (ind)[(rev / rev.shift(12) &gt; 1.5)
  &amp; (volume &gt; 300_000)
].is_largest(20)

r = sim(pos, resample=rev.index)</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="1008" src="https://www.finlab.tw/wp-content/uploads/2024/08/image-3-1024x1008.png" alt="image 3" class="wp-image-6281" srcset="https://www.finlab.tw/wp-content/uploads/2024/08/image-3-1024x1008.png 1024w, https://www.finlab.tw/wp-content/uploads/2024/08/image-3-300x295.png 300w, https://www.finlab.tw/wp-content/uploads/2024/08/image-3-768x756.png 768w, https://www.finlab.tw/wp-content/uploads/2024/08/image-3-1536x1511.png 1536w, https://www.finlab.tw/wp-content/uploads/2024/08/image-3.png 1742w" sizes="(max-width: 1024px) 100vw, 1024px" title="大跌後的底氣 - 獨家主力波動指標 78"></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="979" src="https://www.finlab.tw/wp-content/uploads/2024/08/image-4-1024x979.png" alt="image 4" class="wp-image-6282" srcset="https://www.finlab.tw/wp-content/uploads/2024/08/image-4-1024x979.png 1024w, https://www.finlab.tw/wp-content/uploads/2024/08/image-4-300x287.png 300w, https://www.finlab.tw/wp-content/uploads/2024/08/image-4-768x734.png 768w, https://www.finlab.tw/wp-content/uploads/2024/08/image-4-1536x1468.png 1536w, https://www.finlab.tw/wp-content/uploads/2024/08/image-4.png 1636w" sizes="(max-width: 1024px) 100vw, 1024px" title="大跌後的底氣 - 獨家主力波動指標 79"></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/broker_transaction_indicator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6277</post-id>	</item>
		<item>
		<title>槓桿動態調控策略的量化分析</title>
		<link>https://www.finlab.tw/leverage-dynamic-adjustment-strategy/</link>
					<comments>https://www.finlab.tw/leverage-dynamic-adjustment-strategy/#respond</comments>
		
		<dc:creator><![CDATA[FinLab - 韓承佑]]></dc:creator>
		<pubDate>Wed, 22 May 2024 04:55:00 +0000</pubDate>
				<category><![CDATA[FinLab 量化平台]]></category>
		<category><![CDATA[Python新手教學]]></category>
		<category><![CDATA[技術面]]></category>
		<category><![CDATA[股票策略]]></category>
		<category><![CDATA[PYTHON]]></category>
		<category><![CDATA[歷史回測]]></category>
		<category><![CDATA[選股策略]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=6193</guid>

					<description><![CDATA[在投資市場中，槓桿是一種常見的放大收益工具。然而，槓桿同時也會放大風險，如何在獲取高收益的同時有效控制風險是投資者面臨的主要挑戰之一。本研究旨在探討一種動態調控槓桿策略，該策略基於最大下跌 (Maximum Drawdown, MDD) 的控制來動態調整投資部位，從而在控制風險的同時獲取可觀的收益。]]></description>
										<content:encoded><![CDATA[
<p>在投資市場中，槓桿是一種常見的放大收益工具。然而，槓桿同時也會放大風險，如何在獲取高收益的同時有效控制風險是投資者面臨的主要挑戰之一。本研究旨在探討一種動態調控槓桿策略，該策略基於最大下跌 (Maximum Drawdown, MDD) 的控制來動態調整投資部位，從而在控制風險的同時獲取可觀的收益。</p>



<h2>相關概念</h2>





<h3>最大下跌</h3>



<p>最大下跌是衡量投資組合在特定期間內從峰值到谷底的最大資產價值跌幅。具體定義為：</p>



<img src="https://s0.wp.com/latex.php?latex=MDD%28k%29+%3D+%5Cfrac%7BV_%7B%5Ctext%7Bmax%7D%7D%28k%29+-+V%28k%29%7D%7BV_%7B%5Ctext%7Bmax%7D%7D%28k%29%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="MDD(k) = &#092;frac{V_{&#092;text{max}}(k) - V(k)}{V_{&#092;text{max}}(k)}" class="latex" title="槓桿動態調控策略的量化分析 80">



<p>其中，<img src="https://s0.wp.com/latex.php?latex=V%28k%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="V(k)" class="latex" title="槓桿動態調控策略的量化分析 81"> 是時間 <img src="https://s0.wp.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="k" class="latex" title="槓桿動態調控策略的量化分析 82"> 的資產價值，<img src="https://s0.wp.com/latex.php?latex=V_%7B%5Ctext%7Bmax%7D%7D%28k%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="V_{&#092;text{max}}(k)" class="latex" title="槓桿動態調控策略的量化分析 83"> 是時間 <img src="https://s0.wp.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="k" class="latex" title="槓桿動態調控策略的量化分析 82"> 之前的最大資產價值。MDD 是一個重要的風險衡量指標，因為它直接反映了投資者可能面臨的最大損失。</p>



<h2>動機</h2>



<p>在牛市中，投資者希望利用槓桿放大收益，但在熊市中又希望能有效控制風險。傳統的槓桿策略往往在市場下跌時面臨巨大風險，而不使用槓桿則可能錯失市場上漲帶來的收益。因此，本文提出基於 MDD 的動態調控槓桿策略，旨在實現高收益與低風險之間的平衡。</p>



<h2>方法</h2>



<p>本文採用宗翰教授所發表「On Data-Driven Drawdown Control with Restart Mechanism in Trading」的論文中提出的「下跌調控反饋控制」策略，其公式如下：</p>



<img src="https://s0.wp.com/latex.php?latex=M%28k%29+%3D+%5Cgamma+%5Cfrac%7Bd_%7B%5Ctext%7Bmax%7D%7D+-+d%28k%29%7D%7B1+-+d%28k%29%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="M(k) = &#092;gamma &#092;frac{d_{&#092;text{max}} - d(k)}{1 - d(k)}" class="latex" title="槓桿動態調控策略的量化分析 85">



<p>其中，M(k) 是調整部位的係數，隨時間 k 變化。<img src="https://s0.wp.com/latex.php?latex=d%28k%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="d(k)" class="latex" title="槓桿動態調控策略的量化分析 86"> 是時間 <img src="https://s0.wp.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="k" class="latex" title="槓桿動態調控策略的量化分析 82"> 的最大下跌比例，<img src="https://s0.wp.com/latex.php?latex=d_%7B%5Ctext%7Bmax%7D%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="d_{&#092;text{max}} " class="latex" title="槓桿動態調控策略的量化分析 88"> 是使用者設定的最大可容許下跌，<img src="https://s0.wp.com/latex.php?latex=%5Cgamma&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#092;gamma" class="latex" title="槓桿動態調控策略的量化分析 89"> 是類似於槓桿倍數的調整參數。</p>



<p>具體操作步驟如下：</p>



<ul><li>設定初始投資金額及最大可容許下跌比例 <img src="https://s0.wp.com/latex.php?latex=d_%7B%5Ctext%7Bmax%7D%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="d_{&#092;text{max}}" class="latex" title="槓桿動態調控策略的量化分析 90">。</li><li>根據市場走勢計算每個時刻的最大下跌 <img src="https://s0.wp.com/latex.php?latex=d%28k%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="d(k)" class="latex" title="槓桿動態調控策略的量化分析 86">。</li><li>根據公式動態調整槓桿比例 M(k)，以控制風險。</li></ul>



<h3>數字範例</h3>



<p>讓我們透過一些數字範例來更詳細說明：</p>



<p>假設我們設定的最大可容許下跌比例 <img src="https://s0.wp.com/latex.php?latex=d_%7B%5Ctext%7Bmax%7D%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="d_{&#092;text{max}}" class="latex" title="槓桿動態調控策略的量化分析 90"> 為 0.2（即 20%），初始投資金額為 100,000 元，並選擇 <img src="https://s0.wp.com/latex.php?latex=%5Cgamma&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#092;gamma" class="latex" title="槓桿動態調控策略的量化分析 89"> 為 2。</p>



<h3>初始狀態 <img src="https://s0.wp.com/latex.php?latex=k%3D0&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="k=0" class="latex" title="槓桿動態調控策略的量化分析 94"></h3>



<ul><li>投資金額：100,000 元</li><li>最大下跌 <img src="https://s0.wp.com/latex.php?latex=d%280%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="d(0)" class="latex" title="槓桿動態調控策略的量化分析 95">：0</li><li>調整係數 <img src="https://s0.wp.com/latex.php?latex=M%280%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="M(0)" class="latex" title="槓桿動態調控策略的量化分析 96">：
<img src="https://s0.wp.com/latex.php?latex=M%280%29+%3D+2+%5Ctimes+%5Cfrac%7B0.2+-+0%7D%7B1+-+0%7D+%3D+0.4&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="M(0) = 2 &#092;times &#092;frac{0.2 - 0}{1 - 0} = 0.4" class="latex" title="槓桿動態調控策略的量化分析 97">
</li></ul>



<h3>第 1 天 <img src="https://s0.wp.com/latex.php?latex=k%3D1&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="k=1" class="latex" title="槓桿動態調控策略的量化分析 98"></h3>



<ul><li>假設市場價格下跌 5%，投資金額變為 95,000 元</li><li>當前最大下跌 <img src="https://s0.wp.com/latex.php?latex=d%281%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="d(1)" class="latex" title="槓桿動態調控策略的量化分析 99">：0.05（即 5%）</li><li>調整係數 <img src="https://s0.wp.com/latex.php?latex=M%281%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="M(1)" class="latex" title="槓桿動態調控策略的量化分析 100">：
<img src="https://s0.wp.com/latex.php?latex=M%281%29+%3D+2+%5Ctimes+%5Cfrac%7B0.2+-+0.05%7D%7B1+-+0.05%7D+%3D+0.3158&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="M(1) = 2 &#092;times &#092;frac{0.2 - 0.05}{1 - 0.05} = 0.3158" class="latex" title="槓桿動態調控策略的量化分析 101">
</li></ul>



<h3>第 2 天 <img src="https://s0.wp.com/latex.php?latex=k%3D2&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="k=2" class="latex" title="槓桿動態調控策略的量化分析 102"></h3>



<ul><li>假設市場價格再下跌 10%，投資金額變為 85,500 元</li><li>當前最大下跌 <img src="https://s0.wp.com/latex.php?latex=d%282%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="d(2)" class="latex" title="槓桿動態調控策略的量化分析 103">：0.145（即 14.5%）</li><li>調整係數 <img src="https://s0.wp.com/latex.php?latex=M%282%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="M(2)" class="latex" title="槓桿動態調控策略的量化分析 104">：
<img src="https://s0.wp.com/latex.php?latex=M%282%29+%3D+2+%5Ctimes+%5Cfrac%7B0.2+-+0.145%7D%7B1+-+0.145%7D+%3D+0.1286&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="M(2) = 2 &#092;times &#092;frac{0.2 - 0.145}{1 - 0.145} = 0.1286" class="latex" title="槓桿動態調控策略的量化分析 105">
</li></ul>



<p>從這些範例中可以看出，隨著市場下跌，調整係數 <img src="https://s0.wp.com/latex.php?latex=M%28k%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="M(k)" class="latex" title="槓桿動態調控策略的量化分析 106"> 會逐漸減小，從而減少投資部位，達到風險控制的效果。相反，當市場上升時，調整係數會增大，從而增加投資部位，實現槓桿效應。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-finlab wp-block-embed-finlab"><div class="wp-block-embed__wrapper">
<div class="oceanwp-oembed-wrap clr"><blockquote class="wp-embedded-content" data-secret="5bK5RIjbVo"><a href="https://www.finlab.tw/pb-data-analysis-explain/">股價淨值比能找到好股票？用歷史數據讓你感受它的厲害！</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" title="股價淨值比能找到好股票？用歷史數據讓你感受它的厲害！ &#8212; FinLab" src="https://www.finlab.tw/pb-data-analysis-explain/embed/#?secret=GFDv4ebAK2#?secret=5bK5RIjbVo" data-secret="5bK5RIjbVo" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>
</div></figure>



<h2>實驗</h2>



<p>本實驗通過隨機漫步 (random walk) 模擬報酬曲線，並對其最大風險和終端報酬率進行分析。共進行1000次模擬，並將結果分別用淺灰色、紅色和藍色表示不同的策略：</p>



<ul><li><strong>淺灰色</strong>：不使用槓桿的買入並持有 (buy-and-hold) 策略。</li><li><strong>紅色</strong>：單純使用兩倍槓桿的策略。</li><li><strong>藍色</strong>：使用上述公式進行動態調節部位的兩倍槓桿策略。</li></ul>



<p>以下是詳細的程式碼和註解：</p>



<pre class="wp-block-code"><code lang="python" class="language-python line-numbers"># 匯入所需的函式庫
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 設定圖表尺寸
plt.rcParams['figure.figsize'] = (16, 6)
# 計算移動平均最大下跌
def mm(s):
    return ((s.cummax() - s) / s.cummax()).shift().rolling(10).mean()
# 初始化數據儲存的列表
means = []
means2 = []
mdds = []
mdds2 = []
means3 = []
mdds3 = []
# 進行3000次模擬
for i in range(3000):
    # 生成隨機漫步序列，模擬股票價格
    s = pd.Series(np.random.randn(250)+0.01, index=pd.date_range('1/1/2000', periods=250)).div(100).add(1).cumprod()
    
    # 計算最大下跌
    mdd = ((s.cummax() - s) / s.cummax()).max()
    # 計算動態槓桿比例
    gamma = 1.7 / (mdd + 0.1)
    size = (gamma * ((mdd + 0.1 - mm(s)) / (1 - mm(s))))
    
    # 計算動態槓桿策略的回報
    r = (s.pct_change() * size + 1).cumprod()
    rmdd = ((r.cummax() - r) / r.cummax()).max()
    # 儲存結果
    means.append(s[-1])
    means2.append(r[-1])
</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="395" src="https://www.finlab.tw/wp-content/uploads/2024/05/output-1024x395.png" alt="output" class="wp-image-6197" srcset="https://www.finlab.tw/wp-content/uploads/2024/05/output-1024x395.png 1024w, https://www.finlab.tw/wp-content/uploads/2024/05/output-300x116.png 300w, https://www.finlab.tw/wp-content/uploads/2024/05/output-768x296.png 768w, https://www.finlab.tw/wp-content/uploads/2024/05/output.png 1309w" sizes="(max-width: 1024px) 100vw, 1024px" title="槓桿動態調控策略的量化分析 107"><figcaption>最大下跌分佈（左）與終端報酬率（右）</figcaption></figure>



<h3>結果分析</h3>



<ol><li> <strong>藍色線條的最大風險控制效果顯著</strong>：藍色線條在左側的最大下跌分佈顯示，動態調節槓桿的策略有效降低了風險，最大下跌值相比紅色和淺灰色顯著減少。</li><li><strong>正終端報酬率時的表現</strong>：在終端報酬率為正的情況下，藍色和紅色線條的分佈相似，這表示動態調節槓桿策略在收益表現上與單純兩倍槓桿策略相當。 </li><li><strong>避免大額虧損</strong>：當終端報酬率接近0時，藍色線條顯示出更多的小額虧損，但總體而言，藍色線條有效避免了許多大額虧損，這顯示動態調節槓桿策略在風險管理上有明顯優勢。 

本研究提出的基於最大下跌調控的動態槓桿策略能夠在控制風險的同時實現與傳統槓桿策略相近的收益表現。通過動態調整投資部位，我們可以有效減少市場下跌時的風險，並在市場上漲時獲取可觀收益。這一策略為投資者提供了一種在牛市中放大收益、熊市中控制風險的有效工具。 </li></ol>



<h2>結論</h2>



<p>參考文獻: Hsieh, Chung-Han. &#8220;Generalization of affine feedback stock trading results to include stop-loss orders.&#8221; Automatica 136 (2022): 110051.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-finlab wp-block-embed-finlab"><div class="wp-block-embed__wrapper">
<div class="oceanwp-oembed-wrap clr"><blockquote class="wp-embedded-content" data-secret="UZxPY5S326"><a href="https://www.finlab.tw/%e9%81%b8%e8%82%a1%e7%ad%96%e7%95%a5%e5%9b%9e%e6%b8%ac%e6%96%b0%e5%8a%9f%e8%83%bd%e6%ac%8a%e9%87%8d%e5%a4%9a%e7%a9%ba%e5%b0%8d%e6%b2%96sunburst-%e7%94%a2%e6%a5%ad%e5%88%86%e6%9e%90pandasta-%e6%8a%80/">選股策略回測有新功能！包含權重多空對沖、Sunburst 產業分析、PandasTA 技術指標 &#8211; FinLab 0.3.2.dev 再進化！</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" title="選股策略回測有新功能！包含權重多空對沖、Sunburst 產業分析、PandasTA 技術指標 &#8211; FinLab 0.3.2.dev 再進化！ &#8212; FinLab" src="https://www.finlab.tw/%e9%81%b8%e8%82%a1%e7%ad%96%e7%95%a5%e5%9b%9e%e6%b8%ac%e6%96%b0%e5%8a%9f%e8%83%bd%e6%ac%8a%e9%87%8d%e5%a4%9a%e7%a9%ba%e5%b0%8d%e6%b2%96sunburst-%e7%94%a2%e6%a5%ad%e5%88%86%e6%9e%90pandasta-%e6%8a%80/embed/#?secret=l0Y9fyysf4#?secret=UZxPY5S326" data-secret="UZxPY5S326" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/leverage-dynamic-adjustment-strategy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6193</post-id>	</item>
		<item>
		<title>利用 0050 的概念，優化選股的績效</title>
		<link>https://www.finlab.tw/0050%e7%9a%84%e5%84%aa%e5%8c%96%e4%bb%a5%e5%8f%8a%e5%8f%b0%e7%81%a3%e5%b8%82%e5%a0%b4%e5%b8%82%e5%80%bc%e7%a0%94%e7%a9%b6/</link>
					<comments>https://www.finlab.tw/0050%e7%9a%84%e5%84%aa%e5%8c%96%e4%bb%a5%e5%8f%8a%e5%8f%b0%e7%81%a3%e5%b8%82%e5%a0%b4%e5%b8%82%e5%80%bc%e7%a0%94%e7%a9%b6/#respond</comments>
		
		<dc:creator><![CDATA[FinLab - 韓承佑]]></dc:creator>
		<pubDate>Wed, 07 Feb 2024 06:47:06 +0000</pubDate>
				<category><![CDATA[PYTHON財經]]></category>
		<category><![CDATA[技術面]]></category>
		<category><![CDATA[股票策略]]></category>
		<category><![CDATA[0050]]></category>
		<category><![CDATA[均線]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=6080</guid>

					<description><![CDATA[簡介 ETF 的起源 台灣在 2000 年代初期，股市的交易量非常小，很多股票的價格都不穩定，所以很多人都不敢 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2>簡介</h2>



<h2>ETF 的起源</h2>



<p>台灣在 2000 年代初期，股市的交易量非常小，很多股票的價格都不穩定，所以很多人都不敢買股票。但是在 2003 年，台灣證券交易所推出了 ETF，讓投資人可以透過 ETF 來投資台灣股市，而代號0050 的元大寶來<strong>台灣</strong>卓越50），就是台灣的第一檔ETF。有了 ETF，投資人就不用擔心股票的流動性問題。</p>



<p>如今台灣股市的交易量已經增加，大多數股票的價格都非常穩定，理論上不再需要 ETF 來投資台灣股市。然而，ETF 有一個很大的優勢，就是可以透過 ETF 來投資台灣股市，不需要花時間去選股票，也不需要花時間去分析股票。</p>



<p>而 ETF 近期也推出非常多種類型的 ETF，例如科技、金融、生技，還有不同的屬性，例如槓桿 ETF、反向 ETF ，以及不同特性，例如配息 ETF、低波動 ETF 等等，所以投資人可以利用 ETF，選一籃子的股票池，來分散風險。</p>



<h2>ETF 衍生的問題</h2>



<p>ETF有一個明顯的問題，在於 ETF 的市值可能很高，就必須要有很好的流動性，不然當 ETF 再平衡時，股價就會大幅影響。有一個對普通人來說，大於1000 張的每日流動性，並不是必要的，台灣上市上櫃快 2000 檔股票，要通過這個的門檻，只剩300檔股票。</p>



<p>所以買 ETF 等於限制自己在 300 檔股票在選股。這樣會讓投資人錯過很多潛力股。所以接下來，我們就要透過程式來選股，來在歷史績效上，打敗 ETF。我們會先複製 0050 的資產配置組合，然後透過程式來優化。</p>



<h2>0050 介紹</h2>



<p>0050 是台灣最大的 ETF，也是台灣股市中的第一檔 ETF，專門用來當台灣股市的全市場參考，衡量股市漲跌的指標之一。</p>



<h2>究竟要不要買 0050 ？</h2>



<p>有些人覺得投資 0050 就是指數化投資，但要達到真正的指數化投資，就必須要買進全球股市的股票，而非只買台灣股市的股票。所以我認為 VT 等等包含了全球股市的股票，才是真正的指數化投資。現在透過一般券商，如永豐證券，一般人其實就可以輕鬆買到。</p>



<p>撇除了指數化投資，為什麼要買 0050？假如你覺得台灣的優勢是有很多科技股，那 0052 針對台灣的科技股的 ETF，可能會更適合你，而 0052 長期來說，歷史績效是比 0050 還要好的。</p>



<p>現代券商可以跨國買美股和其ETF，可以買到全球股市的股票，所以 0050 在現代的投資組合中，可能就不再是必要的選擇，然而，它還是全台灣市值最大的 ETF，大家都會關注它的表現，來當作是市場漲跌的參考。</p>



<h2>0050 實做</h2>



<p>我們先複製 0050 的資產配置組合，然後透過程式來優化。首先我們先選擇台灣前 50 大市值的股票，然後依照市值來分配權重，可以參考<a href="https://www.yuantafunds.com/fund/download/1066%E5%8F%B0%E7%81%A3%E5%8D%93%E8%B6%8A50-%E5%85%AC%E9%96%8B%E8%AA%AA%E6%98%8E%E6%9B%B8.pdf" target="_blank" rel="noopener">公開說明書</a>。</p>



<p>除了市值外，0050還有額外的規則，必須要將市值乘以「公眾流通量係數」，這個是為了避免有些股票的流通量太小，計算方式很複雜，我們化簡成：「1-董監持股佔比」更詳細的計算方式，可以參考公開說明書。</p>



<p>另外，還有一些流動性篩檢，以及公司審核的部分，由於程式較複雜，但影響估計不大，篇幅考量，我們就不再細說。</p>



<pre class="wp-block-code"><code lang="python" class="language-python line-numbers">from finlab import data

# 市值
market_cap = data.get('etl:market_value')

# 公眾流通量係數
float_ratio = (100 - data.get('internal_equity_changes:董監持有股數占比')) / 100

# 權重
weight = market_cap * float_ratio

# 前 50 大權重，並且依照權重分配投資的比例
position = weight.is_largest(50) * weight

# 回測，3,6,9,12月第3個星期五後的下一個交易日進行交易。
r1 = backtest.sim(position, resample='Q', resample_offset='3W', upload=False)
r1.display()</code></pre>



<p>程式碼<a href="https://colab.research.google.com/drive/1zQ2N0qqcR7XAfvcTY2-_IoHYk6DsJIbb?usp=sharing" target="_blank" rel="noopener">在此執行</a>。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="950" src="https://www.finlab.tw/wp-content/uploads/2024/02/image-1-1024x950.png" alt="image 1" class="wp-image-6082" srcset="https://www.finlab.tw/wp-content/uploads/2024/02/image-1-1024x950.png 1024w, https://www.finlab.tw/wp-content/uploads/2024/02/image-1-300x278.png 300w, https://www.finlab.tw/wp-content/uploads/2024/02/image-1-768x712.png 768w, https://www.finlab.tw/wp-content/uploads/2024/02/image-1.png 1512w" sizes="(max-width: 1024px) 100vw, 1024px" title="利用 0050 的概念，優化選股的績效 108"><figcaption>台灣 50 模仿策略</figcaption></figure>



<p>近 10 年平均報酬率是 12％，跟大盤差不多，算是達到了 0050 的初衷，追蹤大盤指數。<br>從分析結果來看，確實有著非凡的流動性，然而在其他方面，例如獲利能力，或抵抗風險的能力，都不甚理想，這也是為什麼我們要透過程式來優化，來在績效上打敗 0050。不過 ETF 也擁有更多元化優勢，投資者應根據個人投資風格做出選擇。</p>



<h2>關於市值的分析</h2>



<p>既然 0050 是市值前 50 大的股票，那我們就來分析市值的特性，並且透過市值來研發投資組合。我們將市值由小到大分成 5 組，然後觀察每一組的報酬率。<br>藍色為最小市值，紅色為大市值。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="723" src="https://www.finlab.tw/wp-content/uploads/2024/02/image-2-1024x723.png" alt="image 2" class="wp-image-6083" srcset="https://www.finlab.tw/wp-content/uploads/2024/02/image-2-1024x723.png 1024w, https://www.finlab.tw/wp-content/uploads/2024/02/image-2-300x212.png 300w, https://www.finlab.tw/wp-content/uploads/2024/02/image-2-768x543.png 768w, https://www.finlab.tw/wp-content/uploads/2024/02/image-2.png 1138w" sizes="(max-width: 1024px) 100vw, 1024px" title="利用 0050 的概念，優化選股的績效 109"></figure>



<p><br>可以發現，長期持有最小市值的組別，報酬率反而最高，而最大市值的組別，報酬率最低。所以結論是，在台灣，除非想要追求穩定的報酬率，否則市值越小的股票，報酬率越高。當然從常理來說，市值小的股票，風險也比較高，所以建議投資者依據自己的風險承受能力進行投資。</p>



<p>所以接下來我們就來研發小市值的策略，雖然跟 0050 是完全相反的，但我想用這個實驗，藉此證明 ETF 高流動性、與大市值，所犧牲的小型股，是多麼的可惜，所以本篇接下來主要用非常簡單的步驟，來篩選出中小型股，組成自己的 ETF。</p>



<p>不過當前研究所提供的優化策略，是基於過去數據進行回測，可能存在過度擬合的問題，使得策略在未來的市場環境中表現不佳，請使用者自行斟酌。</p>



<h2>0050 優化：步驟一，小市值成交量</h2>



<p>小型股的問題在於，流動性不足，有時候買賣並沒有這麼方便，要掛單造成不必要的等待與價差，所以首先我們要先來確認小型股流動性問題，我們先來看小市值（市場上市值小於20％的股票）股票的每日成交量分布圖：</p>



<figure class="wp-block-image size-full"><img loading="lazy" width="580" height="432" src="https://www.finlab.tw/wp-content/uploads/2024/02/image-4.png" alt="image 4" class="wp-image-6085" srcset="https://www.finlab.tw/wp-content/uploads/2024/02/image-4.png 580w, https://www.finlab.tw/wp-content/uploads/2024/02/image-4-300x223.png 300w" sizes="(max-width: 580px) 100vw, 580px" title="利用 0050 的概念，優化選股的績效 110"><figcaption>小市值的股票成交量（張數）</figcaption></figure>



<p>可以看到小市值的股票，每日平均交易張數大都小於200張，這樣的股票雖不至於不能買，但確實會有流動性的問題。在小市值的股票中，究竟成交量高，還是成交量小的股票報酬率比較好？下圖中，流動性越低（藍色）的股票，長期持有報酬率越好</p>



<figure class="wp-block-image size-full"><img loading="lazy" width="571" height="405" src="https://www.finlab.tw/wp-content/uploads/2024/02/image-5.png" alt="image 5" class="wp-image-6086" srcset="https://www.finlab.tw/wp-content/uploads/2024/02/image-5.png 571w, https://www.finlab.tw/wp-content/uploads/2024/02/image-5-300x213.png 300w" sizes="(max-width: 571px) 100vw, 571px" title="利用 0050 的概念，優化選股的績效 111"><figcaption>藍色為成交量低，紅色為成交量高</figcaption></figure>



<p>雖然我們知道小市值、低成交量，有很好的報酬率，然而 FinLab 部落格畢竟每月上萬人的流量，盡量以成交量中高以上的策略進行研發，是比較適合的。所以針對「小市值低成交量」的研究，就交給各位來進行了。我們就先以上圖中的紅色與粉紅色，小市值中的中高成交量，來進行選股的製作。</p>



<p>選擇市值小的股票，我們在此設定門檻為日成交量 200 張以上，長期持有，每季換股，報酬率如下：</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="973" src="https://www.finlab.tw/wp-content/uploads/2024/02/image-3-1024x973.png" alt="image 3" class="wp-image-6084" srcset="https://www.finlab.tw/wp-content/uploads/2024/02/image-3-1024x973.png 1024w, https://www.finlab.tw/wp-content/uploads/2024/02/image-3-300x285.png 300w, https://www.finlab.tw/wp-content/uploads/2024/02/image-3-768x730.png 768w, https://www.finlab.tw/wp-content/uploads/2024/02/image-3.png 1496w" sizes="(max-width: 1024px) 100vw, 1024px" title="利用 0050 的概念，優化選股的績效 112"><figcaption>小市值50小，成交量200張以上，每季換股</figcaption></figure>



<p>看起來雖然平均來說，效果比 0050 好，但是在2020年以前並不理想。不過別擔心，因為小型股有很多明顯的選股特性，很適合加入進來，例如均線。</p>



<h2>0050 優化：步驟二，均線</h2>



<p>所以接下來，我們希望可以過濾一些風險較高的股票，而均線是非常有用的方法，可以過濾掉一些未來可能下跌的股票，我們來看看效果如何，程式碼<a href="https://colab.research.google.com/drive/1zQ2N0qqcR7XAfvcTY2-_IoHYk6DsJIbb?usp=sharing" target="_blank" rel="noopener">可在此</a>執行：</p>



<pre class="wp-block-code"><code lang="python" class="language-python line-numbers">from finlab import backtest
from finlab import data

cap = data.get('etl:market_value')
vol = data.get('price:成交股數')
close = data.get('price:收盤價')

position = cap[
    (vol.average(20) &gt; 200_000)
    &amp; (close &gt; close.average(60)) 
    &amp; (close &gt; close.average(120))
    &amp; (close &gt; close.average(250))
].is_smallest(50)

report = backtest.sim(position, resample='Q')</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="952" src="https://www.finlab.tw/wp-content/uploads/2024/02/image-6-1024x952.png" alt="image 6" class="wp-image-6087" srcset="https://www.finlab.tw/wp-content/uploads/2024/02/image-6-1024x952.png 1024w, https://www.finlab.tw/wp-content/uploads/2024/02/image-6-300x279.png 300w, https://www.finlab.tw/wp-content/uploads/2024/02/image-6-768x714.png 768w, https://www.finlab.tw/wp-content/uploads/2024/02/image-6.png 1514w" sizes="(max-width: 1024px) 100vw, 1024px" title="利用 0050 的概念，優化選股的績效 113"><figcaption>新增股價大於 60 日、120日、250日均線的條件後</figcaption></figure>



<p>當前我們透過簡單的均線，就能夠將策略的報酬率明顯提升，產生出一個0050小市值策略了！各位可以測測看用一樣的方法，但排序選取大市值的股票，效果並不會太好。</p>



<p>從自己主觀的經驗來說，成交量或市值越低的股票，越可能有超額報酬，有可能的原因是關注度比較低，價格反應並沒有像是大型股這麼即時。</p>



<h2>0050 優化：步驟三，減少檔數</h2>



<p>此時還是有問題，我們是要自己拿來投資的，怎麼可能買 50 檔股票呢？所以為了讓我們可以實際的來買賣，必須要讓股票的檔數變少才行，最簡單的方式，就是進一步選擇市值最小的 15 檔股票。</p>



<p>但你就會發現，股票的檔數變少，你的投資組合會有波動更劇烈。所以我加入了波動指標，過濾大起大落的股票標的，來確保我們的投資組合雖然標的少，但是能保持類似的穩定程度，我們來看看效果如何。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="957" src="https://www.finlab.tw/wp-content/uploads/2024/02/image-7-1024x957.png" alt="image 7" class="wp-image-6088" srcset="https://www.finlab.tw/wp-content/uploads/2024/02/image-7-1024x957.png 1024w, https://www.finlab.tw/wp-content/uploads/2024/02/image-7-300x281.png 300w, https://www.finlab.tw/wp-content/uploads/2024/02/image-7-768x718.png 768w, https://www.finlab.tw/wp-content/uploads/2024/02/image-7.png 1508w" sizes="(max-width: 1024px) 100vw, 1024px" title="利用 0050 的概念，優化選股的績效 114"><figcaption>新增波動指標，過濾波動大於 30% 的股票</figcaption></figure>



<h2>0050 與優化後的績效比較</h2>



<p>根據上述的回測結果，優化後的策略相較於優化前有顯著的改善，在多項指標上表現更佳。</p>



<ol><li><strong>年化回報率 (Annual Return)</strong>：優化後的策略從+13%增加到+37%，表明策略的盈利能力大幅提升。</li><li><strong>阿爾法值 (Alpha)</strong>：從0%提高到+29%，顯示優化後的策略相對於基準的超額回報有明顯的提升。當然 0050 本來就希望 alpha 是 0，這樣比並不是很公平啦XD。</li><li><strong>貝塔值 (Beta)</strong>：從1.08降低到0.70，這意味著優化後的策略相對於市場整體風險的敏感度降低，更穩健。</li><li><strong>平均持股數 (AvgNStock) 和最大持股數 (MaxNStock)</strong>：從50降至15，顯示優化後的策略更加集中，選股更為精確。</li><li><strong>最大回撤 (Max Drawdown)</strong>：優化後略有降低，從-33％降到-31％，表示策略的損失風險略微下降。</li><li><strong>平均回撤 (Avg Drawdown) 和平均回撤天數 (Avg Drawdown Days)</strong>：這兩個指標變化不大，保持穩定。</li><li><strong>風險價值 (Value at Risk) 和條件風險價值 (Conditional Value at Risk)</strong>：雖然風險略有上升，但考慮到回報率的大幅提升，這種風險的增加是可以接受的。</li><li><strong>夏普比率 (Sharpe Ratio)</strong>、<strong>索提諾比率 (Sortino Ratio)</strong> 和 <strong>卡瑪比率 (Calmar Ratio)</strong>：這些風險調整後的回報率指標均顯示顯著提升，表明優化後策略的風險調整回報大幅優於優化前。</li><li><strong>波動性 (Volatility)</strong>：略有增加，從0.17上升到0.18，但考慮到收益的增加，這一增加是合理的。</li></ol>



<h2>與 00639 台灣50正二 比較</h2>



<p>相比 00639 台灣 50 正二，我們研發的策略並不遜色。</p>



<ol><li><strong>年化回報率 (Annual Return)</strong>：優化後的策略+37% 對比 00639 為 +24%，表明不需要開 2 倍槓桿，就能有很好的效果。</li><li><strong>最大回撤 (Max Drawdown)</strong>：兩倍槓桿最大的壞處就是，當下跌時，虧損也是 2 倍（甚至更多）。小市值策略最大下跌風險為 -31%，對比 00639 為 -52%，更為安全。</li><li><strong>波動性 (Volatility)</strong>：本策略的波動程度： 0.18，小於台灣 50 正二的 0.32。所以要是你真的想要投資台灣 50 正二，那還不如投資我們這個台灣15小型股。</li></ol>



<p>本篇介紹的策略，其並未開槓桿，而各項指標績效遠比 00632 好，與其開槓桿，優化選股組合是一個比較安穩且同時享有超額報酬的方式。</p>



<p>如何開槓桿？需要有更多停損、停利，及擇時，然而從量化交易回測的角度，由於參數較多，往往會有過擬合之現象，屬於更進階的投資方法。</p>



<h2>結論</h2>



<p>總體而言，優化後的策略在盈利能力、風險調整回報和市場風險敏感度方面都有明顯改善，表現出更高的效率和穩定性。優化措施有效提升了策略的整體表現，使其更適合於風險偏好較低且追求高效率的投資者。</p>



<h2>未來改進的方向</h2>



<p>可以試試看，結合更多指標，如財務健康、業績增長率、股息率等，進行更全面的股票評估和選擇，以建立更均衡和具有競爭力的投資組合。</p>



<p>P.S. 策略一不小心做得太好了，所以<a href="https://ai.finlab.tw/strategyview/?uid=TJN4FDuqrwU8DML7DAjUYFIMutp2&amp;sid=%E5%8F%B0%E7%81%A3%E5%8D%81%E4%BA%94%E5%B0%8F%E5%B8%82%E5%80%BC" target="_blank" rel="noopener">最完整策略</a>只好先分享給本平台 VIP 使用。但基本上有心的話，透過本篇的蛛絲馬跡，已經非常足夠重現此策略。</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/0050%e7%9a%84%e5%84%aa%e5%8c%96%e4%bb%a5%e5%8f%8a%e5%8f%b0%e7%81%a3%e5%b8%82%e5%a0%b4%e5%b8%82%e5%80%bc%e7%a0%94%e7%a9%b6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6080</post-id>	</item>
		<item>
		<title>揭秘庫藏股：智慧投資策略與市場動態的完美結合（Part 1）</title>
		<link>https://www.finlab.tw/inventory-up/</link>
					<comments>https://www.finlab.tw/inventory-up/#respond</comments>
		
		<dc:creator><![CDATA[lawrence]]></dc:creator>
		<pubDate>Sat, 30 Dec 2023 16:31:00 +0000</pubDate>
				<category><![CDATA[股票策略]]></category>
		<category><![CDATA[基本面分析]]></category>
		<category><![CDATA[籌碼面]]></category>
		<category><![CDATA[程式交易]]></category>
		<category><![CDATA[選股策略]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=5848</guid>

					<description><![CDATA[庫藏股是公司購回且未注銷的自家股票，用於提高股價、防禦敵意收購、員工激勵等多重目的。它們不參與流通，不具投票權與股利資格。在台灣股市中，庫藏股操作還涉及稅務優勢。透過庫藏股，公司能提升每股盈利（EPS）並改善財務指標。投資者可以在庫藏股期間透過買盤策略獲利，儘管這種方法效果有限，但展示了利用市場動態的潛力。]]></description>
										<content:encoded><![CDATA[
<p>本文介紹什麼是庫藏股，並且以淺顯易懂的方式進行解說，並且實作年化報酬率20％以上的庫藏股策略，歡迎大家觀摩學習，推廣 FinLab。</p>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="1024" height="585" src="https://www.finlab.tw/wp-content/uploads/2023/11/80p1vnct-1024x585.png" alt="80p1vnct" class="wp-image-5993" srcset="https://www.finlab.tw/wp-content/uploads/2023/11/80p1vnct-1024x585.png 1024w, https://www.finlab.tw/wp-content/uploads/2023/11/80p1vnct-300x171.png 300w, https://www.finlab.tw/wp-content/uploads/2023/11/80p1vnct-768x439.png 768w, https://www.finlab.tw/wp-content/uploads/2023/11/80p1vnct-1536x878.png 1536w, https://www.finlab.tw/wp-content/uploads/2023/11/80p1vnct.png 1792w" sizes="(max-width: 1024px) 100vw, 1024px" title="揭秘庫藏股：智慧投資策略與市場動態的完美結合（Part 1） 115"><figcaption>庫藏股如何獲利？</figcaption></figure>



<h2>庫藏股是什麼？</h2>



<p>庫藏股，是指公司購回自家股票並暫時保留而未注銷的一種股票形式。這類股票一旦被公司回購，就不會參與流通，因此不具備投票權和股利資格。企業進行庫藏股操作的目的多樣，其中包括增加每股價值、作為防禦敵意收購的策略、提供員工激勵計劃的選項，以及優化財務報表。這一策略在全球多數國家和地區的股市中普遍存在。</p>



<p>當公司決定購回股票後，這些股票可以保留為庫藏股，也可選擇注銷。注銷後，公司的股本會相應減少，從而提升每股盈利（EPS）。庫藏股的策略不僅有助於改善關鍵財務指標，如EPS，也能對股票市場的整體表現產生積極影響。台灣股市中的庫藏股操作，同時也涉及到稅務考量，相比於現金分紅，庫藏股具有稅務上的優勢。</p>



<p>更多詳細資訊，歡迎參考<a href="https://rich01.com/blog-pos-24/" target="_blank" rel="noopener">市場先生</a>的深入解析。</p>



<h2>為什麼需要庫藏股</h2>



<p>庫藏股的存在和使用通常基於以下幾個主要原因：</p>



<ol><li>增加股價和每股盈利（EPS）：通過減少流通中的股份數量，公司可以提升剩餘股份的價值和每股盈利（EPS）。這是因為在盈利不變的情況下，減少的股份數量意味著每股分攤到的盈利增加。</li><li>防禦策略：當公司面臨敵意收購的威脅時，購買庫藏股可以作為一種防禦策略。透過減少市場上可用的股份，公司可以提高敵對方收購所需的成本，從而降低被收購的風險。</li><li>資本結構最優化：公司可能認為股票被低估，因此透過買回股票來改善其資本結構，同時向市場傳達對自身價值的信心。</li><li>員工激勵計劃：庫藏股可用於員工股票選擇權計劃或其他形式的員工報酬計劃。這有助於增強員工對公司的忠誠度和激勵，因為他們直接參與到公司的表現中。</li><li>資本回報：當公司擁有多餘現金且缺乏其他高回報的投資機會時，它可能選擇透過庫藏股回報給股東。這可以視為對股東的一種獎勵。</li><li>稅務考量：以台股為例，庫藏股相比於現金分紅具有稅務上的優勢。</li><li>改善財務指標：減少流通中的股票數量有助於改善某些關鍵的財務指標，如每股盈利（EPS），從而對公司股票的市場表現產生正面影響。</li></ol>



<p>總之，庫藏股是公司財務戰略的一部分，用於達到特定的商業目標和增強股東價值。</p>



<h2>怎麼利用庫藏股事件獲利</h2>



<p>探討庫藏股獲利的途徑，我們可以考慮在庫藏股操作期間實施買盤策略。這是基於一個簡單的假設：庫藏股期間往往會吸引買家進場。以下是一段以Python編寫的策略代碼，它展示了如何利用庫藏股期間的市場動態進行投資。</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import finlab
from finlab import data
from finlab.backtest import sim
import pandas as pd

close = data.get("price:收盤價")

# create event dataframe
start_buy = data.get('treasury_stock:預定買回期間-起')
start_buy = pd.DataFrame({
  "stock_id": [stock for stock in start_buy.columns for _ in start_buy[stock].dropna()],
  "dates": [date for stock in start_buy.columns for date in start_buy[stock].dropna()]
})
start_buy["value"] = 1
start_buy = start_buy.pivot(index="dates", columns="stock_id", values="value").notna()
start_buy = start_buy.reindex(close.index, columns=close.columns).fillna(False)
start_buy = start_buy &amp; (~start_buy.shift(-1).fillna(False))

position = start_buy
position = position.shift(-1).rolling(40).sum().fillna(0)
report = sim(position, trade_at_price="open", fee_ratio=1.425/1000*0.2, market='TW_STOCK')</code></pre>



<p>雖然這種策略的效果可能有限，但它確實展示了庫藏股獲利的可能性。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="798" height="1024" src="https://www.finlab.tw/wp-content/uploads/2023/12/image-6-798x1024.png" alt="image 6" class="wp-image-5982" srcset="https://www.finlab.tw/wp-content/uploads/2023/12/image-6-798x1024.png 798w, https://www.finlab.tw/wp-content/uploads/2023/12/image-6-234x300.png 234w, https://www.finlab.tw/wp-content/uploads/2023/12/image-6-768x985.png 768w, https://www.finlab.tw/wp-content/uploads/2023/12/image-6-1198x1536.png 1198w, https://www.finlab.tw/wp-content/uploads/2023/12/image-6-1597x2048.png 1597w, https://www.finlab.tw/wp-content/uploads/2023/12/image-6.png 1954w" sizes="(max-width: 798px) 100vw, 798px" title="揭秘庫藏股：智慧投資策略與市場動態的完美結合（Part 1） 116"><figcaption>庫藏股績效</figcaption></figure>



<h2>結論</h2>



<ol><li><strong>庫藏股定義</strong>：庫藏股是公司購回但未注銷的自家股票。這些股票不在市場流通，無投票權和股利。</li><li><strong>購買原因</strong>：公司購買庫藏股可能是為了提高股價、防禦敵意收購、作為員工激勵計劃的一部分、改善財務報表等。</li><li><strong>庫藏股的影響</strong>：庫藏股可提升剩餘股份的價值和每股盈利（EPS），是資本結構調整的一種方式。</li><li><strong>使用目的</strong>：庫藏股被用於提升股價、防禦收購、員工激勵、資本回報、稅務考量、改善財務指標等。</li><li><strong>庫藏股獲利策略</strong>：透過特定的財務分析方法，可以在庫藏股期間進行投資操作，這可能帶來獲利機會，儘管收益可能有限。</li></ol>



<p>庫藏股是公司財務策略的重要一環，用於實現多元的商業目標和增強股東價值。對於投資者來說，理解庫藏股的概念和影響，可以幫助他們做出更明智的投資決策。</p>



<p>接下來，我們就要將這個簡單的策略改進，獲得更穩定的報酬率。不妨來參考一下 FinLab 的 VIP 文章「<a href="https://www.finlab.tw/inventory-down">庫藏股下：讓策略變得更好</a>」，裡面會更詳盡的介紹要怎麼善用庫藏股事件，下面是 VIP 策略的績效。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="865" height="1024" src="https://www.finlab.tw/wp-content/uploads/2023/12/image-7-865x1024.png" alt="image 7" class="wp-image-5986" srcset="https://www.finlab.tw/wp-content/uploads/2023/12/image-7-865x1024.png 865w, https://www.finlab.tw/wp-content/uploads/2023/12/image-7-253x300.png 253w, https://www.finlab.tw/wp-content/uploads/2023/12/image-7-768x909.png 768w, https://www.finlab.tw/wp-content/uploads/2023/12/image-7-1297x1536.png 1297w, https://www.finlab.tw/wp-content/uploads/2023/12/image-7-1730x2048.png 1730w, https://www.finlab.tw/wp-content/uploads/2023/12/image-7.png 1944w" sizes="(max-width: 865px) 100vw, 865px" title="揭秘庫藏股：智慧投資策略與市場動態的完美結合（Part 1） 117"><figcaption>改進版的策略</figcaption></figure>



<h2>用程式自動下單</h2>



<p>這個策略需要每天去看公司實施庫藏股的資料，每天去公開資訊交易站查詢，有點麻煩，為何不用我們提供的下單工具來輕鬆下單呢？其實下單的方式非常簡單，首先要在<a href="https://sinotrade.github.io/zh_TW/tutor/prepare/open_account/" target="_blank" rel="noopener">永豐先通過 API 申請</a>後，只需要短短幾行就可以完成：<br></p>



<pre class="wp-block-code"><code lang="python" class="language-python">import os
from finlab.online.sinopac_account import SinopacAccount
from finlab.online.order_executor import OrderExecutor, Position

# 設定帳號金鑰
os.environ['SHIOAJI_API_KEY'] = '永豐證券API_KEY'
os.environ['SHIOAJI_SECRET_KEY'] = '永豐證券SECRET_KEY'
os.environ['SHIOAJI_CERT_PERSON_ID']= '身份證字號'
os.environ['SHIOAJI_CERT_PATH']= '永豐證券憑證路徑'
os.environ['SHIOAJI_CERT_PASSWORD'] = '永豐證券憑證密碼' # 預設與身份證字號

# 以 30 萬台幣計算當前帳戶應該有的股票
fund = 300000
target_position = Position.from_report(report, fund)

# 進行下單
acc = SinopacAccount()
order_executor = OrderExecutor(target_position, acc)
order_executor.create_orders()</code></pre>



<p>只要短短幾行，程式就會幫你計算現在應該有的部位，並且進行「買賣」只需要在適當的時間（例如開盤、收盤）執行，程式就會自動下單買進賣出，將你的帳戶部位調整成獲利的形狀！再也不用自己計算每檔股票要買幾張了！非常的方便喔！</p>



<p>程式預設使用當前價格進行「限價單」但你也可以透過<a href="https://doc.finlab.tw/details/order_api/" data-type="URL" data-id="https://doc.finlab.tw/details/order_api/" target="_blank" rel="noopener">客製化</a>的方式，調整成「漲跌停」、「零股」、「融資券」，非常的簡單方便，讓你在股市中複製好策略的績效！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/inventory-up/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5848</post-id>	</item>
		<item>
		<title>事件研究法（中）使用事件交易模組</title>
		<link>https://www.finlab.tw/event-study-usage/</link>
					<comments>https://www.finlab.tw/event-study-usage/#respond</comments>
		
		<dc:creator><![CDATA[lawrence]]></dc:creator>
		<pubDate>Mon, 30 Oct 2023 18:29:00 +0000</pubDate>
				<category><![CDATA[FinLab 量化平台]]></category>
		<category><![CDATA[Python新手教學]]></category>
		<category><![CDATA[基本面分析]]></category>
		<category><![CDATA[股票策略]]></category>
		<category><![CDATA[歷史回測]]></category>
		<category><![CDATA[程式交易]]></category>
		<category><![CDATA[選股策略]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=5834</guid>

					<description><![CDATA[當台灣的上市公司宣布有關股票的特別消息，比如說要分紅或者調整股票的價值（這種情況我們稱之為除權或除息），這通常 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>當台灣的上市公司宣布有關股票的特別消息，比如說要分紅或者調整股票的價值（這種情況我們稱之為除權或除息），這通常會對公司的股票價格造成一些波動。我們的研究就是要搞清楚，這些宣布到底對股票價格有什麼影響。</p>



<p>這篇文章中，我們將介紹 finlab package 嶄新超好用的工具，讓你一秒判斷除權息究竟要做多還是做空？首先，我們會從財務的大數據庫裡面搜集這些宣布的具體信息，包括宣布的時間、具體的生效日和股票的交易變動。這樣我們就能知道哪天發生了什麼事。</p>



<p>接下來，我們會整理這些信息，把它們按照時間和股票代號排列好，這個過程就像是把一堆散亂的資料整理成清晰的列表。</p>



<p>然後我們用一種叫做事件研究的方法，來計算這些特別宣布前後，股票的價格變動情況。我們會比較這個變動和一般市場的變動有什麼不同，從而評估這個宣布的影響力度。</p>



<p>簡而言之，我們的研究就是想要了解，當公司發出某些股票相關的重要消息時，投資人的反應是怎樣的，並且這對股票價格會有什麼樣的效果。</p>



<h1>查看事件前後的異常報酬率</h1>



<p>我們將用簡單的 Python 語法來分析：</p>



<ol><li>從財務數據庫中提取除權息公告數據。</li><li>清洗和轉換數據，創建事件矩陣。</li><li>進行事件研究，計算異常收益率。</li><li>將結果以視覺化的方式呈現，分析事件對股價的影響。</li></ol>



<p>只需要簡單的幾行，就能知道事件前後的異常報酬率了。舉例而言，如果想知道除權前後的異常報酬率，只需要執行下面的程式碼，就能輸出圖表了。</p>



<h1>拿取財務資料</h1>



<p>想像一下，你是一位探險家，你手中有一張藏寶圖，這張圖上標記著一系列的「X」，代表著可能埋藏著寶藏的地點。在這個比喻中，寶藏就是一個公司特定財務事件（如除權除息）對股票價格的潛在影響，而你要做的，就是跟隨這張地圖去探索這些「X」標記處是否真的有寶藏。</p>



<p>在我們的情境中，「X」標記是數據中的除權除息事件。我們的目標是要找出這些事件是否對股票價格造成了影響。</p>



<p>首先，我們利用一個像是魔法箱子的工具 —— finlab 數據庫，這個數據庫像是藏寶圖的起點。我們叫它出來（用一行程式碼），讓它顯示出最近的幾個「X」（也就是公司的除權除息事件）。</p>



<pre class="wp-block-code"><code lang="python" class="language-python line-numbers">from finlab import data

data.get('dividend_announcement').head()</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="491" src="https://www.finlab.tw/wp-content/uploads/2023/11/image-10-1024x491.png" alt="image 10" class="wp-image-5898" srcset="https://www.finlab.tw/wp-content/uploads/2023/11/image-10-1024x491.png 1024w, https://www.finlab.tw/wp-content/uploads/2023/11/image-10-300x144.png 300w, https://www.finlab.tw/wp-content/uploads/2023/11/image-10-768x368.png 768w, https://www.finlab.tw/wp-content/uploads/2023/11/image-10.png 1122w" sizes="(max-width: 1024px) 100vw, 1024px" title="事件研究法（中）使用事件交易模組 118"></figure>



<ul><li>從 <code>finlab</code> 庫導入 <code>data</code> 模組。</li><li>調用 <code>get</code> 函數來檢索 <code>dividend_announcement</code> 數據集，這是一個包含公司除權息公告的數據集。</li><li>顯示了包含多個欄位的 DataFrame，這些欄位包括股票代號、公告日期、基準日期、公司名稱、所屬期間、增資配股等信息。</li></ul>



<p>然後，我們要確保我們的地圖是乾淨的，沒有重複的標記，也沒有模糊不清的部分（這就是去重和去除空值的程式碼部分）。我們還會重新繪製地圖，讓每個「X」都按照日期排好（轉換成一個新的表格）。</p>



<pre class="wp-block-code"><code lang="python" class="language-python line-numbers">from finlab import data

event = data.get('dividend_announcement')\
    .drop_duplicates(subset=['stock_id', '除權交易日'])\
    .dropna(subset=['stock_id', '除權交易日'])\
    .pivot(index='除權交易日', columns='stock_id', values='市場別')\
    .rename_axis('date')\
    .notna()

event.head()</code></pre>



<ul><li>這段程式碼進一步處理上述提取的數據。</li><li><code>.drop_duplicates()</code> 移除重複的行。</li><li><code>.dropna()</code> 刪除含有空值的行。</li><li><code>.pivot()</code> 將數據重塑成一個以除權交易日為索引，股票代號為欄位的新 DataFrame。</li><li><code>.rename_axis('date')</code> 更改索引名稱為 <code>date</code>。</li><li><code>.notna()</code> 將所有的 NaN 值轉換為布林值 False。</li></ul>



<figure class="wp-block-image size-full"><img loading="lazy" width="898" height="344" src="https://www.finlab.tw/wp-content/uploads/2023/11/image-11.png" alt="image 11" class="wp-image-5899" srcset="https://www.finlab.tw/wp-content/uploads/2023/11/image-11.png 898w, https://www.finlab.tw/wp-content/uploads/2023/11/image-11-300x115.png 300w, https://www.finlab.tw/wp-content/uploads/2023/11/image-11-768x294.png 768w" sizes="(max-width: 898px) 100vw, 898px" title="事件研究法（中）使用事件交易模組 119"></figure>



<p>這樣就可以產生一張表格，True，對應到就是除權的股票和日期，我們可以用簡易的程式來驗證，來看除權息通常都是每年的夏天發生：</p>



<pre class="wp-block-code"><code class="">event.sum(axis=1).plot()</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" width="793" height="588" src="https://www.finlab.tw/wp-content/uploads/2023/11/image-12.png" alt="image 12" class="wp-image-5900" srcset="https://www.finlab.tw/wp-content/uploads/2023/11/image-12.png 793w, https://www.finlab.tw/wp-content/uploads/2023/11/image-12-300x222.png 300w, https://www.finlab.tw/wp-content/uploads/2023/11/image-12-768x569.png 768w" sizes="(max-width: 793px) 100vw, 793px" title="事件研究法（中）使用事件交易模組 120"></figure>



<p>接下來我們可以透過很方便的函數來產生除權息後的五日、十日、二十日、六十日以後的報酬率：</p>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab.tools.event_study import create_factor_data

adj_close = data.get('etl:adj_close')
factor_data = create_factor_data(event, adj_close, event=event)

factor_data</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" width="1014" height="241" src="https://www.finlab.tw/wp-content/uploads/2023/11/image-13.png" alt="image 13" class="wp-image-5901" srcset="https://www.finlab.tw/wp-content/uploads/2023/11/image-13.png 1014w, https://www.finlab.tw/wp-content/uploads/2023/11/image-13-300x71.png 300w, https://www.finlab.tw/wp-content/uploads/2023/11/image-13-768x183.png 768w" sizes="(max-width: 1014px) 100vw, 1014px" title="事件研究法（中）使用事件交易模組 121"></figure>



<p>但如此還是有點不清楚，有沒有方法能來統計呢？接下來我們可以透過 event_study 來視覺化事件發生後的報酬率：</p>



<pre class="wp-block-code"><code lang="python" class="language-python">from finlab.tools import event_study

benchmark = data.get('benchmark_return:發行量加權股價報酬指數')

r = event_study.event_study(factor_data, benchmark, adj_close.ffill())

r.head()</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="191" src="https://www.finlab.tw/wp-content/uploads/2023/11/image-14-1024x191.png" alt="image 14" class="wp-image-5902" srcset="https://www.finlab.tw/wp-content/uploads/2023/11/image-14-1024x191.png 1024w, https://www.finlab.tw/wp-content/uploads/2023/11/image-14-300x56.png 300w, https://www.finlab.tw/wp-content/uploads/2023/11/image-14-768x143.png 768w, https://www.finlab.tw/wp-content/uploads/2023/11/image-14.png 1181w" sizes="(max-width: 1024px) 100vw, 1024px" title="事件研究法（中）使用事件交易模組 122"></figure>



<p>這樣就產生出一張表格，其中 y 軸是每一次除權息，x 軸是除權息的前後幾天的報酬率。我們可以用簡易的方式來將報酬率繪製出來：</p>



<pre class="wp-block-code"><code lang="python" class="language-python">r.mul(100).mean().plot.bar(use_index=False)
ax = r.mean().mul(100).cumsum().plot(use_index=False)</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" width="829" height="613" src="https://www.finlab.tw/wp-content/uploads/2023/11/image-16.png" alt="image 16" class="wp-image-5904" srcset="https://www.finlab.tw/wp-content/uploads/2023/11/image-16.png 829w, https://www.finlab.tw/wp-content/uploads/2023/11/image-16-300x222.png 300w, https://www.finlab.tw/wp-content/uploads/2023/11/image-16-768x568.png 768w" sizes="(max-width: 829px) 100vw, 829px" title="事件研究法（中）使用事件交易模組 123"><figcaption>Y軸是報酬百分比，X軸是天，第零天為事件發生日。直調圖為扣除大盤的報酬率，線段為累計報酬率。</figcaption></figure>



<p>Y軸是報酬百分比，X軸是天，第零天為事件發生日。直條圖為扣除大盤的報酬率，線段為累計報酬率。</p>



<p>執行完上面的程式後，就能把數據視覺化呈現出來，運用起來相當方便。更甚者，FinLab 已經提供完整的資料集了，不用自己再用爬蟲去慢慢爬資料了！</p>



<h1>研究異常報酬率與各種因子的相關性</h1>



<p>故事到這裡就結束了，不過我們想要再來延伸應用，假如低價股或獲利不好的股票在除權息時，究竟表現會不會更差呢？只要簡單的幾行，就能輸出各項因子與異常報酬率之間的關係。我們可以用以下的方法來研究：</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import statsmodels.api as sm
import numpy as np


factor_data = create_factor_data({
    'pb': data.get('price_earning_ratio:股價淨值比'),
    'pe': data.get('price_earning_ratio:本益比'),
    }, adj_close, event=event)

res = sm.OLS(factor_data['10D'], sm.add_constant(factor_data[['pb_factor', 'pe_factor']])).fit()
print(res.summary())</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" width="865" height="619" src="https://www.finlab.tw/wp-content/uploads/2023/11/image-17.png" alt="image 17" class="wp-image-5905" srcset="https://www.finlab.tw/wp-content/uploads/2023/11/image-17.png 865w, https://www.finlab.tw/wp-content/uploads/2023/11/image-17-300x215.png 300w, https://www.finlab.tw/wp-content/uploads/2023/11/image-17-768x550.png 768w" sizes="(max-width: 865px) 100vw, 865px" title="事件研究法（中）使用事件交易模組 124"></figure>



<p>輸出結果如下，可以看到 statsmodel 提供的一份回歸結果：</p>



<ol><li><strong>Dep. Variable (因變量)</strong>: <code>10D</code> 代表我們模型的預測目標，可能是指在某事件後的10天內的股票收益率。</li><li><strong>Model (模型)</strong>: <code>OLS</code> 這表示我們使用的是普通最小二乘法(Ordinary Least Squares)進行線性回歸分析。</li><li><strong>Method (方法)</strong>: <code>Least Squares</code> 這意味著這是一種嘗試最小化誤差平方和的方法。</li><li><strong>R-squared (決定係數)</strong>: <code>0.000</code> 這個數值告訴我們模型擬合的好壞，數值範圍是0到1。接近1意味著模型能夠很好地解釋因變量的變異。在這裡接近0，意味著模型解釋力很低。這只是範例啦～不要翻白眼XDD。</li><li><strong>Adj. R-squared (調整決定係數)</strong>: <code>-0.000</code> 考慮到自變量的數量，這是對決定係數的一個調整。同樣的，這裡也顯示模型的解釋力很低。</li><li><strong>F-statistic (F統計量)</strong>: <code>0.8271</code> 這個數值用來檢測模型的整體顯著性。一個高的F統計值暗示至少有一個預測變量對因變量有顯著影響。</li><li><strong>Prob (F-statistic) (F統計量的概率值)</strong>: <code>0.437</code> 這是觀察到至少這麼大F統計量的概率，通常用來判斷模型的整體顯著性。通常p值小於0.05被認為是統計上顯著的。可見當前的數值，並沒有顯著的特性。</li><li><strong>Log-Likelihood (對數似然比)</strong>: <code>3426.5</code> 這個數值越大，表示模型越好。</li><li><strong>AIC (赤池信息準則)</strong> 和 <strong>BIC (貝葉斯信息準則)</strong>: 這兩個值越低，表示模型越好。它們是懲罰項，用於調整模型中預測變量的數量，防止過度擬合。</li><li><strong>Df Residuals (殘差自由度)</strong> 和 <strong>Df Model (模型自由度)</strong>: 分別表示殘差和模型的自由度。自由度是指在計算統計量時，數據中獨立信息的數量。</li><li><strong>Covariance Type (共變異數類型)</strong>: 這告訴我們計算共變異數（即參數估計的不確定性）的方法。</li></ol>



<h1>結論</h1>



<p>經過上述的探討，我們對事件交易有了更深入的理解。透過觀察事件前後的異常報酬率，以及研究異常報酬率與各種因子的相關性，我們能更精確地預測和評估投資策略的效果。</p>



<p>而 FinLab 的最新事件交易模組正好提供了一個完善的工具來進行這樣的分析。隨著技術的不斷進步，FinLab 未來將會推出更多別出心裁、有助於投資者的研究。讓我們一同期待，並不斷探索金融市場的無限可能！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/event-study-usage/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5834</post-id>	</item>
	</channel>
</rss>
