Market Scanner:每天掃 4 個市場最強標的 + 三指標加權評分
交易工具
全職交易者每天最浪費時間的事 — 手動翻每個市場的當日強勢清單。美股翻一遍、台股翻一遍、加密翻一遍、期貨翻一遍 同樣的篩選邏輯重複 4 次 每天耗快 1 小時。更糟的是同一套標準 人腦每天執行會走鐘 — 今天覺得「漲太多不追」 明天又 FOMO 進場。所以我寫了個 scanner 把判斷標準寫死成公式 每天用一模一樣的指標掃 4 個市場排名。
先講重點
Python 掃 4 市場 (美股 / 台股 / 加密 / 期貨) 最強標的,評分 = 今日漲幅×0.4 加上突破 60 日新高×0.3 加上量增×0.3,每項先壓到 0-100 防 outlier。config.yaml 可調權重,Windows 排程對應收盤跑,水餃股自動過濾。每天 1 小時手刷盤縮成「打開檔案看排名」。已用 5 個月。
卡點:每天手動掃 4 個市場太累 + 判斷會被情緒污染
翻 4 個市場找強勢標的 真正的問題不是花時間 是「同一套標準 人腦每天執行會走鐘」。今天看到暴漲覺得漲太多不敢追 明天又 FOMO 進場 — 規則一飄 就沒辦法跟自己對賬。把規則寫成程式 每天用同一個公式跑 才有客觀基準 也才看得出自己手動選的時候到底偏在哪。
三指標 + 加權公式(為什麼是這三個)
三項:今日漲幅抓動能、突破 60 日新高抓 breakout、量增(對 20 日均量)抓真實買盤 — 沒量的漲是假動作。每一項先 normalize 壓到 0~100 再加權:動能 40%、突破 30%、量增 30%。單看任一項都會被坑(只看漲幅會追到爆量假突破) 三項組合才篩得出「有人真的買進來」的標的。權重放在 config.yaml 想調策略不用動 code。
# core/score.py — 「最強標的」三指標加權(每項先壓到 0~100 再加權)
clip = lambda v, lo, hi: max(lo, min(v, hi))
def score(today_pct, close, high_60d, vol, vol_avg_20d):
momentum = clip(today_pct * 10, 0, 100) # 漲幅:0~10% → 0~100
breakout = clip((close / high_60d - 0.85) / 0.20 * 100, 0, 100) # 越接近/破 60 日高分越高
volume = clip((vol / vol_avg_20d - 1) * 100, 0, 100) # 今日量 vs 20 日均量
return momentum * 0.4 + breakout * 0.3 + volume * 0.3 # 動能40 突破30 量增30
stack:模組化 sources + csv 輸出
不是一個大 script — 拆成 sources/(us / tw / crypto / commodities 各一個檔 管各市場標的池)+ core/(score 評分 / rank 排名 / fetch 抓價)。資料源是免費的 yfinance。跑完終端印 Top N 表格 + 存 output/*.csv(帶 BOM Excel 直接開不亂碼)。要加市場或改名單 只動對應的 sources/*.py 不碰其他檔。
排程對應收盤 + 水餃股過濾
排程不是隨便設時間 是對應收盤:run_asia.bat 16:00(台股收盤後)、run_us.bat 06:00(美股收盤後 早上起來看)掛 Windows 工作排程器。還有個細節:低於 $1 的水餃股自動過濾 — 不然「0.01 漲到 0.015」就是 +50% 會洗榜 但那種價位的東西對我沒意義。這些閾值也都在 config.yaml 改。
撞過的雷:yfinance 跨市場代碼
yfinance 跨市場代碼各有規矩 第一次踩好幾個:台股要加 .TW、加密要加 -USD、期貨要用主力連續合約(NQ=F 不是 NQH26 不然週末抓不到)。後來把每個市場的代碼規則寫進各自的 sources 檔 一勞永逸。另外 yfinance 免費源偶爾抓不到單一 symbol — 處理原則是失敗就跳過那一檔 不讓它中斷整批掃描。
整段複製給 AI agent,你就有這個 workflow
把下面整段貼給你的 AI coding agent(像 Claude Code),它就能照著幫你把這個盤後自動掃市場、三指標加權評分排名的 scanner 從零建起來 — 你不用自己摸架構。
我要你幫我用 Python 做一個盤後自動掃市場、幫最強標的打分排名的工具,規格如下,請照著建。
用途:每天收盤後自動掃 4 個市場(美股、台股、加密、期貨),用同一套公式幫各市場標的打分後排名,印出 Top N 並存成 csv,讓我不用每天手動翻清單、也不會被當天情緒影響選股標準。這是個人研究與紀錄工具,只做客觀評分排名,不要產生任何買賣建議或結論。
評分公式(請寫成可讀的函式):三個指標各自先 normalize 壓到 0 到 100 再加權 — 今日漲幅(動能)權重 0.4、收盤對 60 日新高的接近程度(突破)權重 0.3、今日量對 20 日均量的量增權重 0.3。三項相加就是該標的分數。
架構請模組化,不要寫成一支大檔:sources 資料夾各市場一個檔(us、tw、crypto、commodities)管各自的標的池;core 資料夾放 score(評分)、rank(排名)、fetch(抓價)。資料源用免費的 yfinance。一個 config.yaml 集中放三項權重、突破窗天數、均量窗天數、top_n、各市場開關,讓我調策略不用改程式。
輸出:終端印出 Top N 表格,同時存 output 資料夾的 csv,csv 請帶 BOM 讓我用 Excel 直接開不會中文亂碼。
請幫我避開這幾個我知道會踩的雷:一,yfinance 各市場代碼規矩不同 — 台股要加 .TW、加密要加 -USD、期貨要用主力連續合約(例如那斯達克用 NQ=F 這種,不要用 NQH26 這種帶月份的,否則週末抓不到),代碼規則請寫進各自的 sources 檔。二,請過濾掉收盤低於 1 美元的水餃股,否則 0.01 漲到 0.015 就是漲五成會洗榜。三,yfinance 免費源偶爾單一標的抓不到,遇到抓取失敗請跳過那一檔、不要中斷整批掃描。
開始前請先確認我的環境(作業系統、Python 版本、想先做哪幾個市場),然後一步步建、每完成一個檔或一個設定就停下來跟我確認再繼續。
把上面整段複製貼給 agent 就好,它會先問你環境跟想掃哪些市場再動工,你只要回答、卡住時補上錯誤訊息或環境資訊就行。
完整 SOP 清單
上面把三指標加權公式、模組化 sources、對應收盤的排程、跨市場代碼坑都寫出來了。下面是完整元件對照:
- 三指標評分完整 code(core/score.py:漲幅 / 突破 / 量增 normalize + 加權)
- config.yaml 完整設定(三項權重 / 突破窗 / 均量窗 / top_n / 市場開關)
- 4 市場標的池 sources(美股 S&P500 動態抓 / 台股 / 加密 Top50 / 大宗商品)
- Windows 工作排程器設定(run_asia 16:00 + run_us 06:00 對應收盤)
- csv 輸出(BOM Excel 相容)+ 水餃股過濾 + 失敗 symbol 跳過邏輯
- 跨市場代碼規則(.TW / -USD / =F 主力合約)我踩過的坑 + 修法
- 怎麼擴充:加 RS 相對強度評分 / 接 LINE 推播 / Supabase 存歷史榜單
看完這篇之前先確認:
- 全職 / 業餘交易者每天要刷 4 加個市場找標的
- 想學「跨市場代碼正規化」(美股 ticker / 台股代號 / 加密 symbol 怎麼統一)
- OK Python 加上 Windows 工作排程基礎
- 你只看 1 個市場 (這 workflow 多市場才划算)
- 想做高頻 / 日內交易訊號 (這是日線級別)
- 不交易純研究 (沒實戰會調不出貼自己策略的權重)
- 跨市場代碼坑:美股 'AAPL' / 台股 '2330.TW' / 加密 'BTC-USD' 格式全不同,沒正規化會抓不到資料
- 水餃股 (低成交量、低價) 漲幅 +30% 但實際無法進出 — 必須先過濾量
- 週末 / 假日跑 cron 抓不到資料但不報錯,沒設 retry 會默默產出空檔
▸ 常見問題
為什麼用三指標加權而不是用 AI?
三指標 (漲幅 / 突破 / 量) 是「可解釋」的訊號,知道為什麼某檔上榜。AI 黑盒子會告訴你「排名 1」但你不知道為什麼,沒法配合自己策略。我用 AI 是寫 code 不是給訊號,訊號邏輯保持透明可調。
config.yaml 權重怎麼調?
預設是 0.4 / 0.3 / 0.3,但每個交易者策略不同。動能玩家可調 0.6 漲幅 / 0.2 突破 / 0.2 量;趨勢玩家可調 0.2 / 0.5 / 0.3。先用預設跑 2 週看排名是否貼自己想交易的,再調。
加新市場 (例如東京 / 港股) 要怎麼加?
加 markets 區塊 加上寫 fetch_X.py(用對應市場資料 API 例如 yfinance) 加上對應到 config.yaml weights。核心 scoring engine 不用動,新增市場約 1-2 小時。文章內有 fetch 模組架構可參考。
這個會自動下單嗎?
不會,只給排名 加上評分。我不做自動下單 — (1) 自動下單踩法規線 (台灣不行代客下單) (2) 我自己策略每天看排名後人工判斷進場時機。這個 workflow 是「替你刷盤」不是「替你下單」。
名詞解釋
- API(應用程式介面)
- 程式跟程式之間溝通的窗口。例如你的程式透過 LINE 的 API 自動發訊息、透過 Google 的 API 讀試算表。
- 排程(cron)
- 讓程式「每天 8 點」「每小時」自動執行的定時器。自動發文、定期抓資料都靠它。
- Python
- 入門門檻最低的主流程式語言之一,資料處理、自動化、AI 領域的首選。