VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 指標與訊號

平均K棒(Heikin Ashi):計算方式與回測方法

平均K棒的收盤價是(開盤價 + 最高價 + 最低價 + 收盤價)÷ 4,開盤價是前一根平均K棒開盤與收盤的中點,所以它用真實價格取平均,讓趨勢看起來更平滑。只要訊號來自平均K棒、但所有成交、停損與停利都用真實價格,就能回測以它為基礎的規則。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 什麼是平均K棒(Heikin Ashi)?
  2. 平均K棒如何計算?
  3. 平均K棒與一般K線:圖上有什麼不同?
  4. 為什麼平均K棒的價格會讓回測的成交與停損失真?
  5. 有哪些簡單的平均K棒規則可以回測?
  6. 如何一步步回測平均K棒策略?
  7. 平均K棒本身能帶來優勢嗎?
  8. 常見問題
  9. 參考文獻

什麼是平均K棒(Heikin Ashi)?

平均K棒是一種平滑過的K棒:收盤價是該 K 棒開盤、最高、最低、收盤的平均,開盤價則是前一根平均K棒開盤與收盤的中點。它能清楚呈現趨勢,但價格是算出來的。可回測的策略,訊號取自平均K棒,成交則用真實價格。

這個名稱源自日文,大意是「平均足」。「Heiken Ashi」是同一種K棒常見的另一種拼法。一般K線由四個真實價格畫成:第一筆成交(開盤)、最高與最低成交價(最高價與最低價)以及最後一筆成交(收盤)。Heikin Ashi 改的是 K 線本身,其他技術指標則是疊在一般價格上。

可以想像汽車的速度表。一種顯示每一刻的精確車速,所以指針會跳動;另一種顯示最近幾秒的平均車速,所以指針移動平順,但反應較慢。一般K線就是第一種速度表,平均K棒則是第二種。

平均K棒如何計算?

每一根平均K棒都由當前的真實 K 棒與前一根平均K棒組成,所以每根K棒都帶有先前的部分歷史。四個值如下:

平均K棒的值計算方式代表意義
收盤真實 K 棒開盤、最高、最低、收盤的平均當前 K 棒的「中間」價格
開盤前一根平均K棒開盤與前一根平均K棒收盤的中點延續前一根K棒
最高真實最高價、平均K棒開盤、平均K棒收盤三者中最高者不會低於真實最高價
最低真實最低價、平均K棒開盤、平均K棒收盤三者中最低者不會高於真實最低價

只有收盤價有簡短的公式:HA 收盤 = (開盤 + 最高 + 最低 + 收盤) ÷ 4。「HA 收盤」就是平均K棒的收盤價;開盤、最高、最低、收盤是同一根 K 棒的四個真實價格。

第一根K棒沒有前一根平均K棒。多數平台會把它的開盤價設為真實開盤與收盤的中點。這個起始值的權重每多一根 K 棒就減半,十根 K 棒後,它在結果中的占比已不到千分之一。

假設性範例

前一根平均K棒的開盤為 98、收盤為 100。當前真實 K 棒以 100 開盤,最高 104、最低 99,收盤 103。

HA 收盤 = (100 + 104 + 99 + 103) ÷ 4 = 101.5。HA 開盤 = (98 + 100) ÷ 2 = 99。HA 最高 = 104、99、101.5 三者中最高者 = 104。HA 最低 = 99、99、101.5 三者中最低者 = 99。

這根平均K棒是綠色,實體從 99 到 101.5。真實K線也是綠色,但實體從 100 到 103。真實收盤比平均K棒收盤高 1.5 點。

平均K棒與一般K線:圖上有什麼不同?

平均K棒圖的顏色轉換較少,同色連續的段落較長,因為每根K棒都有一部分是先前K棒的平均。下表說明在兩種圖上,K棒各部分的意義。

K棒的部分一般K線平均K棒
開盤該 K 棒第一筆真實成交由前一根K棒計算出的中點
收盤該 K 棒最後一筆真實成交四個真實價格的平均
顏色真實收盤與真實開盤比較平均K棒收盤與平均K棒開盤比較
K 棒之間的跳空看得到大多被隱藏,因為開盤價忽略真實開盤
影線真實最高價與最低價為了涵蓋計算出的開盤價,可能延伸超過真實最高或最低價
趨勢中的顏色轉換頻繁較少,連續段落較長

吞噬或十字星這類經典K線型態,依賴真實的開盤與收盤,無法直接套用在平均K棒上。若要測試型態規則,請在一般K線上進行,做法見多空K線型態的回測。

同樣十根假設的 K 棒畫了兩次:以一般 K 棒呈現時顏色變換 5 次,且在第 6 根出現向上跳空;以平均 K 棒(Heikin Ashi)呈現時顏色只變換 2 次,跳空被隱藏 同樣的 K 棒,翻色更少 十根假設 K 棒,畫兩次 一般 Heikin Ashi 跳空 翻色 5 次 翻色 2 次 Heikin Ashi 會平滑並隱藏跳空。 所以:請用真實 K 棒檢查跳空。
同樣十根 K 棒,上為一般K線,下為平均K棒。平均K棒的顏色轉換較少,也隱藏了跳空。

為什麼平均K棒的價格會讓回測的成交與停損失真?

若回測以平均K棒的價格成交或檢查停損,就是在以市場可能從未出現過的價格交易,而且誤差通常對策略有利。在收盤接近最高價的上漲 K 棒中,平均K棒收盤會低於真實收盤。因此,「以平均K棒收盤價成交」的多單進場,看起來比訊號出現後你仍能立即買到的任何價格都便宜。下跌行情中,空單則出現相反的情形。由於趨勢規則是在上漲時買、下跌時賣,這個誤差並非隨機,而是替幾乎每一筆交易加上一份小小的贈禮。

停損與停利還有第二個問題。平均K棒的最低價絕不會高於真實最低價,最高價絕不會低於真實最高價。若回測以平均K棒的最低價檢查停損,可能記錄成被停損出場,但真實市場根本沒到過停損價。以平均K棒最高價檢查的停利,也可能被算成成交,但真實市場並無任何成交到達該價位。

假設性範例

前述範例中的K棒轉為綠色,規則買進。以平均K棒收盤價成交的回測會記錄進場價為 101.5。較貼近實際的回測則在 K 棒收盤時決定,並以下一根真實開盤價買進,假設為 103.2。這一筆交易的差距是 1.7 點。若每點價值 $50,在尚未計入任何手續費或滑價之前,用平均價格的回測就高估了這筆交易 $85。

一根上漲的假設K棒:真實K棒開盤100、收盤103,平均K棒開盤99、收盤101.5,因此平均K棒收盤價比真實收盤價低1.5點,並非真實收盤價 同一根K棒,兩個收盤價 範例中的上漲K棒 真實 平均K棒 1.5 真實收盤 103 平均K棒收盤 101.5 非真實收盤價 平均K棒成交價看起來比實際便宜。 因此:以下一個真實開盤價成交。
上述假設性範例:平均K棒收盤比真實收盤低 1.5 點,因此以平均K棒收盤成交的價格並不是真實收盤價。

有些圖表平台可以直接在平均K棒圖上執行策略。視設定而定,成交可能會使用平均後的價格。在相信結果之前,請先確認你的平台是以哪種價格成交。

有哪些簡單的平均K棒規則可以回測?

多數平均K棒策略都是顏色轉換規則,每一條都夠明確,不需要任何主觀判斷就能回測。以下是多方常見的四種版本,空方則是鏡像。

規則進場出場改變了什麼
1. 顏色轉換紅K之後的第一根綠K第一根紅K最早進場,交易最多
2. 確認後轉換連續第二根綠K連續第二根紅K交易較少,進出場較晚
3. 強勢K棒沒有下影線的綠K(平均K棒最低價等於平均K棒開盤)第一根紅K等待沒有下影線的K棒
4. 趨勢濾網規則 1,但只在真實收盤高於 50 根 K 棒移動平均時進場第一根紅K略過與較大趨勢相反的訊號

了解顏色實際衡量什麼很有幫助。平均K棒的開盤價,一半權重放在前一個開盤,一半放在前一個收盤,這使它成為過去平均K棒收盤的指數移動平均,大約是三根 K 棒的長度。因此,綠K的意思是「這根 K 棒的平均價高於先前 K 棒的極短期平均」。平均K棒的顏色轉換,其實是短期移動平均交叉的另一種形式,這也告訴你該拿哪種基準來比較。

如何一步步回測平均K棒策略?

在測試中以真實 K 棒建立平均K棒,並以簡單的基準來評斷規則。好的結果能在貼近實際的成交與成本下維持,不好的則只在平滑的圖上看起來漂亮。

  1. 載入真實 K 棒資料。以真實的開盤、最高、最低、收盤作為價格序列,由此計算平均K棒。不要把平均K棒當成價格載入。
  2. 在 K 棒收盤時決定。只使用已完成的平均K棒,因為當前K棒在該 K 棒收盤前會不斷變動。
  3. 在下一根 K 棒成交。以下一根真實開盤價進場與出場(下一根 K 棒執行)。
  4. 每筆交易都加入成本。每一買一賣(來回)都要計入手續費與滑價。滑價是回測假設的價格與你實際成交價之間的差距。請見回測中的交易成本。
  5. 以真實的最高與最低價檢查停損與停利。部位大小依進場價與停損價之間的真實距離決定。
  6. 跑兩個基準。在一般K線上測試相同的進出場時點(綠色代表真實收盤高於真實開盤)。再測試以真實收盤計算的短期移動平均交叉。
  7. 計算交易次數,並比較平均每筆損益與成本。顏色規則在盤整行情中常常來回翻轉。平均每筆損益應是一買一賣(來回)成本的數倍。
  8. 用規則沒看過的資料測試。讓變化版本的數量保持少量,並在樣本外檢驗,例如使用推進分析與 AlphaPrime(Valynox)的策略檢驗。
檢查項目值得進一步研究薄弱的規則
把成交從平均K棒價格改到下一根真實開盤結果略微縮水結果消失
扣除成本後與移動平均基準比較明顯較好差不多或更差
不同 K 棒週期,例如 15、30 與 60 分鐘表現相近只在其中一個有效
平均每筆損益與一買一賣(來回)成本比較大上數倍大致相等

平均K棒本身能帶來優勢嗎?

不能。平均K棒改變的是價格的畫法,而不是價格做了什麼,所以任何優勢都必須來自規則,並且要在真實成交的測試中呈現出來。平滑一定要付出時間的代價。以速度表來比喻,平順的指針是在你已經減速之後才顯示你煞車了。平均K棒圖在頭部之後常會多維持一兩根綠K,而這些 K 棒的代價,每一次出場都得付。

假設的延遲:實際收盤價在第 5 根 K 棒見頂後下跌,但平均K棒(Heikin Ashi)顏色到第 6 根仍為綠色,直到第 7 根才轉紅,延遲兩根 K 棒 顏色晚兩根才轉 假設的收盤價與 HA 顏色 實際收盤 Heikin Ashi 延遲兩根 平滑一定會耗時。 所以:每個出場都要算進延遲。
落後的假設性範例:真實價格在第 5 根 K 棒轉向,但平均K棒顏色到第 7 根才轉。

平滑的圖也會誤導眼睛。長段的綠色與紅色讓過去的趨勢看起來很容易抓到,而盤整期間許多小額虧損的來回翻轉,在捲動圖表時很容易被忽略。只有計入成本的完整測試才會把這些翻轉算進去。那些顏色翻轉在 AlphaPrime 的績效報表裡都是一筆一筆的交易,連同它們造成的權益曲線與回撤一起列出。

最後一個限制是你嘗試了多少個版本。如果你測試了數十種顏色規則、濾網與 K 棒週期的變化,其中最好的那個,一部分看起來好是靠運氣。針對技術交易規則的研究顯示,在許多規則中表現最好的那一個,必須對照所嘗試的規則數量來評斷(Sullivan、Timmermann 與 White,1999)。回測的過度最佳化會隨著變化版本的數量增加而加劇(Bailey、Borwein、López de Prado 與 Zhu,2014)。

如果你使用 AlphaPrime,這代表:你可以透過策略生成,把平均K棒的想法寫成明確的進場與出場規則。AlphaPrime 的回測會在真實的歷史 K 棒資料上評估每個候選策略,計入手續費、滑價與下一根 K 棒成交,這正是本文對任何建立在平滑價格上的規則所建議的設定。

常見問題

Heiken Ashi 和 Heikin Ashi 是一樣的嗎?

是的。「Heiken Ashi」是 Heikin Ashi 常見的另一種拼法,兩個名稱指的是同一種平均K棒。各平台使用相同的基本計算:平均後的收盤、取自前一根K棒的開盤,以及涵蓋真實極值的最高與最低價;只有第一根K棒的起始值可能不同。

交易時,平均K棒比一般K線更好嗎?

兩種圖型沒有通用的優劣。平均K棒讓趨勢更容易辨識,並減少顏色雜訊,但反應較晚,也隱藏了真實的開盤、收盤與跳空。一般K線顯示實際成交的內容,而成交與停損正是依賴這些內容。

我可以在平均K棒圖上回測策略嗎?

可以,前提是回測只把平均K棒用於訊號,所有委託都用真實價格。如果成交、停損或停利使用平均K棒的值,結果通常會比你實際能交易的任何結果都漂亮。請在 K 棒收盤時決定,並在下一根真實開盤價成交,且計入成本。

平均K棒會重繪嗎?

已完成的平均K棒不會改變,但當前這一根在其 K 棒收盤前會一直變動,所以訊號只應使用已完成的K棒。由於每個開盤價都取決於前一根K棒,當圖表從不同日期開始時,最初幾根K棒可能略有差異。這個差異每經過一根 K 棒就減半,很快就小到不重要。

參考文獻

  • Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5), 1647–1691.
  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.