63a829cc46
主要内容: - 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)
29 lines
1.2 KiB
Python
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)
|