了解 Blave Agent 工作区的每个文件与文件夹。
workspace/
├── strategies/ # 你的策略
├── examples/ # 示例策略(参考用)
├── lib/ # 共用函数库
├── manager/ # 投组管理系统
├── cache/ # API 数据缓存(自动生成)
├── references/ # 策略编写与部署指南
└── AGENTS.md # Bot 行为规范
每个策略放在自己的子文件夹。Bot 按 cron 计划执行 strategy.py,并自动写入输出文件。
strategies/
└── my_strategy/
├── strategy.py # 策略逻辑
├── scan.py # 参数扫描(可选)
├── stats.json # 回测结果 + 每日收益
├── state.json # 实时仓位状态
├── pnl.png # 资金曲线图
└── orders.jsonl # 下单记录
所有共用工具都在 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.py | PnL 图表、市场状态分析、滑点分析、随机 B&H 基准 |
param_scan.py | 2D 参数扫描:percentile_thresholds、scan_grid、find_plateau、plot_heatmap |
validation.py | 蒙特卡洛置换检验(mcpt)—— 验证策略统计显著性 |
notify.py | Telegram 发送:make_sender()、send_text()、send_photo() |
manager/ 负责多策略投组优化与订单调仓。删除个别策略时,不要动这个文件夹。
| 文件 | 用途 |
|---|---|
manager.py | 读取所有策略的 stats.json,找出让投组 slope/std 最大的权重,并将最优权重与杠杆写入 portfolio_config.json。运行: python3 manager/manager.py --target-vol 0.30 |
reconciler.py | 每 5 秒轮询一次;策略 state.json、下单金额或下单开关变动时对账(每 5 分钟另有保底轮),下单抹平目标与实际部位的差额。运行: bash manager/start_reconciler.sh |
flatten.py | 把所有已连接交易所的持仓全部市价平掉(工作区「全部平仓」按钮跑的就是它)。执行前会先挂上下单开关,平仓后不会再开新仓。 运行: python3 manager/flatten.py |
portfolio_config.json | 每个策略的下单金额(实盘仓位计算基准)、交易所路由,以及优化器的权重与杠杆。一律由工具维护——绝不手改。 |
orders.jsonl | 交易历史——每笔已执行订单一行,逐腿记录交易所返回的成交价与数量。工作区「交易历史」标签页读的就是这个文件。 |
target = amount × position),从工作区「下单设置」页保存。strategy.py ──► state.json ──────────┐
(cron) stats.json ├──► reconciler.py ──► exchange
manager.py ──► portfolio_config.json ┘
Reconciler 同时需要两个来源才能算出下单金额:target = amount × position