Low-valuation · Institutional · Flow · Tracker
以「外資持續買超 + 低本益比 + 抗跌性」為核心邏輯的台股選股工具,包含每日選股器與月度回測框架。
靈感來自觀察中鼎(9933)、大成鋼(2027)等股票的籌碼特徵。
| 條件 | 說明 |
|---|---|
| 外資3個月淨買超 > 0 | 確認法人持續進場,非短線炒作 |
| 本益比(PER)< 20x | 排除過熱高估股 |
| 今日抗跌性 | 大盤下跌時個股跌幅小或逆漲 |
月度換倉,等權重持有所有符合條件的個股。
| 指標 | 本策略 | TAIEX 大盤 |
|---|---|---|
| 年化報酬 | 44.5% | 47.1% |
| 年化波動率 | 15.8% | 21.0% |
| 夏普比率 | 2.72 | 2.17 |
| 最大回撤 | -7.53% | -9.85% |
| 最長回撤月數 | 2 個月 | 12 個月 |
| Calmar 比率 | 5.91 | 4.78 |
| 月勝率 | 79.3% | 72.4% |
策略報酬略低於大盤,但夏普比率高出 25%、最大回撤小 24%、回血速度快 6 倍。
tw-stock-strategy/
├── stock_screener.py # 每日選股器
├── backtest.py # 月度回測框架
├── requirements.txt
└── README.md
pip install -r requirements.txt前往 FinMind 免費註冊取得 Token,然後設定環境變數:
export FINMIND_TOKEN="your_token_here"或在 .env 檔案中設定(不會被 git 追蹤):
FINMIND_TOKEN=your_token_here
python stock_screener.py輸出:今日符合條件的個股清單,並存成 screener_YYYY-MM-DD.csv。
python backtest.py約需 5~10 分鐘(受 FinMind API 速率限制)。輸出風險指標與月度明細,存成 backtest_result.csv。
stock_screener.py 與 backtest.py 頂部皆有可調整的參數:
MAX_PER = 20 # 本益比上限(調低 → 更嚴格)
MIN_FI_3M = 0 # 外資3個月累計淨買超下限(股)
TOP_N = 50 # 從外資買超排行取前幾名分析- 本工具僅供學習與研究,不構成任何投資建議
- 回測股票池為手動指定,存在一定的事後偏誤(hindsight bias)
- 回測未計入手續費、證交稅等交易成本
- FinMind 免費帳號每小時限制 600 次請求,執行回測請耐心等待
MIT