本文提供研究結果,沒有推薦這些買賣規則。想自行重跑,可先 設定 FinLab 環境,再 下載研究程式(.py);其他檔案見 研究下載區。
0050跌破均線時買進00632R反1對沖,2014到2026年9組參數全部沒贏0050含息。原設定是0050收盤低於60日均線時,用0050市值一半的金額買00632R,回到均線以上就全部賣掉:年化12.46%、日夏普0.86、最大回撤-28.36%;同期0050含息是20.06%、1.05、-33.96%。本文以反面教材為主。
最大回撤淺了5.6個百分點,年化卻少了7.6個百分點。把同樣平均比重的00632R一直放著不動,日夏普1.04,比均線擇時還好;把手續費和稅全部歸零,原設定日夏普1.051,也只和0050打平。00632R本身從2014年11月一路持有到2026年11月,最大回撤-94.34%,它只適合短期使用。
00632R是什麼:每天重設的反向一倍
00632R 元大台灣50反1追蹤台灣50指數單日報酬的負一倍:指數今天跌1%,它的目標是漲1%。關鍵在「單日」:它每天收盤後重新調整部位,持有超過一天的報酬,會和「指數這段期間的報酬乘以負一」有差距,漲跌來回震盪的期間差距特別大。Cheng與Madhavan(2009)推導槓桿與反向ETF每日再平衡造成的路徑相依;Avellaneda與Zhang(2010)用實際資料量出,持有期間越長、波動越大,反向ETF偏離目標倍數越多。
| 資產(2014-11-03至2026-11-11) | 年化 |
日夏普 | 最大 |
年化波動 |
|---|---|---|---|---|
| 00632R |
-19.45% | -1.07 | -94.34% | 19.13% |
| 0050 |
20.06% | 1.05 | -33.96% | 19.85% |
0050長期上漲,反向部位長期就是虧損,再加上每日重設的耗損與管理費。00632R在這12年裡只有2015、2018、2022三年沒有下跌,其中2022年0050含息-21.37%,00632R上漲15.88%。它能發揮作用的時間很短,所以避險的重點在「什麼時候持有」。
跌破均線才對沖:9組規則
0050含息價收盤低於N日均線時進入對沖狀態:00632R的金額是0050的h倍,資金分成0050占1/(1+h)、00632R占h/(1+h);0050收盤回到均線以上,隔天全部換回0050。N取20、60、120日,h取25%、50%、100%,共9組。原參數在看結果前定為60日均線、對沖50%。
| 對沖比例h | 0050占資金 | 00632R占資金 | 大約 |
|---|---|---|---|
| 25% | 80.0% | 20.0% | 六成 |
| 50% | 66.7% | 33.3% | 三成多 |
| 100% | 50.0% | 50.0% | 接近零 |
淨多頭曝險是0050比重減去00632R比重的粗估,只在對沖剛建立的那天成立;之後兩檔價格反向變動,比重會漂移,對沖期間不另外調回。這個表只示範規則,不含績效。訊號只用當天收盤已知的價格,sim()在下一個交易日收盤成交。00632R在2024-12-04到12-10、0050在2025-06-11到06-17(分割)各有五個交易日沒有價格,期間沿用前一天價格;00632R另有2021-03-08與2024-03-28起各三個交易日的價格沒有變動,照資料原樣使用。
期間從00632R第一筆價格2014-10-31開始,到2026-11-11,9組同一天開始。「贏」的定義是日夏普高於同期0050含息,日夏普為日報酬平均除以標準差再乘√252,不扣無風險利率。三項驗證都要過:鄰近9組至少7組贏、原參數前後半段各自贏、用sim()預設成本的全段也贏;這個設計有一段時間降低曝險,另外要贏「同平均比重固定持有」。
反1避險回測結果
手機閱讀表格時,可左右滑動查看全部欄位。
期間2014-10到2026-11。同平均比重固定持有是0050占90.3%、00632R占9.7%,每月調回。
| 組合 | 年化報酬 | 日夏普 | 最大 |
年化波動 |
|---|---|---|---|---|
| 60 |
12.46% | 0.86 | -28.36% | 15.43% |
| 同平均 |
16.10% | 1.04 | -28.80% | 16.00% |
| 0050 |
20.06% | 1.05 | -33.96% | 19.85% |
互動報告是原參數的60日均線、對沖50%,沒有從9組挑最好的一組。報告內建的夏普採自己的無風險利率慣例,本文比較統一用不扣無風險利率的日夏普。
原設定在29.0%的交易日處於對沖狀態,平均下來00632R占資金9.7%。同樣的平均比重一直持有、每月調回,回撤-28.80%和原設定差不多,年化卻多了3.6個百分點。兩者都扣了預設成本;差距大部分來自擇時一年換倉十幾次的手續費與稅。不計成本時,原設定年化15.61%、日夏普1.051,和仍扣成本、每月小幅調回的固定持有1.044相近,均線擇時本身沒有帶來額外的好處。
9組參數全部落後
9組日夏普在0.48到1.04之間,全部低於0050的1.05。規律很清楚:對沖越多越差,均線越短越差。最接近的是120日均線、對沖25%的1.043;最差的是20日均線、對沖100%的0.48。最大回撤-21.32%到-35.29%,有一組比0050還深。
短均線的訊號切換頻繁,每次都要買賣一批00632R;長均線切換少,但進入對沖時0050通常已經跌了一段,離開時又已經漲了一段。原參數60日均線12年切換171次,一年約14次。均線擇時用在資產配置的代表研究是Faber(2007),他用月資料的10個月均線決定持有或轉成國庫券;本研究換成每日訊號與反向ETF,結果不能套用該文的結論。
前後半段、2022年與拿掉最好一年
| 檢查 | 原設定 |
同期 |
結果 |
|---|---|---|---|
| 鄰近 |
0/9組勝出 | 1.05 | 未通過 |
| 前半段,2014-11至2020-10 | 0.48 | 0.79 | 未通過 |
| 後半段,2020-10至2026-11 | 1.14 | 1.26 | 未通過 |
| 全段, |
0.86 | 1.05 | 未通過 |
| 同平均 |
0.86 | 1.04(固定持有) | 未通過 |
| 拿掉 |
0.74 | 0.95 | 未通過 |
前半段年化4.96%,0050是11.70%;後半段20.44%對28.99%。2015與2018年0050年內最深分別回檔21.0%與16.0%,原設定卻比0050多跌:2015年-11.33%對-6.28%,2018年-11.21%對-4.94%。均線訊號會落後,對沖可能在跌了一段之後才建立,反彈之後才解除,兩頭都吃虧。
| 年份 | 0050 |
00632R | 原設定 |
|---|---|---|---|
| 2015 | -6.28% | 4.51% | -11.33% |
| 2018 | -4.94% | 0.08% | -11.21% |
| 2021 | 21.92% | -26.72% | 2.50% |
| 2022 | -21.37% | 15.88% | -14.24% |
| 2025 | 36.83% | -28.12% | 33.50% |
真正幫上忙的是2022年那種跌得久、跌得深的空頭:0050全年-21.37%,原設定-14.24%。可是2021年0050上漲21.92%,原設定只有2.50%,一年的避險收穫被前一年的來回洗掉。2014年只有11月起的兩個月,表中略去。
成本:每年換倉十幾次
sim()預設手續費買賣各0.1425%、賣出證交稅0.3%。台灣股票型ETF的證交稅實際是0.1%,所以預設成本偏高。原設定一年單邊周轉約4.7倍資金,成本的影響很大:
| 成本 |
年化報酬 | 日夏普 |
|---|---|---|
| 預設 |
12.46% | 0.864 |
| 證交稅改0.1% | 13.53% | 0.928 |
| 手續費 |
15.61% | 1.051 |
| 0050 |
20.06% | 1.051 |
即使完全不計成本,日夏普1.051也只是和0050打平,年化仍少4.45個百分點。開跑前的定義用預設成本,成本敏感度只是描述;不管用哪一種成本,這套規則都沒有讓單位風險的報酬變好。
回測方法與限制
資料截至2026-11-11,實跑日2026-11-12,FinLab 2.3.8,價格來源etl:adj_close還原收盤價。參數格、起始日與勝出條件在看任何績效以前寫定,之後沒有更改。
- 交易成本: 見上一節,主要結論用
sim()預設成本,沒有打折。 - 滑價與容量: 未另設滑價,未估容量。對沖訊號出現時市場通常波動較大,實際成交價可能比收盤價差。
- 周轉率: 原設定全期87筆交易紀錄,訊號切換171次,一年單邊周轉約4.7倍資金。
- 權重: 永遠滿倉,沒有現金;00632R是用資金買進的反向ETF,沒有融券、借券或期貨保證金。
- 前視與股票池: 只用0050與00632R,不涉及選股與下市;均線只用當天收盤已知的價格,隔日收盤成交,沒有前視偏差。
- 樣本內外: 全段樣本內。前後半段只是穩定度檢查,不能當成樣本外證據;Bailey等人(2017)說明了多次回測後挑選結果的風險。
用AI重跑反1避險
透過上方的FinLab設定入口,讓Claude Code、Codex或Gemini CLI載入FinLab skill,把下載的研究程式交給它:「用這份research.py重跑00632R對沖的9組參數與同平均比重對照,保留2026-11-11截止日與預設成本。」下面是原參數的核心寫法。
顯示程式碼
import numpy as np
import pandas as pd
from finlab import data
from finlab.backtest import sim
prices = data.get("etl:adj_close")[["0050", "00632R"]].ffill()
close = prices["0050"]
# 0050 含息價收盤低於 60 日均線就對沖
below = (close < close.rolling(60).mean()).loc["2014-10-31":"2026-11-11"]
# 00632R 的金額是 0050 的一半:0050 占 2/3、00632R 占 1/3
hedge = 0.5
position = pd.DataFrame({
"0050": np.where(below, 1 / (1 + hedge), 1.0),
"00632R": np.where(below, hedge / (1 + hedge), 0.0),
}, index=below.index)
# 部位一變就在下一個交易日收盤調整
report = sim(position, upload=False)resample不設定時,sim()只在目標比重改變的那天調整,對沖期間兩檔的比重會隨價格漂移。日夏普的計算見夏普比率,回撤定義見量化詞彙表,回測流程見回測方法。
反1避險常見問題
00632R可以長期持有嗎? 本研究期間一直持有的年化-19.45%、最大回撤-94.34%。它每天重設部位,長期持有會偏離「指數報酬乘以負一」,0050長期上漲時虧損更多。
用00632R避險要對沖多少? 本研究25%、50%、100%三種比例都輸0050,對沖越多越差。避險是用報酬換取較小的回撤,不會憑空增加報酬。
跌破月線、季線、半年線哪個比較好? 120日均線的三組最好,但仍然沒贏0050;20日均線切換最頻繁,結果最差。
2022年有用嗎? 有。0050全年-21.37%,60日均線對沖50%是-14.24%。問題是前一年2021年少賺了將近二十個百分點。
反1和融券放空0050有什麼不同? 反1用現金買進,不會被追繳,但有每日重設的路徑耗損與管理費;融券要保證金,可能被強制回補。本研究只測了00632R。
為什麼要比「同平均比重固定持有」? 降低曝險本身就會讓波動與回撤變小。用同樣的平均比重一直持有當對照,才能看出均線擇時本身有沒有幫助。本研究扣成本後擇時輸給固定持有,不計成本時兩者接近,擇時沒有帶來額外的好處。
如果用0050正2搭配呢? 那是另一個問題,可看0050正2(00631L)回測與美股的槓桿ETF耗損實測。
同一批研究還有00687B、00679B美債搭0050、00720B公司債搭0050與黃金ETF 00635U搭0050。用加權指數均線當大盤濾網的研究見台股大盤均線濾網。量化研究的整體方法可從量化交易指南開始,AI代理使用說明介紹如何讓AI重跑研究。
研究下載
| 檔案 | 內容 |
|---|---|
| 下載 |
同批四篇共用,設定FinLab後交給AI代理重跑 |
| 下載 |
原設定、同平均比重固定持有、00632R與0050含息每日淨值 |
| 下載 |
9組參數、 |
| 開啟反1避險互動 |
瀏覽器 |
投資有風險,過去績效不代表未來表現。本內容僅供教學與研究,不構成投資建議,請依個人風險承受度審慎評估。本文沒有推薦買賣特定ETF,也不保證任何避險方式能降低未來損失。
最後更新:2026-11|回測區間:2014-10-31至2026-11-11|作者:FinLab量化研究團隊(經量化研究員審閱)。團隊以FinLab資料維護台股、美股的可重跑研究。
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始







