VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / AlphaPrime 怎麼算

反轉 K 棒回測:交替的 K 棒,以及在轉折點成交的陷阱

反轉 K 棒圖上下交替:上升 K 棒會在價格不斷創新高時延伸,直到價格從高點回落一個設定的反轉幅度才收盤,下一根則是下跌 K 棒。多數回測會因為在 K 棒收盤價成交而高估反轉 K 棒策略,那正是回檔完成的時點;另一個問題是把 K 棒的高點當成已知,但該高點其實要等回檔之後才會被確認。AlphaPrime 會在底層 K 棒收盤時確認每根 K 棒,以下一個真實成交價成交,滑價加倍計算,並用真實的高低點判定停損。

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

目錄
  1. 什麼是反轉 K 棒?為什麼它的回測看起來比實際交易好?
  2. 反轉 K 棒如何建構?它的高點何時才真正為人所知?
  3. 反轉 K 棒的回測在哪裡看到了未來?
  4. 在轉折點成交
  5. 過早把極值當成已知
  6. 擺盪 K 棒上的停損
  7. AlphaPrime 如何回測反轉 K 棒策略?
  8. 回測時該如何選擇 K 棒大小與反轉幅度?
  9. 哪些市場與策略適合反轉 K 棒?
  10. 常見問題

什麼是反轉 K 棒?為什麼它的回測看起來比實際交易好?

反轉 K 棒是方向交替的價格 K 棒:上升 K 棒會在價格不斷創新高時延伸,直到價格從該高點回落一個設定的反轉幅度才收盤,而它之後的那一根一定是下跌 K 棒。回測看起來比實際交易好,原因在於 K 棒恰好在回檔完成的那一點收盤,而回測引擎就以那個價格成交。

反轉 K 棒圖有一個必要設定和一個選擇性設定。反轉幅度是從 K 棒極值回檔的距離(以跳動點或點數計),它會結束目前的 K 棒並開始反向的 K 棒;選擇性的最小 K 棒高度則是避免 K 棒在走完至少這段距離前就收盤。動量 K 棒是它的近親,同樣在價格朝同一方向移動時延續,並在出現一定的反向移動時翻轉;兩者的建構細節不同,但回測的漏洞相同。圖上不顯示時間,一根反轉 K 棒在快速行情中可能只持續幾秒,在清淡盤中則可能持續一小時。

交易者使用反轉 K 棒,是因為每一根都是一段擺盪:上升 K 棒的高點依構造就是區域高點,下跌 K 棒的低點則是區域低點。這讓以擺盪為基礎的規則很容易寫。但也代表每根 K 棒最重要的特徵,也就是它的極值,是由它之後發生的事情來決定的。所有合成圖表共通的規則,請參閱為什麼合成 K 棒的回測會作弊;本頁只談反轉 K 棒特有的部分。

反轉 K 棒如何建構?它的高點何時才真正為人所知?

上升 K 棒的高點,要等價格從它下方回落反轉幅度時才為人所知,而那也正是這根 K 棒收盤的時刻。在那之前,任何新高都會延伸這根 K 棒,先前的高點就被忘掉。K 棒最重要的兩個價位,也就是高點與收盤價,會在同一瞬間被確認,而那個瞬間就是收盤。

用來重播歷史的圖表,這代表什麼?完成後的圖表顯示一根上升 K 棒從 100 漲到 112,收在 108,接著是一根下跌 K 棒。看起來交易者似乎能在 112 看到頂部,並在轉折時行動。事實上,這個頂部是在 108 才成為頂部,也就是回檔完成的時候;在 112 時,它只是一根可能還會繼續走的 K 棒目前的最高點。在上升 K 棒收盤時賣出的策略,是在頂部第一次能被辨認的時刻賣出,聽起來很合理,但回測引擎是以收盤價 108 作為成交價。K 棒收盤後的下一筆真實成交,會落在 108 之下,而且市場剛剛反轉。

AlphaPrime(Valynox)會從你選定的底層時間 K 棒建構反轉 K 棒,並在達到反轉幅度的那根底層 K 棒收盤時確認每一根 K 棒。K 棒的收盤價是確立反轉的價格,而不是極值;它的高點、低點與收盤價於是固定下來,策略也能看到,而成交則發生在下一個真實價格。由於一根分鐘 K 棒無法說明它的高點和低點哪個先出現,引擎會假設對策略較不利、且較長的路徑(上漲的分鐘為開、高、低、收;下跌的分鐘為開、低、高、收),而且只使用該分鐘自己的四個價格。分鐘之間的跳空會併入當前的 K 棒,該 K 棒內部不另外畫線。值得留意的一點是:依這些規則,單一分鐘最多只會產生四根反轉 K 棒,而在 ES 和 NQ 的 1 分鐘資料上從未超過,所以反轉 K 棒的聚集程度遠低於區間 K 棒或 Kase K 棒。

假設範例

反轉幅度 4 點。一根上升 K 棒在 09:33:10 以 100 開始上漲。09:34:22 價格來到 112,隨後下跌;09:34:50 成交在 108,完成 4 點的反轉。上升 K 棒收在 108。回測會以 108 成交一筆空單。AlphaPrime 則在 09:35:00 確認這根 K 棒,也就是 09:34 分鐘的收盤,並以 09:35 的第一筆成交(約 106 或 107)加上滑價成交空單。圖表版本因為事先知道頂部,而不是等回檔之後才知道,因此多拿了這段擺盪中的兩點。

反轉 K 棒的回測在哪裡看到了未來?

在收盤時(也就是轉折點)、在高點與低點(也就是擺盪的端點),以及在停損判定中——而那根 K 棒的範圍是由它剛完成的擺盪所定義。

在轉折點成交

規則:反轉 K 棒只會在完成反轉的那根底層 K 棒收盤時出現,成交價是下一個真實價格。原因:K 棒的收盤價是完成回檔的價格,而下一筆成交已經沿著反轉走了一段,市場也在移動。避免的問題:每一根 K 棒都在精確的轉折點成交。那會是擺盪規則能夢想到的最佳進場,但實際交易從來不會給你這個價位。

過早把極值當成已知

規則:只有在 K 棒被確認之後,策略才能看到它的高點(或低點)。原因:在反轉完成之前,極值仍可能被更高的價格取代。避免的問題:規則在 K 棒形成期間,就把擺盪高點當成已經看得到,然後依它下單。

擺盪 K 棒上的停損

規則:停損與停利以底層 K 棒的高點和低點判定;若同一根 K 棒同時觸及兩者,先判定停損。原因:在單一根底層分鐘 K 棒內,價格可能完成一根反轉 K 棒、再走得更遠、然後又反轉;反轉 K 棒的序列並不會告訴你這些事件相對於你的停損發生的順序。避免的問題:一次測試在某根 K 棒進場,下一根卻因為引擎假設了對自己有利的順序而從未被停損。

反轉 K 棒的特徵畫線式 K 棒回測AlphaPrime
K 棒收盤(轉折)以收盤價成交以底層 K 棒收盤確認;以下一個真實成交價加上加倍的滑價成交
K 棒高點或低點(擺盪)在 K 棒形成時就視為已知只有在 K 棒確認後才可見
同一分鐘內的多根 K 棒逐根交易在分鐘收盤時一起出現;所有訊號以同一個下一個真實價格成交
分鐘內高點與低點的順序引擎偏好的任何順序永遠採用較長、較不利的路徑
停損判定反轉 K 棒的範圍底層 K 棒的真實高低點,先判定停損
棒的最高價和收盤價在同一刻才確定,也就是回檔成立的那一刻;誠實的成交是那之後的下一筆真實成交。
棒的最高價和收盤價在同一刻才確定,也就是回檔成立的那一刻;誠實的成交是那之後的下一筆真實成交。 AlphaPrime 生成設定 · 線圖類型面板

AlphaPrime 如何回測反轉 K 棒策略?

策略會讀取交替出現的 K 棒、它們的大小與極值。成交、停損與停利則來自底層的真實 K 棒。逐條說明如下:

  • 每根 K 棒都在完成反轉的那根底層 K 棒收盤時確認。原因:在那之前,它的高點與收盤價都還不是最終值。避免的問題:依據之後被超越的極值下單。
  • 市價單拿到的是下一根底層 K 棒的開盤價,滑價另計。原因:訊號之後第一個可取得的價格才是可以成交的價格。避免的問題:在轉折點成交。
  • 在同一根底層 K 棒內完成的 K 棒會一起出現。原因:以分鐘建構的引擎,會在分鐘收盤時同時得知這些 K 棒。避免的問題:交易一連串只有事後才看得出來的擺盪。
  • 停損與停利以底層 K 棒的真實高低點判定,先判定停損。原因:真實的 K 棒保有完整的路徑,反轉 K 棒只保有其中的轉折點。避免的問題:被擺盪序列掩蓋的停損出場。
  • 滑價乘以二,而且只會往上調整。原因:反轉 K 棒是在市場剛轉向時成立的;在 ES 和 NQ 的 1 分鐘資料上,即使是單獨出現的反轉 K 棒,從其收盤到下一筆真實成交的距離,也是所有區間類圖表中最大的。避免的問題:以清淡盤的買賣價差來計算反轉的成本。

能通過這些條件的,是能接受晚進場的擺盪規則:例如在下跌 K 棒確認後買進,並持有超過一根 K 棒,而不是試圖抓住每一個轉折。抓轉折正是圖表讓人覺得容易、而誠實的成交價會把它拿走的地方。如何權衡額外成本與平均每筆損益,請參閱手續費、滑價與平均每筆損益。

回測時該如何選擇 K 棒大小與反轉幅度?

反轉幅度應該是你滑價假設的好幾倍,並且明顯大於底層 K 棒的典型高低距離。反轉幅度太小,圖表會因為買賣價差的雜訊而翻轉,每次翻轉都要付出兩次成交的成本,而且 K 棒的形狀大多來自每分鐘內假設的路徑,而不是市場本身。

  1. 先定反轉幅度。它決定回檔要多深才算轉折。以盤中的股價指數期貨來說,反轉幅度至少要比一般的買賣價跳動高出幾個跳動點;比這更小的,就等於是在交易價差。
  2. 再定最小 K 棒高度(若要使用)。它避免 K 棒在行情還沒走出一段距離前就收盤。若要使用單純的圖表,就設為零;若想避免圖表因雜訊而交替,可設為一到兩倍的反轉幅度。
  3. 底層的解析度。如果同一根底層 K 棒內完成了很多根反轉 K 棒,回測就無法解析它們;應放寬設定,或改用更細的底層 K 棒。

樣本內與樣本外要使用相同的設定。反轉 K 棒有兩個互相影響的參數,而且對交易筆數有明顯的影響,這很容易誘使人依結果去調整。如果你想要的是不需要反轉、只要有移動就收盤的 K 棒,請參閱區間 K 棒回測;如果你希望與前一收盤價之間的跳空也算作移動,請參閱 Kase K 棒。

哪些市場與策略適合反轉 K 棒?

反轉 K 棒適合流動性高的盤中擺盪策略,例如股價指數期貨、主要貨幣對,以及交易活躍時段中的大型加密貨幣。在這些市場,達到反轉幅度的回檔來自真實的雙向成交,而不是價差。它不適合流動性差的市場、價差已接近反轉幅度的夜盤,以及任何優勢本身就是轉折點的規則。

在相信任何反轉 K 棒的結果之前,先把每次進場再延後一根底層 K 棒,並比較兩者。持有擺盪好幾根 K 棒的規則只會損失一點;而原本在抓轉折的規則,幾乎會全部損失,因為它的優勢就是收盤價的成交。如果結果依然成立,它就值得接受推進分析,與任何時間 K 棒的候選策略一樣。

如果你使用 AlphaPrime:在策略生成中選擇反轉 K 棒作為圖表類型,設定反轉幅度、選擇性的最小 K 棒高度與底層解析度,然後執行搜尋。每個候選策略都會以底層收盤確認的 K 棒測試,以下一個真實價格成交並加倍滑價,停損以真實的 K 棒判定,不論你執行的是 Classic 還是 Reserve。你報表中的轉折,都是事後你真的有機會交易的那些。

常見問題

反轉 K 棒和區間 K 棒有什麼不同?

區間 K 棒會在高低價距離達到設定大小時收盤,不論方向為何。反轉 K 棒只有在價格從極值回落一定幅度時才收盤,而且下一根一定是反向的。區間 K 棒衡量的是移動,反轉 K 棒衡量的是擺盪。

動量 K 棒和反轉 K 棒一樣嗎?

兩者是近親。兩者都會在價格朝同一方向移動時延續,並在出現一定的反向移動時翻轉;開盤的確切建構方式與最小尺寸,在不同的實作之間會有差異。回測的漏洞相同:收盤就是轉折,而在那裡成交,就等於在圖表能顯示的最佳價格成交。

為什麼我的反轉 K 棒策略在 AlphaPrime 中比在圖表上差?

因為圖表回測是在 K 棒收盤價成交,而那是轉折點;AlphaPrime 則是在 K 棒確認後,以下一個真實價格成交。依賴抓住每個轉折的擺盪策略會失去這項優勢。持有擺盪好幾根 K 棒的策略,則能保留大部分結果。

我可以把反轉 K 棒用在外匯和加密貨幣嗎?

可以,反轉幅度可以用點數或價格單位設定。在加密貨幣中,K 棒常聚集在爆倉行情附近,所以在相信結果之前,要用高於加倍後起始值的滑價來測試。