NRUNO · TradingView + cTrader
Why does my TradingView strategy enter one bar late?
A trade marker on the next candle does not automatically mean your connection is slow. First separate the strategy's signal, its simulated fill and the actual order in cTrader.
Reviewed 16 September 2026 - NRUNO
What process_orders_on_close changes
With default strategy settings, a condition evaluated at a bar's close can create a market order that the emulator fills at the next bar's open. Setting process_orders_on_close = true allows an order created on the closing tick to fill on that tick instead. It changes simulated order timing, not your broker's response speed.
For example, on a five-minute chart, a signal belongs to the 10:00-10:05 candle. A fill shown on the 10:05 candle may be its opening tick, immediately after the signal candle closes. The marker moving one candle right does not necessarily mean five minutes of network delay.
Compare both settings on the same chart
This small example is for inspecting the Strategy Tester, not a trading recommendation or an NRUNO alert template. Do not connect it to a live webhook.
//@version=6
strategy("Timing comparison", overlay = true, process_orders_on_close = false)
average = ta.sma(close, 20)
enterLong = ta.crossover(close, average)
leaveLong = ta.crossunder(close, average)
if enterLong
strategy.entry("Long", strategy.long)
if leaveLong
strategy.close("Long")
plot(average, title = "Average")
Run it on standard candles. Record one crossover and its entry marker. Change only false to true, then compare the same event. Check the strategy's Properties as well: a saved user setting can override the code's default. Keep symbol, timeframe and the other calculation settings unchanged.
Do not confuse these three settings
| Setting | Changes | Does not prove |
|---|---|---|
process_orders_on_close | Whether closing-tick orders can fill on that tick in the emulator. | That cTrader filled at the chart's closing price. |
calc_on_every_tick | Whether a strategy recalculates on realtime price updates. | That historical bars contain the same tick sequence. |
calc_on_order_fills | Whether the strategy recalculates after a simulated fill. | That a real broker fill was received. |
Enabling every option is not a general speed fix. It changes what your strategy does. See TradingView's calculation settings.
Find where the delay actually begins
- Start with one event. Note its symbol, timeframe and TradingView alert-log time. Use a common timezone when comparing logs.
- Check the alert type. An order-fill alert follows the emulator's fill. An
alert()message follows the code that emits it. Compare like with like using our alert-type guide. - Open that signal in NRUNO. Compare receipt and execution details rather than the chart marker alone. If it never arrived, use the webhook troubleshooting guide.
- Confirm the outcome in cTrader. Match the symbol, direction and final position. A received webhook is not proof of a successful broker order.
Send support the signal ID and the two timestamps if the stage causing the delay is unclear. Keep your private webhook URL and account credentials out of public screenshots.
The session-close limitation
A backtest may show a fill at the last candle's close even though a real order sent after that close cannot trade until the market reopens. Changing this flag cannot make a closed market accept an order. Check your broker's symbol session and compare on demo before changing live execution. TradingView documents this mismatch.
After changing script settings, recreate the running alert. Otherwise your chart and the alert can be using different versions.
Connect your TradingView alerts to cTrader
Try NRUNO free for 14 days, with no payment card and no automatic paid subscription. Get help with your setup before choosing a paid plan.