豪享看股票開發紀錄封面:排程整批更新、快取設計、即時連線與開放訪客

豪享看股票是我從 2026 年 4 月 17 日開始做的台股看盤工具。後端做成代理,盤後資料由排程在收盤後整批更新,頁面只讀準備好的資料。半年裡,快取改了四版,即時連線出過兩次事故;9 月重新檢討之後,我把它從整站付費改成會員免費、訪客也能看。

這篇記錄豪享看股票的功能怎麼一步步長出來,以及 7 個關鍵決策與踩坑。功能怎麼用,寫在豪享看股票怎麼用;整體架構與上版審查,寫在個人網站怎麼架和一人開發怎麼用 AI 團隊。

豪享看股票的功能怎麼一步步長出來?

豪享看股票的開發分成四段:做功能、重新檢討、打底,最後改版並開放訪客。4 到 6 月在加功能,9 月起檢討、打底與改版。

豪享看股票的四個開發階段(2026 年)

階段期間做了什麼
做功能4 月 17 日~6 月K 線、即時連線、個股分頁、個股報告、選股因子、排行、處置股、事件日曆與熱圖;5 月底改成整站付費
重新檢討9 月 10 日檢討首頁與搜尋,訂出改造路線
打底9 月 26 日~10 月 11 日訂出資料契約與快取政策,廢掉舊的回應快取
改版開放10 月 12~17 日資訊首頁、會員免費看盤後資料、附回測的策略選股、開放訪客

開工第一天,就有後端代理、子網域、K 線和策略頁。4 月中下旬補上即時連線的登入方式與 K 線指標;5 月做個股分頁、個股報告、自選股與自製策略,期貨也在 5 月底加入。

6 月陸續加上排行榜、處置股、庫存、事件日曆、看盤牆、分點進出與市場熱圖。功能大致齊了;第一次來的人怎麼看這個網站,則是到 9 月才回頭檢討。

豪享看股票功能演進時間軸:4 月 17 日後端代理與子網域上線,5 月 21 日改成排程整批更新,5 月 31 日整站付費,9 月 10 日重新檢討,10 月 12 日資訊首頁上線,10 月 15~16 日附回測的選股上線並開放訪客 豪享看股票的功能演進(2026 年 4 月到 10 月)

為什麼資料改成排程整批更新?

豪享看股票的盤後資料,現在由排程在收盤後整批更新好。使用者打開頁面時,後端不再臨時去抓資料。

  • 情境:一開始,使用者打開哪一檔,後端才去準備那一檔的資料。選股要用到全市場的資料,也是在有人按下篩選時才準備。
  • 問題:使用者要等資料準備好,才看得到畫面。很多人看同一檔股票,同樣的工作也會一做再做。
  • 判斷:盤後資料收盤後才會變,一天準備一次就夠。選股要算全市場,更不可能等使用者按下去,才一檔一檔準備。
  • 做法:2026 年 5 月 21 日起,改由自己寫的排程器主動整批更新,不再等使用者打開頁面才準備。算好的選股因子放進 Redis,多台服務讀同一份。
  • 結果與學到的:頁面只讀準備好的資料,打開就有畫面。盤後資料該在收盤後準備好,不該在使用者等待的時候才去抓。

豪享看股票資料流程圖:收盤後排程器整批更新,計算選股因子,存進 Redis 讓多台服務共用,頁面只讀準備好的資料並標示資料日 盤後資料在收盤後整批準備好,頁面只讀準備好的資料

豪享看股票的快取為什麼改了四版?

快取前後改了四版,最後留下一條原則:快取多久看資料節奏,對不對看資料日。這條原則在 2026 年 9 月 26 日寫成快取政策,舊的回應快取在 10 月 11 日廢掉。

豪享看股票快取的四個版本

版本時間(2026 年)怎麼做還缺什麼
第 1 版5 月初過期快取加上「先給舊值、背景更新」,也快取整個回應要有人打開頁面才會更新,過期時間寫死
第 2 版5 月 21 日排程主動整批更新還是靠時間猜資料新不新,曾經卡在前一個交易日
第 3 版9 月 26 日快取政策:依資料的更新節奏訂壽命,並檢查資料日舊的回應快取不看資料日,已經結算的日 K 還在一直重抓
第 4 版10 月 11 日拿掉回應快取,全部走快取政策;已結算的資料不重抓目前使用的版本
  • 情境:快取一開始是存一段時間就過期,過期時先回舊值、背景再更新;5 月 21 日起改成排程主動整批更新。
  • 問題:盤後、即時與月營收的更新節奏都不一樣,一個過期時間套不了全部。只看時間,也看不出快取裡的資料是不是最新一天,曾經卡在前一個交易日。
  • 判斷:快取要回答兩個問題:多久該重新準備,以及手上這份資料對不對。前者看資料的更新節奏,後者看資料日。
  • 做法:9 月 26 日訂出資料契約與快取政策。資料契約把缺值、單位、資料日、即時的分級與交易時段先寫清楚;快取政策依節奏訂壽命,並檢查資料日。10 月 11 日拿掉舊的回應快取,已經結算的資料也不再重抓,隔天新架構上正式站。
  • 結果與學到的:快取不再只看時間,每個頁面也標出資料日,例如「盤後 10/16」。快取的難處不在存,而在判斷什麼時候該換掉。

豪享看股票快取四個版本:過期快取、先給舊值再更新、回應快取,到依資料節奏與資料日訂的快取政策 快取改了四版,最後的原則是:快取多久看資料節奏,對不對看資料日

快取另外踩過兩個坑,都和「只看時間」或「換格式」有關:

快取踩過的兩個坑

坑發生什麼學到的
週末首頁回 503週末沒有新的盤後資料,快取過期後,首頁回 503 錯誤過期不能只看時間;週末的資料日,仍是最後一個交易日
一直顯示「資料準備中」換快取格式時,排程鎖擋住了更新,頁面一直顯示「資料準備中」換快取格式,要連排程鎖一起想

即時連線出過哪兩次事故?

豪享看股票的指數與期貨是即時報價,由後端透過即時連線(WebSocket)推到瀏覽器。

重新連線一連上就被踢,變成無限循環

  • 情境:2026 年 6 月 11 日盤中,後端的其中一條即時資料線路斷掉了。
  • 問題:新連進來的使用者,訂閱轉送到那條斷掉的連線時失敗,後端就把使用者踢掉。前端自動重連,又馬上被踢,形成無限循環,全站的即時連線都卡住。
  • 判斷:斷線本身是常態。真正的問題是後端把「其中一條連線斷了」當成使用者的錯,用踢人來處理。
  • 做法:轉送失敗只記錄、不踢人;使用者的訂閱先記下來,等那條連線恢復再補送。那條連線也改成要用時才重連,並加上冷卻時間。
  • 結果與學到的:自動重連寫錯了,會把一次斷線放大成無限循環。寫重連時,要先想清楚它在什麼情況下會停。

退訂沒生效,訂閱越積越多

  • 情境:畫面切換時,前端要訂閱新的報價,並退訂不再需要的報價。新連線建立時,後端也會把之前的訂閱結果補發一次。
  • 問題:2026 年 10 月 14 日,畫面上的報價和走勢都不動,只有五檔在跳。查下去有兩個原因:退訂沒有生效,訂閱越積越多;新連線補發的訊息在忙的時候會被丟掉,剛好丟掉整個市場報價那一筆。前端看到報價停住,又一直重新連線。
  • 判斷:退訂失敗不會出現在畫面上,需要的報價照樣收得到。問題藏在連線背後,只看畫面看不出來。
  • 做法:10 月 14 日先讓補發的訊息不再被丟掉,10 月 17 日再修好退訂;前端判斷報價停住的檢查,也依交易時段調整。兩次修正都先過上版前審查才上線。
  • 結果與學到的:檢查即時連線,不能只看「有沒有收到資料」,也要看「現在訂了什麼」。

即時 K 棒在夜盤併成一根的經過,寫在一人開發怎麼用 AI 團隊。那次之後,即時相關的改動,都要在開盤時段實測過才上版。

頁面載入慢,問題出在哪?

豪享看股票的頁面曾經載入很慢,主因是選股因子的資料包太大。2026 年 5 月 31 日起,這些資料改成壓縮後再傳。

  • 情境:策略選股要用全市場的選股因子。網站一打開,就在背景預先下載十幾包因子資料。
  • 問題:頁面載入很慢,這些資料加起來有好幾 MB;這些資料要到策略頁選了策略,才用得到。
  • 判斷:拖慢頁面的主因是資料的大小,不是畫面或計算。
  • 做法:5 月 31 日起,因子資料先壓縮再傳給瀏覽器,大小剩下原本的三分之一左右;伺服器端也把整包資料短暫快取起來。
  • 結果與學到的:同一包資料,壓縮之後傳得快很多。優化之前先找出最大的那一塊,比到處微調有效。

為什麼從付費工具改成開放訪客?

2026 年 5 月 31 日,我把豪享看股票改成整站付費。9 月 10 日,我重新檢討:第一次來的人看不懂首頁,搜尋引擎看到的是空白頁。

  • 情境:當時的首頁是一張上千列的報價表,頁面都在瀏覽器裡才畫出來,整個網站又擋在付費牆後面。
  • 問題:第一次來的人,看不出這個網站能做什麼。搜尋引擎讀到的每一頁都是空白,網站也就很難被搜尋到。
  • 判斷:整站擋在付費牆後面,搜尋引擎只看得到空白頁,就不會有人從搜尋找進來;已經登入、沒有訂閱的會員,看到的也和訪客一樣。要先讓人看得懂、找得到,才有機會讓人留下來用;付費應該只放在進階工具,不該擋在第一眼。

做法:照 9 月 10 日訂的改造路線,分三步改版。

  1. 10 月 12 日:首頁改成一頁式的資訊首頁,先給當天的市場、看盤重點、排行精選與產業強弱。
  2. 10 月 16 日:會員與訪客兩層同時開放。用 Google 登入的會員免費看盤後資料;沒登入的訪客也能看公開頁,這些頁面改成在伺服器先畫好再送出。
  3. 10 月 17 日:網站地圖依收錄判斷,只放該被收錄的個股頁。

這次改版在上線前的審查被退回好幾輪,修完才上正式站。

  • 結果與學到的:訪客打開首頁,就看得到當天的盤後重點;付費只留給自製策略、分點進出與個股報告。工具好不好用,要從第一次來的人的角度看。

豪享看股票改版後的資訊首頁:上方是加權、櫃買指數與台指期報價,下方是今日看盤重點、排行榜精選與產業強弱 改版後的資訊首頁:訪客不用登入,就看得到當天的盤後重點(2026 年 10 月擷取)

回測結果為什麼和直覺相反?

我拿指標做回測之後發現,有些指標訊號的實際表現,和教科書的直覺解讀相反。所以 2026 年 10 月 15 日上線的策略選股,只放有回測根據的條件組合。

  • 情境:個股報告頁原本依常見的指標解讀,給出偏多或偏空的「建議」方向。
  • 問題:回測結果顯示,有些常見的指標解讀,實際表現和直覺相反。報告頁的建議方向,有一大片和回測結果不一致。
  • 判斷:直覺解讀沒有拿台股資料驗證過。強勢股的 KD 常常停在高檔,也就是鈍化,超買不等於要跌。
  • 做法:條件先用一段歷史資料挑選,再用之後另一段資料驗證,不調任何參數,兩段方向一致才採用。回測說明也寫出存活者偏差:只用現在還在交易的股票回測,數字會偏高,所以只看條件之間的相對排序。報告頁的判讀,10 月 17 日也決定照回測結果改寫。
  • 結果與學到的:策略選股上線時,每一組條件都有回測根據。指標的教科書解讀,要先拿實際資料驗證,才能寫成產品裡的一句話。

KD 超買、超賣與高檔鈍化的實例,可以參考KD指標怎麼看。

資料正確性還踩過哪些小坑?

資料正確性的坑,多半不會讓網站壞掉,只會讓數字悄悄出錯。下面三個,都是改過之後才定下來的做法。

資料正確性的三個小坑

坑發生什麼學到的
缺值當成 0沒有資料的欄位被當成 0,計算與排序跟著出錯缺值要明確標成沒有資料,不能補 0
累計 EPS自己把各季 EPS 加總,四捨五入後會和公告的累計值差一點累計值直接用官方公告的累計表
夜盤日期以為夜盤的日期晚了一天,往前移了一天;當天就撤回,因為夜盤的交易日本來就算在下一個營業日改日期規則之前,先查清楚這個日期的官方定義

做豪享看股票,我學到什麼?

回頭看,豪享看股票最花時間的不是畫 K 線,而是讓資料準時、正確,讓第一次來的人看得懂。

  • 資料先準備好:盤後資料在收盤後整批更新,不在使用者等待的時候抓。
  • 快取看兩件事:多久重新準備看資料節奏,資料對不對看資料日。
  • 即時連線要看得到內部:重連會不會停、現在訂了什麼,都要能檢查。
  • 先讓人看懂、找得到:首頁先給重點,頁面在伺服器先畫好,付費只放進階工具。
  • 直覺要先回測:指標的教科書解讀,先用台股資料驗證過,再寫進產品。

如果你也在做資料類的工具,希望這些判斷和踩過的坑,能幫你少繞一點路。

常見問題

Q1:盤後資料的快取要設多久?

看資料的更新節奏。盤後資料收盤後才會變,週末與假日也不會更新;所以我除了看時間,也檢查快取裡的資料日是不是最後一個交易日。

Q2:回測結果可以直接寫成選股條件嗎?

我不會直接寫。我會先分成兩段時間各驗證一次,並說明存活者偏差,再決定要不要放進策略選股。

延伸閱讀


免責聲明:本文提到的回測結果只用來說明產品設計,不構成投資建議;投資有風險,請自行評估並承擔結果。