Table of Contents
高股息顧名思義是指企業將較高的獲利以現金股利的方式配發給投資人,沒有具體的定義發多少股利才算高股息。高股息乍聽之下很誘人,但其實任何投資都有利有弊,在進場高股息 ETF 前,務必留意以下兩個思考點,評估最適合的投資方式:
本文將選擇市場前5大熱門高股息 ETF 作為投資標的:
本文使用 MacOS 並以 VS Code 作為編輯器。
import os
import pandas as pd
tej_key = 'your key'
api_base = 'https://api.tej.com.tw'
os.environ['TEJAPI_KEY'] = tej_key
os.environ['TEJAPI_BASE'] = api_base
start = '2018-01-01'
end = '2023-12-31'
stock_list = ['0056', '00713', '00878', '00919', '00929', 'IR0001']
calendar_name = 'TEJ'
os.environ['mdate'] = start + ' ' + end
os.environ['ticker'] = ' '.join(stock_list)
!zipline ingest -b tquant
from logbook import Logger, FileHandler, INFO
log_handler = FileHandler('log.txt',
format_string='[{record.time:%Y-%m-%d %H:%M:%S.%f}]: ' +
'{record.level_name}: {record.func_name}: {record.message}',
level=INFO)
log_handler.push_application()
log = Logger('Algorithm')
Pipeline()
提供使用者快速處理多檔標的的量化指標與價量資料的功能,於本次案例我們用以取得五檔高股息 ETF 的資料,可避免處理還未上市之股票。
initialize()
函式用於定義交易開始前的每日交易環境,與此例中我們設置:
def initialize(context):
set_slippage(slippage.VolumeShareSlippage(volume_limit = 0.025, price_impact = 0.1))
set_commission(commission.Custom_TW_Commission(min_trade_cost = 20, discount = 1.0, tax = 0.003))
set_benchmark(symbol('IR0001'))
attach_pipeline(make_pipeline(), 'mystrats')
handle_data()
為構建交易策略的重要函式,會在回測開始後每天被呼叫,本文主要任務為設定下單,量為投資組合當前價值的 25%
def handle_data(context, data):
out_dir = pipeline_output('mystrats')
for asset in out_dir.index:
stock_position = context.portfolio.positions[asset].amount
if stock_position == 0:
order_percent(asset, 0.25)
使用 run_algorithm()
執行上述設定的買入持有 ESG ETF,設置交易期間為 start_date ( 2018-01-01 ) 到 end_date ( 2023-12-31 ),所使用資料集為 tquant,初始資金為 1,000,000 元。其中輸出的 results
就是每日績效與交易的明細表。
results = run_algorithm(
start = pd.Timestamp(start, tz='UTC'),
end = pd.Timestamp(end, tz ='UTC'),
initialize=initialize,
handle_data=handle_data,
bundle='tquant',
data_frequency='daily',
capital_base=1e6,
trading_calendar=get_calendar(calendar_name))
log.txt 紀錄每次獲取股息的資訊:
透過正規表達法抓出以上資訊,並計算其配息次數、天數與獲取股息總和。
returns, positions, transactions = pf.utils.extract_rets_pos_txn_from_zipline(results)
benchmark_rets = results.benchmark_return
# Creating a Full Tear Sheet
pf.create_full_tear_sheet(returns, positions = positions, transactions = transactions,
benchmark_rets = benchmark_rets,
round_trips=False)
透過上圖可以發現大盤在這 5 年內有 2 倍的報酬,而買入持有高股息 ETF 的報酬是略遜一籌,但也是有將近 2 倍的累積報酬。另外我們也看到高股息 ETF 投組的波動情況與大盤幾乎一致,但是這波動幅度是相對大盤來說比較小的幅度,投資風險較低,從年化波動度與最大回撤則分別為 9.114% 和 -16.382% 可以看出來。而且從 Beta 值 0.43 ,表示投組對總體市場之變動不敏感。
從上圖可以看出,在回測期間一樣的情況下,高股息 ETF 所獲得的股息多於市值型 ETF。值得注意的是,市值型 ETF 有四檔持有超過 1000 天,高股息 ETF 只有三個,而在這樣的情況下高股息 ETF 的股息還是優於市值型 ETF,由此可見高股息 ETF 確實有實現它所標榜的特色。對於投資者來說,高股息 ETF 能夠在持有期間內提供更豐厚的股息回報。這不僅有助於提高投資組合的現金流,還能在市場波動較大時提供一定的穩定性。這反應高股息 ETF 通常包括了那些財務狀況穩健且能夠定期支付股息的公司。這些公司往往具有較強的盈利能力和現金流,這使得高股息 ETF 能夠在市場逆風時期保持較穩定的表現,對於存股族或是無暇盯盤、主動投資的投資人來說確實是相當合適的投資標的。
本次實作我們選擇五檔高股息 ETF 當作投資標的,利用 TQuant Lab 進行買入持有標的的回測績效分析。該五檔高股息 ETF 的回測結果在累積報酬率和年化報酬率方面表現不錯,分別達到 94.373% 和 12.129%,年化波動度與最大回撤則分別為 9.114% 和 -16.382%。這表明高股息 ETF 取得了穩健的回報並控制了風險,從 Beta 值可以更明顯的看出相對於大盤的表現較為穩健,較少受到市場波動的影響。但是在 Sharpe Ratio 和 Alpha 可以看出高股息 ETF 較沒有超額報酬。股息方面,高股息 ETF 在提供穩定現金流和較高股息收益方面具有顯著優勢,特別是在持有期間相似的情況下。反映發放高股息的企業之所以能配發豐厚股息,大多是發展相對成熟的企業,未來發展空間較小,在長期表現上較缺乏成長力。
總體而言,高股息 ETF 適合對投資較為保守、不想承擔高度風險、也不追求短期創造高獲利的投資人;如果你想長期穩定的領到股息,持續累積小小的被動收入,那麼高股息 ETF 或許是個不錯的選擇。
溫馨提醒,本次策略與標的僅供參考,不代表任何商品或投資上的建議。之後也會持續使用 TEJ 資料庫及 TQuant Lab 來建構各式指標,並回測指標績效,所以歡迎對各種交易回測有興趣的讀者,選購 TQuant Lab 的相關方案,用高品質的資料庫,建構出適合自己的交易策略。
電子報訂閱