此為該專案的實作環節之一,資料來源為TEJ中台灣市值前96的上市公司,並使用 APT 模型進行股票投資組合分析,主要功能包括:
- 自動計算多個技術指標:
- SMA(6個月和12個月移動平均線)
- MACD(6,12,9)
- RSI(14日)
- 布林通道(12日,2標準差)
- ATR(14日)
- 52週高低點
- OBV(On Balance Volume)
- 缺失值處理(向前後填補)
- 使用時間序列切分方法
- 以2019年12月為分界點切分訓練集和測試集
- 保持資料時間連續性
- 因子數量可調整
- 使用PCA方法提取因子
- 計算因子平均報酬率和cov矩陣
- 計算 Mean-to-volatility ratio
- 分析不同因子數量(K=1到7)對模型表現的影響
- 比較訓練集和測試集的表現
- 視覺化分析結果
- 作業系統:Windows 10 x64
- IDE:VSCode 1.86.2
- Python 3.13.2
- pandas 2.2.3
- pandas_ta 0.3.14b0
- numpy 2.2.4
- matplotlib 3.10.1
-
資料準備:
- 確保
data.csv
檔案與APT-model.py
在同一資料夾
- 確保
-
執行程式:
# 方法一:直接在終端機執行 cd "程式所在資料夾路徑" # 切換到程式所在資料夾 python APT-model.py # 方法二:在 IDE 中執行 # - 使用 VSCode、PyCharm 等 IDE # - 開啟 APT-model.py 並執行
-
執行過程:
- 程式會先讀取資料並顯示資料筆數
- 自動計算技術指標
- 檢查並處理缺失值
- 進行資料分割
- 執行 APT 模型分析
- 繪製分析圖表
-
輸出結果:
- 訓練集和測試集的劃分資訊
- 各因子數量(K=1到7)下的模型表現:
- 訓練集的表現隨著 K 的上升而來回震盪
- 測試集的表現在 K 從1上升至6時穩步上升,在 K=7 時下墜
- Mean-to-volatility ratio 分析圖表
- 程式執行總耗時
-
問題處理:
- 如果找不到資料檔案,請確認
data.csv
的位置 - 如果出現版本相容性問題,請參考開發環境說明
- 如果找不到資料檔案,請確認
APT-model.py
: 主程式檔案data.csv
: 股票資料檔案README.md
: 說明文件
- 新增更多錯誤處理區塊
- 針對套件版本及環境進行兼容性問題處理
- 對原始資料進行L1與L2正則化