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

訂單流指標:Delta、足跡圖,以及回測需要什麼

訂單流指標把成交量依 K 棒與價位拆成主動買進與主動賣出。要正確測試它們,需要記錄每筆成交方向的逐筆資料,因為 OHLC K 棒會把這項資訊丟掉。

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

目錄
  1. 訂單流交易中的 Delta 衡量什麼?
  2. 足跡圖顯示什麼?
  3. 成交量分布顯示什麼?
  4. NinjaTrader 與 ATAS 提供哪些訂單流工具?
  5. 訂單流回測需要什麼資料?
  6. 為什麼以 K 棒為基礎的回測無法重現訂單流訊號?
  7. 如何正確回測訂單流訊號?
  8. 訂單流指標能預測方向嗎?
  9. 常見問題
  10. 參考文獻

NinjaTrader 與 ATAS 等平台中的訂單流指標,會把成交量拆成主動買進與主動賣出。Delta 是兩者的差額,足跡圖則顯示 K 棒內每個價位的這種拆分。要測試 Delta 或足跡圖,需要記錄每筆成交方向的逐筆資料,因為 OHLC K 棒並不保留這項資訊。

訂單流交易中的 Delta 衡量什麼?

Delta 衡量的是哪一方比較急,而不是哪一方比較對。每筆成交都有買方與賣方。其中一方通常是用限價單在等待,另一方則用市價單跨過買賣價差。訂單流交易就是在這些主動單成交時去解讀它們,而不是只看最後形成的價格。訂單流資料比價格難取得,許多交易人因此先從只用價格的 RSI 開始。

訂單流是組成每根 K 棒的逐筆成交與委託流,包括每筆成交的價格、數量與方向。「在賣價成交」代表主動買方吃掉了掛著的賣單。「在買價成交」代表主動賣方打到了掛著的買單。

Delta 是在一根 K 棒或其他期間內,在賣價成交的量減去在買價成交的量。Delta 成交量指標會為每根 K 棒畫出這個數字。累積 Delta 是各 K 棒 Delta 的連續加總,通常在每個交易時段開始時歸零。例如,在賣價買進的口數多於在買價賣出的口數的 K 棒,其 Delta 為正;下方的假設性足跡圖就以這樣一根 K 棒為例。

平台以兩種方式之一把每筆成交標示為買或賣。有些交易所行情會標記每筆成交的主動方,平台就使用該標記。否則,平台會把成交價與當時的最佳買賣價比較。這兩種方法對同一筆成交可能給出不同標示,所以兩個平台對同一根 K 棒顯示的 Delta 可能略有差異。

足跡圖顯示什麼?

足跡圖顯示 K 棒的內部:每個價位成交了多少,以及在哪一方成交。把一般 K 線想成只列出總額的收據,足跡圖就是逐項列明的明細收據。

足跡圖是一種 K 棒圖,K 棒內的每個價位都顯示自己的成交量,通常拆成在買價的量與在賣價的量。許多足跡圖指標也會顯示每個價位的 Delta,並標出失衡。失衡是指某個價位上一方的主動成交量遠大於另一方。許多平台以斜向方式計算:把某個價位的賣價成交量,與低一個跳動點的買價成交量相比,並對照使用者設定的比率。

假設性範例

一根 5 分鐘 K 棒,標的以 0.25 點為單位變動。足跡圖記錄每個價位的成交量:

價格在買價賣出在賣價買進Delta
101.00125−7
100.753045+15
100.506090+30
100.258070−10
100.002510−15
K 棒合計207220+13

一般的 K 棒檔案只儲存開盤 100.25、最高 101.00、最低 100.00、收盤 100.50 與成交量 427。另一根 K 棒可以有同樣的五個數字,但有 290 在買價賣出、137 在賣價買進。那根 K 棒的 Delta 是 −153。K 棒紀錄裡沒有任何資訊能區分這兩根 K 棒。

同一根假設的 K 棒,以蠟燭圖和足跡圖呈現:蠟燭圖只保留最高價 101.00、收盤 100.50、開盤 100.25、最低價 100.00 與成交量 427;足跡圖則保留每個價位的買價量與賣價量,以及 K 棒差值 +13 蠟燭圖看不出誰在成交 假設 K 棒:蠟燭圖 vs 足跡圖 高 101.00 收 100.50 開 100.25 低 100.00 成交量 427 買價 賣價 101.00 100.75 100.50 100.25 100.00 125 3045 6090 8070 2510 K 棒差值 +13 只有足跡圖保留買賣分布。 所以:用跳動點資料測試委託流。
同一根假設性 K 棒,以 K 線與足跡圖呈現。K 線保留價格區間與總成交量。足跡圖還保留了每個價位上誰在主動成交。

成交量分布顯示什麼?

成交量分布顯示交易發生在哪裡,而不是誰發起的。它是在選定期間(例如一個交易時段或一週)內,各價位成交量的橫向直方圖。成交量分布指標頁面說明了它如何建構。測試時有兩個名詞很重要:控制點是成交量最大的價位;價值區是涵蓋一定比例成交量的價格區間,通常約為 70%。

成交量分布介於 K 棒資料與真正的訂單流之間。你可以用細緻的 K 棒近似它,做法是把每根 K 棒的成交量分攤到它的價格區間上。這種近似對許多規則測試已經夠接近。要得到精確的分布,或拆成買價與賣價成交量的分布,則需要逐筆資料。

NinjaTrader 與 ATAS 提供哪些訂單流工具?

兩個平台都用逐筆資料建構相同的三種核心顯示,並各自加入成交與委託簿的檢視。差異主要在名稱,而不在概念。

顯示NinjaTrader 8 名稱ATAS 名稱
足跡圖Order Flow Volumetric BarsCluster chart
Delta 隨時間變化Order Flow Cumulative DeltaCumulative delta indicator
各價位成交量Order Flow Volume ProfileVolume profile indicators
掛單Order Flow Market Depth MapOrder book (DOM) views

NinjaTrader 另提供訂單流 VWAP 與標出大單的成交偵測器。ATAS 則增加逐筆成交的明細與大單篩選。委託簿檢視顯示尚未成交的掛單限價單。這與 Delta 和足跡圖是不同類型的資料,後者描述的是已經發生的成交。

要在 NinjaTrader 的歷史圖表上使用訂單流,平台需要資料供應商提供的歷史逐筆資料。它的 Tick Replay 設定會逐筆重建每根歷史 K 棒,因此依賴買價/賣價拆分的指標可以在過去的 K 棒上計算,並用於策略測試。

訂單流回測需要什麼資料?

訂單流回測所需的資料,至少要和訊號一樣細緻。實務上,這代表帶有每筆成交方向的逐筆資料。逐筆資料是每筆成交的紀錄,包含時間、價格與數量。有些逐筆資料還帶有當時的最佳買賣價,或主動方標記。沒有這兩者之一,就無法把成交標示為買或賣。

你手上的資料可以還原什麼無法還原什麼
OHLCV K 棒(開盤、最高、最低、收盤、成交量)以價格為基礎的指標、K 棒成交量、近似的成交量分布Delta、足跡圖、失衡
逐筆資料:只有價格與數量各價位的精確成交量真正的 Delta(只能依每筆成交是向上或向下跳動來估計)
帶有買價/賣價或主動方標記的逐筆資料Delta、累積 Delta、足跡圖、失衡從未成交的掛單
記錄下來的委託簿深度深度圖與以掛單為基礎的訊號—
資料細節的四級階梯:OHLCV K 棒只能重建近似的成交量分布,無內外盤的逐筆可得各價位精確成交量,有內外盤的逐筆可得 Delta 與足跡圖,記錄的委託簿深度可得深度圖 每種工具都需要足夠資料 最底層細節最少 委託簿深度 含內外盤逐筆 無內外盤逐筆 OHLCV K 棒 深度圖 Delta、足跡圖 精確成交量 近似分布 Delta 需要含內外盤逐筆。 所以:先確認資料等級。
每種訂單流顯示都需要最低程度的資料細緻度。Delta 與足跡圖要從記錄每筆成交方向的逐筆資料開始。

逐筆資料本身也有品質檢查要做。有些行情會把一筆大的主動單報成數筆獨立成交,因為它對上了數筆掛單。其他行情則把這些成交合併成一筆。因此成交筆數與「大單」篩選會隨資料來源而改變。與 K 棒相比,時間戳記、交易時段邊界與轉倉更為重要。回測資料品質:缺口、錯誤報價、時區與轉倉這篇指南列出了該檢查的項目。

為什麼以 K 棒為基礎的回測無法重現訂單流訊號?

以 K 棒為基礎的回測無法重現訂單流訊號,因為資訊在 K 棒形成時就被刪掉了。把成交變成 K 棒,就像把湯熬成高湯塊。重量和味道都留著,但你無法把原本的蔬菜再取出來。

一根 OHLCV K 棒只保留五個數字。它丟掉了每筆成交的方向、各價位的成交量,以及 K 棒內成交發生的先後順序。上面的範例顯示兩根 OHLCV 相同、Delta 卻相反的 K 棒。任何寫著「Delta 高於 X 時進場」或「連續出現三個堆疊的賣價失衡後進場」的規則,需要的正是 K 棒所移除的資訊。

估計也無法填補這個落差。常見的捷徑是:成交價高於前一筆就標為買進,低於前一筆就標為賣出。這個捷徑需要逐筆資料,而且仍然會誤判許多成交。若套用在 K 棒而非逐筆資料上,猜測只會更粗糙。以估計的 Delta 測試出來的策略,測的是那個估計,而不是你在實單中看的指標。

如何正確回測訂單流訊號?

要正確回測訂單流訊號,就要用逐筆資料,完全依照你在實單中看到的方式重建它,並且依市場實際會成交的方式模擬成交。請依序進行以下步驟:

  1. 把訊號寫成帶數字的規則。「強力買進」無法測試。「K 棒 Delta 高於 +200,且收盤位於 K 棒的上四分之一」則可以測試。
  2. 取得帶有買價/賣價或主動方資訊的逐筆資料,涵蓋整個測試期間,可能的話與你實單要用的是同一個來源。
  3. 使用與實單圖表相同的設定:相同的 K 棒類型、每列足跡圖相同的跳動點分組、累積 Delta 相同的交易時段歸零方式,以及相同的失衡比率。
  4. 只根據當時已經存在的資訊行動。足跡圖 K 棒要到收盤才會定案。從已完成的 K 棒讀出的訊號,可以在收盤後的下一筆成交進場,而不是在該 K 棒自己的收盤價進場。回測中的前視偏誤這篇文章說明了如何檢查這一點。
  5. 誠實地模擬成交。訂單流交易者常在某個價位使用限價單。只有當價格穿越該價位時才算限價單成交,而不是價格只碰到就算。你的委託在該價位上排在其他委託之後。
  6. 每筆交易都計入手續費與滑價。訂單流策略往往交易頻繁,且每筆只追求小幅波動,因此成本會佔去結果的一大部分。
  7. 在看後面的資料之前先固定好門檻,再用規則沒見過的期間測試。

第 7 步很重要,因為訂單流規則有許多旋鈕:Delta 門檻、失衡比率、要求堆疊幾個價位、多大才算「大單」。你每調一個旋鈕,就多一次擬合雜訊的機會。如果你嘗試許多設定並只留下最好的一個,勝出的結果很可能被高估(Harvey & Liu, 2015;White, 2000)。規則中以 K 棒為基礎的那一部分,可以交給 AlphaPrime(Valynox) 的策略檢驗,用你自訂的門檻做推進分析,看調過的旋鈕在沒看過的區間是否還成立。

訂單流指標能預測方向嗎?

不能。訂單流指標描述的是已經發生的成交,並不會告訴你價格接下來往哪裡走。正的 Delta 表示主動買方成交得比主動賣方多,並不表示買方會贏。大型被動賣方可以用限價單吸收所有的買進,價格仍然可能下跌。

六根 K 棒的假設吸收情境:價格由 100 跌至 98,累計 Delta 由 0 升至 +400,因此正 Delta 與價格下跌同時出現 買盤增加,價格下跌 六根假設 K 棒 價格 100 → 98 累計 Delta 0 → +400 Delta 只反映成交,不代表方向。 因此:扣除成本後再檢驗這個判讀。
假設性的吸收:累積 Delta 上升,價格卻下跌。同樣的讀數可能出現在反彈之前,也可能出現在進一步下跌之前。

這就是為什麼同一個型態會有相反的解讀。當 Delta 上升而價格持平,之後價格下跌,交易者稱之為「吸收」;之後價格上漲,則稱之為「吸籌」。只有在足夠歷史上測試過的規則,才能告訴你哪種解讀成立的次數較多,以及扣除成本後多出多少。

當長期歷史沒有真正的訂單流資料時,許多交易者會把工作分成兩部分。首先,他們在長期歷史上研究以 K 棒為基礎的規則,使用價格、K 棒成交量,以及像由 K 棒建構的成交量分布這類近似。接著,他們把足跡圖解讀當作主觀的背景參考,或在較短的逐筆歷史上另外測試訂單流過濾條件。AlphaPrime (Valynox) 支援第一部分。它的策略生成會把研究想法轉成可測試的規則,附有參數範圍與進場、出場條件,並以你自己的歷史 K 棒資料評估。完成的策略可以匯出為原始碼,提供給 NinjaTrader(NinjaScript)以及支援的平台匯出清單上的其他平台。在那裡,可以加入訂單流過濾條件並用逐筆資料測試。

如果你使用 AlphaPrime,這代表:把它用在你的 K 棒資料能表達的規則上,AlphaPrime 的回測會連同手續費、滑價、下一根 K 棒執行與交易時段,評估每個候選策略。任何 Delta 或足跡圖條件,請在你實際交易它的平台上,用逐筆資料測試。

常見問題

Delta 與累積 Delta 有什麼差別?

Delta 是一根 K 棒內在賣價買進的量減去在買價賣出的量。累積 Delta 則把這些 K 棒的值隨時間加總,通常在每個交易時段開盤時從零開始。Delta 顯示單一 K 棒內的多空平衡,累積 Delta 顯示整個交易時段的連續平衡。

可以在 NinjaTrader 中回測足跡圖指標嗎?

可以,前提是資料供應商提供歷史逐筆資料。NinjaTrader 的 Tick Replay 設定會逐筆重建歷史 K 棒,因此以足跡圖為基礎的數值可以在過去的資料上計算。沒有逐筆資料,平台就沒有買價/賣價拆分可用來重建足跡圖。

成交量分布是訂單流指標嗎?

成交量分布常與訂單流工具歸為一類,但它顯示的是每個價位成交了多少,而不是哪一方主動。它可以用細緻的 K 棒資料近似,Delta 與足跡圖則不行。拆成買價與賣價成交量的成交量分布需要逐筆資料。

Delta 為很大的正值,代表價格會上漲嗎?

不會。正的 Delta 只代表在該期間內,主動買方成交的口數多於主動賣方。掛限價單的被動賣方可以吸收這些買進,價格仍然可能下跌。任何方向上的意義都必須用歷史資料、在扣除成本後測試。

訂單流交易的回測需要什麼資料?

你需要記錄每筆成交價格與數量的逐筆資料,再加上當時的最佳買賣價,或交易所行情提供的主動方標記。以掛單為基礎的訊號還需要記錄下來的委託簿深度。OHLCV K 棒不足以支撐 Delta、足跡圖或失衡規則。

參考文獻

  • Harvey, C. R., & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management, 42(1), 13–28.
  • White, H. (2000). A Reality Check for Data Snooping. Econometrica, 68(5), 1097–1126.