Files
gavindiaz 63a829cc46 phase 7-8 完成 + warmup 修复 + 产物结构化重组
主要内容:
- Phase 8 PROMOTE: finalist #1 (trial #324) registry 条目,自动生成
- Optuna objective warmup bug 修复 (shared/optimizer/objective.py)
- studies/ 目录按用途重组为 optuna/ + finalists/ + features/ 三层
- reports/ 加入 Optuna 中文 dashboard (5 主图 + 18 slice + 15 contour)
- 新增 PROJECT_GUIDE.md 项目说明文档
- 新增 build_registry_entry.py / build_optuna_dashboard.py / build_feature_datasets.py
- .gitignore: 允许提交 studies/*.db (Optuna DB) 和 reports/*.html (MT5 + dashboard)
2026-06-27 00:28:07 +08:00

29 lines
1.2 KiB
Python

"""Check Python M5 data around 2025-01-02 to understand time alignment."""
import sys
from pathlib import Path
PROJECT = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(PROJECT))
import pandas as pd
from shared.data.loaders import load_bars
m5 = load_bars("data/XAUUSD_M5_2024-06-26_2026-06-26.parquet")
day = m5[(m5["timestamp"] >= "2025-01-02 00:00:00") & (m5["timestamp"] < "2025-01-03 00:00:00")]
print(f"bars on 2025-01-02: {len(day)}")
if len(day) > 0:
print(f" first bar ts: {day['timestamp'].iloc[0]}")
print(f" last bar ts: {day['timestamp'].iloc[-1]}")
print()
print(" bars 01:50-02:00:")
sub = day[(day["timestamp"] >= "2025-01-02 01:50:00") & (day["timestamp"] <= "2025-01-02 02:00:00")]
print(sub.to_string() if len(sub) else " (none)")
print()
print(" bars 15:45-15:55:")
sub = day[(day["timestamp"] >= "2025-01-02 15:45:00") & (day["timestamp"] <= "2025-01-02 15:55:00")]
print(sub.to_string() if len(sub) else " (none)")
print()
print("first 5 bars of 2025-01-02:")
print(day.head().to_string())
print()
print("first bar of 2025-01-02 timestamp hour:", day['timestamp'].iloc[0].hour)