VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 策略生成

聰明錢概念:演算法能回測訂單區塊與 FVG 嗎?

訂單區塊與公允價值缺口,必須先把手繪時的每個選擇都寫成數字,才能回測。公允價值缺口需要三根 K 棒與兩項設定;訂單區塊需要五項。回測評價的是你寫下的型態定義,而不是手繪時的概念。

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

目錄
  1. 訂單區塊與公允價值缺口能轉成可測試的規則嗎?
  2. 什麼是訂單區塊?什麼是公允價值缺口?
  3. 如何客觀定義訂單區塊?
  4. 如何用程式碼寫出公允價值缺口?
  5. 為什麼模糊性才是真正的問題?ICT 與 SMC 差在哪裡?
  6. NQ 上替代規則的期貨回測呈現什麼?如何解讀?
  7. SMC 究竟有效嗎?
  8. 常見問題
  9. 參考文獻

訂單區塊與公允價值缺口能轉成可測試的規則嗎?

聰明錢概念(如訂單區塊與公允價值缺口),必須先把手繪時的每個選擇寫成明文規則,才能用在演算法交易。公允價值缺口需要三根 K 棒與兩項設定,訂單區塊需要五項。回測評價的是你寫下的定義,而不是手繪時的概念。

聰明錢概念(SMC)是一系列讀圖方法,只憑價格 K 棒,試圖找出大型參與者下單的位置。這些方法靠標註過的圖表教學,而電腦讀不懂標註圖。它需要一條能對每根 K 棒一視同仁套用的規則,這正是程式交易的定義與流程:寫成明文、不帶主觀判斷地執行。所以第一件事不是寫程式,而是把規則寫下來。

兩種型態的書寫難度並不相同。公允價值缺口是三根 K 棒之間的關係,待決定的只有兩件事:缺口至少要多大,以及什麼算填補。訂單區塊是事後回頭看才選出的 K 棒,所以還得決定:哪根 K 棒符合資格、後續走勢要多強、哪些價位構成區塊、什麼算觸及,以及區塊何時不再有效。這每一項都是兩位交易人會意見不同之處,測試前都必須變成數字。

公允價值缺口在測試前須固定兩項設定,訂單區塊須固定五項,每項選擇都必須變成數字 兩項選擇對五項 測試前要固定的設定 FVG 2 訂單區塊 5 每項選擇都須變成數字。 所以:先寫下每項設定。
公允價值缺口本身就是算術。訂單區塊要先固定五項選擇,才會變成算術。

什麼是訂單區塊?什麼是公允價值缺口?

兩種型態都只從價格判讀,下圖標出各自在圖上的確切位置。訂單區塊是強勢走勢之前、最後那根相反顏色 K 棒所在的區間:急漲前最後那根下跌 K 棒(看漲訂單區塊),或急跌前最後那根上漲 K 棒(看跌訂單區塊)。其背後的想法是,大型買方或賣方在那根 K 棒內成交了自己的委託單,價格回到該區間時會加以防守。公允價值缺口(FVG)是快速走勢留下的未成交價格空間:在連續三根 K 棒中,中間那根 K 棒的區間裡,第一根與第三根沒有重疊的部分。其背後的想法是,價格傾向回頭,把跳過的空間重新交易一遍。

兩種型態都不用成交量、未平倉量或委託簿資料。「聰明錢」是對走勢的一種詮釋,不是量測得出的數量。這對測試反而有利:輸入只有開高低收,手上現有的任何 K 棒資料都能測。它們屬於期貨演算法交易策略的類型中的價格型態,與突破、K 棒形態並列,也適用相同的測試規則。

由價格 K 棒畫出的看漲圖形:訂單區塊是急漲前最後那根下跌 K 棒所在的區間,公允價值缺口是第一根 K 棒高點與第三根 K 棒低點之間的空間 型態的位置 看漲情境,只用價格 K 棒 FVG 訂單區塊 兩者都只來自價格 K 棒。 所以:任何 K 棒資料都能測。
看漲訂單區塊是上漲前最後那根下跌 K 棒;公允價值缺口是第一根 K 棒高點與第三根 K 棒低點之間的空間。

如何客觀定義訂單區塊?

訂單區塊必須事先寫下五項設定,才成為規則,每一項怎麼選都由你決定。以下是最低限度的設定。需要設定大小的地方,以ATR 平均真實區間為單位,這樣同一條規則在平靜年份與劇烈年份才有相同意義。ATR 平均真實區間是指在選定的 K 棒根數內,單根 K 棒完整波動幅度的平均值,包含與前一收盤價之間的跳空。

  1. 符合資格的 K 棒。上漲前最後那根收盤低於開盤的 K 棒(或下跌前最後那根收盤高於開盤的 K 棒)。須決定十字星(收盤等於開盤)是否算數。
  2. 走勢幅度。該 K 棒之後價格要走多遠,才算「強勢」。例如:之後 3 根 K 棒內,收盤價與該 K 棒收盤價相距至少 2 ATR。
  3. 區塊邊界。哪些價位構成區塊。常見選擇是看漲區塊取開盤到最低,或取整根 K 棒的最高到最低。擇一即可。
  4. 觸及規則。什麼算價格回到區塊:影線碰到上緣、收盤落在區塊內,或收盤落在區塊內、隨後收盤回到區塊上方。
  5. 失效時機。區塊何時不再有效:經過固定根數的 K 棒後、第一次觸及後,或價格收盤穿越遠端邊緣後。
五項設定把手繪的訂單區塊變成規則:符合資格的 K 棒、走勢幅度、區塊邊界、觸及規則與失效時機,每項附範例值 五項設定寫成規則 每項附範例值 1 2 3 4 5 K 棒 走勢 區塊 觸及 失效 下跌 K 棒 2 ATR 開盤–最低 收盤在內 20 根 K 棒 改一項,就是新規則。 所以:首次執行前定好五項。
五項書面設定,把手繪的訂單區塊變成電腦能對每根 K 棒套用的規則。

假設性範例

假設 14 根 K 棒的 ATR 為 100 點。一根下跌 K 棒開盤 18,000、收盤 17,950、最低 17,920。之後 3 根 K 棒內,收盤價來到 18,180,比 17,950 高出 230 點,超過所需的 2 ATR(200 點)。這根 K 棒因此符合看漲訂單區塊,區間為 17,920 至 18,000。規則是:價格首次收盤落在區間內之後,於下一根 K 棒開盤買進,前提是觸及發生在 20 根 K 棒內。若 20 根 K 棒內都沒有觸及,該區塊即刪除。

首次執行前先寫下五個數值,之後再測試鄰近的數值。一條規則若只在走勢幅度剛好 2.0 ATR 時有效,到 1.8 與 2.2 就失效,描述的是某一段歷史,而不是一種型態。

如何用程式碼寫出公允價值缺口?

第一根 K 棒的高點低於第三根 K 棒的低點,就是看漲公允價值缺口;第一根 K 棒的低點高於第三根 K 棒的高點,則是看跌缺口。再加兩項設定,型態就完全機械化。需要的公式只有一條:

看漲缺口大小 = 第三根 K 棒低點 − 第一根 K 棒高點

這裡的第一根 K 棒是三根中最舊的,第三根 K 棒是最新的,缺口大小以價格點數表示。結果為正,即存在看漲缺口。看跌缺口則左右對調:以第一根 K 棒的低點減去第三根 K 棒的高點。要加入的兩項設定如下:

設定為何需要範例選擇
最小缺口大小任何圖表上,微小缺口隨時都在出現。沒有下限,規則每隔幾根 K 棒就觸發一次,成本會吃掉成果。至少 0.5 ATR
填補規則決定價格何時算「回到」缺口,以及缺口何時用盡。價格交易到缺口中點時進場;價格收盤穿越缺口遠端邊緣後,移除該缺口
假設性的看漲公允價值缺口:缺口從第一根 K 棒高點到第三根 K 棒低點,共 60 點,即 0.6 ATR,規則在中點買進 缺口規則作用的位置 假設性看漲缺口 K 棒 3 低點 中點:買進 K 棒 1 高點 60 點 = 0.6 ATR:符合。 所以:固定下限與填補規則。
缺口是第一根 K 棒高點與第三根 K 棒低點之間的空間;填補價位是規則出手的價格。

假設性範例

第一根 K 棒的高點為 18,000,第三根 K 棒的低點為 18,060,缺口為 60 點。14 根 K 棒的 ATR 為 100 點,60 點即 0.6 ATR,高於 0.5 ATR 的下限,所以記錄這個缺口,中點為 18,030。十二根 K 棒後,價格下跌到 18,030,規則在下一根 K 棒開盤買進。出場是另一個決定,必須同樣仔細寫下:固定的 K 棒根數、以 ATR 為基準的停損,或下一個反向缺口。

這兩項設定固定後,歷史上的每根 K 棒都會得到相同的是非答案。這就是機械式規則的檢驗標準:另一個人用相同資料與相同設定,會得到相同的交易明細。

為什麼模糊性才是真正的問題?ICT 與 SMC 差在哪裡?

兩位交易人標註同一張圖,畫出的區塊與缺口並不相同;ICT 與 SMC 的用語差異也大到,回測結果只屬於某一種書面變體,無法證實或推翻整個流派。ICT(Inner Circle Trader)是一位交易人多年累積的線上課程,有自己的術語,並特別強調一天中的時段。SMC 是這些想法後來的簡化版,透過論壇與影片流傳,沿用許多相同術語,但各自的比重不同。當交易人說「我交易訂單區塊」,你仍不知道他用的是哪五項設定、是否要求特定交易時段,或他怎麼定義其結構術語所依賴的擺動點。

差異點ICTSMC
術語來源單一老師的系列課程,術語龐大而具體社群對 ICT 內容的簡化,術語較少
對一天中時段的重視在倫敦與紐約開盤前後、名為「殺戮區」的交易時段內進場多數說明並不要求時段濾網
命名的核心結構訂單區塊、公允價值缺口、流動性掃蕩(價格突破近期高點或低點後反轉)、市場結構轉變結構突破(收盤順著趨勢突破最近的擺動點)、性質轉變(首次逆著趨勢收盤突破擺動點)、訂單區塊、公允價值缺口
寫規則的人必須固定什麼以交易所時間表示的交易時段,加上每項結構設定擺動點定義(幾根 K 棒構成擺動高點或低點),加上區塊與缺口設定
ICT 與 SMC 共用訂單區塊與公允價值缺口,但 ICT 要求交易時段,SMC 要求擺動點規則,因此回測只評價其中一種書面變體 同樣型態,規則不同 各流派要你定義什麼 ICT 交易時段 SMC 擺動點規則 兩者共用 區塊與缺口 回測 評價一種變體
ICT 與 SMC 共用型態,但術語、對時段的重視,以及規則必須定義的結構各不相同。

所以「SMC」的結果並不存在。存在的是這樣的結果:「看漲公允價值缺口,最小 0.5 ATR,中點進場,5 根 K 棒後出場,NQ 15 分鐘 K 棒,僅限一般交易時段」。把完整的句子寫出來,回測才能評價它;漏掉任何一部分,下一個測「同一件事」的人就會得到不同的交易明細。

NQ 上替代規則的期貨回測呈現什麼?如何解讀?

由於沒有公認的單一公允價值缺口定義,本文背後的這次執行由 AlphaPrime(Valynox)完成,測試的是替代規則,而不是公允價值缺口本身:以 ATR 規則作為唯一的進場與出場,不設停損、停利或濾網。測試使用 NQ(E-mini Nasdaq-100)日 K 棒,期間 2019-01-02 至 2025-06-30,多空皆做,一口,每筆交易收取 $20 手續費與 $10 滑價,並於下一根 K 棒執行。引擎試了 1,024 個候選策略,依報酬相對回撤的表現留下一個。以下數字就是這個留下的候選策略的結果。

來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。NQ 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $10。

數字結果
淨損益(已平倉交易)$233,415
最大回撤$96,430
交易筆數172
勝率59.3%
獲利因子1.52
平均每筆損益$1,357.06
在市場中的時間81.97%
替代規則回測在 AlphaPrime 中呈現的績效報表:權益曲線、回撤與框內的交易統計。
替代規則回測在 AlphaPrime 中呈現的績效報表:權益曲線、回撤與框內的交易統計。 NQ · 日 K 棒 · 2019-01-02 至 2025-06-30 · CPU 引擎回測

依下列順序讀報表。第一,平均每筆損益 $1,357.06,對照每筆交易 $30 的手續費與滑價成本:成本只占平均每筆損益的一小部分,所以滑價加倍也不會改變正負號。這正是檢驗散戶程式交易能否獲利的標準,而同一條規則的高頻版本會過不了這一關。第二,在市場中的時間占 81.97%:規則在多數交易日都持有部位,所以它的權益曲線有一部分是順著那幾年 Nasdaq-100 的方向,任何嚴謹的判斷都需要與單純持有指數作比較。第三,最大回撤 $96,430 對淨損益 $233,415:比率略低於 2.4 比 1,而這正是搜尋用來排序候選策略的數字。

接下來是容易忽略的部分。這個候選策略是事後挑出來的,在 1,024 個候選策略中,依報酬相對回撤選出最好的。從大量候選中挑出贏家,會使它看起來比實際好,因為它的結果有一部分,是恰好與這段歷史對上的雜訊。Bailey、Borwein、López de Prado 與 Zhu(2014)指出,預期的高估幅度會隨在同一份資料上比較的候選數量而增加。框內只呈現報表長什麼樣、怎麼讀。它並不顯示 ATR 規則或公允價值缺口賺到了這筆錢,也不是讀者可以預期的數字。

把美元數字換成點數:NQ 每指數點 $20,最小跳動點為 0.25 點,因此 $1,357.06 的平均每筆損益約為 68 個指數點。交易所可能調整合約價值,請到交易所的合約頁面核對最新數字,或交給免費的期貨合約與損益計算機(可查跳動點與點值)代為換算。

SMC 究竟有效嗎?

沒有任何公開研究能給出定論,所以對 SMC 規則和任何價格規則一視同仁,讓它透過同樣的檢驗來贏得信任。對技術交易規則的整體回顧發現,結果好壞參半,且高度取決於期間、市場,以及在找到被報告的那條規則之前搜尋了多少條規則(Park 與 Irwin,2007)。在公認的定義下,訂單區塊與公允價值缺口並未被納入該文獻的檢驗,部分原因正如前面各節所示,並不存在公認的定義。沒有證據不等於證據反對這些型態,而是你該自己動手測試的理由:用你自己的 K 棒,把規則完整寫出來。

以下檢查的順序,與任何突破或 K 棒形態規則都必須通過的順序相同。第一次失敗就停下,捨棄該變體;不要調整某項設定後在同一份資料上重試。

  1. 完整寫出規則。前面各節的每項設定,加上出場、交易時段與 K 棒週期。
  2. 含成本、下一根 K 棒成交的回測。每筆交易都計入手續費與滑價,委託在訊號之後的那根 K 棒成交。
  3. 與單純基準比較。基準是持倉頻率與你的規則相同的最簡單規則:對大多數時間做多的規則,基準是持有該合約;對交易回到區塊的規則,基準是自近期高點固定回檔幅度時的單純買進。基準若表現相當,代表這個型態沒有增加任何價值。
  4. 用樣本外資料評價。在歷史較早的部分固定設定,再原封不動套用到較晚的部分。要多少才夠,以交易筆數衡量,詳見說明樣本內與樣本外資料切分的指南。
  5. 執行推進分析與滑價加倍。推進分析是在一個區間最佳化設定、原封不動套用到下一個區間,並沿著歷史重複的檢驗。滑價加倍可看出結果是否依賴低成本的成交。
  6. 在從未碰過的最後一段資料上只測一次。最近幾個月,從未載入任何先前的執行,且只用一次。
SMC 規則依序通過六項檢查才能贏得信任:寫出規則、加入成本、勝過基準、通過樣本外資料、通過推進分析,最後是一段從未碰過的資料;任一步失敗就捨棄該變體 六項檢查,依序進行 第一次失敗就停下 1 2 3 4 5 6 寫出規則 加入成本 基準 樣本外資料 推進分析 最後一段資料 任一步失敗就捨棄。 所以:絕不在同一份資料上重新調整。
SMC 規則依此順序贏得信任。任何一步失敗,變體就回到起點重想,而不是回到同一份資料。

第四到第六步,是多數手繪型態栽跟頭的地方,因為看圖的交易人只看見有效的區塊,忘了無效的;電腦兩種都計算。像AlphaPrime 的策略檢驗以門檻所要求的那樣,在搜尋開始前就訂好推進分析與樣本外的通過標準,就能免去曲線上螢幕之後才移動球門的誘惑;而前面一步失敗就停止後續檢查,也讓抵達最後一段資料的變體數量維持在少數。

至於聰明錢策略最適合哪些技術指標:老實的答案是 SMC 一個也不用。寫規則的人通常只加入 ATR,而且只用來調整大小門檻。其他任何東西都是濾網,每個濾網都是多一項要寫下的設定,也是多一個配合過去的途徑。

下一步小而具體。拿看漲公允價值缺口規則,連同最小缺口大小與填補規則,把全部設定與出場寫成一行;用你真實的手續費與一個跳動點的滑價,在你實際盯的 K 棒週期上執行;先讀兩個數字:扣除成本後的平均每筆損益,對比一買一賣(來回)成本,以及結果對比持倉頻率相同的單純基準。若想要這類工作第一個月的完整路線,第一支程式交易策略的 30 天路線列出了步驟順序。

常見問題

什麼是交易中的訂單區塊?

訂單區塊是強勢走勢之前、最後那根相反顏色 K 棒所在的區間:急漲前最後那根下跌 K 棒,或急跌前最後那根上漲 K 棒。使用它的交易人預期價格回到該區間時會有反應。要測試它,必須先寫下哪根 K 棒符合資格、之後的走勢要多大、哪些價位構成區間、什麼算觸及,以及區間何時失效。

什麼是公允價值缺口(FVG)?

公允價值缺口是快速走勢在三根 K 棒間留下的未成交價格空間。第一根 K 棒的高點低於第三根的低點,就是看漲缺口;第一根的低點高於第三根的高點,就是看跌缺口。缺口大小是這兩個價格的差。再加上以 ATR 為單位的最小大小與填補規則,型態就完全機械化,任何 K 棒資料都能回測。

ICT 與 SMC 是同一回事嗎?

不是。ICT 是一位交易人所累積、較早也較龐大的課程,特別強調圍繞倫敦與紐約開盤的具名交易時段。SMC 是在線上社群流傳的簡化版,通常不要求時段濾網,並倚重結構術語,如結構突破與性質轉變。兩者都用訂單區塊與公允價值缺口,但為其中一方寫的規則,不一定就是另一流派的意思。

SMC 究竟有效嗎?

沒有公開研究能給出定論,這些型態也沒有公認的定義,所以不可能有單一答案。有用的做法是:寫出一個精確的變體,含成本與下一根 K 棒成交進行回測,與持倉頻率相同的單純基準比較,用樣本外與推進分析評價,再在從未碰過的近期資料上測一次。全部通過的變體,值得以小部位交易;任何一步失敗的,捨棄而非調整。

參考文獻

  • 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.
  • Park, C.-H., & Irwin, S. H. (2007). What Do We Know About the Profitability of Technical Analysis? Journal of Economic Surveys, 21(4), 786–826.
  • Wilder, J. W. (1978). New Concepts in Technical Trading Systems. Trend Research.
  • CME Group. E-mini Nasdaq-100 Futures Contract Specs. https://www.cmegroup.com/markets/equities/nasdaq/e-mini-nasdaq-100.contractSpecs.html