System architecture (section 4.1)

+------------------------ TRAINING (Python) -------------------------+
|  MT5 API -> validation -> SHARED feature module -> Gymnasium env   |
|  -> PPO (SB3) -> walk-forward CV -> multi-seed -> Optuna           |
|  -> promotion gates -> [model.zip + normalizer + manifest]         |
+--------------------------------------------------------------------+

                                  |
                          manifest contract
                                  v

+---------------------------- EXECUTION -----------------------------+
|  Option A: Python trader using the MetaTrader5 package directly    |
|  Option B: MQL5 EA + local Python inference service                |
|  Both: SHARED feature module, contract validation, risk controls   |
+--------------------------------------------------------------------+


Walk-forward layout (section 5.1)

Fold 1: [====TRAIN====]--embargo--[VAL]
Fold 2:      [====TRAIN====]--embargo--[VAL]
Fold 3:           [====TRAIN====]--embargo--[VAL]
Final:  [========TRAIN========]--embargo--[VAL]--[TEST]

Train/test split (section 3.4)

WRONG - Random Split:
Data:  [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
Train: [Jan, Mar, May, Jun, Aug, Oct, Dec]   <- Future data mixed in!
Test:  [Feb, Apr, Jul, Sep, Nov]

RIGHT - Temporal Split with embargo:
Data:  [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
Train: [Jan .. Aug] --embargo-- Val: [Sep, Oct] -- Test: [Nov, Dec]
