Strategy Execution Iterations

Strategy Execution Iterations control how your strategy is executed across the selected backtest period. You can run the strategy as a single continuous execution or split the period into repeating intervals, with optional day-of-week and time-of-day filters to target specific trading sessions.

Execution Modes

When configuring a backtest, the Strategy Execution Iterations section offers two modes that determine how the engine processes the selected time period. The right choice depends on your strategy's timeframe and how it is designed to operate.

Once (Single Continuous Execution)

In Once mode, the strategy runs as a single continuous process from the start of the backtest period to the end. There is no resetting of state between sessions — the strategy maintains its positions, rule states, and account balance throughout the entire window.

Once mode is well suited for longer timeframes that hold positions for days or weeks, and also for deeply analysing the execution of a strategy over a specific time period — for example, to understand the logic that resulted in a trade opening or closing.

When you select Once mode, you also choose an analysis mode that determines the level of detail captured during the backtest. Analysis modes range from full event-level snapshots to summary-only results, letting you balance precision against execution speed.

Execute Every (Iterative Execution)

In Execute Every mode, the backtest period is split into repeating intervals. You choose the interval length — such as every day, every week, or every month — and the engine creates a separate execution for each interval. Each iteration begins with a fresh state: the same initial balance, no open positions, and no carryover from the previous interval.

This mode is valuable when you want to understand how your strategy performs when started fresh under different market conditions. By running the strategy independently across many intervals, you can see whether performance is consistent or whether it depends on specific market regimes.

When to Use Each Mode

Scenario Recommended Mode Why
Intra-day strategy (timeframe below 24 hours) Once A single continuous run captures how the strategy behaves across all sessions without resetting state.
Strategy that should start fresh each day Execute Every — Day Each day is an independent test, showing day-by-day consistency.
Weekly strategy evaluation Execute Every — Week Each week runs independently, useful for swing trading strategies.
Long-term strategy across months Execute Every — Month Each month runs independently, revealing monthly performance variation.
Testing specific days only (e.g., Mondays) Execute Every with day filter Filters let you target only the days that matter for your approach.

Day-of-Week Filtering

When using Execute Every mode, you can filter which days of the week the strategy should run on. This is useful when your trading approach targets specific days — for example, if you believe certain currency pairs behave differently on Mondays compared to Fridays, or if you only want to trade during the middle of the week.

The day filter lets you select one or more days. Only intervals that fall on the selected days will be included in the backtest. For example, if you choose Monday and Wednesday with a daily Execute Every interval, the engine will create an iteration for every Monday and Wednesday in the backtest period, skipping all other days.

This allows you to answer questions like:

  • Does my strategy perform better on certain days of the week?
  • Should I avoid trading on Fridays when liquidity tends to thin out before the weekend?
  • How does performance compare between early-week and late-week sessions?

Time-of-Day Windows

In addition to filtering by day, you can define one or more time-of-day windows that restrict when the strategy is active within each iteration. A time window specifies a start time and end time — the strategy will only execute during these hours.

You can add multiple time windows to capture different trading sessions within the same day. For example, you might configure two windows:

  • 8:00 AM – 12:00 PM — Morning session
  • 3:00 PM – 5:00 PM — Afternoon session

The strategy will be active during both windows and inactive between them. This is particularly useful for strategies that target specific periods of high liquidity or volatility, such as the opening hours of a particular exchange.

Time windows use the timezone you selected in the backtest configuration. Make sure the timezone is set to match the market you are trading so that session boundaries align correctly.

Market Exchange Sessions

Rather than manually defining time windows, you can select from preconfigured market exchange sessions. Arconomy includes built-in session definitions for major exchanges such as the NYSE, LSE, and others. Selecting a market exchange session automatically populates the time-of-day windows with the trading hours of that exchange.

This is a convenient shortcut when your strategy is designed to trade during the open hours of a specific market. The preconfigured sessions account for the standard trading hours of each exchange, so you do not need to look up and enter the times manually.

Combining Day and Time Filters

Day-of-week filtering and time-of-day windows can be combined to create highly targeted backtests. For example, you could configure a backtest that:

  • Runs every day (Execute Every — Day)
  • Only on Monday, Tuesday, and Wednesday
  • Only between 9:30 AM and 4:00 PM Eastern Time (NYSE trading hours)

This combination isolates the exact conditions under which you intend to trade, producing results that are directly relevant to your trading plan rather than diluted by sessions you would never actually trade.

Parallel Execution

When an iterative backtest generates many intervals, Arconomy can run the iterations in parallel to deliver results faster. Instead of processing each interval one after another, the engine distributes the work across multiple threads. This significantly reduces the total time required for large backtests with many iterations.

Parallel execution is handled automatically — you do not need to configure it manually. The engine determines the optimal degree of parallelism based on the number of iterations and available resources.

Preview Screen

Before starting the backtest, Arconomy displays a preview screen that summarises the iterations that will be executed. The preview shows you exactly how the date range has been divided, which days are included, and which time windows are active for each iteration.

The preview screen is an important checkpoint. Review it to confirm that the iteration setup matches your expectations before committing to the backtest run. If something looks wrong — too many or too few iterations, unexpected days included, or incorrect time windows — you can go back and adjust the configuration.

Always check the preview screen before starting a large iterative backtest. It is much faster to catch a configuration error in the preview than to wait for a full backtest to complete and then discover the settings were wrong.

Analysis Modes

Analysis modes control how much detail is captured during a backtest execution. They determine the frequency at which strategy state snapshots are recorded, which in turn affects both the depth of insight available in the results and the time required to complete the backtest.

When you select Execute Once, the full set of analysis modes is available. When using Execute Every (iterative execution), the default analysis mode is Final State (No Analysis) since each iteration produces its own summary results.

Full Analysis

Full Analysis is the most granular mode. Every time an event is processed during the execution of a strategy, a complete snapshot of the strategy state is recorded. An event is generated by a data update, a rule executing, or a trade update.

By capturing the state of the strategy after each event, you can precisely walk forward and backward through the timeline of a strategy execution and trace the state of every rule and trade. This is analogous to stepping through and debugging code, except you can move both forward and backward in time.

Due to the amount of data generated, Full Analysis requires the highest compute resources and results in the longest execution time. Use it on shorter time periods when you need event-level precision.

Time-Based Analysis

In Time-Based Analysis mode, the strategy state is captured at regular time intervals — for example, every 5 seconds. This provides a consistent temporal view of strategy execution dynamics without recording every individual event.

Time-Based Analysis is ideal for strategies where event-level monitoring is not required but you still want to observe how the strategy evolves over time. You can configure the interval to balance fidelity and the time required to complete the backtest — shorter intervals capture more detail but take longer to process.

Trade-Level Analysis

In Trade-Level Analysis mode, strategy state snapshots are captured only at trade-related events — such as positions opening and closing. This provides an efficient way to understand how the strategy behaves at trading decision points without recording intermediate state changes.

Trade-Level Analysis strikes a good balance between insight and performance. It gives you visibility into the strategy state at every point where a trading decision was made, while skipping the data updates and rule evaluations in between.

Final State (No Analysis)

In this mode, only the final state of the strategy is captured. No intermediate snapshots are recorded during execution. This is the fastest mode and is the default for iterative backtesting (Execute Every), where each iteration produces summary performance results.

Use Final State mode when you are focused on overall performance metrics rather than the specifics of how the strategy arrived at those results. It is the right choice for running large numbers of iterations where execution speed matters most.

Choosing an Analysis Mode

Analysis Mode Snapshots Captured Best For Speed
Full Analysis Every event (data update, rule execution, trade update) Debugging strategy logic, tracing rule state step by step Slowest
Time-Based At regular time intervals (configurable) Observing strategy dynamics over time without event-level detail Medium
Trade-Level At trade events (position open/close) Analysing trading decisions without intermediate noise Fast
Final State End of execution only Performance summary, iterative backtesting Fastest

The analysis modes support an iterative strategy development process that moves from detailed debugging to broad performance validation:

  1. Develop and debug — Start by testing your strategy against a short, specific time period using Full Analysis or Time-Based Analysis. Use the detailed snapshots to identify misconfigurations in the strategy and iterate on the decision logic until the strategy executes as intended.
  2. Validate with iterations — Once the strategy is executing correctly, switch to Execute Every mode and run multiple iterations against a longer in-sample time period. The default Final State analysis mode keeps execution fast while providing summary performance results for each iteration.
  3. Investigate outliers — Review the iteration results for any outliers in performance. Outlier iterations can be re-tested individually using Execute Once with a more detailed analysis mode to understand what happened and whether the strategy logic needs adjustment.
  4. Out-of-sample and walk-forward testing — Once performance is acceptable across the in-sample period, test the strategy against an out-of-sample time period to verify that results hold on data the strategy has never seen. Walk-forward testing can also be performed to further validate robustness.

Start detailed and zoom out. Use the most granular analysis mode to get the strategy logic right on a short period, then progressively use faster modes across longer periods to validate performance.

Benefits of Iterative Execution

Running your strategy across multiple independent iterations provides several advantages over a single continuous run:

  • Consistency analysis — By reviewing performance across many independent intervals, you can see whether results are consistently positive or whether they depend on a few lucky periods.
  • Session targeting — Day and time filters let you test exactly the conditions you plan to trade, producing results that directly reflect your intended trading schedule.
  • Fresh-start realism — Strategies that are designed to start clean each day or week are tested the way they will actually be deployed, with state resetting between intervals.
  • Faster feedback — Parallel execution means you get results quickly even when testing hundreds of intervals.

Was this helpful? Let us know