feedback

工作區結構

了解 BlaveClaw 工作區的每個檔案與資料夾。

目錄總覽

workspace/
├── strategies/          # 你的策略
├── examples/            # 範例策略(參考用)
├── lib/                 # 共用函式庫
├── manager/             # 投組管理系統
├── cache/               # API 資料快取(自動產生)
├── references/          # 策略撰寫與部署指南
└── AGENTS.md            # Bot 行為規範

strategies/

每個策略放在自己的子資料夾。Bot 依 cron 排程執行 strategy.py,並自動寫入輸出檔案。

strategies/
└── my_strategy/
    ├── strategy.py      # 策略邏輯
    ├── scan.py          # 參數掃描(選用)
    ├── stats.json       # 回測結果 + 每日報酬
    ├── state.json       # 即時倉位狀態
    ├── pnl.png          # 資金曲線圖
    └── orders.jsonl     # 下單紀錄

lib/

所有共用工具都在 lib/。從這裡 import,不要在策略檔中重複實作。

檔案用途
runner.py統一回測與即時執行器(Type A 與 C)
data.py所有資料抓取——K 線、Alpha 指標、台股、期貨
execute.py即時狀態管理:載入/儲存/更新倉位、下單紀錄
pnl.py將每日報酬寫入 stats.json;為 manager 載入所有策略
portfolio.py彙整目標倉位、計算差值、執行 reconcile
strategy.py波動率 targeting 工具:add_realized_vol、apply_vol_scaling
analysis.pyPnL 圖表、市場狀態分析、滑點分析、隨機 B&H 基準
param_scan.py2D 參數掃描:percentile_thresholds、scan_grid、find_plateau、plot_heatmap
validation.py蒙地卡羅置換檢定(mcpt)—— 驗證策略統計顯著性
notify.pyTelegram 發送:make_sender()、send_text()、send_photo()

manager/

manager/ 負責多策略投組優化與訂單調倉。刪除個別策略時,不要動這個資料夾。

檔案用途
manager.py讀取所有策略的 stats.json,找出讓投組 slope/std 最大的配重,並將最佳配重與槓桿寫入 portfolio_config.json
執行:python3 manager/manager.py --target-vol 0.30
reconciler.py每 5 秒輪詢一次;偵測到策略 state.json 變動後,計算目標倉位(含槓桿)並在交易所下單。
執行:python3 manager/reconciler.py
portfolio_config.json由 manager.py 寫入。包含配重、槓桿、目標與實際波動率。
槓桿:manager.py 計算 leverage = target_vol / ann_volatility,使投組實際風險符合目標(例如年化 30% 波動率)。reconciler 下單時,所有倉位大小都乘上此係數。

資料流

strategy.py ──► state.json ──────────┐
   (cron)       stats.json           ├──► reconciler.py ──► exchange
manager.py ──► portfolio_config.json ┘

Reconciler 同時需要兩個來源才能算出下單金額:target = account_value × leverage × weight × position