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

聖誕夜交易時間:提早收盤與你的回測

美股在聖誕夜通常於美東時間下午 1:00 收盤,CME 期貨則依自己的時程提早停止交易。這些短而清淡的交易時段會縮小日 K 棒,並打亂以時間為基礎的出場,所以回測應該排除或建模這些日子,再比較兩種結果。

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

目錄
  1. 聖誕夜的市場如何交易?
  2. 聖誕夜股市幾點收盤?
  3. CME 期貨的聖誕節交易時間與股市有何不同?
  4. 為什麼假日交易時段清淡且交易成本高?
  5. 縮短的交易時段如何扭曲日 K 棒?
  6. 為什麼時間出場在提早收盤日會失效?
  7. 回測應該排除聖誕夜,還是為它建模?
  8. 如何檢查假日交易時段是否改變你的結果?
  9. 常見問題
  10. 參考文獻

聖誕夜的市場如何交易?

聖誕夜當天,美國股市通常在美東時間下午 1:00 提早收盤。CME 期貨則依自己的假日行事曆,提早停止交易的時間依商品群組而異。成交量清淡,價差通常也較寬。在回測中,這些短交易時段會縮小日 K 棒、打亂以時間為基礎的出場,還會多出一個容易被忽略的假日跳空,所以要刻意處理。

提早收盤是指交易所預先公告、比正常收盤時間早數小時結束的既定交易日。美國股市每年通常最多有三天:獨立紀念日前後、感恩節隔天,以及聖誕夜。若要列出你資料中每一年的確切日期,請使用股市假日與提早收盤行事曆。交易所每年可能調整假日時間,所以請在 NYSE 假日行事曆,以及你所交易商品的 CME Group 假日行事曆上確認每個日期。

聖誕夜股市幾點收盤?

近年來,當 12 月 24 日落在週一到週四時,NYSE 與 Nasdaq 都在美東時間下午 1:00 收盤,而不是正常的下午 4:00。換成台灣時間是 12 月 25 日凌晨 2:00,因為 12 月的美東時間比台灣時間慢 13 小時。12 月 24 日是星期幾,會讓每年的情況不同:

12 月 24 日落在12 月 24 日的股市聖誕假期
週一到週四提早收盤,美東時間下午 1:0012 月 25 日休市
週五全天休市(聖誕節在週六,改於週五放假)週六沒有交易時段
週六沒有交易時段聖誕節在週日,改於 12 月 26 日週一放假
週日沒有交易時段12 月 25 日週一休市

所以十年的股票日 K 棒序列,並不是每年都有同樣的假日。有些年份 12 月 24 日有一根半天的 K 棒,其他年份則完全沒有 12 月 24 日的 K 棒。因此,單靠日期來「認得」聖誕夜的規則,每年的表現都會不一樣。

CME 期貨的聖誕節交易時間與股市有何不同?

CME 期貨並不沿用股市下午 1:00 的收盤時間。它們依照獨立的 CME 假日時程,每個商品群組都有各自的提早停止時間。交易日是指期貨交易時段所歸屬的日期。在 CME Globex 上,某天晚上開始的交易時段屬於下一個交易日。這表示 12 月 24 日的期貨交易日,通常從 12 月 23 日晚上開始,其中包含股市從未有過的隔夜交易。

聖誕夜當天,CME Globex 通常在美國中部時間中午前後提早停止交易。確切時間由股價指數、利率、能源、金屬與農產品分別訂定。Globex 在聖誕節當天休市。若要用你自己的時區查看所交易市場的時間,請使用期貨市場交易時間工具,並查閱當年的 CME 假日行事曆。

美股CME 期貨
12 月 24 日的交易時段美東時間 9:30 開盤,1:00 p.m. 提早收盤從 12 月 23 日晚上開始,在美國中部時間中午前後提早停止
誰訂定停止時間NYSE 與 Nasdaq 假日行事曆CME 假日行事曆,依商品群組而定
聖誕節當天休市休市
日 K 棒包含的內容只有縮短後的日盤隔夜交易加上縮短的上午時段
12月23日至25日的兩條美東時間時間軸:12月24日股票交易時段僅從9:30到下午1點;12月24日的期貨交易日從12月23日晚間開始,並在中午前後提早停止交易;12月25日兩者皆休市 平安夜的兩種時鐘 交易時段(美東時間) 12/23 12/24 12/25 股票 下午1點收盤 期貨 提早停盤 12/23晚間起 休市 期貨交易日包含隔夜時段。 因此:請檢查資料中的停盤時間。
股票與期貨的聖誕夜:股票交易時段在下午被縮短,而期貨交易日從前一天晚上開始,並依自己的時程提早停止。

為什麼假日交易時段清淡且交易成本高?

假日交易時段的參與者較少,所以每筆交易的成本通常比一般日子更高。許多交易人和交易檯都不在。委託簿中掛著的委託單較少,通常代表買賣價差較寬。這時一張大單就可能比平常更容易推動價格。停損單與市價單成交價也容易離觸發價更遠。

使用單一固定滑價值的回測,假設假日交易的成本與忙碌的週二相同。對大多數策略而言,這會低估假日的成本。兩個實用的修正方式:

  • 提高假日的滑價。重新跑測試,例如在提早收盤日使用兩倍的正常滑價,看看結果是否仍然成立。
  • 檢查獲利從何而來。如果假日的交易屬於最賺錢的那些,它們同時也是成交最不真實的交易。

關於如何一般性地設定手續費與滑價,請參閱回測中的交易成本。

縮短的交易時段如何扭曲日 K 棒?

半天的 K 棒波動範圍較小、成交量較低,而每個對波動範圍或成交量取平均的指標都會吸收這種扭曲。這就像一個氣象站某天只量了從午夜到中午的數據,當天的溫度範圍看起來很平穩,因為有一半根本沒被量到。

要留意的影響:

  • 波動度指標下降。平均真實波幅(ATR)與類似的過濾條件在短的一天之後會下降,所以以 ATR 為基礎的停損與部位大小,會因為和市場無關的原因而改變。
  • 成交量過濾失靈。像「只在成交量高於 20 日平均時交易」這樣的規則,會在聖誕夜看到異常偏低的值。
  • 突破價位看起來更近。12 月 24 日狹窄的 K 棒形成緊縮的高低點,所以 12 月 26 日的突破很容易被觸發。
  • 假日跳空容易被忽略。從 12 月 24 日收盤到 12 月 26 日開盤的走勢橫跨整個假期,所以常以跳空的形式出現,測試可能把它誤當成一般的隔夜波動。

假設範例

某期貨在九個正常日的真實波幅各為 60 點,聖誕夜的真實波幅為 25 點。10 日平均從 60 變為 (9 × 60 + 25) ÷ 10 = 56.5 點。設為 2 × ATR 的停損從 120 縮小到 113 點,原因只是一個短交易時段。以該停損計算的部位大小也因同樣的原因略為變大。

假設的日 K 棒:一般交易日波動區間約 60 點,12 月 24 日半天交易的 K 棒為 25 點,12 月 25 日沒有 K 棒,12 月 26 日開盤跳空,ATR 線在 12 月 24 日後由 60 降至 56.5 一根短 K 棒拉低 ATR 每日波動區間,假設範例 60 點 25 點 無 跳空 12/17–23 12/24 12/25 12/26 ATR 60 56.5 半天交易不代表市場平靜。 所以:檢查 12/24 後的停損設定。
假設的日 K 棒:一根聖誕夜的短 K 棒拉低波動範圍的平均值,而下一根 K 棒以假日跳空開盤。

為什麼時間出場在提早收盤日會失效?

如果以時間為基礎的出場在等一個永遠不會到來的時鐘時間,它在提早收盤日就會失效。時間出場是指在設定的時間或經過設定的 K 棒數後平倉,而不是在某個價格平倉的規則。聖誕夜的交易時段可能在該時間之前就結束,於是部位被帶過聖誕節,延續到下一個交易時段。

出場規則在下午 1:00 收盤時會發生什麼修正
美東時間下午 3:55 出場下午 3:55 沒有 K 棒,所以交易持續到 12 月 26 日相對於實際的交易時段結束時間出場,例如在該時段的最後一根 K 棒
經過 N 根日內 K 棒後出場交易超過收盤,在假期之後才結束加上「或在交易時段結束時,以先到者為準」
經過 N 天後出場半天被算成一整天,所以持有時間比預期短接受它,或改為計算小時數而非 K 棒數
K 棒週期無法整除交易時段短交易時段的最後一根 K 棒是不完整的 K 棒檢查你的資料與平台如何建構那根最後的 K 棒

第一列對日內策略最重要。本應每晚都空手的當沖系統,其交易明細中可能出現一筆跨越假期的隔夜交易。那筆交易承擔了策略原本從未設計要承擔的風險。跨過聖誕節的那筆隔夜部位,會出現在 AlphaPrime(Valynox) 績效報表的交易明細裡,每一筆進場與出場都列在那裡。

美東時間 12 月 24 日的盤中時間軸:當沖在 11:00 進場,交易時段於 13:00 提前結束,原定 15:55 的出場始終未觸發,部位持有跨過休市的 12 月 25 日,直到 12 月 26 日開盤才出場 3:55 出場從未觸發 12/24 當沖,美東時間 進場 持有過假期 實際出場 休市 11:00 13:00 收盤 12/25 12/26 未到 15:55 當沖變成了假期留倉。 因此:在時段最後一根 K 棒出場。
固定在下午 3:55 的出場,在下午 1:00 收盤時永遠不會觸發,所以當沖交易被持有過聖誕節。

回測應該排除聖誕夜,還是為它建模?

兩種選擇都可行,只要回測符合你當天實際會做的事。預設做法,也就是不加思考地把假日交易時段留在裡面,是唯一薄弱的選項。

做法方式最適合
排除提早收盤日不新增進場,並在提早收盤前平倉你不打算在假日交易時段實單交易
建模保留這些日期,在實際的交易時段結束時出場,並提高這些日子的滑價你會交易這些日子,並希望成本與時間點貼近真實
維持原狀所有日期都用一般規則只作為比較用的基準

從日資料中移除假日 K 棒,與排除這些交易日並不相同。指標會因此跳過一天,12 月 26 日的 K 棒會緊接在 12 月 23 日旁邊。多數交易人會保留 K 棒,改變交易規則。在 AlphaPrime中,回測會把你設定的交易時段、費用與滑價套用到每個候選策略,並一律以下一根 K 棒成交。

如何檢查假日交易時段是否改變你的結果?

用同一個策略,分別在含假日交易與不含假日交易的情況下執行,再比較兩種結果。如果結果取決於少數幾個假日交易時段,代表優勢很脆弱。請依下列步驟:

  1. 用假日行事曆列出你資料範圍內的每個提早收盤日與假日,並加上上表中的補假日。
  2. 標記在這些日期期間持有、或在這些日期進場的每一筆交易。
  3. 先跑基準測試,再跑第二個測試:在這些日期不新增交易,並在每次提早收盤前平倉。
  4. 比較兩次執行的淨損益、交易筆數、平均每筆損益與最大回撤。
  5. 逐一檢視被標記的交易:檢查進場與出場時間,並找出跳空與隔夜持有。

假設範例

某策略十年內做了 400 筆交易,淨損益為 $30,000。其中六筆交易碰到假日交易時段,合計賺了 $9,000。排除它們後剩下 $21,000。也就是 1.5% 的交易貢獻了 30% 的獲利,而且發生在市場最清淡、成交最不真實的日子。該看的是這個比例,而不是 $9,000 本身。

做一次選擇就維持下去。如果你嘗試許多種假日過濾條件,再留下結果最好的那一種,就是把行事曆擬合到雜訊上。White (2000) 說明了為什麼在眾多測試過的規則中,表現最好的那個往往看起來比實際更好。關於其他假日與重新開市,請參閱回測中的市場假日。

如果你使用 AlphaPrime,這代表:載入你自己的 K 棒資料,保留假日交易時段實際交易的樣子,設定你實際交易會用的交易時段與成本,並在保留某個策略之前,比較含假日交易的執行與不含假日交易的執行。

常見問題

聖誕夜股市有開嗎?

通常有,但是縮短的交易時段。當 12 月 24 日落在週一到週四時,NYSE 與 Nasdaq 近年都在美東時間下午 1:00 收盤。當 12 月 24 日落在週五時,因為聖誕節改在那個週五放假,市場全天休市。請每年在 NYSE 假日行事曆上確認。

聖誕節當天期貨有開嗎?

沒有。CME Globex 在聖誕節當天休市。在聖誕夜,CME 期貨通常在美國中部時間中午前後提早停止交易,每個商品群組在 CME 假日行事曆中都有自己的停止時間。

聖誕節隔天股市有開嗎?

12 月 26 日若落在平日,在美國通常是正常的完整交易日。例外是聖誕節落在週日的那一年,這時假日改在 12 月 26 日週一放假,市場休市。

我應該從回測資料中刪除假日 K 棒嗎?

通常不要。刪除 K 棒會讓指標跳過一天,並把 12 月 23 日與 12 月 26 日的 K 棒當成相鄰的。比較乾淨的做法是保留 K 棒,改變交易規則,例如提早收盤日不新增進場,並在實際的交易時段結束時出場。

聖誕夜的收盤時間換成台灣時間是幾點?

美東時間下午 1:00 的股市收盤,在台灣是 12 月 25 日凌晨 2:00,因為 12 月的美東時間比台灣時間慢 13 小時。CME 期貨依自己的時程停止交易,所以請另外換算你所交易商品的 CME 停止時間。

參考文獻

  • White, H. (2000). A Reality Check for Data Snooping. Econometrica, 68(5), 1097–1126.