Kase K 棒回測:真實區間、無幻影 K 棒,以及爆量後的成交價
Kase K 棒在真實區間達到固定目標時收盤,真實區間除了計入本根 K 棒的最高價與最低價之差,也計入與前一根 K 棒收盤價的跳空距離。因此 Kase K 棒可以處理跳空,不必畫出幻影 K 棒。不過它的回測跟所有區間型圖表一樣會高估績效:一是以收盤那一跳成交,二是把同一分鐘內完成的多根 K 棒逐根交易。AlphaPrime 會在底層 K 棒收盤時才確認每根 K 棒,所有訊號都以下一個真實價格成交,並把滑價加倍,停損則以真實的最高價與最低價判定。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
什麼是 Kase K 棒?它的回測如何高估績效?
Kase K 棒是一種區間型 K 棒,當它的真實區間達到固定目標時就會收盤。真實區間除了計入本根 K 棒自身的最高價與最低價之差,也計入前一根 K 棒收盤價到本根 K 棒的跳空距離。它的回測會高估績效,原因有兩個:一是以完成該根 K 棒的那筆成交價成交,二是把同一分鐘內全部確定的 K 棒逐根拿來交易。
區間 K 棒在最高價減最低價達到目標時收盤。Kase K 棒則是在三個距離中最大的那個達到目標時收盤:本根 K 棒的最高價減最低價、前一根 K 棒收盤價到本根最高價的距離,以及前一根 K 棒收盤價到本根最低價的距離。這裡的前一根收盤價,是前一根 Kase K 棒的收盤價,所以如果一根 K 棒的開盤價離上一根的收盤價有段距離,它在價格還沒動之前,目標就已經用掉一部分。就這一點改變,Kase K 棒帶來兩個交易者看重的特性:K 棒的移動是從市場實際所在的位置量起,而不只是從這根 K 棒開在哪裡量起;遇到跳空時,也不必用虛構的 K 棒把缺口填起來。
目標是你自己選定、並且固定不變的數字,單位是跳動點。Kase K 棒有時被形容為會依波動率調整,這種說法在回測上容易誤導:K 棒並不會根據滾動的波動率估計值自行調整大小,所以建構過程中沒有任何地方會借用到之後的資料。所有合成圖表共通的規則,請見合成 K 棒回測為何作弊的總覽;本頁只談 Kase 特有的部分。
Kase K 棒如何由真實 K 棒建構?什麼時候才算確定?
當真實成交把它的真實區間推到目標時,Kase K 棒就確定了。以分 K 建構的引擎會在該分鐘收盤時得知這件事。K 棒於那筆成交收盤,下一根 K 棒從再往外一跳的價位開盤,它的真實區間則從剛剛收盤的價位開始計算。
假設目標是 5 個跳動點。前一根 Kase K 棒收在 108。下一根 K 棒在 109 開盤,上漲到 113。它自身的最高價減最低價只有 4 個跳動點,但從前一根收盤價 108 到最高價 113 的距離是 5,所以 K 棒收在 113。同樣的位置如果是區間 K 棒,還需要再多一個跳動點才會收盤。市場跳空時,同一條規則也能吸收跳空:與前一根收盤價的跳動計入目標,達到目標時 K 棒收盤;如果單一跳空就超過目標,K 棒會以真實價格收盤,比目標大。沒有成交的價位不會被畫出來。
AlphaPrime(Valynox)會從你選的底層時間 K 棒建構 Kase K 棒,日內多數情況使用 1 分鐘 K 棒。K 棒只有在完成它的底層 K 棒收盤時,才會對策略可見。同一分鐘內完成的幾根 Kase K 棒,會在該分鐘結束時一起出現,它們產生的所有訊號都以同一個下一個真實價格成交。分鐘 K 棒本身無法告訴我們最高價和最低價哪個先出現,因此引擎採用對策略較不利、且路徑較長的順序:上漲的分鐘為開盤、最高、最低、收盤;下跌的分鐘為開盤、最低、最高、收盤。這個假設切掉的 K 棒和錯誤訊號,會比較寬鬆的順序來得多,而且它只使用該分鐘自身的四個價格。
假設性範例
目標 8 個跳動點。前一根 Kase K 棒收在 100。10:22 那一分鐘在 103 開盤,上漲到 109,收在 107。從前一根收盤價 100 到最高價 109 的距離在 108 達到目標,因此該分鐘內會有一根 Kase K 棒在 108 收盤。以收盤跳動成交的回測會在 108 成交突破買進。AlphaPrime 會在 10:23:00 確認這根 K 棒,並在 10:23 的第一筆成交成交,約為 107 加上滑價。如果是同樣目標的區間 K 棒,在該分鐘內根本不會收盤,因為它自身的最高價減最低價只有 6 個跳動點。
Kase K 棒的回測在哪裡偷看了未來?
在成交價、聚集的 K 棒,以及每一分鐘內的路徑。K 棒本身的建構沒有問題,有問題的是引擎對它採取的捷徑。
以收盤那一跳成交
規則:K 棒只有在完成它的底層 K 棒收盤時才存在,成交價是下一個真實價格加上滑價。原因:確認 K 棒時,完成目標的那一跳已經過去了。避免的問題:每根 K 棒都以量測到的走勢終點成交,等於每次都拿到最好的價格。
把同時到來的 K 棒逐根交易
規則:同一個底層分鐘內完成的所有 K 棒所產生的訊號,都以同一個下一個真實價格成交。原因:盯著分鐘資料的即時交易者,會同時知道所有這些 K 棒。避免的問題:在爆量的第一根進場、第三根出場,而那一分鐘在你來得及反應之前就已經結束。
在分鐘內選擇對自己有利的路徑
規則:分鐘內的路徑一律採用較長、較不利的那一種。原因:真實路徑無從得知,選擇較寬鬆的路徑,等於是替結果挑了一個有利的答案。避免的問題:K 棒數量取決於對策略有利的猜測。代價是 K 棒數量會比真實市場顯示的多出四分之一到一半(以 ES 與 NQ 的 1 分鐘資料計算),這是不靠猜測所要付出的代價。
| Kase K 棒特性 | 收盤跳動回測 | AlphaPrime |
|---|---|---|
| K 棒完成 | 在收盤跳動時已知 | 在底層 K 棒收盤時才已知 |
| 進場成交 | 收盤跳動 | 下一個真實價格加上加倍的滑價 |
| 同一分鐘內的多根 K 棒 | 逐根交易 | 所有訊號都以同一個下一個真實價格成交 |
| 分鐘內最高與最低的先後 | 依引擎偏好的順序 | 一律採用較長、較不利的路徑 |
| 跳空 | 依引擎而定,有些會畫過缺口 | 計入目標;K 棒以真實價格收盤;缺口內不畫任何 K 棒 |
| 停損檢查 | Kase K 棒的區間 | 底層 K 棒的真實最高價與最低價,停損優先 |

AlphaPrime 如何回測 Kase K 棒策略?
策略讀取的是 Kase K 棒;成交、停損與停利則來自底層的真實 K 棒。規則如下:
- 每根 K 棒都在完成它的底層 K 棒收盤時確認。原因:以分 K 建構的引擎,只會在分鐘收盤時得知 K 棒已收盤。避免的問題:在還不確定 K 棒是否完成時就據以行動。
- 市價單以下一根底層 K 棒的開盤價成交,再加上滑價。原因:這是訊號之後第一個存在的價格。避免的問題:以收盤跳動成交。
- 分鐘內的路徑採用較長、較不利的那一種。原因:真實路徑未知,而寬鬆的猜測會美化結果。避免的問題:K 棒與訊號建立在猜測上。
- 跳空計入目標,且絕不以畫出來的 K 棒填補。原因:真實區間已經量到跳動,缺口內沒有成交。避免的問題:以從未出現過的價格成交。
- 停損與停利以底層 K 棒的真實最高價與最低價判定,停損優先。原因:真實的 K 棒包含了 Kase K 棒所摘要的那段路徑。避免的問題:只在事件順序較有利的情況下才存在的獲利。
- 滑價乘以二,而且只能往上調。原因:市場移動最快時,Kase K 棒和區間 K 棒一樣會爆量式地成形。避免的問題:在爆量期間假設盤口很平靜的成本模型。
引擎自己對約三年 ES 1 分鐘資料、8 個跳動點目標所做的量測,顯示爆量有多重要:在產生三根或以上 Kase K 棒的分鐘內,從該根 K 棒收盤到下一筆真實成交的距離,平均約為只產生一根的分鐘的四倍。這段距離已經由真實價格成交計入;滑價乘數則是在此之上再加一層,因為在那些分鐘裡,即使是真實的開盤價,也不是能保證拿到的價格。若要了解一般的衡量方法,比較成本與平均每筆損益,請見回測中的交易成本。
如何選擇 Kase K 棒的目標?
目標要明顯大於底層 K 棒典型的最高價減最低價,而且要固定不變。目標太小,會讓大多數分鐘變成由好幾根 K 棒組成的爆量,而那些形狀來自假設的路徑,而非市場本身。
- 從底層 K 棒開始。量測你交易時段的典型 1 分鐘區間與典型的收盤對收盤變動。目標設為收盤對收盤變動的數倍,並且至少是典型 1 分鐘區間的兩倍左右,這樣大多數 Kase K 棒會跨越好幾分鐘。
- 檢查爆量頻率。圖表類型面板會顯示你所設定的平均每日 K 棒數與最忙時段。如果最忙的時段每幾秒就產生一根 K 棒,請提高目標,或改用更細的底層資料。
- 在樣本內與樣本外都維持不變。根據測試結果調整的目標,就是一個被擬合過的參數。平均真實區間可以作為一次性選定目標的合理參考,但不應該成為邊測邊改的機制。
值得做的一項對照測試:用同樣的目標,在區間 K 棒上建構同一個策略。如果 Kase 版本與區間版本只有些微差異,代表前一根收盤規則在處理缺口與開盤時,只做了一點實質的工作。如果兩者差異很大,請找出差異在哪裡:差異應該集中在開盤與新聞公布時,因為那時與前一根收盤價的跳動最大。固定區間與反轉型的同類圖表,各自有專門的頁面:區間 K 棒回測與反轉 K 棒回測。
哪些市場與策略適合 Kase K 棒?
Kase K 棒適合以移動為基礎的規則,用在會跳空或跳動的市場:跨越開盤的股價指數期貨、跨越交易時段轉換的外匯,以及新聞與強制平倉前後的加密貨幣。對於流動性差的市場,以及需要精準出場的規則,它並不適合,原因和所有區間型圖表相同。
在相信 Kase K 棒的結果之前,先看看交易落在最忙分鐘的哪些位置。如果獲利集中在爆量時段,那就是在成交品質最差的時刻賺到的獲利,而加倍的滑價在那裡只是下限,不是上限。如果結果在進場延遲一根 K 棒,以及區間 K 棒對照測試下仍然成立,它才算通過了推進分析。
如果你使用 AlphaPrime,做法是:在策略生成中選擇 Kase K 棒作為圖表類型,設定目標與底層解析度,然後執行搜尋。每個候選策略都會以底層收盤後才確認的 K 棒測試,以下一個真實價格成交並加倍滑價,分鐘內採用不利的路徑,停損以真實 K 棒判定,同時涵蓋 Classic 與 Reserve。你的報表裡,沒有任何東西是畫在沒有成交的價位上。
常見問題
Kase K 棒和區間 K 棒有什麼差別?
區間 K 棒在自身的最高價減最低價達到目標時收盤。Kase K 棒則是在真實區間達到目標時收盤,而真實區間還會計入前一根收盤價到本根最高價或最低價的距離。因此,開盤離前一根收盤價有段距離的 Kase K 棒會更快收盤;跳空則被當成移動來計算,而不是用畫出來的 K 棒填補。
Kase K 棒會用到未來的波動率嗎?
不會。建構過程只用到前一根的收盤價,以及本根的最高價與最低價,沒有用到之後的資料。目標是你自己選定的固定數字。把 Kase K 棒形容為會依波動率調整,指的是交易者如何挑選目標,而不是 K 棒在形成時自行計算什麼。
為什麼有些 Kase K 棒會比目標大?
當單一根底層 K 棒的跳動超過目標時,Kase K 棒會以跳動之後的真實價格收盤,可能遠超過目標,因為中間沒有任何成交,而 AlphaPrime 也不會畫過缺口。反過來說,如果前一根收盤價的跳動已經貢獻了一部分距離,K 棒的最高價減最低價也可能小於目標。
Kase K 棒可以用在外匯與加密貨幣上嗎?
可以,而且前一根收盤規則在這些市場特別有用,因為外匯與加密貨幣的交易時段與週末都會出現跳動,區間 K 棒處理得不好。目標可以用跳動點、點數或價格單位來設定。測試時,每次跳動後的前幾根 K 棒,滑價應該高於加倍後的起始值。

