# ── Core data stack ────────────────────────────────────────────────
pandas>=2.0          # DataFrame everywhere; bars/trades/metrics
numpy>=1.24          # vectorized indicator math
pyarrow>=14.0        # Parquet backend for pandas (.parquet bars & features)

# ── Optimizer ──────────────────────────────────────────────────────
optuna>=3.5          # TPE sampler, SQLite-persisted studies, visualization
sqlalchemy>=2.0      # Optuna's sqlite:// storage backend
plotly>=5.18         # optuna.visualization + dashboard HTML rendering
tqdm>=4.65           # progress bars (also used by optuna)

# ── MT5 bridge (Windows-only) ─────────────────────────────────────
MetaTrader5>=5.0.45  # connect MT5 terminal, pull history, query symbol spec
                    # NOTE: only installs on Windows. On non-Windows dev
                    # boxes you can still edit shared/ + strategies/ code,
                    # but the data-download / verify scripts won't run.

# ── Report parsing & config ────────────────────────────────────────
lxml>=4.9            # parse MT5 Strategy Tester HTML reports (fast path)
html5lib>=1.1        # fallback HTML parser for malformed reports
PyYAML>=6.0          # shared/wizard/wizard.py — wizard-answers.yaml I/O
python-dotenv>=1.0   # optional .env loader (shared/config.py has a plain
                    # fallback, so this is convenience not a hard dep)
