← 所有文章
遺傳演算法量化交易機器學習研究筆記

用遺傳演算法尋找股票最佳交易參數

PPTS 利潤價格分布策略結合 GA 參數搜尋,在 ETF50 的 48 檔股票上做逐檔最佳化,記錄設計決策與實驗結果。

研究動機

傳統技術分析指標(MA、RSI)的參數通常是「業界慣例」,缺乏對個別標的的適應性。 我的碩論想探討:能不能用演化式搜尋,替每檔股票找到統計上更優的進出場參數?

PPTS 策略架構

PPTS(Price Profit Trading Strategy)的核心假設是:

股價在特定價格區間內的分布有可預測的均值回歸傾向。

四個主要參數:

參數空間的搜尋維度是 4,但每個維度的有效範圍很大, 純粹 grid search 的計算量不可行 → 這就是為什麼用 GA。

遺傳演算法設計

染色體編碼

每個個體是一個 4-tuple:

individual = [n_bins, hold_days, profit_target, entry_threshold]
# 例如: [8, 15, 0.03, 0.25]

適應度函數

在訓練集(2010–2018)上回測,計算:

fitness = Sharpe_ratio × (1 + win_rate) - max_drawdown_penalty

Sharpe ratio 負數時直接回傳 0,避免負適應度污染選擇壓力。

演化操作

結果觀察

本站的論文互動展示 可以即時觀察族群演化:

跨標的差異:台積電(2330)的最佳 hold_days 集中在 5–10 天, 而鴻海(2317)的最佳配置更傾向更長持有(20–30 天)。這說明個別股票的最佳策略 差異顯著,支持了逐檔最佳化的必要性。

限制與未來方向

  1. 前視偏差:訓練集和測試集切分需要更嚴格的 walk-forward 驗證。
  2. 交易成本:目前模型未考慮滑價和手續費。
  3. 多因子整合:目前只用價格資訊,加入成交量或基本面可能改善。

完整程式碼和互動圖表在論文頁面。

元嬰不說頭像

元嬰不說

你好!我是元嬰不說,不說 的作品集助手 🤖
可以問我關於他的學經歷、技術專長、或是作品集內容。