<?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>0050 &#8211; FinLab</title>
	<atom:link href="https://www.finlab.tw/tag/0050/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.finlab.tw</link>
	<description>深入淺出的量化投資，讓你在在茫茫股海中，找到專屬於自己的投資方法</description>
	<lastBuildDate>Wed, 07 Feb 2024 08:33:31 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.9</generator>

<image>
	<url>https://www.finlab.tw/wp-content/uploads/2020/07/favicon.png</url>
	<title>0050 &#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>利用 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 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 的概念，優化選股的績效 1"><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 的概念，優化選股的績效 2"></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 的概念，優化選股的績效 3"><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 的概念，優化選股的績效 4"><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 的概念，優化選股的績效 5"><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 的概念，優化選股的績效 6"><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 的概念，優化選股的績效 7"><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>用Python回測總經指標(3)｜台灣景氣燈號｜加減碼策略</title>
		<link>https://www.finlab.tw/tw_business_indicator_changed_weight_strategy/</link>
					<comments>https://www.finlab.tw/tw_business_indicator_changed_weight_strategy/#respond</comments>
		
		<dc:creator><![CDATA[Ben]]></dc:creator>
		<pubDate>Thu, 29 Dec 2022 11:26:10 +0000</pubDate>
				<category><![CDATA[FinLab 量化平台]]></category>
		<category><![CDATA[VIP文章]]></category>
		<category><![CDATA[總體經濟]]></category>
		<category><![CDATA[選股策略]]></category>
		<category><![CDATA[0050]]></category>
		<category><![CDATA[加減碼]]></category>
		<category><![CDATA[景氣燈號]]></category>
		<category><![CDATA[總經]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=5072</guid>

					<description><![CDATA[國發會在12月底發布了上月景氣燈號數據，這個指標可以視為台灣總經的風向球。現進入低迷的藍燈，數值非常低，剩下1 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-medium-font-size">國發會在12月底發布了上月景氣燈號數據，這個指標可以視為台灣總經的風向球。現進入低迷的藍燈，數值非常低，剩下12分，很久沒有這麼慘了。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="717" src="https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.04.34-1024x717.png" alt="截圖 2022 12 29 下午6.04.34" class="wp-image-5073" srcset="https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.04.34-1024x717.png 1024w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.04.34-300x210.png 300w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.04.34-768x537.png 768w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.04.34-1536x1075.png 1536w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.04.34-2048x1433.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" title="用Python回測總經指標(3)｜台灣景氣燈號｜加減碼策略 8"><figcaption><a href="https://index.ndc.gov.tw/n/zh_tw" target="_blank" rel="noopener">取自國發會</a></figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="825" height="1024" src="https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.14.43-825x1024.png" alt="截圖 2022 12 29 下午6.14.43" class="wp-image-5075" srcset="https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.14.43-825x1024.png 825w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.14.43-242x300.png 242w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.14.43-768x953.png 768w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.14.43.png 1036w" sizes="(max-width: 825px) 100vw, 825px" title="用Python回測總經指標(3)｜台灣景氣燈號｜加減碼策略 9"><figcaption>取自<a href="https://www.facebook.com/macromicro.me/posts/pfbid02S2hEbWiLi7Wt3c5My2qmvHPuHJPhXqzaacLM1mkgBMPvx7xoK4YE5seyvN8LfXnMl" target="_blank" rel="noopener">財經M平方臉書粉絲團</a></figcaption></figure>



<p class="has-medium-font-size">然而今年股市也回檔了超過20%，如果在景氣熱絡時進場，像是去年底，那你今年肯定很難過，現在你看到藍燈，是不是認為為總經環境差，要趕緊脫出股票？<br>市場老手「麥克風」則有不一樣的看法，認為「藍燈」反而是末跌段買點，只是要分批進場會比較安全。我的看法也是如此，通常進入藍燈時，股市早就反映一大段了，當未來爛無可爛，反而容易出現轉機，市場經常領先經濟數據。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="933" src="https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.12.42-1024x933.png" alt="截圖 2022 12 29 下午6.12.42" class="wp-image-5074" srcset="https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.12.42-1024x933.png 1024w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.12.42-300x273.png 300w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.12.42-768x700.png 768w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.12.42-1536x1400.png 1536w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.12.42.png 1545w" sizes="(max-width: 1024px) 100vw, 1024px" title="用Python回測總經指標(3)｜台灣景氣燈號｜加減碼策略 10"><figcaption>取自<a href="https://www.facebook.com/mktsurvivalkit/posts/pfbid0Y3czh2MLSYZxG6Utjr6povtP1R2Cq2vmAfncyiTMnuqGBJ1kSLmVU7p4rVnWn9Lrl" target="_blank" rel="noopener">麥克風臉書粉絲團</a></figcaption></figure>



<h2>景氣燈號如何撰寫加減碼？</h2>



<p class="has-medium-font-size">重點來了，許多人都知道要在藍燈分批買進，但分批加減碼究竟要如何撰寫？<br>通常寫策略都是一布林訊號通到底，100%持有。這就是FinLab量化平台的優勢，可以自動調控加減碼，可以自動調控加減碼，不限於固定部位，可靈活運用總經數據，把策略都自動化起來，比起外面的總經課程，更貼近實戰。<br><br><a href="https://doc.finlab.tw/reference/backtest/#finlab.backtest.sim" target="_blank" rel="noopener">回測函數</a> 當position 的數值除了可為布林訊號，也可以填入數值當持有部位調控，例如 0.2 為持有20%。</p>



<p class="has-medium-font-size">示範的景氣燈號加減碼策略邏輯為分5批進場。<br>只要近12個月內每一月景氣指標分數小於等於18時，分批買進20%部位。若景氣指標分數大於等於40時則全數賣出。舉例：若近12月內有3個月滿足條件，則持有60%，若近12月內有5個月以上滿足條件，則持有100%。<br>這個策略設計的背後思維在如果近12月內景氣燈號低於18分的月份越少，代表脫離藍燈谷底越遠，若近12月內景氣燈號低於18分的月份越多，則代表貼近景氣谷底，利用訊號數量去加乘持股部位。<br>另一個小重點在為何指標是用18與40分，而不是官方藍紅燈上下限的16分與38分？原因在策略若想要比人早一步，就要微調數值，且進入紅燈的熱絡階段，往往有所謂邪惡第五波，延遲出場有機會獲得更高報酬，而若用官方的16分當衰退指標，會發現低於16分的情況不多，所以往上微調，以增加訊號數。</p>



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

df = data.get('tw_business_indicators:景氣對策信號(分)')
df = df[list(df['tw_business_indicators'] &gt; 0)]

# 只要近12個月內每一月景氣指標分數小於等於18時，分批買進20%部位。舉例：若近12月內有3個月滿足條件，則持有60%，若近12月內有5個月滿足條件，則持有100%。若景氣指標分數大於等於40時則全數賣出
batches = 5
ind = df['tw_business_indicators']
sig = pd.Series([True if i &lt;= 18 else False if i &gt;= 40 else np.nan for i in ind], index=ind.index)
position = (((sig / batches).rolling(12,min_periods=1).sum()) * sig).ffill().clip(0,1)
position.astype(float).plot()</code></pre>



<h2>景氣燈號加減碼訊號曲線變化</h2>



<p class="has-medium-font-size">可以發現加減碼曲線控制在 0%到100%，隨著時間不同而有不同持股部位變化。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="703" src="https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.33.30-1024x703.png" alt="截圖 2022 12 29 下午6.33.30" class="wp-image-5076" srcset="https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.33.30-1024x703.png 1024w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.33.30-300x206.png 300w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.33.30-768x527.png 768w, https://www.finlab.tw/wp-content/uploads/2022/12/截圖-2022-12-29-下午6.33.30.png 1420w" sizes="(max-width: 1024px) 100vw, 1024px" title="用Python回測總經指標(3)｜台灣景氣燈號｜加減碼策略 11"></figure>



<h2>回測程式</h2>



<p class="has-medium-font-size"><a href="https://colab.research.google.com/drive/1NbxeJydvdSyD_3zxYulvPJiJfb7UpOOw?usp=sharing" target="_blank" rel="noopener">colab 範例檔</a><br>回測程式很簡單，我們以 0050 元大台灣50 當操作台灣總經策略的標地，將上述的景氣燈號加減碼訊號傳入 0050 的 DataFrame，就會以該加減碼訊號靈活操作 0050 ，在景氣低迷時逐步入手，在景氣熱絡時拖出。<br>小細節是帶入回測時把交易稅率調成 ETF 適用的 1/1000。</p>



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

# 將持有部位帶進0050
close = data.get('price:收盤價')
buy = pd.DataFrame({'0050':position})
buy = buy.reindex(close.index, method='ffill')
report = sim(buy, upload=False, tax_ratio=1/1000)
report.display()</code></pre>



<p class="has-medium-font-size">回測結果發現該策略可以取得比長期持有0050還好的績效，熊市時期的2007與2022回檔幅度較小，波動曲線更為漂亮。</p>



<figure class="wp-block-image size-full"><img loading="lazy" width="800" height="600" src="https://www.finlab.tw/wp-content/uploads/2022/12/newplot-49.png" alt="newplot 49" class="wp-image-5077" srcset="https://www.finlab.tw/wp-content/uploads/2022/12/newplot-49.png 800w, https://www.finlab.tw/wp-content/uploads/2022/12/newplot-49-300x225.png 300w, https://www.finlab.tw/wp-content/uploads/2022/12/newplot-49-768x576.png 768w" sizes="(max-width: 800px) 100vw, 800px" title="用Python回測總經指標(3)｜台灣景氣燈號｜加減碼策略 12"></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/tw_business_indicator_changed_weight_strategy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5072</post-id>	</item>
	</channel>
</rss>
