8000 GitHub - Lethe4564518/APT-model: 此為機器學習與財務計量專案的環節之一
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Lethe4564518/APT-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

機器學習與財務計量期末專案

專案說明

此為該專案的實作環節之一,資料來源為TEJ中台灣市值前96的上市公司,並使用 APT 模型進行股票投資組合分析,主要功能包括:

1. 資料處理與技術指標計算

  • 自動計算多個技術指標:
    • SMA(6個月和12個月移動平均線)
    • MACD(6,12,9)
    • RSI(14日)
    • 布林通道(12日,2標準差)
    • ATR(14日)
    • 52週高低點
    • OBV(On Balance Volume)
  • 缺失值處理(向前後填補)

2. 資料集劃分

  • 使用時間序列切分方法
  • 以2019年12月為分界點切分訓練集和測試集
  • 保持資料時間連續性

3. APT模型實現

  • 因子數量可調整
  • 使用PCA方法提取因子
  • 計算因子平均報酬率和cov矩陣

4. 模型評估

  • 計算 Mean-to-volatility ratio
  • 分析不同因子數量(K=1到7)對模型表現的影響
  • 比較訓練集和測試集的表現
  • 視覺化分析結果

開發環境

系統環境

  • 作業系統:Windows 10 x64
  • IDE:VSCode 1.86.2

Python與套件版本

  • Python 3.13.2
  • pandas 2.2.3
  • pandas_ta 0.3.14b0
  • numpy 2.2.4
  • matplotlib 3.10.1

使用說明

  1. 資料準備:

    • 確保 data.csv 檔案與 APT-model.py 在同一資料夾
  2. 執行程式:

    # 方法一:直接在終端機執行
    cd "程式所在資料夾路徑"    # 切換到程式所在資料夾
    python APT-model.py
    
    # 方法二:在 IDE 中執行
    # - 使用 VSCode、PyCharm 等 IDE
    # - 開啟 APT-model.py 並執行
  3. 執行過程:

    • 程式會先讀取資料並顯示資料筆數
    • 自動計算技術指標
    • 檢查並處理缺失值
    • 進行資料分割
    • 執行 APT 模型分析
    • 繪製分析圖表
  4. 輸出結果:

    • 訓練集和測試集的劃分資訊
    • 各因子數量(K=1到7)下的模型表現:
      • 訓練集的表現隨著 K 的上升而來回震盪
      • 測試集的表現在 K 從1上升至6時穩步上升,在 K=7 時下墜
    • Mean-to-volatility ratio 分析圖表
    • 程式執行總耗時
  5. 問題處理:

    • 如果找不到資料檔案,請確認 data.csv 的位置
    • 如果出現版本相容性問題,請參考開發環境說明

檔案結構

  • APT-model.py: 主程式檔案
  • data.csv: 股票資料檔案
  • README.md: 說明文件

未來優化

  • 新增更多錯誤處理區塊
  • 針對套件版本及環境進行兼容性問題處理
  • 對原始資料進行L1與L2正則化

About

此為機器學習與財務計量專案的環節之一

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0