本專案提供了一套完整的本地開發流程,從資料下載、模型訓練、參數優化到策略回測,皆可透過統一的 CLI 介面或 Web Dashboard 完成。
autotrader/
├── commands/ # CLI 子命令實作 (Data, Train, Backtest, Optimize, Analyze)
├── core/ # 核心元件 (Config, Logger, Exceptions)
├── data/ # 資料處理模組 (Ingestion, Features, Datasets)
├── infrastructure/ # 外部服務連線 (Binance Client)
├── ml/ # 機器學習與深度學習模型 (Trainer, Models)
├── trading/ # 交易邏輯與回測引擎 (Strategy, Execution, Backtesting)
└── utils/ # 通用工具 (Metrics, DateTime)
app/ # Streamlit Web Dashboard
├── pages/ # Dashboard 頁面 (即時監控、模型訓練、策略回測等)
├── components/ # 可重用元件 (圖表、指標卡片、側邊欄)
└── utils/ # Dashboard 工具函數
config/ # 設定檔目錄
├── settings.yaml # 全域預設設定
└── ...
manage.py # 程式進入點 (CLI Entry Point)
確保已安裝 Python 3.11+ 與相關套件:
# 使用 Poetry (推薦)
poetry install
# 或使用 pip
pip install -r requirements.txt啟動 Streamlit Web Dashboard,提供圖形化介面:
# 方式 1:直接啟動(預設)
python manage.py
# 方式 2:使用 dashboard 命令
python manage.py dashboard
# 方式 3:自訂埠號和主機
python manage.py dashboard --port 8501 --host localhostDashboard 將在瀏覽器中自動打開(預設:http://localhost:8501),提供以下功能:
- 📊 即時監控:實時價格圖表、模型預測、倉位狀態、交易記錄
- 🧠 模型訓練:可視化訓練進度、損失曲線、超參數設定、訓練歷史查看
- 📈 策略回測:回測結果展示、績效指標、資金曲線、交易記錄下載
- ⚙️ 系統設定:API 配置、策略參數、配置文件管理(支援編輯和創建)
- 💰 交易控制:手動交易(做多/做空/平倉)、倉位管理、風控設定(止損/止盈)
所有功能都可在 Dashboard 中通過圖形化介面完成,無需記憶複雜的命令。
場景 A:快速回測 (使用預設模型與資料)
# 1. 下載資料
python manage.py data download --symbol ETHUSDT --days 30
# 2. 執行回測 (使用預設策略)
python manage.py backtest run --model-path models/deep_learning/lstm_attention_model_20251127_2304.pt場景 B:完整訓練與優化流程
# 1. 下載歷史資料 (過去 2 年)
python manage.py data download --symbol ETHUSDT --start 2023-01-01
# 2. 訓練深度學習模型 (LSTM Attention)
python manage.py train deep-learning \
--data-path data/raw/ETHUSDT_4h_*.csv \
--model-type lstm_attention \
--task-type classification \
--epochs 300 \
--batch-size 128 \
--learning-rate 0.001 \
--multi-task
# 3. 模型超參數優化 (使用 Optuna)
python manage.py optimize hyperparameter-tune \
--data-path data/raw/ETHUSDT_4h_*.csv \
--model-type lstm_attention \
--task-type classification \
--n-trials 20 \
--metric val_loss
# 4. 策略參數優化 (網格搜索)
python manage.py optimize grid-search \
--model-path models/deep_learning/lstm_attention_model_*.pt \
--data-path data/raw/ETHUSDT_4h_*.csv
# 5. 使用最佳參數進行回測
python manage.py backtest run \
--config config/enhanced_strategy.yaml \
--model models/deep_learning/lstm_attention_model_*.pt \
--data data/raw/ETHUSDT_4h_*.csv場景 C:實盤交易
# 模擬交易 (Paper Trading)
python manage.py trade live --dry-run
# 真實交易 (Live Trading)
python manage.py trade live --config config/enhanced_strategy.yaml所有命令皆可加上 --help 查看詳細參數。
download: 從 Binance 下載歷史 K 線資料。process: 執行特徵工程與資料清洗。info: 查看目前資料庫狀態。
deep-learning: 訓練 PyTorch 模型 (LSTM, LSTM Attention, Transformer)。--data-path: 指定訓練數據檔案路徑--model-type: 模型類型 (lstm, lstm_attention, transformer)--task-type: 任務類型 (regression, classification)--epochs: 訓練輪數--batch-size: 批次大小--learning-rate: 學習率--hidden-size: 隱藏層大小--multi-task: 啟用多任務學習
traditional: 訓練傳統 ML 模型 (Random Forest, XGBoost)。
run: 執行增強版策略回測,包含多層過濾、ATR 動態止損、信號強度評分。--config: 策略配置檔案 (預設:config/enhanced_strategy.yaml)--model: 模型檔案路徑--data: 歷史數據檔案路徑--start: 回測開始日期 (可選)--end: 回測結束日期 (可選)
grid-search: 網格搜索策略參數 (threshold, cooldown, stop_loss, take_profit 等)。--model-path: 模型檔案路徑--data-path: 歷史數據路徑--start: 開始日期--top-k: 顯示前 K 名結果
hyperparameter-tune: 使用 Optuna 進行模型超參數優化。--data-path: 訓練數據檔案路徑--model-type: 模型類型 (lstm, lstm_attention, transformer)--task-type: 任務類型 (regression, classification)--n-trials: Optuna 試驗次數--timeout: 優化超時時間(秒)--metric: 優化目標 (val_loss, direction_accuracy)
evaluate: 評估模型品質 (信心度分析、方向準確率)。--model-path: 模型檔案路徑--data-path: 歷史數據路徑
live: 啟動即時交易系統。--config: 交易設定檔路徑 (預設:config/enhanced_strategy.yaml)--model-path: 模型檔案路徑 (覆蓋設定檔)--dry-run: 模擬交易模式
- 啟動 Streamlit Web Dashboard 儀表板。
--port: Dashboard 服務埠號 (預設: 8501)--host: Dashboard 服務主機 (預設: localhost)
- 多層信號過濾:RSI、MACD、成交量、波動率過濾
- ATR 動態止損:根據市場波動自動調整止損距離
- 信號強度評分:動態調整倉位大小
- 複利策略:自動將獲利再投資
使用 Optuna 進行貝葉斯優化,自動尋找最佳超參數組合:
- 學習率 (learning_rate)
- 批次大小 (batch_size)
- 隱藏層大小 (hidden_size)
- LSTM 層數 (num_layers)
- Dropout 率 (dropout)
- 即時監控:實時價格圖表(K 線圖)、模型預測信號、倉位狀態、交易記錄
- 模型訓練:可視化訓練進度、損失曲線、超參數設定、訓練歷史查看
- 策略回測:回測結果展示、績效指標(總回報、勝率、夏普比率等)、資金曲線圖表
- 系統設定:API 配置管理、策略參數調整、配置文件編輯
- 交易控制:手動交易(做多/做空/平倉)、倉位管理、風控設定(止損/止盈)
- 即時價格:從 Binance API 獲取最新價格,自動更新(5 秒快取)
- 即時數據流:WebSocket 即時接收 Binance K 線數據
- 實時預測:模型在每個 K 線更新時進行預測(無需等待 K 線收盤)
- 豐富的顯示面板:顯示市場數據、模型預測、信心指數、持倉狀態
- 模擬交易模式:安全的紙上交易測試
本系統內建 Advisor 機制,當訓練或回測結果不理想時,會自動給出建議:
範例 1:訓練 Loss 停滯
[Advisor] 偵測到驗證集 Loss 連續 5 個 Epoch 未下降。 建議:
- 降低學習率 (目前: 0.001 -> 建議: 0.0005)
- 增加 Dropout (目前: 0.2 -> 建議: 0.3)
範例 2:回測最大回落 (MDD) 過高
[Advisor] 警告:最大回落 (MDD) 達到 -25.4%,超過安全閾值 (-20%)。 建議:
- 啟用移動停損 (Trailing Stop)。
- 縮小單筆交易部位 (Position Size: 1.0 -> 0.5)。
建議按照以下順序進行(所有操作均可通過 Web Dashboard 完成):
- 啟動 Dashboard →
python manage.py啟動 Web Dashboard - 資料管理 → 在 Dashboard 中下載歷史數據並進行特徵工程(或使用 CLI)
- 模型訓練 → 在 Dashboard 的「模型訓練」頁面可視化訓練過程
- 模型參數優化 → 使用 CLI 命令進行 Optuna 超參數優化
- 模型分析 → 在 Dashboard 中查看訓練歷史和損失曲線
- 策略參數優化 → 使用 CLI 命令進行網格搜索
- 策略回測 → 在 Dashboard 的「策略回測」頁面執行並查看詳細的績效分析
- 實盤交易 → 先在模擬模式下測試,確認無誤後再進行真實交易
- 使用 Dashboard 的「即時監控」頁面監控市場和模型預測
- 使用「交易控制」頁面進行手動交易或自動交易
- 可視化:所有數據和結果都以圖表形式展示,更直觀
- 即時監控:無需切換終端,在瀏覽器中即可監控市場和交易狀態
- 便捷操作:點擊按鈕即可執行操作,無需記憶複雜的命令
- 多頁面管理:不同功能分頁展示,結構清晰
- 統一介面:所有功能集中在一個 Web 應用中,無需切換不同工具
所有新建立的 Python 檔案請遵循以下格式:
# -*- coding: utf-8 -*-
# 模組名稱:[模組中文名稱]
# 檔案路徑:[相對路徑]
# 建立日期:2025-11-27
# 負責人:[開發者名稱]
#
# 功能說明:
# [簡述此模組的主要功能與職責]
# [輸入與輸出說明]
#
# 修改記錄:
# 2025-11-27: 初始化檔案 (GitHub Copilot)- CLI 與流程:
manage.py與autotrader/commands/統一入口,依據任務呼叫data/train/backtest/optimize/analyze/trade/dashboard等子命令。 - Web Dashboard:
app/目錄包含 Streamlit 應用程式,提供圖形化介面,對應python manage.py dashboard。 - 資料作業:
autotrader/data/、data/資料夾涵蓋歷史/即時下載、特徵工程與資料集管理,對應python manage.py data ...。 - 模型與策略:
autotrader/ml/、autotrader/trading/內含深度/傳統模型、策略、回測與實盤執行,對應train/backtest/optimize/trade指令。 - 基礎建設與工具:
autotrader/core/、autotrader/infrastructure/、autotrader/utils/提供設定、日誌、Binance API、共用工具。 - 更完整的分類、資料夾職責與維護紀錄請參考
PROJECT_STRUCTURE.md。