Open a gold chart, set it to 15 minutes, and add the indicator. Nothing dramatic happens. There is no wall of coloured clouds and no oscillator panel with four lines crossing each other. The script marks the levels it cares about and stays quiet until a candle closes in a place that satisfies its rules.
That restraint is the design. An indicator that draws on every bar teaches the eye to see confirmation everywhere, and gold is volatile enough to reward that illusion for weeks before punishing it. GoldAlgo is described end to end in the product overview; this piece is about the TradingView side, which is where most of the practical mistakes happen.
Why the chart has to be XAUUSD on M15
Pine scripts run against whatever symbol and timeframe the chart is showing. There is nothing inside a script that forces the right pairing, which means the same indicator will happily produce output on EURUSD H4 and that output means nothing. The engine's conditions were built and tested for gold on M15, so anything else is a different calculation wearing the same name.
Symbol choice matters more than people expect. Different data feeds carry slightly different XAUUSD quotes, so a level printed from one feed can sit a fraction away from the same level on a broker's chart. That gap is normally small on gold, and it is one reason the signal quotes a level rather than instructing an exact fill. The wider question of how feeds and execution differ is covered in slippage.
Closed candles only
The condition that keeps the whole system honest is that signals are evaluated on closed bars. During a live candle, price moves through conditions and back out of them. A script permitted to fire mid-bar will announce a setup at minute four and take it back by minute eleven, which on a signal channel means a message that cannot be acted on and cannot be audited.
The tradeoff is delay. Waiting for the close costs up to fifteen minutes of the move. The alternative costs credibility, and on a chart where a single candle can travel several dollars, an alert that might be withdrawn is worse than an alert that arrives late. This is the same distinction described in indicator repainting, where the historical marks look perfect precisely because they were allowed to change after the fact.
If you are backtesting any indicator by eye, check whether its historical arrows were produced by closed-bar logic. A repainting script produces a chart that no live trader could ever have traded.
The stop loss cap lives in the script
Once a setup qualifies, the script measures the distance from the entry level to the structural invalidation. If that distance exceeds the configured pip cap, the setup is discarded rather than published. The default is to skip.
Two consequences follow. First, volatile sessions produce fewer signals, not more. Second, the risk per trade stays inside a band a trader can size for, which is what makes the arithmetic in position sizing workable from a message that contains no lot size. A trader who risks a fixed percentage of the account can compute their size from the published stop distance in seconds, every time, because the stop distance never runs away.
Alerts are snapshots, and this catches everyone
TradingView binds an alert to the exact version of the script that existed when the alert was created. Update the indicator and the existing alert keeps evaluating the old code, silently. Nothing on screen warns you. The chart shows new behaviour while the alert sends the old.
Two smaller settings cause the rest of the support questions. An alert created while the chart was on a different symbol keeps that symbol even after you switch the chart, because the binding is made at creation time. And an alert set to trigger "once per bar" behaves differently from "once per bar close" on some conditions, so the wrong choice can produce a message during a candle that the engine never intended to publish.
The fix is mechanical: after any indicator update, delete the alert and create it again on the refreshed script, on an XAUUSD 15 minute chart, using the "Any alert() function call" condition so the script controls the message payload. Alerts also carry expiry dates depending on plan, and an expired alert stops without ceremony. The full set of behaviours is in the TradingView alerts guide, and the transport layer is covered in TradingView webhooks.
What you see versus what subscribers receive
Someone running the indicator on their own chart sees the markers and the levels drawn in place. Someone receiving the Telegram relay sees a formatted message with direction, entry, stop and target. Both come from the same alert() call, and the payload is built inside the script so the two cannot drift apart.
Watching the chart alongside the channel is worth doing for a week or two. It shows you the setups that were skipped by the cap, which is the part of the system a message list can never display, and it gives you a feel for where the levels sit relative to structure before you trade one. Beyond that, the chart is optional: the delivery path from candle close to phone is described in the Telegram alerts article, and subscription details live on goldalgo.net.
None of this makes a signal a recommendation. The indicator publishes a level and an invalidation point. Trading gold with leverage carries a high risk of loss, sizing is the trader's decision, and no output from the script should be read as advice or as a claim about future results.
"People ask why the indicator is so quiet. Because most of what a 15 minute gold chart shows you is the market breathing, and there is nothing to say about breathing."
— Alex Onta, Executive Director, SINGUARD
Key Takeaways
- The script is only valid on XAUUSD at the 15 minute timeframe, because Pine runs against whatever chart it is placed on.
- Signals are evaluated on closed candles, trading a short delay for an alert that cannot be withdrawn.
- The stop distance cap is enforced inside the script, so wide setups are skipped and sizing stays predictable.
- An alert snapshots the script version it was created on, so every indicator update needs the alert recreated.
Frequently Asked Questions
Which chart does the GoldAlgo indicator have to run on?
XAUUSD on the 15 minute timeframe. The engine reads M15 candles, so an alert created on a 5 minute or 1 hour chart evaluates the conditions on the wrong bars and produces output the relay was never designed to send.
Does the indicator repaint?
Signals are evaluated on closed candles, which is the condition that prevents a marker appearing and then vanishing as the bar develops. Any indicator that fires intrabar can change its mind before the candle closes, so the close requirement is the design choice that keeps the alert honest.
Why does my alert stop matching the current indicator?
TradingView binds an alert to the version of the script that existed when the alert was created. After an indicator update the old alert keeps running the old logic, so the alert has to be deleted and recreated on the updated script.