Heikin Ashi的QQQ擇時、避開訊號與個股版,這次都沒有通過完整驗證。本文以反面教材為主。中心設定的QQQ擇時年化1.2%、日夏普0.18;同期含息持有為20.1%、0.92。方向在圖上看得清楚,仍要付出空手與進出成本。
個股版年化-7.4%,九格中0格贏基準,沒有把指標解讀轉成穩定的選股優勢。第一張圖把三種中心設計與含息持有放在同一起點;點圖可查看原尺寸,完整數值在下方下載區。
本文提供研究結果,沒有推薦這些買賣規則。想自行重跑,可先 設定 FinLab 環境,再 下載研究程式(.py);其他檔案見 研究下載區。
Heikin Ashi平均K線怎麼算
Heikin Ashi用計算後的價格取代一般K線。平均收盤取當日開高低收的平均,平均開盤取前一根平均開盤與平均收盤的平均,高低點再和平均實體取極端值。因為平均開盤持續保留先前資訊,相鄰K線的顏色與實體看起來通常更平順。
| 平均K線欄位 | 計算 |
代表 |
|---|---|---|
| 平均 |
原始開、 |
當日 |
| 平均 |
前一根 |
前一根 |
| 平均 |
原始 |
圖上最高 |
| 平均 |
原始 |
圖上最低 |
第一根平均開盤使用第一個有效交易日的原始開盤與收盤平均。之後一路遞迴,不在每月換股時重新開始,也不在出場以後把歷史歸零。初始化使用研究期以前的暖機資料,避免用不同起算日製造不同的連續根數。
本次合格K線必須同時為陽線、沒有下影。程式判斷平均收盤高於平均開盤,且原始最低價不低於平均開盤,僅保留極小數值誤差容許。連續指定根數合格才進場,連續指定根數不合格才出場;陰線與有下影的陽線都算不合格,沒有任意略過其中一種。
平均K線的價位無法當成成交價
平均開盤由前一根資料算出,有可能落在今天真正交易區間之外。平均收盤也是四個價位的平均,無法保證市場曾在收盤時提供該價格。若回測直接照這些合成價買賣,可能得到真實委託拿不到的成交條件;圖形仍然好看,績效卻已經建立在錯誤價格上。
這次只用平均K線形成訊號,成交仍交給FinLab以原標的市場價格計算。當日完整日K到收盤才可得,因此訂單在下一交易日收盤成交,沒有把平均收盤當成交價。讀者重跑時若改成用平均K線價格餵給交易引擎,就已經偏離本次實驗。
連續根數也會增加等待。第三根乾淨陽線完成以前,一部分上漲已經發生;出場要等兩根不合格,雖然可能少被單日雜訊洗掉,也可能多承受反轉初期的跌幅。九格把進場等待與出場等待一起變動,讓這種取捨留在結果裡,而非只展示其中一段順風期。
沒有下影線能說明什麼
乾淨陽線描述的是當日原始最低價、平均開盤與平均收盤的幾何關係,無法直接推導隔天仍有買盤。平滑本來就會把部分日內與隔日雜訊藏在合成價格裡,但帳戶實際持有的標的仍會上下波動。因此最大回撤一定要看真實交易價格算出的淨值,不能用圖上連續幾根同色判斷風險。
QQQ版是在固定基金上選持有時段,個股版則讓每家公司的合格連續根數分別起算,再對當時可買的公司等權。個股之間的起訖不同,會產生更多換手。分散持有並不會消除每一筆進出的價差,也不能保證把較平滑的訊號轉換成較平滑的組合淨值。
避開合格訊號的QQQ可能有更長時間留在市場,因而參與更多多頭行情。若只比較總報酬,容易把較多市場曝險誤認為反向訊號有用。這次還比同平均曝險、扣除BIL的日夏普,並要求附近參數和前後半段也成立,避免只用一個接近基準的數字下結論。
改成只看顏色、容許短下影,或加入均線,都會形成新的條件。這些方法可以另行研究,但本次沒有在看到結果後加入。下載檔保留事前定好的每一格,包括圖上最不順眼、績效較差的組合,讀者可以用同一口徑看到完整差異。
Valcu(2004)的〈Using the Heikin-Ashi Technique〉刊於《Technical Analysis of Stocks & Commodities》,雜誌程式實作檔案列出二○○四年二月原文;連續根數的進出設計是本次實驗設定。原始出處。
三種持有方式的完整結果
| 中心 |
年化報酬 | 日夏普 | 最大 (最大 |
前/ |
九格贏 |
在場比例 |
|---|---|---|---|---|---|---|
| QQQ |
1.2% | 0.18 | -19.5% | 0.31 / 0.03 | 0 / 9 | 27.5% |
| QQQ |
18.6% | 0.92 | -36.4% | 1.20 / 0.67 | 4 / 9 | 72.5% |
| 個股等權 | -7.4% | -0.05 | -85.5% | 0.42 / -0.39 | 0 / 9 | 94.9% |
| QQQ |
20.1% | 0.92 | -35.1% | 1.22 / 0.63 | — | 100% |
年化報酬把整段複利換算成每年平均成長,最大回撤是淨值從先前高點到低點的最大跌幅。日夏普以日報酬平均除以標準差,再乘以二百五十二的平方根,不扣無風險利率。這三個指標回答不同問題,夏普較高仍可能賺得較少。
互動報告是中心設定的QQQ擇時,沒有從九格挑最好的一格;另一份下載報告是中心個股版。表格保留整段共同期間,包括第一次交易以前的現金日;報告可能由首筆成交開始,內建夏普也有自己的無風險利率設定,所以本文比較統一採另算的零利率口徑。
九格參數與前後半段
連續二、三、四根平均K線為陽線且無下影才進場,連續一、二、三根不符合才出場;中心為連三根合格進場、連兩根不合格離場。全部組合在看結果以前已固定。每個設計至少七格日夏普高於同期QQQ,中心設定在交易日對半切的兩段也必須各自領先;這是歷史穩健性篩選,沒有把後半段稱為從未看過的樣本外。
成本、現金與拿掉最好一年
美股sim()預設手續費與交易稅皆為零,另把每邊百分之○點一加入中心設定,作為執行成本壓力。沒有再假設其他滑價,沒有計算資本利得稅,也沒有估算策略容量。
淨值圖、九格、前後半段與互動報告均採零佣金。表中每邊0.1%成本與零佣金扣BIL是分開列出的比較。
| 中心 |
每邊 |
扣成本 |
零佣金扣BIL |
拿掉 |
剩餘 |
|---|---|---|---|---|---|
| QQQ |
-1.6% | -0.13 | -0.08 | 2017 | 0.08 / 0.85 |
| QQQ |
15.3% | 0.79 | 0.81 | 2020 | 0.81 / 0.87 |
| 個股等權 | -22.5% | -0.58 | -0.12 | 2023 | -0.20 / 0.78 |
QQQ扣除BIL每日含息報酬後的日夏普為0.81。策略空手時現金報酬為零,沒有默默加上美國短債收益;扣BIL只是另一種比較口徑,沒有改變實際持有內容。
同平均曝險對照每天固定維持策略平均在場比重的QQQ,其他現金報酬為零,不扣該對照調倉成本。訊號持有版的這個對照日夏普為0.92,策略為0.18。這能檢查較少在場帶來的較小波動,有沒有被誤認成選時能力。
拿掉最好一年時,先以中心策略各日曆年報酬找出最好的一年,再從策略與基準刪除相同日期,保留其餘日報酬,不在被刪年份兩端插入額外報酬。這是額外壓力測試,前面九格或分段沒有過,不能靠這一項補救。
股票池、成交與研究限制
資料截至2026-11-09,重跑日2026-11-11,使用finlab 2.3.8。美股使用us_price的還原開高低收,QQQ使用us_fund_price;基準以QQQ還原收盤價直接計算含息買進持有,不經sim(),不扣基準交易成本。所有圖表起點都為一,空手日也保留。
個股以FinLab普通股分類限制欄位,還原價高於五美元,六十日平均還原價乘成交量大於五百萬美元,並取每日成交額前一百檔,平均至少要有二十筆觀察。若先前二百五十二日曾有單日絕對漲跌達百分之五十,就從隔日起排除;這能排除先前的極端異動,無法預先避開第一次事件。普通股分類是目前的證券類型篩選,歷史分類變更仍可能造成限制。
個股每天對同時符合資格與指標狀態的公司等權,沒有挑後來漲最多的公司,也沒有用全期間最大漲跌一次刪掉歷史輸家。訊號收盤後形成,下一交易日收盤成交。這次沒有使用財報、分析師快照、現在的指數成分名單或個別投資人的私人策略;產業並未另外中性化,也沒有借款加槓桿。美股普通股分類排除ETF、基金、ADR與特別證券,未另排除金融業等產業;有合格價格欄位的下市股保留,但未逐檔稽核下市報酬完整性。台股特有的KY、全額交割分類未用於美股。
每檔個股目標權重為當時持股數的倒數,沒有再加固定單檔上限,只剩一檔時可能達百分之一百;ETF規則最多全額持有QQQ,否則全額現金。各中心設定的換手估計如下,比例可以超過百分之一百,表示月內反覆換倉。
| 中心 |
交易 |
平均月目標 |
最高月 |
|---|---|---|---|
| QQQ |
138 | 116.0% | 350.0% |
| QQQ |
139 | 116.0% | 350.0% |
| 個股等權 | 7049 | 731.8% | 1025.4% |
中心個股版平均持有11.6檔。目標權重周轉估計採每天目標權重變化絕對值總和的一半,再按月相加。這個數字沒有把持有期間價格漂移等細節還原成實際成交金額,不能直接當成真實帳戶的金額周轉率。
全段屬於樣本內研究。開跑前固定規則,可以減少本批看完結果才換條件,但題目本身仍是知道市場歷史後選的,切前後半也無法把後段變成真正未見資料。Bailey等人(2017)討論回測過擬合;本次未估計該文的過擬合機率。Moskowitz、Ooi與Pedersen(2012)研究期貨趨勢,不能替這個指標背書。
用AI重跑固定規則
透過上方FinLab設定入口,讓Claude Code、Codex或Gemini CLI載入FinLab skill後,可以用白話要求:「使用這篇下載的研究程式,保留期間、中心參數與九格設定,重跑Heikin Ashi三種持有方式及成本對照。」這段要求的用途是重現既有實驗;若AI另外生成一套進出條件,即使名稱相同,算出的結果也不是本篇的重跑。
將完整研究程式存成工作目錄的research.py,以下片段執行中心個股版,完整網格則使用該程式的命令列選項。程式的執行範例已列出finlab、numba與TA-Lib套件,登入由FinLab引導完成。
顯示程式碼
import finlab
from research import load, signal, backtest
finlab.login()
prices, eligible = load("us")
state = signal(prices, "heikin", 3, 2)
position = (state & eligible).loc["2017-01-03":"2026-11-09"]
report = backtest(position)
report.to_html("heikin_stocks_report.html")AI代理使用說明介紹技能安裝與研究流程;程式交易指南整理從規則到回測的步驟,回測方法說明成交、成本與偏差,結果名詞可查量化詞彙表。
Heikin Ashi常見問題
哪一組參數最好? 本次的中心在看結果以前固定,沒有用熱圖最好的格子替換原設定。九格用來觀察鄰近條件是否穩定,不用來挑一個歷史冠軍。
最大跌幅較小,就表示指標有效嗎? 長期空手也會降低波動與跌幅,所以還要比較年化報酬、同平均曝險與分段結果。較少參與市場的代價,不能只用一張平順圖略過。
避開訊號是放空嗎? 這裡只是原本空手的日期持有同一檔ETF,其他時間持有現金,沒有建立負部位,不能推論融券或借券交易的績效。
個股可以只挑幾檔看起來最強的嗎? 那會改變股票池與集中程度,且容易事後挑選成功範例。本篇測的是當時合格公司的固定等權規則,不能保證某一檔公司結果相同。
表格和互動報告的夏普為什麼可能不同? 表格統一採零無風險利率的日夏普與完整共同期間,互動報告依自己的慣例與首筆成交起點計算。比較策略時必須讓兩邊使用同一口徑。
可以改成分鐘K嗎? 需要另一份資料、確認週期與成交假設。日線無法得知盤中高低先後,更無法保證照指標界線成交,這次結果沒有涵蓋該問題。
相關研究可看技術指標台股總覽,以及黃金交叉回測、海龜交易回測與量化交易指南。這些頁面分別測不同機制,沒有把其他規則的優點當成本篇的驗證。研究團隊與產品背景可看關於FinLab。
研究下載
| 檔案 | 內容 |
|---|---|
| 下載 |
設定 |
| 下載 |
每日 |
| 下載 |
全部 |
| 開啟 |
瀏覽器 |
| 開啟 |
瀏覽器 |
投資有風險,過去績效不代表未來表現。本內容僅供教學與研究,不構成投資建議,請依個人風險承受度審慎評估。本文沒有推薦個股,也沒有保證指標界線可以成交或歷史優勢會延續。
最後更新:2026-11|回測區間:2017-01-03至2026-11-09|作者:FinLab量化研究團隊。團隊以FinLab資料維護台股、美股的可重跑研究。
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始





