An AI model can write a TradingView indicator in an afternoon, and in most of our tests the code it hands back is usable. What it cannot hand you is evidence. A short video of arrows landing on perfect entries is the weakest evidence there is, and when the indicator only runs inside a “reverse-engineered” copy of TradingView, the video is not selling an indicator at all.
AI Writes the Indicator. That Was Never the Hard Part.
The hard part of an indicator is proving that it does live what it appears to do on a chart. Writing the code is the easy part, and AI is good at it.
At barmenteros FX we use AI every day, and in most of our tests it produces Pine Script that compiles, plots and follows the request. So this is not an article about AI being unable to code. It can.
Our position is narrower and, we think, more useful: the problem is not that AI writes the indicator badly. The problem is that nobody measures it. A chart that “looks right” is the least evidence an indicator can offer, and we do not deliver one before we have counted its signals at the bar close.
That gap between “it draws” and “it was measured” is exactly where the current wave of AI-indicator posts lives. Three things close it: knowing what a chart cannot show, counting what the rule actually does, and checking where the thing runs before you install anything.
Why a Chart Video Proves Nothing: Historical Bars Are Not Live Bars
On a recorded chart, every signal sits on a finished bar. Live, the script runs on a bar that is still forming. TradingView’s own documentation on repainting (opens in a new tab) names the difference: it defines repainting as “script behavior causing historical vs realtime calculations or plots to behave differently.”
Two mechanisms do most of the damage.
1. Signals decided before the bar closes. On the live bar, an indicator’s values follow the most recent price and only become final when the bar closes. An arrow can appear at 10:03, vanish at 10:07 and never exist in the history. A video recorded afterwards shows only the arrows that survived.

2. Data requested from another timeframe. Many indicators read a higher timeframe through request.security(). The documentation explains that on historical bars this function returns only confirmed values, while on live bars it can return values that are still changing. Used carelessly with lookahead, it does worse: it returns data from the future on historical bars, which the documentation calls “dangerously misleading.” TradingView moderates published scripts that use the technique to mislead.
The consequence for a trader is simple. An indicator can look flawless on history because, on history, it is allowed to know things it will never know live. The documented fix exists (request the value one bar back and turn lookahead on, both together), but a video will never tell you whether the script uses it.
Two checks take a couple of minutes:
- Run the indicator in Bar Replay (the Replay button above the chart) and watch whether signals appear and then disappear as bars form.
- Create the alert on the indicator itself, not on price, and set its trigger to Once per bar close. Then compare what fires live with what the history shows a day later. (A plain price alert does not offer that option; an indicator alert does.)
If you want the developer’s side of the same problem, our guide to closed vs live candles explains why an EA should usually read bar 1, not bar 0.
Code That Compiles and Draws Can Still Decide on the Wrong Bar
Even an indicator that does not repaint can be wrong in a way no chart glance shows. A clean compile and a plotted line say nothing about whether each decision happens on the right bar.
We met this in our own work. Our specification for a client’s Pine v6 alert indicator gave the decision as one expression: a bar-close check and a data check, joined by and to a ta.crossover(...) call.
It looks harmless. It is not, because of a change in Pine v6. TradingView’s migration guide to Pine v6 (opens in a new tab) states that “the and and or conditions are now evaluated lazily rather than strictly.” When the first condition is false, the rest of the expression is skipped. On every bar where the bar-close check was false, the crossover call did not run, so it never recorded that bar. Its idea of “the previous value” went stale.
Built as written, the indicator would have compiled, plotted and still fired now and then, on the wrong bars, with no error anywhere. We caught it in our own review of the specification against the migration guide, during the build and before the first run. The fix follows the guide’s own instruction to “ensure that the script evaluates all functions that rely on previous values on each bar”: we moved the crossover calls to their own variables, calculated on every bar, and referenced those in the decision.
That code was ours, not an AI’s. That is the point. This class of defect does not care who wrote the line, and an indicator generated from older examples meets the same rule. Only a review against the documentation, or a measurement, finds it. A chart does not. We covered the MetaTrader side of the same gap in why AI-generated MQL code compiles but fails in live trading.
Count the Signals Before You Trust the Rule
The cheapest real evidence for an indicator is a count: how many signals the rule gives over a stated window, at the bar close, on the symbols you actually trade.
A client of ours expected a Pine crossover-alert rule to fire about three times a month. Before they armed it, we counted with the script’s own counters over about three and a half weeks of history per symbol, with the shipped settings. The count came out at roughly ten times what they expected, on every symbol we measured.
Nothing in the code was wrong. The rule simply fired far more often than its owner pictured. The delivery note said so plainly and named the two settings that make the rule rarer. Our first count had run on symbols carried over from an earlier project; when the client named the ones they trade, the re-count told the same story. They kept the strict rule, based on their own trading, and trimmed the set of alerts they run. The decision was theirs to make because the number existed before the first alert did.
When an indicator claims results rather than signals, the evidence is a strategy report, and two of its settings decide whether that report means anything:
- Costs. In Pine, commission is set (opens in a new tab) with
commission_typeandcommission_valuein thestrategy()declaration. If they are not specified, no commission is applied. Slippage defaults to 0. A report with both at their defaults trades for free. - Data the rule was not tuned on. Results on the same period the settings were chosen from measure the fit, not the rule. We wrote about how more optimization can make a system worse.
If an “AI indicator” comes with a profit figure but no report, no costs and no date range, the figure is not evidence of anything you can check.
Where an AI Indicator Runs Is the First Check
A TradingView indicator runs inside TradingView. Nothing legitimate needs a modified copy of the app.
TradingView’s own publishing rules (opens in a new tab) make this easy to verify. A script published publicly appears in the Community scripts feed. Its author chooses one of three visibility types: open, where anyone can read the Pine code; protected, where only the author can see the code; and invite-only, where only invited users can run it. An “open-source” indicator, in TradingView’s terms, is one whose code you can open and read on its own page.
So an offer that says the indicator works only inside a “reverse-engineered TradingView Premium” app for Windows or Mac is not describing an indicator. It describes an installer. Security vendors have documented that exact lure:
- Malwarebytes, March 2025 (opens in a new tab): posts on crypto-trading subreddits offered free access to TradingView through a cracked version. The Windows download carried Lumma Stealer; the Mac download carried a new variant of the AMOS stealer. The report notes victims whose crypto wallets had been emptied.
- Bitdefender, September 2025 (opens in a new tab): the same “TradingView Premium” lure ran as paid ads, first on Meta, then on Google Ads and YouTube, including a hijacked, verified YouTube channel rebranded to impersonate TradingView. The malware it describes intercepts network traffic, collects cookie and password data, logs keystrokes, takes screenshots and steals crypto wallet data.
We did not install any of these apps; the descriptions above are the vendors’. What matters for a trader is the list itself. Saved passwords and session cookies are exactly what stands between a stranger and your broker account, your trading platform login and your email.
Bitdefender’s advice is the one to keep: download software from official websites only. For TradingView, that means tradingview.com. Malwarebytes adds two warning signs worth remembering: files hosted on dubious platforms, and instructions to disable your antivirus so the program can run.
A Five-Minute Checklist Before You Install or Commission One
| Check | What to look for | Where |
|---|---|---|
| Where it runs | Inside TradingView, never a modified app | The script’s page in Community scripts |
| Code you can read | “Open” visibility if it is sold as open-source | The publication’s visibility type |
| Repainting | Signals that appear, then vanish, as bars form | Bar Replay and a live chart |
| Bar-close alerts | An indicator alert with trigger “Once per bar close” | The alert’s Trigger setting |
| Signal count | A number over a stated window, on your symbols | A count you or the developer ran |
| Costs | Commission and slippage set, not left at none and 0 | The strategy’s properties |
| Untuned data | Results on a period the settings were not chosen from | The report’s date range |
An indicator that fails the first row does not need the other six.
The Code Is the Easy Part
Before you install or pay for any indicator, ask two questions: where does it run, and what was measured, over what window, at the bar close? A legitimate indicator answers both in TradingView itself, with code or a report you can open.
AI has made the code cheap. It has not made the evidence cheap, and a video was never evidence. The count is.

Leave a Reply