台股工具箱

Telegram… 🎯 尚未掃描 🟢 買進 0|🔴 賣出 0 自動儲存:開啟 📊 大盤判斷中…
🇹🇼 台股
--:--:--
載入中...
--
🇺🇸 美股(ET)
--:--:--
載入中...
--
🌍 UTC
----/--/-- --:--:--
裝置時間不準時,點此校正時區
選「自動」就用裝置系統時區;若手機顯示的時間是某個時區的時間,請選那個時區,程式會先還原成 UTC,再自動推算台灣與美國時間。休市日清單寫在程式的 TW_HOL 與 HOLIDAYS.us 變數,請對照證交所/NYSE 官方行事曆確認。
怎麼用(5 步,點開)
  1. 先設定通知:到「設定」填 Telegram 的 Bot Token 與 Chat ID,再按最上方「📨 測試技術分析通知」確認手機收得到。有 Cloudflare Worker 也一併設定(即時報價、全市場掃描會更快更準)。
  2. 看盤:第一頁只看「買進/賣出/等待觀察」。上方搜尋框新增自選股;「🎯 自選股/🌐 全部股票」切換範圍。下方還有借券空方彈藥。
  3. 持股:到「持股」用「代號+買入價」加入,系統才會判斷賣出(停損、型態失效、轉弱、持有滿 40 日);卡片上直接看扣成本損益、兩平價;按「開始監控」跌破停損會手機通知。
  4. 收盤後選股:在看盤切到「🌐 全部股票」按「掃描全部股票」,結果會直接列在買進/等待觀察卡片裡;要表格可按「匯出 Excel」。「設定」分頁的「選股與掃描設定」勾「收盤後自動掃描並通知」,收盤後會自動掃描、發摘要,網頁要保持開著。
  5. 進場前核對:失效價、停損參考、風險報酬比、風險旗標。時光機驗證:W 底買進訊號沒有贏過隨便買,請當觀察清單用;新的選股方法在「策略研究」驗證中。
🧭 行動看板
🟢 買進訊號 0
🔴 賣出/出場訊號 0
⭐ 自選股管理:(點開篩選、排序、釘選、批次加入)
⭐代號名稱市場行業狀態
⭐ 釘選的會排在最前面,在看板「等待觀察」也優先顯示。「持有」代表你在「持股」頁加入了這檔。名稱與行業來自證交所、櫃買中心公司名單。
批次加入:貼上一串代號或名稱,或匯入檔案
依行業快速加入:成交值前 N 大
用最近交易日的成交值(價格 × 成交量)排序,需要自備代理。行業是粗分類(半導體、電子科技、航運、金融、生技醫療、傳產、其他),來自證交所與櫃買中心的產業別。先預覽、確認後才會加入。
純文字編輯(一行一檔,只要輸入代號)
🟡 等待觀察 0
訊號怎麼產生、使用限制
⚠ 時光機驗證(2018~2026 年中、2000 多筆):🟢 買進訊號沒有贏過同期隨便買。請把它當成「型態觀察清單」,不要直接當買進依據。
🟢 買進:A 級 W 底,而且現價在進場區(頸線下 1%~上 2%)、風險報酬比達標、風險不是「高」。B、C 級或價格已超過進場區的,列在「等待觀察」。
🔴 賣出:只看「持股」分頁裡的股票。① 跌破停損價(有 W 底計畫就用計畫停損價,否則用行業 %);② 型態失效或重大風險旗標;③ 日線轉空頭或多數指標轉弱;④ 持有滿時光機設定的天數(預設 40 個交易日);⑤ 到壓力價(要在持股頁勾「停利提醒」才啟用)。
建議最多買幾張:到「設定」→「行業分類與風控設定」填總資金和單筆最大虧損 %,就會依「進場價到停損價的距離」算出最多買幾張。
報價:有設自備代理時,盤中用證交所即時報價(約每 20 秒更新);沒有就用掃描時的日K收盤價。
限制:沒有處置股、全額交割股資訊;跌停時可能無法在停損價賣出。這是依固定規則產生的訊號,不是投資建議。
📦 持股(用「代號+買入價」加入;看板會依停損、時間、型態判斷賣出)
🟦 我的持股
券商與手續費(計算「扣成本損益」用)
👀 其他自選股(未持有) 可設價位提醒;填買入價就會移到上面的持股
⚠ 監控期間網頁要保持開著、電腦不能休眠。
監控與價位規則說明
加入持股時,這檔若有 W 底 A/B 級計畫,停損價用計畫的停損價(和時光機回測相同);沒有就依「設定」→「行業分類與風控設定」的行業 % 自動帶入。勾選「停利提醒」後,壓力價也會帶入。可以在卡片的「✏️ 修改」裡直接改數字(手動改過的停損價會保留)。

價格由下往上穿越壓力價才通知,由上往下穿越停損價才通知,各穿越一次通知一次(打開監控時已在價位之上或之下,不會通知)。兩次檢查之間若盤中最高/最低價已碰到價位,也會補發通知。
監控期間網頁要保持開著,電腦不能休眠(開始監控後會自動要求螢幕保持喚醒)。Token 只存在這台電腦的瀏覽器裡,請勿把填過 Token 的網頁分享給別人。報價約延遲 15~20 分鐘。
⚙️ 行業分類與風控設定 壓力/支撐 %、總資金
壓力價 = 買入價 × (1 + 上限%);支撐價 = 買入價 × (1 − 下限%),並自動對齊台股升降單位。行業由證交所/櫃買中心的公司名單自動判斷,不用手動選;這裡只需要調整各行業的 % 數字。
填了總資金後,上表會用「買入價 − 支撐價」算出最多可買幾張/幾股,讓停損時的虧損不超過你設定的比例(新手建議 1~2%)。
🎯 自選股技術面
怎麼看這張表
紅色=偏多、綠色=偏空(台股慣例)。資料為日 K(含還原權息),日期以掃描完成後為準,不是即時價。W 底評等 A~D 的定義與評分方式見「選股」分頁。KD/RSI/MACD/OSC 欄:金叉=近 5 日剛黃金交叉,創高=OSC 創近期新高。趨勢:日=收盤與 MA20/MA60 排列,週=收盤相對週 MA20,月=收盤相對月 MA6。按「K線」可看型態圖。
每日選股:全市場 W 底真假突破篩選
掃描上市、上櫃股票,把型態、價量、技術指標與風險旗標交叉驗證後分成 A~D 級。寧可沒有結果,也不硬挑;沒有通過必要條件的股票不會上榜。這是研究候選清單,不是買賣建議。
進階參數(所有門檻都可調,預設值只是起點,建議用「時光機」分頁的結果來修正)
借券判斷(只套用在今日候選,歷史回測不含):餘額逼近上限而股價沒崩跌=空方彈藥耗盡(加 5 分,軋空/反撲契機);借券佔量偏高卻跌不動=加 3 分;借券佔量偏高、股價被壓且餘額還有空間=風險旗標並降為 B 級。基本面檢核請在候選的「詳情/K線」內填寫(結構性衰退 vs 策略性轉移、核心驅動力、會計特性)。
每次掃描會發 1 則每日摘要;A/B 級新出現或升降級、型態失效(A/B 轉 D)另外個別通知,同一天不重複。自選股的任何等級變化都會通知。
說明:分級、評分、風險旗標、交易計畫與限制
分級:A=突破確認,量價與指標同步,回測成功,且通過所有必要條件。B=已突破頸線但尚未完成回測,或其他 A 級條件未全數通過(詳情會列出原因)。C=右底已確認、尚未突破,價格在頸線附近,等待觀察。D=疑似假突破、指標背離、型態失敗,已排除。
A 級必要條件(任何一項沒過,總分再高也不能是 A):突破量達標、回測完成並站穩頸線、沒有任何風險旗標、週線不是空頭、流動性足夠、風險報酬比達標、總分達標。
100 分:型態完整度 20(左右腳對稱、兩底價差、時間間隔、深度相對 ATR、非單日急拉)+價格結構 15(右底相對高低、MA20/MA60、週線與月線趨勢)+成交量確認 15(突破量、右底量縮、回測量縮)+指標 20(KD、RSI、MACD、OSC 各 5,含 RSI 突破 50、MACD 黃金交叉、OSC 創近期新高)+背離風險 10+頸線突破與回測 20。這些配分是我先設的假設,請用「W底研究」分頁檢驗哪些條件真的有效,再回頭調整門檻。
風險旗標只代表價量行為「疑似」有風險:突破量不足、放量突破後收長上影線、突破後迅速跌回頸線下、價漲量縮、多次突破頸線卻站不穩、價格與指標背離、高檔爆量但股價無法有效上漲。不代表已確認主力出貨或操縱。
交易計畫:進場區間=頸線下 1% 到上 2%;失效價=右底低點(收盤跌破即型態失敗);停損參考=「右底低點下 1%」與「進場區中點減 2 倍 ATR」兩者中較高者(風險較小);目標 1=頸線加型態高度;風險報酬比以進場區中點計算。台股單日跌停 10%,實際停損可能無法在預期價位成交。
可信度面板:用同一套分級規則回頭套用在歷史上每一個 W 底突破(只用當時已知資料,突破後第 10 日當天分級,次日開盤進場),統計各級別後續表現,並扣除交易成本與滑價。這是樣本內結果,同期訊號彼此不獨立,會高估可靠度;A 級樣本太少或沒有優於基準時,面板會直接警告。
限制:資料來自 Yahoo 日K(還原價),可能有誤差;尚未納入處置股、全額交割股、注意股名單,請自行查證;尚未依多空環境分組統計(需要加權指數資料);沒有籌碼資料,無法辨識真正的「主力」;週線、月線趨勢只用當時已完成的資料計算;過去統計不代表未來,也不是投資建議。
🩳 借券空方彈藥(每次掃描後自動更新)
還沒有掃描。到「看盤」按掃描後,這裡會自動列出結果。
🕰 時光機:回到過去某一天,看這套工具當時會挑什麼、後來賺還是賠
只用「那一天以前」的資料跑一次選股(A/B/C 級),再用之後的真實走勢檢驗:次日開盤買進、跌破停損參考價就出場、最多持有 H 個交易日,已扣手續費、證交稅與滑價,並和「同一批股票隨便買」比較。只測一天參考價值很低,建議連續測多個日期(v54 預設:約 2018 年起、每 14 天測一次、上市+上櫃各抽 300 檔,目標是 A+B 級累積 300 筆以上;全部跑完可能要 10~30 分鐘)。
「樣本外切分日」之前=樣本內(可以拿來調參數),之後=樣本外(只看不調)。兩段結果一致,才比較可信。
說明與限制(請務必看)
‧ 每個測試日只使用該日以前的日 K 重新計分、分級,不會偷看之後的資料;借券、人工基本面檢核沒有歷史資料,所以不納入。
‧ 進場=訊號隔天開盤價;停損=當時算出的停損參考價(跳空跌破則以開盤價出場);沒碰停損就持有到第 H 個交易日收盤。成本=來回手續費、證交稅+滑價約 0.79%。
‧ C 級(右底確認、還沒突破):v54 起改成「之後 20 個交易日內收盤站上頸線,隔天開盤才進場」,沒突破就不算交易(v53 是訊號隔天直接買,停損參考價常在現價之上,一開盤就被洗掉,所以 C 級停損率高達九成)。
‧ 分批停利=漲到設定的 +% 先賣一半,另一半停損移到成本價,漲超過 10% 後跟著最高價下移 10%。同一天同時碰到停損與停利時,保守地當作先停損。
‧ 資料長度依所選範圍(最長約 10 年),且股票名單是「現在還存在」的公司(已下市的不在內,會讓結果偏樂觀);抽樣是隨機的,每次結果會略有不同。
‧ 同一天的訊號常同時出現(大盤好壞會影響全部),所以樣本看起來比實際更獨立。這個測試只能告訴你「過去這段期間」的表現,不代表未來,也不是投資建議。
🔬 策略研究:哪一種選股想法真的贏過隨便買?
先按「① 下載/更新資料」把上市櫃股票近 10 年日K 存進這個瀏覽器(第一次要幾分鐘,之後只補最近幾天)。再按「② 開始研究」,完全不用連網,幾十秒內算完。
測的想法都是事先定好的,不會看結果再挑:中期動能、接近 52 週新高、低波動、短期反轉,另外用 W 底(突破當天)當對照組。
③ 是從公開資訊觀測站(月營收)和證交所/櫃買中心(每日法人買賣超)抓。證交所限制很嚴,投信資料要「一天一天」慢慢抓(每天間隔約 1.6 秒),從 2020 年起約需 40~60 分鐘;中途關掉沒關係,再按一次會從斷掉的地方接著抓。建議先按「測試資料來源」確認抓得到再開始。
🔒 鎖定驗證:2007~2016(這段資料一般研究不能用,只跑一次)
事先講好、跑完不改:只測接近 52 週新高、月營收動能兩個想法,規則和上面完全相同(每 14 天、隔天開盤買、持有 40 個交易日、扣成本 0.78%、和同一天隨便買比)。
通過標準:筆數 ≥ 100、平均報酬 > 0、比隨便買多、而且修正持有期重疊後的 t ≥ 2.2(只測 2 個想法)。
結果會存起來,之後再按只會顯示同一份結果,不會重算——避免看了答案再改規則。只有資料不足(筆數 < 100)時才允許重跑。
限制:只含現在還存在的公司(2007 年後下市的抓不到,結果偏樂觀);2013 年以前的月營收網頁格式可能不同,抓不到時只判斷 52 週新高。
規則與限制(請務必看)
‧ 股票範圍:上市、上櫃普通股(代號 1000~9999),測試日當時 20 日均成交值 ≥「設定」分頁「選股與掃描設定」的最低日均成交值、至少有 252 個交易日資料。
‧ 每個測試日用「當天以前」的資料選股,隔天開盤買、持有 H 個交易日後收盤賣;隔天開盤就漲停(買不到)的不算。已扣成本 0.78%。
‧ 選股定義:中期動能=過去 252 日到 21 日前的漲幅最高;52 週新高=收盤 ÷ 252 日最高價 ≥ 0.95、越接近越優先;低波動=60 日日報酬標準差最小;短期反轉=近 5 日跌最多;W 底對照=突破當天收盤站上頸線、門檻同 A 級但不等回測;季線/半年線支撐=均線比 20 天前高、最近 3 天最低價回到均線上方 2% 以內、收盤仍站在均線上,最貼近均線的優先,持有中收盤跌破均線 2% 就隔天開盤賣(隨便買也套同樣規則比較);月營收動能=測試日當時「已公布」的最新月營收(每月 11 日起才算公布)年增 ≥ 20%,而且近 3 個月合計年增率創 12 個月新高,年增率越高越優先;投信連續買超=近 10 個交易日至少 5 天投信買超,而且 10 日累計買超金額 ≥ 20 日均成交值的 10%,比例越高越優先(沒有投信資料的日期不算)。
‧ 隨便買=同一天所有符合範圍股票的平均(等於隨機挑的期望值)。
‧ 通過標準(事先固定):樣本內 ≥ 100 筆、樣本外 ≥ 50 筆;兩段平均報酬都 > 0、都贏過隨便買;樣本內「逐測試日配對、已修正持有期重疊」的 t ≥ 2.8(同時測 9 個想法,門檻比 2 高)。主要判斷:季線/半年線用「跌破支撐出場」版本,其他用「不設停損」版本;有停損版本一併列出。
‧ 資料品質:單日漲跌超過 12%(超過漲跌停,多半是減資、資料錯誤)前後那段直接排除。
‧ 限制:只有現在還存在的公司(Yahoo 沒有下市股資料),結果偏樂觀;資料約 10 年。不代表未來,也不是投資建議。
W 底研究:真假 W 底驗證
先在歷史資料(近 3 年日K)裡找出所有 W 底突破,把你的 7 類判斷條件量化,再用統計檢驗「哪些條件真的跟後續漲跌有關」。你的條件只是假設,結果以資料為準。
進階參數(一般不用改)
說明:型態定義、統計方法與限制
怎麼定義與計算
‧ W 底:左底、右底都是「左右各 4 日內最低」的轉折低點,相隔 12~90 個交易日;兩底之間的最高價為頸線;型態深度(頸線比低點高出的幅度)要達設定值。右底確認後,第一次收盤站上頸線的那天 = 突破日。急速 V 轉(右底確認前就已過頸線)、突破前先跌破右底的型態,都不算。全程只使用當時已知的資料,不偷看未來。
‧ 條件 1~5 在突破日就能判斷,從突破日收盤起算報酬;條件 6、7 要等突破後 R 日才看得到,改從「突破後第 R 日」收盤起算,避免用未來資訊預測過去。回測=突破後 R 日內最低價回到頸線上方 1.5% 內;守住=期間收盤沒有跌破頸線 2%。
‧ 報酬=起算後 H 日收盤報酬(截尾在 -50%~+100%)。達標=期間最高價達「頸線+型態高度×倍數」,失敗=期間收盤跌破「頸線-型態高度×比例」,兩者先發生的為準,否則為未決。
‧ 檢定:比較「條件成立」與「不成立」兩組的平均報酬(Welch 檢定)與達標率(Fisher 精確檢定)。因為同時檢驗 24 個條件,只要多測就會有「碰巧顯著」,所以另做 Bonferroni 多重檢定校正;再把訊號依時間切成前 60%/後 40%,兩段方向都要一致才算「較可信」。
限制(請務必留意):同一段行情中很多股票會同時出現訊號,彼此不獨立,會讓顯著性看起來比實際更好;樣本只含目前仍存在的股票(存活者偏差);右底需 4 日才確認,會漏掉最快的 V 轉;指標門檻(例如 1.5 倍量、RSI>50)是我設定的代表值,換門檻結果可能不同;過去統計不保證未來,也不是投資建議。
💰 損益計算
實際損益與加總計算機Stock Actual P&L Calculator
內容會自動儲存在此瀏覽器
🎯 目標價 / 停損 / 台股 / 股息設定
券商預設整理自網路公開比較資料,折扣常有新戶、月成交額度、期限等限制,各站低消也有出入,請以券商官網或你的約定為準。
台股單筆股利達 20,000 元以上會自動扣 2.11% 補充保費。零股最低手續費、當沖稅率、美股預扣稅率都可能變動,請依券商與現行規定調整。
📦 設定備份(換電腦、換手機、改用網址開啟時用)
設定都存在「這個瀏覽器、這個開啟方式」裡:用檔案開和用網址開是兩份,手機和電腦也是兩份。先在原本的地方按「匯出」,再到新的地方按「匯入」就會一模一樣。備份檔含 Telegram Token,請不要傳給別人。(股價、月營收等大量資料不含在內,新地方再下載一次即可;模擬追蹤與鎖定驗證紀錄也會一起備份。)
🎯 選股與掃描設定
看盤的「掃描全部股票」、時光機、策略研究都會用到這裡的設定。改完不用另外儲存。
Telegram 通知設定(價位警示與技術分析通知共用)
設定步驟:1. 在 Telegram 搜尋 @BotFather,傳 /newbot 建立機器人並取得 Token。2. 對你的新機器人傳一句話(例如 hi)。3. 按「自動抓取 Chat ID」,再按「發送測試訊息」確認收得到。
交易日 08:30 傳一次,每檔自選股一段:前一交易日收盤與漲跌、該怎麼做、買點/認錯線/目標,以及你在「持股」頁設的停損、壓力價。網頁需保持開著(與其他自動通知相同);休市日不會傳。
美股交易日 09:00 ET(夏令=台灣 21:00、冬令=22:00)傳一次,每檔一行:昨收與漲跌。美股沒有 W 底分析,所以沒有「該怎麼做」結論。休市日不會傳。
🧭 策略模式:依大盤環境自動(或手動)切換
用加權指數判斷目前是 多頭(指數在季線與半年線之上,且季線向上)、空頭(在兩條線之下,且季線向下)或 盤整(其他),再套用對應的一組選股門檻、停損距離與買進量倍數。可在頁面最上方的「策略」選單切換:依大盤自動、固定某一種,或「自訂」(完全用選股頁的參數,不調整)。
判斷中…
策略A 級最低總分突破量門檻(倍均量)最低風險報酬比停損距離(× ATR)買進量倍數
請注意:表中的數字是我先設的假設(多頭放寬、空頭收緊且縮小部位),沒有經過驗證。請用「時光機」分頁,把「策略」選成「依當時大盤自動切換」與「目前選股參數」各測一次比較,看自動切換有沒有真的比較好。改策略後,要重新掃描才會套用到看板。「買進量倍數」會乘在建議買進量上(需先填總資金與單筆最大虧損 %)。
自備代理(選填):解決逾時,並啟用證交所即時報價
目前靠免費公用代理抓報價,很多人共用、容易被限流而逾時,且 Yahoo 台股報價延遲約 15~20 分。設好自備代理後,看板現價、全市場掃描預篩選與持股監控會優先改用證交所即時報價(延遲約數秒),失敗時自動退回 Yahoo。已經建過舊版 Worker 的,請把程式碼換成下面這份再 Deploy(新版允許:證交所 www.twse.com.tw、公開資訊觀測站 mopsov/mops,策略研究抓月營收、投信買賣超要用到)。自己架一個免費代理最穩:登入 Cloudflare → Workers → 建立 Worker → 貼上下面程式碼 → Deploy,再把網址貼到上面。
let ck="",ckT=0;
const CORS={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Headers":"*","Cache-Control":"no-store"};
const J=(o,st)=>new Response(JSON.stringify(o),{status:st||200,headers:{...CORS,"Content-Type":"application/json"}});
export default{async fetch(q){
if(q.method==="OPTIONS")return new Response(null,{headers:CORS});
try{
const u=new URL(q.url).searchParams.get("url")||"";
if(!/^https:\/\/(query[12]\.finance\.yahoo\.com|openapi\.twse\.com\.tw|www\.twse\.com\.tw|www\.tpex\.org\.tw|mis\.twse\.com\.tw|mopsov\.twse\.com\.tw|mops\.twse\.com\.tw)\//.test(u))return J({error:"url not allowed"},400);
const h={"User-Agent":"Mozilla/5.0","Accept":"application/json, text/html, text/plain, */*"};
if(u.includes("mis.twse.com.tw")){
h["Referer"]="https://mis.twse.com.tw/stock/index.jsp";
if(!ck||Date.now()-ckT>3e5){
const p=await fetch("https://mis.twse.com.tw/stock/index.jsp",{headers:{"User-Agent":"Mozilla/5.0"}});
const m=(p.headers.get("set-cookie")||"").match(/JSESSIONID=[^;,]+/);
ck=m?m[0]:"";ckT=Date.now();
}
if(ck)h["Cookie"]=ck;
}
const r=await fetch(u,{headers:h,cf:{cacheTtl:0}});
return new Response(r.body,{status:r.status,headers:{...CORS,"Content-Type":r.headers.get("content-type")||"application/json"}});
}catch(e){return J({error:String(e)},502)}
}}
資料來源:日K 來自 Yahoo Finance(已還原權息,存在這個瀏覽器裡,盤後不用重抓);盤中現價有設自備代理時用證交所即時報價(延遲約數秒),沒設則用 Yahoo(延遲約 15~20 分);借券、投信買賣超來自證交所/櫃買中心;月營收來自公開資訊觀測站。本工具依固定規則產生訊號,僅供參考,不構成投資建議。