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