Docs  /  Fusion Optimizer User Guide

Fusion Optimizer User Guide

The NinjaTrader Strategy Analyzer bridge for optimizing Fusion Builder strategies.

Fusion Optimizer lets NinjaTrader sweep selected numeric parameters from a Fusion Builder strategy and rank the results in Strategy Analyzer. You choose the parameters and ranges in Fusion Builder, save the .fus template, then load that template in Fusion Optimizer.

Fusion Optimizer is for backtesting and optimization. It is not the live-trading control panel. Use Fusion Strategy for live or sim automation.


Table of Contents

  1. Before You Start
  2. What Fusion Optimizer Does
  3. The Core Idea: Param 1 Through Param 20
  4. Builder Workflow
  5. NinjaTrader Strategy Analyzer Workflow
  6. Property Reference
  7. Supported V1.0 Parameter Types
  8. V1.0 Limitations
  9. Reading Optimization Results
  10. Performance Tips
  11. Troubleshooting
  12. Frequently Asked Questions

Before You Start

Fusion Optimizer depends on a saved Fusion Builder .fus template.

A pasted SetupID can describe the strategy logic, but it does not carry the optimizer parameter map, readable labels, min/max/step ranges, or Strategy Analyzer preset settings. For optimization, use Template File.

Before optimizing:


What Fusion Optimizer Does

Fusion Optimizer:

Fusion Optimizer does not edit the Builder canvas. It uses the saved template as input.


The Core Idea: Param 1 Through Param 20

NinjaTrader’s optimizer sees generic rows named Param 1, Param 2, and so on.

Fusion Builder owns the readable mapping.

Example:

NinjaTrader slotBuilder parameter
Param 1RSI Period
Param 2RSI Long Threshold
Param 3Entry Stop Loss Value
Param 4Max Daily Loss

Always check Parameter Map in Fusion Optimizer before running. It tells you what each slot controls.

Unused slots should be left alone. They are not part of the active optimization.


Builder Workflow

1. Build and validate the strategy

Create the strategy in Fusion Builder first. Optimizer mappings only matter when the canvas has a valid strategy path.

Recommended checks:

2. Open the Optimizer tab

In Fusion Builder, open the Optimizer tab.

The tab lets you select numeric parameters, review min/max/step ranges, and set Strategy Analyzer preset values.

3. Choose parameters

Start small.

Recommended first pass:

Large combinations grow quickly. Five parameters with ten choices each is 100,000 analyzer runs.

4. Review Strategy & Risk settings

Risk rules are part of the strategy. If they are enabled, they affect optimization.

Examples:

Leave those rules off unless they are intentionally part of the test.

5. Save the .fus template

Save or Save As the Fusion template.

The .fus stores:

Fusion Optimizer reads this template from NinjaTrader Strategy Analyzer.


NinjaTrader Strategy Analyzer Workflow

1. Open Strategy Analyzer

Open NinjaTrader’s Strategy Analyzer and choose Optimization as the test type.

2. Select Fusion Optimizer

Choose Fusion Optimizer as the strategy.

3. Clear old state when reusing a grid

If you previously used the same Strategy Analyzer grid for a different Fusion template:

  1. Check Clear SetupID + Reset Fusion Indicator.
  2. Click Apply.
  3. Wait for the checkbox to reset.

This clears stale setup, template, optimizer payload, Param defaults, and hosted runtime state.

4. Select Template File

In the Fusion Optimizer property group, choose the saved Builder .fus template from Template File.

Selecting the template loads:

It also generates a matching NinjaTrader strategy template for the optimizer ranges.

5. Confirm the Parameter Map

Read Parameter Map.

Confirm:

6. Run the optimization

Run the optimization after the grid looks correct.

For a first test, use a short date range and a small number of combinations. Once the workflow is proven, expand the range.


Property Reference

Template File

Selects the saved Fusion Builder .fus template.

Use this for optimization. It is the normal path.

SetupID

The runtime formula loaded from the template.

For optimizer work, you usually do not paste this manually. Let Template File populate it so the optimizer payload and readable parameter map come along with it.

Clear SetupID + Reset Fusion Indicator

Clears the current SetupID, Template File, optimizer payload, Param defaults, Parameter Map, and hosted Fusion Indicator state.

Use this before switching to a different template in the same Strategy Analyzer grid.

Parameter Map

Read-only summary of the active Param slots.

Use this to translate NinjaTrader’s generic Param rows back to the Builder parameters they control.

Param 1 through Param 20

The numeric optimizer slots exposed to NinjaTrader.

The active slots are defined by the Builder template. Do not assign meaning to a Param number without checking Parameter Map.

Runtime Configuration

Read-only summary of the decoded strategy contract.

Use it to confirm:

Show Fusion Indicator Plot

Adds the hosted Fusion Indicator plot when Fusion Optimizer is attached to a chart.

For large Strategy Analyzer runs, leave chart visualization off unless you specifically need it.


Supported V1.0 Parameter Types

Fusion Optimizer supports selected numeric parameters from supported strategy paths.

Common supported categories:

Examples:

The unit or mode stays fixed. For example, optimizing a Take Profit value changes the number, not whether the target is ticks, ATR, points, or percent.


V1.0 Limitations

Ambiguous Entry condition parameters

V1.0 does not optimize Entry-owned condition fields when the Entry trigger contains multiple S-Conditions or ambiguous composite logic.

If the Optimizer tab hides a parameter, do not force it through the Param grid. Build a narrower template or select a supported numeric field.

V1.0 does not optimize settings that change the shape or meaning of the strategy, such as:

Change those in Builder, save a new template, and run a separate optimization.

Weighted Blend weights

Weighted Blend works in backtests, but its weights are fixed for V1.0 optimizer purposes. The weights must remain normalized, so they are not exposed as independent Strategy Analyzer slots.

Strategy Analyzer is not live trading

Strategy Analyzer is historical/backtest-style. Some live intrabar timing and risk behavior cannot be reproduced perfectly by Strategy Analyzer.

Use optimizer results as candidates, not proof.


Reading Optimization Results

Each row in the optimization results grid represents one parameter combination.

When reviewing results:

  1. Read the Param values on the selected row.
  2. Use Parameter Map to translate those slots into Builder terms.
  3. Click the row to inspect its equity graph, trades, executions, and summary.
  4. Compare multiple top rows, not only the first row.
  5. Review drawdown, trade count, and consistency.
  6. Validate the selected row with a normal backtest.
  7. Validate out of sample.

Profit Factor warning

Be careful with raw Profit Factor as a fitness metric.

A single winning trade with no losing trades can produce an extremely high or infinite Profit Factor. That row can rank first even though the sample size is too small to trust.

For first-pass sweeps, consider a metric such as Net Profit or another sample-size-aware review process, then manually inspect trade count and drawdown.


Performance Tips

Optimization cost grows by multiplication.

Example:

ParameterChoices
Param 110
Param 210
Param 310
Param 410

Total runs: 10,000.

To keep the first pass manageable:


Troubleshooting

Param ranges do not appear in Strategy Analyzer

After selecting Template File, Fusion Optimizer generates the matching NinjaTrader strategy template.

If ranges still do not appear:

  1. Re-select the .fus Template File.
  2. Click Apply.
  3. Load the generated NinjaTrader strategy template with the same name as the .fus file.
  4. Confirm Parameter Map and ranges again.

Every result row looks identical

Likely causes:

Fix:

  1. Click Clear SetupID + Reset Fusion Indicator.
  2. Re-select the Template File.
  3. Confirm Parameter Map.
  4. Run a small test sweep.

The optimizer warns that 0 substitutions were applied

This means optimizer mappings exist, but the sweep did not change the effective strategy.

Treat this as a configuration problem. Re-save the template in Builder, reload it in Fusion Optimizer, and confirm Parameter Map before running again.

A top row has only one trade

This can be normal, especially when optimizing on Profit Factor. A one-trade winner can rank highly because it has no losing trades.

Review trade count, drawdown, and out-of-sample behavior. Do not trust one-trade winners by ranking alone.

Order Flow templates are slow or blank

Order Flow and volumetric templates need the appropriate NinjaTrader data and entitlement. They can also be much slower in Strategy Analyzer.

Start with a smaller date range and confirm the data is available.

The selected row does not behave like expected

Click the row and inspect the detail tabs first. For manual validation:

  1. Open a normal Strategy Analyzer Backtest.
  2. Select Fusion Optimizer.
  3. Load the same Template File.
  4. Type the selected row’s Param values into the grid.
  5. Run the backtest.

Frequently Asked Questions

Q: Should I use Fusion Strategy or Fusion Optimizer in Strategy Analyzer?

A: Use Fusion Optimizer when you want to sweep Builder parameters. Use Fusion Strategy for live/sim automation and normal strategy operation.

Q: Can I optimize from a pasted SetupID only?

A: Not reliably. Use Template File. The .fus template carries the optimizer map and ranges.

Q: Why does NinjaTrader show Param 1 instead of my indicator name?

A: NinjaTrader sees generic optimizer slots. Use Parameter Map to see which Builder parameter each slot controls.

Q: Can I optimize more than 20 parameters?

A: V1.0 exposes up to 20 optimizer slots. In practice, you should usually use far fewer.

Q: Can I optimize booleans or dropdowns?

A: Not in V1.0. Optimize supported numeric fields, and save separate templates for topology or mode changes.

Q: Does Fusion Optimizer prove a strategy is ready for live trading?

A: No. It finds candidates. Validate with normal backtests, out-of-sample ranges, Playback, and Sim101 before live use.

← All guides