VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 商品與交易時段

台指全詳解:用於回測的台指期全時段資料

台指全把台指期的日盤與夜盤合併成一條連續的序列,並從一個合約月轉倉到下一個合約月。若你的策略會在夜盤交易或對夜盤有反應,就該使用它;測試前先確認轉倉方式與每天的 K 棒數量。

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

目錄
  1. 台指全是什麼意思?
  2. 全時段序列究竟合併了什麼?
  3. 連續月序列在轉倉時如何接合?
  4. 夜盤如何改變日 K 棒?
  5. 該用全時段還是僅日盤資料回測?
  6. 測試前如何檢查台指全序列有無缺漏?
  7. 常見問題

台指全是什麼意思?

台指全是台灣許多看盤與報價軟體用來標示台指期序列的名稱,它把日盤(08:45–13:45)與夜盤(15:00–05:00)合併在同一張圖上。它通常以近月合約建構,並在每次轉倉時切換到下一個合約月。如果你的策略會在夜盤交易,就該使用它。

「全」字的意思是「全部」、「整體」,所以這個名稱指的就是「台指期,全時段」。不同資料商的命名並不一致:有些軟體會把它與只含日盤的序列配對,有些會在名稱中加上合約月。請打開軟體中的商品設定,確認兩件事:包含哪些交易時段,以及合約月是如何接合的。

標的是台灣期貨交易所(TAIFEX)的台指期合約(TX),每一個指數點價值 NT$200。小型台指期合約(MTX)在相同的交易時段交易,每點 NT$50,因此以下內容同樣適用。

全時段序列究竟合併了什麼?

全時段序列合併了兩樣東西:每個交易日的兩個交易時段,以及首尾相接的一串合約月。

夜盤是 TAIFEX 的盤後交易時段,於 2017 年推出。夜盤的成交歸屬於下一個交易日,而不是發生當天的日曆日。所以一個交易日從前一天下午 15:00 開始,在 05:00 暫停,08:45 恢復,13:45 結束。週五夜盤交易到週六 05:00,歸屬於週一的交易日。

週二台指期交易日時間軸:夜盤從週一 15:00 到週二 05:00,之後休息至 08:45,日盤從 08:45 到 13:45,再短暫休息至 15:00。在台指全中,兩個時段合為一個交易日;僅日盤資料只保留日盤。 週二從週一 15:00 開始 一個台指期交易日 台指全:一個交易日 僅日盤 夜盤 日盤 週一 15:00 05:00 08:45 13:45 僅日盤資料會漏掉夜盤。 所以:依實際交易時段回測。
在台指全中,一個交易日從前一天下午的夜盤開始,到 13:45 收盤結束。僅日盤資料只保留後半段。

第二部分是合約月的串接。同時有好幾個 TX 合約月在交易,每個合約月在該月第三個週三到期。連續月是一條單一的價格序列,作法是一次取一個合約月,並在到期前或到期時切換到下一個。這就是台指期連續月資料的意思。沒有它,你會得到每個月各自一張很短的圖,沒有足夠長的歷史可供測試。

連續月序列在轉倉時如何接合?

轉倉是連續月序列被切開再接上的地方,而這裡採用的方法會改變你的回測看到的價格。轉倉是從即將到期的合約月切換到下一個合約月。此時兩個月份通常以不同的價格交易。以台指期來說,月份之間的價差往往在夏季除息旺季最大,因為股票配息後預期指數會下跌。

資料商處理這個價差主要有兩種方式:

方法作法適用於造成的失真
未調整(原始)把各月份實際成交的價格直接接起來真實價位、整數關卡、與舊圖表對照在每次轉倉產生一個沒有任何交易者真正經歷過的跳空
回溯調整把所有較舊的價格依轉倉價差平移,讓序列沒有跳空以點數計算的損益、跨轉倉的停損與指標較舊的價位不再與當天實際成交的價格相符

回溯調整是指把轉倉之前的每一個價格,依該次轉倉的價差向上或向下平移。用白話來說:

調整後價格 = 原始價格 + 該 K 棒之後所有轉倉價差的總和

這裡的「原始價格」是該 K 棒實際成交的價格。「轉倉價差」是切換當下,下一個合約月的價格減去即將到期合約月的價格,可以是負數。最新的價格維持不變,只有較舊的歷史會移動。

假設範例

轉倉時,即將到期的合約月成交在 20,000,下一個合約月在 19,900,價差為 −100 點。在未調整的序列中,圖表在一根 K 棒內掉了 100 點。持有多單且設定 80 點停損,回測中會被停損出場,虧損 80 點,也就是每口 TX NT$16,000,但實際持有並轉倉的交易者並沒有虧掉這筆錢。在回溯調整的序列中,所有較舊的價格都被調降 100 點,跳空消失,停損不會被觸發。

同一次假設的轉倉在兩種連續月序列中的呈現:未調整線在轉倉處直接下跌100點,而回溯調整線將所有較舊價格下調100點,平順通過轉倉、沒有跳空 原始資料出現假跳空 一次轉倉,假設價格 轉倉 未調整 −100 回溯調整 無跳空 沒有交易者真的虧掉這100點。 所以:用回溯調整資料測試停損。
同一次假設轉倉,在未調整與回溯調整序列中的樣子。只有未調整序列出現 100 點的跳空。

轉倉日也因資料商而異。有些在到期日當天切換,有些在成交量移到下一個月份時提早幾天切換。請弄清楚你的序列採用哪一種規則,因為跨越到期日持倉的策略,其轉倉日的交易會出現在不同的日期。

夜盤如何改變日 K 棒?

加入夜盤會改變日 K 棒的開盤、最高與最低價。如果 K 棒的邊界依交易日劃分,收盤價則不會改變。

在僅日盤資料中,日開盤價是 08:45 的第一筆成交。在台指全中,日開盤價是前一天下午 15:00 的第一筆成交。只要資料商在交易日結束時結束日 K 棒,兩個版本的收盤價都是 13:45 的最後一筆成交。最高與最低價則包含隔夜的所有走勢,例如美國交易時段期間的波動。

假設範例

週二僅日盤的 K 棒:開盤 20,150,最高 20,220,最低 20,100,收盤 20,180。同一交易日的全時段 K 棒從週一 15:00 的 20,050 開始。隔夜先跌到 19,980,再反彈到 20,160。全時段 K 棒為:開盤 20,050,最高 20,220,最低 19,980,收盤 20,180。收盤價相同。日振幅從 120 點擴大到 240 點。相對於週一收盤的早盤「跳空」大多消失了,因為夜盤已經把它走完了。

這種變化會以可預期的方式影響常見的規則:

  • 跳空策略交易的是昨日收盤與今日開盤之間的差距,訊號大多消失,因為夜盤在早盤之前就已把跳空補掉。
  • 開盤區間突破若以「前 30 分鐘」為基礎,現在指的是 15:00–15:30,而不是 08:45–09:15。如果你指的是早盤開盤,請在規則中設定交易時段。
  • 以區間為基礎的指標,例如平均真實波幅(ATR),在全時段日 K 棒上數值較大,所以以 ATR 計算的停損與部位大小也會跟著改變。
  • 以收盤價為基礎的指標,例如日收盤價的移動平均,幾乎不變,因為收盤價相同。
  • 每根 K 棒的成交量較高,但盤中圖表上的夜盤 K 棒通常比日盤 K 棒清淡,這會影響滑價。

有些軟體在午夜而不是交易日結束時切斷日 K 棒。這時一個夜盤會被分到兩根日 K 棒,收盤價也不再是 13:45 的價格。在與其他圖表比較之前,請先確認你的日 K 棒從哪裡開始。期貨回測中僅日盤與全時段 K 棒的指南針對其他市場說明了這一點。

該用全時段還是僅日盤資料回測?

選擇與你的策略實際交易時段相符的序列。用你永遠不會交易的時段來測試,要不是加入了你無法執行的交易,就是拿掉了你必須承受的走勢。

你的情況使用原因
只在 08:45 到 13:45 之間進出場僅日盤訊號與成交只來自你交易的時段
在夜盤交易或下單全時段(台指全)回測必須看到你的委託成交的 K 棒
持倉過夜,但只在日間交易風險用全時段,進場規則用僅日盤隔夜走勢會影響你的未平倉部位與停損,即使你不在那個時段交易
規則用到日最高、最低或區間兩者都測兩個版本的日數值不同,策略應該在你將要交易的那一個版本上站得住腳

一種實用的設定是使用全時段序列,再搭配只允許在選定時段進場的交易時段設定。這樣隔夜的價格走勢會留在權益曲線中,進場則限制在你盯盤的時段。在 AlphaPrime(Valynox)中,回測研究範圍正是因為這個原因而包含交易時段、手續費與滑價。

測試前如何檢查台指全序列有無缺漏?

在第一次測試之前,請對照交易時段日曆逐根檢查序列,因為缺少一個夜盤或重複的轉倉日會在沒有任何錯誤訊息的情況下改變結果。請依序進行以下步驟:

  1. 找出夜盤資料從哪裡開始。夜盤始於 2017 年。起始日更早的台指全序列,在那個日期之前含有僅日盤的交易日。你可以讓測試從夜盤開始之後起算,或把早期年份視為另一個獨立的期間。
  2. 計算每個交易日的 K 棒數。以 1 分鐘 K 棒來說,完整的日盤約有 300 根,完整的夜盤約有 840 根。確切數字取決於資料商把 K 棒時間戳記標在開始還是結束。K 棒數明顯偏少的日子,表示資料可能有遺漏。
  3. 找出缺少的夜盤。列出有日盤 K 棒但沒有夜盤 K 棒的交易日。把它們與交易所假日日曆,以及颱風假等休市狀況對照。剩下的就是資料缺漏。
  4. 檢查每個轉倉日。在回溯調整序列中尋找意料之外的跳空,並檢查切換日是否有重複或缺少的 K 棒。
  5. 檢查時區與時間戳記。所有時間都應為台灣時間(UTC+8),沒有重複的時間戳記,且在 05:00–08:45 或 13:45–15:00 的休息時段內不應有 K 棒。
  6. 比對幾個日收盤價與交易所公布的價格,對照序列在那幾天持有的合約月。

農曆新年等長假會產生真實的多日空檔,這不是錯誤。回測中的市場假日一文說明了如何分辨真正的休市與資料遺失。至於錯誤報價與其他資料問題,請參考回測資料品質:缺漏、錯誤報價、時區與轉倉。回測台指期時要先檢查的五項設定則列出其餘的設定。

如果你使用 AlphaPrime(Valynox),這代表:台指期是支援的市場,交易時段、手續費與滑價都是每次回測的一部分,所以你可以用相同的規則分別測試台指全與僅日盤資料,直接看出差異。請先檢查序列,因為搜尋中的每個策略,其準確度都取決於它所測試的 K 棒。

常見問題

什麼是台指全?

台指全是一個常見的圖表名稱,指的是同時包含日盤與夜盤的台指期連續序列。日盤為 08:45–13:45,夜盤為 15:00–05:00(台灣時間)。這條序列通常以近月合約建構,並在到期前後轉倉到下一個合約月。

台指期夜盤屬於哪一個交易日?

TAIFEX 把夜盤成交歸入下一個交易日。週一 15:00 開始的夜盤屬於週二的交易日。週五夜盤屬於週一。

夜盤會改變台指全資料的日收盤價嗎?

如果日 K 棒依交易日劃分,收盤價仍是 13:45 的最後一筆成交,與僅日盤資料相同。開盤、最高、最低與成交量會改變,因為 K 棒現在從前一天下午 15:00 開始。有些軟體改在午夜切斷日 K 棒,這時收盤價也會改變。

連續月台指期資料該用回溯調整還是未調整?

對以點數計算結果並使用停損的回測,回溯調整資料通常比較好,因為它消除了每次轉倉時合約月之間的價格跳空。未調整資料保留真實價位,但會出現沒有交易者真正經歷過的跳空。許多交易者兩者都保留,各取所需。

為什麼我的台指全早期歷史沒有夜盤 K 棒?

TAIFEX 在 2017 年推出盤後交易時段,所以更早的交易日只有日盤 K 棒。那些年份的結果實際上是僅日盤的結果。請讓測試從夜盤開始之後起算,或把兩個期間分開分析。

AlphaPrime 在這裡能幫上什麼

AlphaPrime 的回測會依照你所測試資料設定的交易時段、手續費與滑價來評估策略。策略資料庫讓你把全時段與僅日盤的結果分成不同批次,並在更新或更換序列時重新檢驗策略。

看方案與價格