開盤價是一檔股票在每個交易日早上九點,經過集合競價撮合出來的「第一筆成交價」。它之所以對量化研究特別重要,是因為很多策略是在前一天收盤後才算出買賣訊號,真正下單卻是隔天早上一開盤才執行,所以拿開盤價當回測的進出場價,會比用收盤價更貼近你實際成交的時點。一句話總結:收盤價適合產生訊號,開盤價適合模擬你真的買到、賣到的價格。
開盤價是什麼、怎麼撮合出來
台股早上八點半到九點是「盤前集合競價」,所有想買、想賣的單子會先累積起來,系統在九點整一次撮合出一個能讓最多張數成交的價格,這個價格就是當天的開盤價。
可以把它想像成一場早市開市前的喊價:大家先各自寫下願意出多少錢買、多少錢賣,九點鐘一到,主辦方找出一個讓最多人成交的價位敲下去,所有在這個價位附近的單子同時成交。所以開盤價代表的是早盤集體共識下的第一個成交價,而非某一筆零星交易。開盤價、最高價、最低價、收盤價合稱開高低收,各價格欄位的精確口徑與還原方式,可以對照 量化交易詞彙表 裡的定義。
怎麼看開盤價走勢圖
下面這張圖是台積電(2330)的開盤價走勢,每一個點代表一個交易日早上撮合出的開盤價,連起來就是這檔股票一段時間的開盤軌跡。

看這種圖先抓大方向(整體往上、往下還是橫盤),再留意最近的斜率有沒有變陡或轉折。把截至 2026 年 6 月的近幾筆開盤價列出來看更具體:
| 日期 | 開盤價 |
|---|---|
| 2026-06-15 | 2,360.00 |
| 2026-06-16 | 2,375.00 |
| 2026-06-17 | 2,355.00 |
| 2026-06-18 | 2,395.00 |
| 2026-06-22 | 2,455.00 |
| 2026-06-23 | 2,510.00 |
這幾天開盤價從 2,360 墊高到 2,510,在 6 月 22 日與 23 日明顯往上跳了一段。走勢圖就是把這種「每天一個開盤價」連續畫上一千多個交易日,圖上每個轉折都能還原成表裡的某幾天。
為什麼量化常用開盤價當進出場價
把開盤價和昨天的收盤價對起來看,可以量化「跳空」:今天開盤明顯高於昨收,叫向上跳空,反之是向下跳空,這常被當成隔夜資訊(財報、國際盤、突發新聞)反映在價格上的訊號。
更實務的用法是回測時的成交假設。如果策略在今天收盤判斷出「該買」,卻把成交價設成今天的收盤價,等於假設你能在訊號還沒確定的同一秒買到,這是一種偷看未來的偏差。比較貼近現實的做法,是訊號當天收盤產生、隔日用開盤價成交,回測出來的報酬才是你下單時真有機會拿到的價格。
用開盤價前先避開兩個陷阱
第一個陷阱是還原權值。回測時務必使用還原股價,否則除權息當天股價會依配息比例往下跳一段,這段下跳會被程式誤判成市場向下跳空,讓你算出的跳空缺口完全失真。一檔每年穩定配息的好公司,用未還原的價格回測,長期累積甚至會看起來在虧損,結論剛好相反。
第二個陷阱是把開盤價當成穩穩買得到的價格。開盤是集合競價撮合出的單一價位,遇到大幅跳空或漲跌停鎖死時,你掛市價單未必真能成交在這個價位。所以在「隔日開盤成交」假設下表現亮眼的策略,最好再用成交金額檢查當天量能,確認那檔股票早盤真有足夠的量,能承接你想下的部位。
怎麼用開盤價選股與取得資料
開盤價很少單獨拿來選股,它更常是策略的「執行層」:選股條件用收盤價、成交量、波動率等資料算出來,真正進出場則交給隔日開盤價。想看價量資料怎麼變成可重現的策略,可以參考 如何用 sustain 語法避免假突破 處理突破訊號的雜訊,再讀 K 線波動率選股策略實戰 看價、量與波動率怎麼組成訊號。想把這些訊號寫成隔日開盤自動執行的程式,可以往 程式交易是什麼 深入。
取得這份資料只要一行,登入後用 finlab 取出全市場的開盤價:
顯示程式碼
finlab.login()
open_price = data.get("price:開盤價")取回的物件以日期為列、股票代號為欄,可以直接和收盤價、成交量等欄位做運算與條件比較。不會寫程式也沒關係,頁面下方可以把這件事直接交給 AI 幫你完成。