Skip to content

Repository files navigation

金融科技與智能交易 — 期末專案程式碼

本 repo 為「金融科技與智能交易」課程期末報告之完整程式碼還原版本,
報告完成後依據報告內容整理並補齊所有執行步驟。

📄 期末報告 PDF金融科技與智能交易期末報告.pdf


研究主題

利用文字探勘(Text Mining)與資料重採樣(Data Resampling)技術,預測台灣股票市場個股的高漲幅事件。

參考論文:

Tsai, C. F., Wang, M. C., Lin, W. C., and Zheng, X. Y. (2025). Predicting high increases in stock prices using text mining and data resampling techniques.


研究對象

代號 名稱 角色
TWII 加權指數(大盤) 主要說明對象 + Buy & Hold 基準
2330 台積電 個股預測目標
3231 緯創 個股預測目標
2368 金像電 個股預測目標
3017 奇鋐 個股預測目標
  • 資料期間:2020/01/01 – 2025/10/31
  • 訓練集:2020–2022、驗證集:2023、測試集:2024–2025
  • 漲幅門檻:1 % / 2 % / 3 % / 4 % / 5 % / 6 %(共六種)

方法架構

文字特徵

TF-IDF(max_features = 300)

資料重採樣

SMOTETomek(Hybrid Sampling)

預測模型

模型 說明
OCSVM One-Class SVM,學習高漲幅日特徵邊界
CNN 卷積神經網路(靜態訓練 / Walk-Forward)
RF 隨機森林(Walk-Forward Validation)

評估指標

  • 勝率(Win Rate):預測方向正確率
  • 累積報酬(Cumulative Return):以每日實際漲跌幅計算策略損益

執行流程(8 個步驟)

01_download_stock_price.py   ← 報告 3.2.1 節
02_crawl_news.py             ← 報告 3.2.2 節
03_fetch_content.py          ← 報告 3.2.2 節(新聞內文抓取)
04_preprocess_text.py        ← 報告 3.2.3 節
05_create_labels.py          ← 報告 3.2.3 節(標籤建立)
06_baseline_models.py        ← 報告 3.2.4 節(基礎模型)
07_smote_models.py           ← 報告 3.2.5 節(採樣後模型)
08_evaluation.py             ← 報告第 4 章(績效評估與視覺化)

安裝與執行

1. 建立虛擬環境(建議)

python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate

2. 安裝套件

pip install -r requirements.txt

3. 依序執行腳本

python 01_download_stock_price.py
python 02_crawl_news.py
python 03_fetch_content.py
python 04_preprocess_text.py
python 05_create_labels.py
python 06_baseline_models.py
python 07_smote_models.py
python 08_evaluation.py

注意:各步驟皆支援斷點續傳,若中途中斷可直接重跑,已完成的部分會自動跳過。
步驟 2、3 依網路速度與新聞數量,可能需要數小時。


專案目錄結構

.
├── config.py                    # 全域設定(股票代號、日期、超參數)
├── 01_download_stock_price.py
├── 02_crawl_news.py
├── 03_fetch_content.py
├── 04_preprocess_text.py
├── 05_create_labels.py
├── 06_baseline_models.py
├── 07_smote_models.py
├── 08_evaluation.py
├── requirements.txt
├── 金融科技與智能交易期末報告.pdf   # 期末報告(含完整結果圖表)
├── data/                        # 資料目錄(CSV 不含於 repo,執行後自動產生)
│   └── results/                 # 模型預測結果
└── charts/                      # 累積報酬走勢圖(執行後自動產生)

repo 不包含任何 CSV 資料檔與圖表,完整的實驗結果與圖表請參閱期末報告 PDF。


資料來源

資料類型 來源
股價資料 Yahoo Finance(透過 yfinance 套件)
新聞資料 鉅亨網 API

關於本專案

本專案為「金融科技與智能交易」課程的四人團隊期末報告,
每位成員各自負責一支股票的深入分析:

成員 負責標的
本 repo 作者 台積電(2330)

將四支個股的完整分析流程統一整合為可重現的程式碼。

完整研究內容(含文獻回顧、各股實驗結果與分析)請參閱期末報告 PDF。


License

MIT License — 詳見 LICENSE

About

Predicting high stock price increases in Taiwan market using TF-IDF, OCSVM/CNN/Random Forest, and SMOTETomek resampling. Final project for Financial Technology & Intelligent Trading course.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages