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

期貨走勢圖:合約、連續月與交易時段

免費期貨走勢圖之所以不同,是因為各網站選用的合約、轉倉規則、調整方式、交易時段與收盤價都不一樣。把這五項都弄清楚,再決定能不能拿走勢圖做研究,並且用自己建立、檢查過的序列來測試。

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

目錄
  1. 為什麼同一個市場,免費期貨走勢圖的價格卻不一樣?
  2. 單一合約走勢圖與連續月走勢圖有什麼差別?
  3. 為什麼連續月走勢圖在轉倉日會跳動?
  4. 回溯調整或未調整:回測該用哪一種序列?
  5. 交易時段設定如何改變日 K 棒?
  6. 為什麼用來閱讀的走勢圖不是乾淨的測試資料?
  7. 如何把兩個走勢圖來源互相對照檢查?
  8. 回測之後如何抓出轉倉問題?
  9. 常見問題

為什麼同一個市場,免費期貨走勢圖的價格卻不一樣?

免費期貨走勢圖之所以不同,是因為每個網站都做了五個選擇:顯示哪個合約月份、如何把即將到期的合約接成一條連續序列、是否調整舊價格、用哪個交易時段組成日 K 棒,以及日收盤價是最後一筆成交價還是結算價。用走勢圖做研究之前,這五項都要檢查。

這些選擇沒有哪一個是錯的,每一個回答的是不同的問題。用來看今天價格走勢的圖,拿去做回測可能是很差的序列。就像同一座城市的兩張地圖,一張畫捷運,一張畫街道,兩張都正確,但你不能拿捷運圖來開車。

走勢圖網站的選擇常見做法走勢圖上會改變什麼
合約單一合約月份,或連續月序列價格水準、歷史長度、跳空
轉倉規則到期前固定天數,或依成交量、未平倉量的變化合約之間價格跳動的日期
調整方式不調整、以價差回溯調整、以比率回溯調整每次轉倉之前的所有價格
交易時段全時段,或僅限日盤(一般交易時段)每根日 K 棒的開盤、最高、最低與收盤
日收盤價最後一筆成交價,或交易所結算價收盤價,以及所有建立在收盤價上的指標

單一合約走勢圖與連續月走勢圖有什麼差別?

單一合約走勢圖顯示的是一個會到期的真實合約,連續月走勢圖則是把數個合約接成一條長序列,沒有任何交易者曾把它當成單一部位持有過。

期貨合約是針對某一個交割月或到期月的約定。例如 E-mini S&P 500 期貨(ES)掛牌的是 3 月、6 月、9 月與 12 月的季合約。交易所用字母代碼標示月份:H 代表 3 月,M 代表 6 月,U 代表 9 月,Z 代表 12 月。所以「ESH」指的就是 3 月合約。

近月合約是最接近到期的合約,通常也是成交最活絡的。單一合約走勢圖是從某個合約月份第一筆成交到到期為止的走勢圖。它的價格是真實的,但歷史很短。它剛掛牌的前幾個月成交量也很少,因為交易者還留在較舊的合約。

連續月走勢圖是這樣一條序列:到選定的轉倉日之前顯示近月合約,之後切換到下一個合約。它用一條序列給你多年的歷史,這正是大多數研究所需要的。代價就是切換本身。

為什麼連續月走勢圖在轉倉日會跳動?

連續月走勢圖在轉倉日會跳動,是因為兩個合約月份在同一時刻的價格不同,從一個切換到另一個時,就產生了市場從未真正出現過的跳空。

轉倉是指從即將到期的合約換到下一個合約。依市場不同,兩個合約的價差來自利率、股息、儲存成本或市場預期。股價指數期貨的價差可能很小;原油或天然氣這類商品期貨走勢圖則可能很大,因為近月與遠月交割月份的價格可以相差很遠。

各網站轉倉的日期也不同。有些在到期前固定天數切換,有些則在下一個合約的成交量或未平倉量超過近月時切換。兩個網站顯示同一個市場,跳空可能落在不同的日子,而在這兩天之間,兩者顯示的價格並不相同。

反向調整消除轉倉跳空:未調整的連續月序列在轉倉日向上跳空 20 點,而反向調整後的序列保持平滑,因為先前所有價格都被上移了 20 點 反向調整消除跳空 假設轉倉,虛線 = 轉倉日 未調整 +20 跳空 反向調整後 過去 +20 跳空並非真實獲利。 因此:請用反向調整資料測試損益。
同一次轉倉的兩種呈現:未調整的序列出現一個沒有人賺到的跳動,回溯調整後的序列則透過平移過去的價格把它消除。

回溯調整或未調整:回測該用哪一種序列?

對大多數以點數或跳動點計算損益的回測來說,回溯調整的序列是比較好的選擇。當規則取決於真實價格水準時,未調整的序列才有用。

回溯調整序列是一條連續序列,轉倉之前的每個價格都依轉倉跳空平移,使接合處平滑。最常見的是價差法,把跳空加到所有較早的價格上:

調整後舊價格 = 原始舊價格 +(轉倉時新合約價格 − 舊合約價格)

用白話說:取轉倉日兩個合約之間的價差,加到那一天之前的每一根 K 棒上。對先前的每一次轉倉都重複這個步驟。有些網站改用比率法,把舊價格乘上兩個合約的價格比率,這樣可以保留漲跌百分比。

假設範例

轉倉日當天,即將到期的合約收在 4,000,下一個合約的價格是 4,020。未調整的連續月走勢圖會跳 20 點。一個跨越那一天持有多單的策略,會記入 +20 點,但那是它從沒賺到的。以每點 $50 計算,那是只存在於圖上的 $1,000 獲利。以價差調整的序列會把 20 加到先前每一個價格上,所以原本在 3,900 的舊 K 棒現在顯示為 3,920。跳動消失了,而那根舊 K 棒上 50 點的波動仍然是 50 點。

序列能保持正確的部分會被扭曲的部分適用情況
未調整真實的歷史價格水準每次轉倉都有假跳動,會觸發停損與訊號,並產生虛假的獲利或虧損以真實價位為基礎的規則(整數關卡、舊高點);與報價單對照
回溯調整(價差法)點數與跳動點的波動,因此以金額計算的交易損益也正確舊的價格水準;漲跌百分比;很長的歷史甚至可能變成負值大多數以每筆損益計算獲利的回測
回溯調整(比率法)百分比波動點數波動,因此舊 K 棒上以金額計算的交易損益在長期歷史上以報酬率百分比為基礎的規則

還有一個影響讓許多交易者意外:回溯調整的歷史會在每次新的轉倉後改變,因為所有過去的價格都會再平移一次。你上一季存下來的走勢圖,和今天的同一張圖,舊價格會不一樣,而且兩者都沒有錯。

交易時段設定如何改變日 K 棒?

交易時段設定決定哪些時段的資料納入每根 K 棒。所以即使合約與轉倉都相同,同一個市場在兩個網站上的日開盤、最高、最低與收盤也可能不同。

交易時段是組成一根 K 棒所用的那些時間。許多期貨在電子交易平台上幾乎全天候交易。例如 CME 股價指數期貨在平日交易近 24 小時,只有一段很短的每日休市。走勢圖可以用全時段來組成日 K 棒,也可以只用日盤,大致對應標的現貨市場的交易時間。

台灣的指數期貨清楚呈現了同樣的問題。台灣期交所的一般交易時段是台灣時間 08:45 到 13:45,盤後交易時段是 15:00 到隔天清晨 05:00。期交所把盤後交易時段算作下一個交易日的一部分。因此週二的全時段日 K 棒是從週一下午開始。只看日盤的走勢圖則完全忽略這些時段。想深入了解,請見期貨回測中的夜盤。

兩種交易時段會產生兩根日 K 棒:台指期交易日的夜盤為 15:00 至 05:00,日盤為 08:45 至 13:45,因此全時段 K 棒會因夜盤而有較高的最高價,而日盤 K 棒較小,且開盤價不同 同一天,兩根日 K 棒 台灣期交所指數期貨,示意圖 夜盤 日盤 15:00–05:00 08:45–13:45 全時段 僅日盤 同一天,開盤與最高價不同。 所以:用你交易的時段回測。
同一個市場、同一天:全時段的日 K 棒包含夜間的最高點,日盤 K 棒則較晚開始,開盤價也不同。

有三個交易時段的細節會改變你看到的 K 棒:

  1. 時段範圍。全時段 K 棒包含隔夜的最高與最低點。日盤 K 棒只要市場在隔夜有波動,開盤就會出現跳空。以日內波幅為基礎的指標,例如平均真實波幅(ATR),在兩種版本上會給出不同的數值。
  2. 一天從哪裡開始。交易所會在固定的傍晚或下午時間開始一個交易日。若網站在你當地時區的午夜或 UTC 切分日期,交易時段就會被切得不同。有些網站還會多顯示一根很小的週日 K 棒。
  3. 用哪一個收盤價。許多交易所會公布每日結算價,其規則通常以一般交易時段接近尾盤的一小段時間內的成交為基礎。某個網站的「收盤」可能是這個結算價,另一個網站的可能是最後一筆成交價。

交易時段與合約規格屬於交易所,而且交易所可能更動。請到交易所的合約頁面確認。免費的期貨交易時間工具會以你自己的時區顯示各交易所的交易時段。

為什麼用來閱讀的走勢圖不是乾淨的測試資料?

用來閱讀的走勢圖只需要今天看起來正確。測試用的資料則必須每一根 K 棒都正確,而且每次重跑測試都一樣。免費走勢圖是為第一個用途打造的,不是第二個。

免費期貨走勢圖可能隱藏轉倉規則,可能不經通知就更改調整方式,或用複製上一個價格的方式補上缺漏的 K 棒。它可能顯示延遲的價格,或只提供無法匯出的短歷史。瞄一眼趨勢時這些都無所謂,但當回測要做上千次決策時就非常重要,因為每一根壞 K 棒都可能是一筆假交易。回測資料品質指南深入說明了缺漏、壞報價與時區。以下步驟著重於與走勢圖有關的檢查。

如何把兩個走勢圖來源互相對照檢查?

  1. 寫下定義。對每個來源,記下合約或連續月的方法、轉倉規則、調整方式、交易時段與時區。如果某個來源沒有說明,就把它的序列視為未知。
  2. 拿幾個日收盤價和交易所對照。挑幾個日期,把各來源的收盤價與交易所公布的該合約結算價比較。每天不一樣的小差異,通常代表「最後成交價與結算價」之別。兩次轉倉之間每個日期都出現相同的固定差額,通常代表該來源是回溯調整的。大幅且隨機的差異則指向資料問題。
  3. 找出轉倉日期。在未調整的序列上,找每次到期附近單根 K 棒的跳動。兩個來源在不同日子跳動,代表轉倉規則不同。
  4. 計算每天的 K 棒數量。在日內資料上,依你選的交易時段,每個正常交易日的 K 棒數量應該相同。較短的交易日只應出現在假日與提前收盤的日子。
  5. 逐根比對一週的資料。把兩個來源一週的日內 K 棒對齊。如果最高與最低點相符,但時間整點偏移,差異來自時區,而不是價格。
  6. 檢查成交量。有些連續月序列只顯示近月合約的成交量,有些則把所有月份加總。以成交量為基礎的規則會受這個選擇影響。

有一個實用的習慣能消除許多這類問題:保留日內 K 棒,並用你選定的交易時段自己組成日 K 棒。這樣交易時段的定義由你掌握,不取決於網站的預設值。AlphaPrime(Valynox)正是圍繞這種控制力打造的。它的回測讓你設定資料解析度與交易時段,每個策略的評估都包含手續費、滑價與下一根 K 棒執行。

回測之後如何抓出轉倉問題?

看最接近轉倉日的那些交易。如果它們占了策略大部分的獲利或虧損,產生結果的可能是序列,而不是策略。

把交易明細依結果排序,看最大的獲利與虧損。把它們的日期與轉倉日曆對照。在未調整序列上,一根 K 棒就賺進整個轉倉跳空的交易,是假交易。一個最好的月份全都包含轉倉的策略,在你相信它之前,需要在回溯調整的序列上再測一次。

AlphaPrime 的績效報表會顯示個別交易、權益曲線、回撤與分期績效。你可以檢查權益曲線上的跳動是否與轉倉日期吻合。

如果你使用 AlphaPrime,這代表:你載入的序列決定了每次回測衡量的是什麼,所以要先定義合約、轉倉、調整方式與交易時段。接著用交易明細確認轉倉日沒有左右結果。

常見問題

免費期貨走勢圖夠好用來回測嗎?

免費期貨走勢圖適合用來看價格走勢,但它們常常隱藏轉倉規則、調整方式與交易時段設定,許多還限制歷史長度或匯出。回測時,請使用定義清楚、並已對照過交易所結算價的序列。

期貨走勢圖上的「連續月」是什麼意思?

連續月是一條序列,顯示近月合約,並在轉倉日切換到下一個合約月份。它在一張圖上提供很長的歷史。除非經過回溯調整,否則它在每次轉倉時都含有沒有人賺到的價格跳動。

為什麼我的回溯調整走勢圖,舊價格和上個月不一樣?

回溯調整會依每次新的轉倉跳空平移所有過去的價格。每次轉倉後,整段歷史會再移動一次。K 棒之間的價格波動不變,但舊的價格水準改變了,所以較早的截圖就不再吻合。

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

用你實際會交易的交易時段來測試。如果你的策略只在白天交易,日盤序列可以避開你根本不會操作的夜間 K 棒。如果你會持倉過夜或在夜間交易,全時段才能呈現你的部位會面對的最高點、最低點與跳空。

為什麼兩個期貨走勢圖網站的日收盤價不一樣?

一個網站可能用交易所的每日結算價,另一個用最後成交價,兩者可能不同。也可能其中一個網站顯示的是回溯調整的序列,把每個舊收盤價都依轉倉跳空平移。各網站切分交易日的時間可能不同,或在轉倉前後使用不同的合約,所以請拿幾個日期與交易所公布的結算價對照,找出原因。

AlphaPrime 在這裡能幫上什麼

AlphaPrime 的回測使用你設定的資料解析度與交易時段,每次評估都包含手續費、滑價與下一根 K 棒執行。績效報表會顯示權益、回撤與個別交易,讓你檢查轉倉日前後的結果。

看方案與價格