Coolkid mascot CoolkidLab Build in Public. Level up together.

Workflow · 交易工具

閱讀

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、對應收盤的排程、跨市場代碼坑都寫出來了。下面是完整元件對照:

看完這篇之前先確認:

適合你
  • 全職 / 業餘交易者每天要刷 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 領域的首選。

這篇是收斂後寫的版本。
我每兩週寄一封電子報,講「正在做但還沒寫成文章」的東西——
包含每月幫你過濾值得花時間的新 AI 工具,
以及 Lab 新文的個人版(你會比公開版早一週收到)。

→ 訂閱(雙週一封,第一封自動寄起步清單)

跳轉 Substack、隨時取消、不轉賣 email。

如果內容對你有用就太好了
隨喜斗內

Buy Me a Coffee at ko-fi.com

相關 workflow

← 回 Workflows 總覽

⚠ 本站所有內容僅供教育與研究用途,不構成投資建議,不保證任何獲利。投資有風險,使用者須自行判斷並承擔結果。