stefan-jansen/machine-learning-for-trading

Code for Machine Learning for Trading, 3rd edition — from data sourcing to live execution.

解決的問題

本專案解決了從金融研究構思轉向實盤生產級交易策略過程中的複雜性。它提供了一個嚴謹的框架來處理模型調優與評估之間的「證據邊界(evidence boundary)」,幫助從業者避免過擬合(overfitting)、前瞻性偏差(lookahead bias)和數據洩漏(data leakage)等常見陷阱。

工作原理

該儲存庫遵循分為五個部分的全面工作流:

  1. 數據基礎設施:管理市場、基本面與替代數據,包括合成數據生成。
  2. 研究與特徵工程:定義學習任務,並使用分數階差分(fractional differencing)與基於 transformer 的嵌入(embeddings)等技術將原始數據轉換為訊號。
  3. 模型開發:實現從梯度提升(XGBoost, LightGBM)到深度時間序列架構(PatchTST, Mamba)以及因果機器學習的廣泛工具包。
  4. 策略實現:透過事件驅動回測模擬策略,管理交易成本,並構建風險意識型投資組合。
  5. 進階 AI:整合用於執行的強化學習、用於金融研究的 RAG 以及多智能體系統。

適用對象

專為量化研究員、機器學習工程師與演算法交易員設計,他們在真實市場中開發與部署金融模型時,需要一個嚴謹且可復現的流程。

亮點

  • 九個全面的案例研究:涵蓋 ETF、加密貨幣、股票、選擇權、外匯與期貨。
  • 六個面向生產的 Python 函式庫:用於數據獲取、特徵工程、建模、診斷、回測與實盤部署。
  • 進階 AI 整合:具有基於 SEC 文件的 RAG 與自主多智能體研究系統。
  • 方法論嚴謹性:包括用於多重檢定控制(Deflated Sharpe Ratio)與用於不確定性估計的共形預測(conformal prediction)的工具。