ICT OTE (Optimal Trade Entry) indicator for NinjaTrader 8
It draws the OTE zone, the 62% to 79% retracement (70.5% sweet spot) of a displacement leg that shifted market structure, and combines it with a Fair Value Gap or an order block inside the zone. Limit in the OTE, stop beyond the 100% anchor, targets on the -0.27 and -0.62 extensions.
The download takes two steps, from the “Free indicators” section of the home page.

- Platform
- NinjaTrader 8
- File
- NinjaScript (.cs), readable source code
- Calculation
- /outils/calculateur-position-futures,Futures position size calculator,How many contracts for a given risk, with each contract’s tick value.
- Price
- Free
- File updated on
- 8 October 2026
How the indicator works
- Dealing range. The leg must cover at least 3 × ATR and break structure with displacement (0.8 × ATR, confirmed on close). Optionally, the swing that starts the leg must have taken an earlier swing.
- OTE zone. From 0.62 to 0.79 retracement, sweet spot at 0.705 (all three levels are settings). By default a confluence is required: an FVG of the leg (first choice) or an order block inside the OTE.
- Entry. By default the middle of the FVG or order block part inside the OTE (the sweet spot without one); or the sweet spot, or the 62% / 79% edges.
- Trade. Stop beyond the 100% level with a buffer, target on the -0.27 extension (or -0.62, the swing origin, or a fixed R:R), minimum R:R of 2. The range expires if price does not reach the OTE within 60 bars.
- Display. Fibonacci levels, OTE zone, confluence, leg, MSS and sweep, and a meter to the right of price showing the live retracement against the OTE and equilibrium.
Markets and timeframes
- Any instrument loaded in NinjaTrader 8: index futures (ES, NQ…), energy, metals, forex. Thresholds combine a floor in ticks with an ATR multiple, so they stay consistent from one market to the next.
- Times are New York time. With the “NewYorkAuto” reference, the conversion from your chart time zone and daylight saving are handled automatically.
- Calculated on every tick in real time; by default the whole loaded history is analysed.
Requirements
- NinjaTrader 8, a desktop platform for Windows. The indicator is free; NinjaTrader is third-party software with its own terms, and it may cost money depending on how you use it (licence, live trading).
- Data. The chart bars are enough: no Tick Replay or market depth needed. Your connection’s data may cost money depending on the exchange and the subscription.
Settings
Each setting is named exactly as NinjaTrader shows it, with its default value read directly from the source code (.cs).
1. Dealing Range
| Setting | Default | What it does |
|---|---|---|
| Swing strength | 3 | Bars on each side of a swing high / low (strict on the left: equal highs stay liquidity). |
| Min leg size (x ATR) | 3.0 | The displacement leg must cover at least this many ATRs. |
| Min displacement (x ATR) | 0.8 | Body of the candle that shifts structure. 0 = off. |
| MSS requires a close | yes | |
| Require a liquidity sweep | no | The swing that starts the leg must have taken an earlier swing low (longs) / high (shorts). |
| Structure lookback (bars) | 100 | |
| ATR period | 14 |
2. OTE Zone
| Setting | Default | What it does |
|---|---|---|
| OTE start (retracement) | 0.62 | ICT: 0.62. |
| OTE sweet spot | 0.705 | ICT: 0.705. |
| OTE end (retracement) | 0.79 | ICT: 0.79. |
| Confluence required | FvgOrOb | FvgOrOb (default) = a Fair Value Gap of the leg (priority) or an Order Block inside the OTE. Off = the fibonacci zone alone. |
| Min FVG size (ticks) | 1 | |
| Min FVG size (x ATR) | 0.05 |
3. Trade
| Setting | Default | What it does |
|---|---|---|
| Allow longs | yes | |
| Allow shorts | yes | |
| Entry | ConfluenceMid | ConfluenceMid = middle of the FVG / OB part inside the OTE (sweet spot without one). SweetSpot = 0.705. Fib62 / Fib79 = edges of the zone. |
| Target | Extension27 | Extension27 / Extension62 = ICT extensions beyond the swing. SwingOrigin = the 0% level. FixedRR = multiple of the risk. |
| Extension 1 | 0.27 | ICT: 0.27 (drawn as -0.27). |
| Extension 2 | 0.62 | ICT: 0.62 (drawn as -0.62). |
| Min R:R | 2.0 | |
| Fixed R:R | 3.0 | |
| Stop buffer beyond 100% (ticks) | 2 | |
| Stop buffer beyond 100% (x ATR) | 0.1 | |
| Bars allowed to reach the OTE | 60 | After the structure shift. Beyond it the range expires. |
| Breakeven at the 0% origin | no | Once price trades back to the swing that ended the leg, the stop moves to the entry. |
4. Killzones (New York Time)
| Setting | Default | What it does |
|---|---|---|
| Fill only inside killzones | no | Off (default) = the indicator works around the clock. On = limits only fill inside the enabled killzones. |
| Show killzone band | yes | |
| London | yes | |
| London start (HHMM) | 200 | |
| London end (HHMM) | 500 | |
| New York AM | yes | |
| New York AM start (HHMM) | 700 | |
| New York AM end (HHMM) | 1000 | |
| New York PM | yes | |
| New York PM start (HHMM) | 1330 | |
| New York PM end (HHMM) | 1600 | |
| Asia | no | |
| Asia start (HHMM) | 2000 | |
| Asia end (HHMM) | 0 | An end earlier than the start wraps past midnight. |
| Time reference | NewYorkAuto | NewYorkAuto = New York times (daylight saving handled), converted from the chart time zone. |
| Manual offset (hours) | 0 |
5. Real Time
| Setting | Default | What it does |
|---|---|---|
| Calculate on every tick (real time) | yes | |
| History analysed (bars, 0 = all) | 0 |
6. Display
| Setting | Default | What it does |
|---|---|---|
| Fibonacci levels | yes | |
| Fibonacci on finished ranges | no | |
| OTE zone | yes | |
| FVG / order block confluence | yes | |
| Leg, MSS and sweep | yes | |
| Entry / stop / target | yes | |
| Labels | yes | |
| Keep ranges that never filled | no | |
| Retracement meter | yes | Rail to the right of price: OTE band, 70.5%, equilibrium and the live retracement. |
| Meter offset (px) | 36 | |
| Dashboard | yes | |
| Ranges kept on chart (0 = all) | 15 | |
| Zone opacity (%) | 22 |
7. Alerts
| Setting | Default | What it does |
|---|---|---|
| Alert on new dealing range | no | |
| Alert on limit armed | yes | |
| Alert on entry | yes | |
| Alert on target / stop | no | |
| Sound file | Alert4.wav | File name from the NinjaTrader sounds folder (or a full path). Empty = silent. |
| Alert rearm (seconds) | 15 |
8. Trading Evolution
| Setting | Default | What it does |
|---|---|---|
| Show logo | yes | |
| Show name | yes | |
| Logo position | TopLeft | |
| Logo size (px) | 54 | |
| Logo opacity (%) | 55 | |
| Diagnostic mode (Output window) | no |
11 colours you can customise in NinjaTrader's Colours tab.
Installation in NinjaTrader 8
- Download the free pack (ZIP file) that contains the indicator from the Free indicators section of the home page.
- In NinjaTrader 8, open Tools › Import › NinjaScript Add-On, choose the ZIP file, then restart NinjaTrader.
- Activate your free license: Control Center › New › Trading Evolution License, then save your key.
- On a chart, open the indicator list (right-click › Indicators) and add “TRADING EVOLUTION - OTE”.
Common problems and fixes
- Nothing shows. Load enough history (several days intraday): the model needs swings and complete sessions to detect a setup.
- The indicator is not in the list. Check that the pack import (Tools › Import › NinjaScript Add-On) finished without an error, then restart NinjaTrader. NinjaTrader compiles every script together: an error in another installed script can block the import, so fix or remove that script. If the tool shows a license message, save your free key in Control Center › New › Trading Evolution License.
- “Already contains a definition” error. An older copy of the same indicator exists under another file name: delete it, then compile again.
Limitations
- It is an indicator, not an automated strategy: it sends no orders and manages no positions.
- Thresholds (swing strength, displacement, FVG size, minimum R:R) are setting choices, not official ICT rules. Adjust them to your market and timeframe.
- The “won” or “lost” trades shown refer to the loaded history. They say nothing about future results.
- No signal is guaranteed: futures trading involves a risk of losing capital.
Frequently asked questions
Is the indicator free?
Yes, the indicator is free (free pack and free license), with no subscription. It requires NinjaTrader 8, third-party software with its own terms of use.
Does it place orders?
No. It draws the setups and can play sound alerts, but you decide and you place your own orders.
Does the OTE need an FVG?
By default yes: the FvgOrOb confluence requires an FVG of the leg or an order block inside the OTE. The Off setting uses the Fibonacci zone alone.
Can the 62%, 70.5% and 79% levels be changed?
Yes, the start, sweet spot and end of the zone are settings, and so are both extensions.
Related concepts and tools
Other free NinjaTrader 8 indicators
Related articles
Educational content. These indicators are not investment advice and guarantee no result. Futures trading involves a risk of loss that can exceed the initial investment. Terms of use · Disclaimers