# -*- coding: utf-8 -*- """Hitung jumlah bar per tahun utk M15, H1, D1 — temukan window padat.""" import os import numpy as np import datetime as dt BASE = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "..", "..", "Files", "AlgoForge", "Data")) def per_year(fname): z = np.load(os.path.join(BASE, fname)) t = z["time"].astype(np.int64) yrs = np.array([dt.datetime.utcfromtimestamp(int(x)).year for x in t]) out = [] for y in range(int(yrs.min()), int(yrs.max()) + 1): out.append((y, int(np.sum(yrs == y)))) return out for fname in ["XAUUSD_M15.npz", "XAUUSD_H1.npz", "XAUUSD_D1.npz"]: print("=== " + fname + " ===") rows = per_year(fname) for y, c in rows: bar = "#" * min(60, c // (max(1, max(r[1] for r in rows)) // 60)) print(f" {y}: {c:6d} {bar}") print()