No cache found — fetching full history from yfinance (first run).
Fetching latest bars from yfinance (days=1000)...
  Cache updated: 19,873 bars saved to /opt/fx-cache/daily_bars.parquet.
  710 daily bars, 28 pairs, 2023-06-20 -> 2026-03-15
Computing signals...

======================================================================
  LIVE SIGNAL — Pair Rotation Strategy
  Signal date : 2026-03-15
  Generated   : 2026-03-15 12:13 UTC
  Params      : EMA 90/195 | ADX 28 | Leverage 10x | MaxPairs 9 | MaxCcyExp 3
======================================================================

--- Session Advisory (12:13 UTC) ---
  Execution window : INACTIVE
  Market closed (Sunday). Do not rebalance. Next window: Monday 07:00 UTC (London pre-open).

--- Risk-Off Status ---
  STATUS : RISK-ON
  SESSION: Outside execution window — hold current positions

--- Currency Scores ---
  Currency     Score     ADX  Status
  ------------------------------------------
  EUR         +0.000     0.0  NEUTRAL
  USD         +0.000     nan  BLOCKED
  GBP         +0.000    20.0  BLOCKED
  JPY         +0.000    14.3  NEUTRAL
  CHF         +0.000     nan  BLOCKED
  AUD         +1.000    48.4  BULLISH
  CAD         -1.000    35.1  BLOCKED
  NZD         +0.000    20.0  NEUTRAL

--- Target Allocations ---
  Pair        Dir    Weight    Lev Notional     Score
  ----------------------------------------------------
  AUDNZD     LONG    50.4%  EUR    503,582    +1.000
  EURAUD    SHORT    49.6%  EUR    496,418    -1.000
  ----------------------------------------------------
  Total long  :   50.4%  (EUR    503,582)
  Total short :   49.6%  (EUR    496,418)
  Gross exposure: 10x notional

--- Blocked Currencies ---
  CAD, CHF, GBP, USD
  (Blocked by econ event / exhaustion / abs-momentum filters)