最高價是一檔股票當天盤中曾經成交過的最貴價格,記錄了那個交易日買方願意追價的上緣。它之所以在量化選股裡那麼常被用到,是因為大多數的「突破」與「創新高」訊號,骨架都建立在比較今天的高點和過去一段時間的高點。搜尋這個欄位的人,通常想搞懂三件事:它跟收盤價差在哪、怎麼看這條走勢、以及怎麼把高點變成可以回測的選股條件。下面依序講清楚。
最高價是什麼,跟收盤價差在哪
把一天的交易想像成一場從早上九點喊到下午一點半的拍賣會。同一檔股票一整天會成交在很多個不同的價格,其中喊到最貴的那一筆成交價,就是當天的最高價;最後一筆撮合出來的價格才是收盤價。所以最高價標的是「當天最樂觀的瞬間」,收盤價標的是「當天塵埃落定後的共識」,兩者常常不一樣。
最高價沒有複雜公式,它就是當日所有成交價裡的最大值。真正要注意的是價格口徑:同一個高點,可以是當天交易系統撮合出的原始價格,也可以是還原除權息後的調整價格,兩者在長期回測裡差很多。各價格欄位的精確定義與還原方式,可以對照 量化交易詞彙表 裡的說明。
怎麼看一張最高價走勢圖
下面這張圖是台積電(2330)的最高價走勢,每一個點是一個交易日的盤中最高價,連起來就是這檔股票一段時間的高點軌跡。

看這張圖的重點,是看「最近的高點有沒有越過前面的高點」。以截至 2026 年 6 月的近幾筆最高價為例:
| 日期 | 最高價 |
|---|---|
| 2026-06-15 | 2,375.00 |
| 2026-06-16 | 2,400.00 |
| 2026-06-17 | 2,385.00 |
| 2026-06-18 | 2,415.00 |
| 2026-06-22 | 2,510.00 |
| 2026-06-23 | 2,535.00 |
可以看到這幾天的盤中高點一路往上墊高,從 6 月 15 日的 2,375 推到 6 月 23 日的 2,535,後面幾天的高點都比前面高,這種「高點不斷被刷新」的型態,就是程式裡判斷創新高的雛形。實務上會把最高價取一段時間(例如過去 60 個交易日)的滾動最大值,當最新一天的價格突破這個前段高點,就視為波段轉強的訊號。
用最高價前,先避開兩個陷阱
第一個陷阱是還原權值。判斷一檔股票是不是創新高時,務必確認用的是還原後的高點。否則除權息當天的價格會依配息比例往下跳一段,這段跳空會被程式誤判成「跌破前高」,明明還在上升趨勢的好公司,卻被判成走弱,突破訊號因此完全失真。
第二個陷阱是把盤中高點當成可以成交的價格。最高價往往只在某一瞬間出現,可能只是一兩筆小單把價格頂上去,並沒有足夠的量能讓你在那個價位建立一大筆部位。如果回測時假設能用最高價進出,等於高估了成交品質,結果會比實際漂亮很多。比較貼近現實的做法,是回測進出場改用收盤價,並搭配成交金額做流動性過濾,把量能太小的股票先排除。
怎麼用最高價選股
最高價在選股裡的核心角色,就是定義「突破」與「創新高」。常見的實務邏輯分三層:先用滾動最大值判斷價格有沒有站上前段高點,再用成交量確認突破有量能支撐,最後加一道基本面或籌碼面條件,濾掉體質太弱的股票。
這套邏輯怎麼變成可重現的策略,可以從幾篇實測往下看。處理突破雜訊時最怕假突破,突破策略豆知識:如何用 sustain 語法避免假突破? 示範怎麼讓條件「站穩幾天」再進場,過濾掉一日行情;創新高後股價會漲嗎?事件研究實證 用事件研究檢視創新高之後的真實報酬分布;而 創新高策略實測 則進一步示範,單純的價格創新高為什麼需要再加一層確認條件才站得住。想把這些訊號寫成可以自動執行的程式,可以從 程式交易完整教學 開始往下深入。
怎麼自己取得這份資料
在 finlab 套件裡,登入後用一行就能取出最高價,回傳的物件以日期為列、股票代號為欄,可以直接做滾動運算或和收盤價、均線並列比較:
顯示程式碼
finlab.login()
high = data.get("price:最高價")資料在每個交易日盤後更新,當天收盤後就能取得當日的高點;做長期回測判斷創新高時,記得改用還原股價,才不會被除權息的跳空誤導。不會寫程式也沒關係,頁面下方可以把這件事直接交給 AI,由它幫你完成取資料、寫創新高條件、跑回測的整段流程。