forked from NoFxAiOS/nofx
-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Description
当前状态
❌ 需要改进
目前 decision json 文件直接存放在 trader 目录下(如 decision_logs/{trader_id}/),文件命名格式为 decision_YYYYMMDD_HHMMSS_cycleN.json。
问题: 随着运行时间增长,单个目录下文件数量会急剧膨胀。例如当前某个 trader 目录下已有 6937 个文件,导致:
- 文件系统性能下降(列出/查找文件变慢)
- 难以手动浏览和管理
- 某些文件系统对单目录文件数有限制
建议改进
将 decision json 文件按日期存放到子目录:
# 当前结构
decision_logs/{trader_id}/
decision_20251109_034815_cycle1.json
decision_20251109_035119_cycle2.json
decision_20251110_120000_cycle1.json
...
# 改进后结构
decision_logs/{trader_id}/
2025-11-09/
decision_20251109_034815_cycle1.json
decision_20251109_035119_cycle2.json
2025-11-10/
decision_20251110_120000_cycle1.json
实现要点
- 写入逻辑:
LogDecision()在写入前自动创建日期子目录 - 读取逻辑:更新
LoadDecision()和查询相关方法,支持从子目录读取 - 兼容性:需要兼容旧格式(直接在 trader 目录下的文件)
- 回测存储:同步更新
backtest/storage.go中的相关逻辑 - 外部脚本:同步更新
../prompts/analyze_trades.py中的目录扫描逻辑
验收标准
- 新生成的 decision 文件存放在日期子目录
- 能正确读取旧格式(不在子目录)的文件
- 能正确读取新格式(在子目录)的文件
- 回测功能正常工作
- 单元测试覆盖新旧格式兼容
-
analyze_trades.py脚本能正确扫描新旧两种目录结构
相关文件
logger/decision_logger.go:202- 文件写入逻辑logger/decision_logger.go:340- 文件查询逻辑backtest/storage.go:402- 回测读取逻辑../prompts/analyze_trades.py:332- 外部分析脚本的目录扫描逻辑
Metadata
Metadata
Assignees
Labels
No labels