Two Clocks, One Ledger
Shared capital across 15m entries and 4h entries
max_open_trades per leg · chronological fills
July 2, 2026 · 6 min read
Dual timeframe sounds like running two backtests and adding the curves. That's not how capital works when both legs can fire on the same symbol.
Shared vs split
We support both, but shared capital is the interesting case: one equity curve, one max-leverage budget, two books (15m and 4h) interleaved in time. Entries size from current equity at the moment of the signal — not from a frozen slice allocated at startup.
Per-leg limits
max_open_trades applies per leg, not globally. You can hold a 15m position and a 4h position simultaneously if the rules allow it — but you can't stack three 15m positions just because the backtester looped faster.
Why chronological interleaving matters
- A 4h loss at 08:00 should shrink the 15m entry at 08:15 — not the other way around.
- Fees and slippage apply per fill; combined metrics must reflect one account, not sum of fantasies.
- Attribution per leg is reported, but equity compounding is shared — no double-counting initial capital.
The implementation is unglamorous: merge event streams, one portfolio, book keys that tag trades by timeframe for reporting. Unglamorous is good. It's how you avoid deploying a backtest that assumed two infinite wallets.