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

開盤區間突破規則與參數怎麼定:區間長度、進場、停損、出場

開盤區間突破要能回測,得先定下大約十個選擇:時段、區間長度、進場、停損和出場。期貨回測只有在每條規則都精確、區間依交易所時鐘定位、計入開盤時的滑價,並檢查鄰近設定、其他市場與未見過的資料時,才有參考價值。

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

目錄
  1. 開盤區間突破需要哪些規則?
  2. 該用哪個交易時段的開盤,區間應涵蓋多少分鐘?
  3. 如何寫出回測能遵循的 ORB 進場、停損與出場規則?
  4. 日光節約時間如何破壞期貨交易時段資料?
  5. 開盤時的成本與滑價有多重要?
  6. 如何誠實地檢驗開盤區間突破?
  7. 常見問題
  8. 參考文獻

開盤區間突破需要哪些規則?

開盤區間突破聽起來簡單:標出交易時段開盤後最初幾分鐘的最高價與最低價,當價格突破其中一側時進場。要定下它的參數,需要把每條規則寫精確,讓區間在日光節約時間轉換時仍依交易所的時鐘定位,計入開盤時的滑價,並檢查鄰近的區間長度、其他市場與未見過的資料。

開盤區間是在選定的交易時段開盤後,一段固定分鐘數內成交的最高價與最低價。突破是指價格越過該高點或低點時開始的交易。台灣交易人把這個想法稱為開盤區間突破,許多交易人也稱之為 ORB 策略。

這個想法包含大約十個隱藏的選擇,每一個都會改變交易結果。兩位交易人都說「我做開盤區間突破」,卻可能在同一個早上持有相反的部位。回測只能檢驗一個精確的版本,所以第一件事就是把那個版本寫下來。

開盤區間突破的四個部分。價格在區間框內波動,突破區間高點時觸發進場,停損設在區間中點,之後在當天稍晚以時間出場平倉。 ORB 就是四條明確規則 寫下來的一種版本 區間 進場 停損 時間出場 空一項,就會測到預設值。 所以:測試前先寫完四項。
開盤區間突破的組成:區間視窗、區間之外的進場、停損,以及時間出場。

該用哪個交易時段的開盤,區間應涵蓋多少分鐘?

把區間定位在交易活動真正開始的開盤,並選擇你的 K 棒週期能整除的長度。期貨幾乎全天候交易,所以「開盤」是一種選擇,而不是既定事實。

請在期貨交易時間工具查看你交易的市場的交易時段,它會以你自己的時區顯示。交易所可能變更交易時段與合約細節,所以在建立測試之前,請先到交易所的合約頁面確認。

市場交易所交易時段常見的區間定位
E-mini S&P 500(ES)、E-mini Nasdaq-100(NQ)CME Globex,週日至週五,美中時間 17:00 至 16:00,每日 16:00 至 17:00 CT 休息美國現貨市場開盤,紐約時間 9:30(8:30 CT)
台指期(TX)日盤台北時間 8:45 至 13:45;夜盤 15:00 至隔日 05:00期貨日盤開盤 8:45,或台股開盤 9:00

對 ES 與 NQ,多數開盤區間交易人使用紐約時間 9:30 的現貨開盤,而不是 Globex 的開盤。美股開始交易時,成交量會明顯放大。對台指期而言,最初 15 分鐘是在股市開盤之前交易的,所以 8:45 與 9:00 會得到兩個不同的區間。請把兩者當成不同的變體分別測試,並在看結果之前就決定好。

區間長度是一種取捨,下表說明它通常如何變化。

區間長度會有什麼改變
5 分鐘區間窄,突破的日子多,假突破較多,停損距離小
15 分鐘常見的折衷選擇;區間涵蓋了最初的一波活動
30 分鐘區間較寬,交易較少,每口的停損距離較大
60 分鐘突破很少,而且出現在一天中較晚的時候,所以距離出場剩下的時間較少

K 棒週期必須能整除區間長度。15 分鐘的區間需要從開盤準確開始的 1、3、5 或 15 分鐘 K 棒。若使用 37 分鐘的 K 棒,沒有任何一根 K 棒會在區間結束時收盤,區間就不是你原本想要的了。

如何寫出回測能遵循的 ORB 進場、停損與出場規則?

每條規則都要寫到,讓兩個人拿到同樣的資料時,會產生同一份交易明細。你留下的每個空白,回測都會用預設值補上,而那個預設值未必是你實單交易時會做的。這些固定下來的選擇,在 AlphaPrime(Valynox) 的策略生成裡就是進場與出場條件,區間長度則可以設成參數範圍。

決定事項一個精確的版本
區間紐約時間 9:30 至 9:45 的 5 分鐘 K 棒的最高價與最低價
進場區間高點上方一個跳動點的買進停損單;區間低點下方一個跳動點的賣出停損單
每日交易次數一次。第一張成交後,取消另一張單
進場截止時間11:00 取消未成交的委託單
停損區間中點(其他選擇:區間的另一側,或 ATR 的倍數)
停利無,或區間高度的固定倍數
時間出場15:55 平掉任何未平倉部位,在現貨收盤之前
略過規則若區間寬於設定的點數,就不交易

有兩種情況會讓大多數初稿出問題,所以請為每一種各寫一條規則:

  1. 價格跳空越過委託單。如果區間結束後的第一根 K 棒開在買進停損單之上,真實的停損單會在接近該 K 棒開盤價的位置成交,而不是在觸發價。回測要以兩個價格中較差的那個成交。
  2. 進場與停損在同一根 K 棒。如果一根 K 棒同時碰到進場價與停損價,K 棒回測無法知道哪一個先發生。要嘛假設停損先發生,要嘛改用 1 分鐘 K 棒測試,讓這種情況很少出現。

區間也必須在任何委託單存在之前就已完成。進場委託單只能在最後一根區間 K 棒收盤之後才送出。如果某條規則在一根 K 棒尚未結束前就用了它的最高價,回測就有洩漏。用一根 K 棒檢查前視偏誤可以很快找出來。

日光節約時間如何破壞期貨交易時段資料?

請以交易所自己的時區儲存並測試資料,因為固定的本地時鐘時間,每年有一段時間會讓區間移動一小時。日光節約時間是美國與歐洲採用、而台灣不採用的季節性一小時時鐘調整。

美國現貨開盤永遠是紐約時間 9:30。換成台北時間,夏季是 21:30,冬季是 22:30。如果你的 K 棒帶著台北時間的時間戳記,而你的規則寫著「區間從 21:30 到 21:45」,那麼到了冬季,你的區間涵蓋的是開盤前約一小時、15 分鐘的清淡時段。策略就會在好幾個月裡交易著不同的想法。

美國與歐洲調整時鐘的日期也不同:美國在 3 月第二個週日與 11 月第一個週日,歐洲在 3 月與 10 月的最後一個週日。每年有幾週,紐約與倫敦之間的時差會比平常少一小時。如果你的規則混用了兩個市場的時間,這一點就很重要。

固定在台北時間 21:30 的區間,夏季剛好對上美股開盤,但冬季開盤是 22:30,同一區間涵蓋的是開盤前的清淡時段。 冬季使美股開盤時間位移 台北時間;區間固定在 21:30 夏季 清淡 開盤 冬季 清淡 開盤 區間 21:30 22:30 冬季時區間錯過開盤。 因此:以交易所時間定義交易時段。
同樣的台北時間區間,夏季涵蓋美國開盤,冬季卻落在開盤前的清淡一小時。

在測試交易時段規則之前,請對任何盤中資料做這項檢查:

  1. 查明你的資料供應商的時間戳記使用哪個時區。
  2. 依一天中的時間,分別對夏季與冬季各月,計算每根 K 棒的平均成交量。
  3. 開盤時的成交量跳升,在兩個季節都應該落在同一根交易所時間的 K 棒。
  4. 如果它移動了一小時,就把時間戳記轉換成交易所時間,或在回測中以交易所時間定義交易時段。

開盤時的成本與滑價有多重要?

對開盤區間突破而言,滑價往往是最大的成本,因為這個策略是在一天中最繁忙、最快速的那幾分鐘,用停損單進場。滑價是回測假設的價格與真實委託單得到的價格之間的差異。

突破進場是在價格已經往上走時買進,所以成交價通常落在觸發價之外一個跳動點或更多。加入手續費與滑價的一般方法,說明於回測中的交易成本。對 ORB 策略,進場要計入比時間出場更多的滑價,然後把滑價加倍,再把整個測試重跑一次。

假設性範例

在 ES 上,9:30 至 9:45 的區間高點是 5,012.00,低點是 5,000.00。買進停損單設在 5,012.25,停損設在中點 5,006.00。一個 ES 跳動點是 0.25 點,價值 $12.50,所以每口的風險在計入滑價之前是 25 個跳動點,即 $312.50。

假設一買一賣(來回)的手續費與規費為 $5,進場滑價 2 個跳動點,出場滑價 1 個跳動點。每筆交易的成本是 $5 + 3 × $12.50 = $42.50。

每筆交易一般滑價滑價加倍
毛平均每筆損益$60.00$60.00
手續費與規費−$5.00−$5.00
滑價−$37.50−$75.00
淨平均每筆損益$17.50−$20.00

這個版本依賴便宜的成交。只在一般滑價下才能存活的版本,每筆交易的優勢很薄。

如何誠實地檢驗開盤區間突破?

值得信賴的結果,在你稍微改變區間長度、把規則移到另一個市場,以及用規則從未見過的資料測試時,都能維持住。開盤區間的想法很容易被過度調整。即使只有幾條規則,你在一個下午也能試出數百種區間長度、停損、截止時間與濾網的組合。

研究者已經指出,在同一份資料上測試許多技術交易規則,會讓最好的那一個看起來比實際更好(Sullivan, Timmermann & White, 1999)。你試的變體越多,最好的回測單靠運氣就會爬得越高(Bailey, Borwein, López de Prado & Zhu, 2014)。請依下列順序使用這些檢查:

  1. 鄰近的區間長度。如果 15 分鐘有效,就在其他規則不變的情況下測試 10、20 與 30。好的跡象是高原,也就是相鄰長度都給出相似的結果。壞的跡象是尖峰,也就是只有一個長度有效。
  2. 其他市場,不重新調整。把完全相同的規則拿到 NQ 或台指期上執行,使用各市場自己的開盤與成本。有些衰退是正常的。完全崩潰則表示規則是配合某一個市場的歷史。
  3. 樣本外資料。樣本外資料是你留在一旁、建立規則時不使用的那一段歷史。先固定規則,再在那段資料上只執行一次。
  4. 推進分析。在滾動視窗上重新選擇區間長度並向前交易,如推進分析所述。
  5. 計算你的變體數量。寫下你試過多少個版本。以那個數字來評斷優勝者,而不是只看它自己。
區間長度為 10、15、20、30 分鐘的假設結果。高原型態下,各長度結果相近;尖峰型態下,只有 15 分鐘有效,較可能只是運氣。 相信高原,別信尖峰 假設結果,區間(分鐘) 高原 尖峰 10 15 20 30 10 15 20 30 只有一個長度有效,就是運氣。 所以:測鄰近值,計嘗試次數。
各區間長度的假設性結果。相似鄰居構成的高原,比單一最佳設定更可信。

在 AlphaPrime中,你可以在回測設定裡設定交易時段、手續費與滑價;回測一律以下一根 K 棒成交。每個候選策略之後都以相同的成本與時序規則來評判。接著你可以在策略檢驗中,用自己的門檻執行基礎、標準或完整檢驗,包括推進分析。

如果你使用 AlphaPrime,這代表:在第一次執行之前,就以交易所時間定義交易時段並納入開盤時的滑價,讓你搜尋的參數範圍已經反映你實際可能拿到的成交。然後在把任何開盤區間版本視為候選策略之前,先用鄰近設定與未見過的資料做檢驗。

常見問題

期貨最好的開盤區間長度是多少?

沒有哪一個長度適合所有市場。常見的選擇是開盤後 5、15、30 與 60 分鐘。要有理由地選一個長度,然後檢查鄰近長度是否給出相似的結果,因為只在某一個精確長度有效的結果,通常是配合過去的歷史。

可以在台指期上回測開盤區間突破嗎?

可以。日盤台北時間 8:45 開盤,股市 9:00 開盤,所以要決定你的區間用哪一個開盤,並把兩者當成不同的變體。台灣不採用日光節約時間,所以時鐘時間全年都相同。

ORB 的停損應該放在區間的另一側嗎?

那是一種常見的選擇,另外還有區間中點或 ATR 的倍數。放在對側的停損給交易更多空間,但在區間寬的日子,每口承擔的風險更大。把停損寫成一條精確的規則並測試,然後把其他選擇當成你會計數的獨立變體來測試。

為什麼我的開盤區間回測結果在 3 月與 11 月會改變?

你的資料時間戳記大概是在沒有日光節約時間的本地時區,所以當美國時鐘調整時,美國開盤會移動一小時。一年中有一段時間,你的區間就涵蓋了錯誤的那一小時。請把時間戳記轉換成交易所時間,或以交易所時間定義交易時段。

參考文獻

  • Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5), 1647–1691.
  • 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.