AI reads a chart one of two ways. Pixel readers take a screenshot and a vision model names what is drawn. That works on any platform, but the model estimates values off the axis and can change its answer between runs. Data readers take the price series, run fixed detectors for structure, weight them, and return a grade. That is exact and repeatable, but only as good as its definitions and its clock. Neither sees news, order flow, or what happens next.
Two ways AI reads a chart
There are two architectures behind every product marketed as AI chart analysis, and which one you are using decides what the tool can possibly know. One reads pixels. One reads data. A third group combines them.
Pixel reader
- 1Screenshot
- 2Vision model
- 3Description
Pattern name · bias · estimated levels
Sees only what is drawn. Values read off the axis.
Data reader
- 1OHLCV + timestamps
- 2Fixed detectors
- 3Weighted score
Grade · factors hit · exact levels
Sees every bar, including off-screen. Values are the input.
Pixel readers
A pixel reader takes a screenshot and hands it to a vision-language model, which describes what it sees. The model sees only what is drawn. If an indicator is not on the chart, it does not exist. Price levels are estimated by reading the axis, so a level quoted to two decimals is a guess wearing the costume of a measurement. Log-scale charts, low-contrast themes and dense overlays all degrade the read. Because the model is generative, the same screenshot can produce a different pattern name on a second run.
The advantage is reach. A pixel reader works on any platform, any broker, any instrument, and any hand-drawn markup. Any general vision model given a chart image is doing this, as are the phone apps built on top of them.
Data readers
A data reader takes the price series itself, with timestamps, and runs fixed code over it. In ORIN’s case that is OHLCV in, deterministic detectors for swings, break of structure and change of character, order blocks, fair value gaps, liquidity, premium and discount zones and session windows, then a weighted score, then a letter grade. The read is exact because it is arithmetic. It has the full history, not just the bars on screen. It knows the session because the timestamps say so.
The limitation is that a data reader is only as right as its definitions and its clock. If its order block is defined differently from yours, it will find different order blocks. If its session logic is wrong, every session-dependent factor is wrong at once, and it will be wrong the same way every time you run it.
Hybrids
A hybrid detects with data and narrates with a language model. The detection step is exact; the narration step is generated, so the prose can vary between runs even when the detection did not. When you read a hybrid’s output, separate the numbers, which came from the detector, from the sentences, which came from the model.
What each can see, and what neither can see
A pixel reader and a data reader disagree about what counts as visible, and there is a large region neither one reaches.
In neither
Order flowThe next barEarnings & data releasesHaltsSector contextYour account
In the data
Exact valuesBars off screenSessions from timestampsFull history
In the frame
Candle shapesDrawn indicatorsYour own markupVisible axis
| Element | Pixel reader | Data reader |
|---|---|---|
| Candles (open, high, low, close) | Approximate. Shape and relative position; values estimated. | Exact. |
| Volume | Approximate. Relative bar height only. | Exact where the feed supplies it. Spot forex and spot gold usually supply tick volume only. |
| Moving averages | Only if drawn. Period unknown unless labelled. | Computed directly at any period. |
| Horizontal levels | Only if drawn. Value estimated from the axis. | Computed from swing structure. Exact values. |
| Oscillators | Only if drawn, and it must read a second pane. | Computed directly. |
| Axis values | Estimated. Degrades on log scale and dense charts. | Not needed. The values are the input. |
| Symbol and timeframe | Read from text if visible. Confused by custom layouts. | Known from the request. |
| Session (Asia, London, New York) | Invisible unless you shaded it yourself. | Derived from timestamps, and correct only if the clock logic is. |
| Bars off screen | Invisible. | Full history available. |
What each architecture can reliably extract from a chart.
| Not on the chart, not in the price series | Why it matters |
|---|---|
| Order flow and depth | Structure on a candle chart is a lagging summary of orders that already filled. |
| The next bar | Neither architecture has it. Any prediction is a description of the past. |
| Earnings, data releases, rate decisions | A clean setup ten minutes before a release is a different setup. The chart does not say so. |
| Float, short interest, borrow cost | Equity-specific pressure that never appears in OHLCV. |
| Halts and circuit breakers | The chart shows a gap. It does not show whether you could have exited. |
| Sector and index context | One instrument’s structure says nothing about the basket it trades with. |
| Your account size and risk rules | The tool does not know your stop, your size, or your drawdown limit. |
Outside both architectures. No amount of model quality reaches this list.
The division of labour follows from those two tables. The model owns structure. The trader owns catalyst, size and session context. A tool claiming all four is claiming to see things that are not in its input.
What is inside a setup grade
A grade is a weighted sum of fixed structure detectors, and here are the nine factors and weights ORIN uses in engine v1.6.0. The table below is read out of the engine as this page renders, so it cannot drift from what actually graded your chart.
Weights sum to 100. Bars are scaled to the heaviest factor, not to the total, so the differences between them stay legible.
| Factor | What it reads | Weight |
|---|---|---|
| Setup quality | How cleanly the bars match one of the named setups. | 17 |
| Trend alignment | Whether the setup runs with the prevailing direction or against it. | 16 |
| Multi-timeframe agreement | Whether the higher timeframes agree with the read on this one. | 14 |
| Location & reward:risk | Where the entry sits relative to structure, and what that does to reward against risk. | 14 |
| Entry location vs. mean | How far price has travelled from its mean before the entry. | 11 |
| Volume confirmation | Whether participation confirms the move, where the feed supplies real volume. | 9 |
| Momentum | The strength behind the most recent leg. | 7 |
| Structural confirmation | Whether a break of structure or change of character actually printed. | 7 |
| Volatility regime | The volatility conditions the setup is being read in. | 5 |
The nine factors and their weights, read from engine v1.6.0 at render time. Weights sum to 100.
No other tool we are aware of publishes its weights. That is the part worth copying, not because the numbers are special, but because a grade whose composition is secret cannot be argued with. The grade is the weighted sum mapped to a letter, and every factor’s contribution is shown with the read. A high grade missing a low-weight factor is a different setup from a high grade missing a heavy one, and the breakdown is where that difference is visible.
Why a grade is a structure score and not a probability
A grade tells you how closely a chart matches a fixed definition of a clean setup, and it tells you nothing about what happens next. Three reasons keep it that way.
Regime dependence. A pattern that resolved one way in a trending month can resolve the other way in a ranging one. The detectors do not know which regime they are in, so any outcome statistic computed across regimes is averaging over conditions that do not repeat.
Selection bias. Setups only resolve when somebody takes them and logs them. The traders who take A-grade setups are not a random sample, and their outcomes carry their execution, their sizing and their exits. None of that is in the grade.
Sample size at the tails. A-plus grades are rare, which is the point of them. Rare grades produce small samples, and small samples produce numbers that swing between quarters.
Does the same chart get the same answer twice?
For this engine, yes, and here is the run. 10 analyses of one XAU/USD 15m window ending 2026-08-26 02:30 UTC, on a byte-identical input, compared across 10 fields.
| Compared across 10 runs | Runs that differed |
|---|---|
| Setup named | 0 / 10 |
| Direction | 0 / 10 |
| Signal | 0 / 10 |
| Grade | 0 / 10 |
| Score | 0 / 10 |
| Entry, stop and both targets | 0 / 10 |
| Hash of the entire analysis | 0 / 10 |
Measured with scripts/measure-determinism.mjs against engine v1.6.0. Input sha 525d3f8ed404, 401 bars plus 2 higher-timeframe legs. A level counts as moved above 0.1%.
Every run returned Liquidity sweep, short, grade C, score 46.7, with entry 4726.9, stop 4733.07 and targets 4716.55 and 4700.19. The last row is the one that matters most: rather than compare only the fields we thought to list, the run hashes the whole analysis object, so a drift in something nobody predicted still fails.
This matters more than it first appears. A grade you intend to track against outcomes has to be the same grade each time the same chart appears. If the grade can change without the chart changing, a grade history is a history of the model’s mood, and any statistic built on it measures the model as much as the market. Determinism is what makes an audit possible. It does not make the grade correct, which the next section is about.
There is a second consequence, for learning. If you disagree with a read and want to work out why, the read has to hold still while you look at it. A read that moves on refresh cannot be argued with.
When the engine was exactly, repeatably wrong
Determinism guarantees reproducibility and guarantees nothing else, and the clearest evidence we have for that is our own. A walk-forward harness replayed an earlier engine version over a large historical sample of setups, and the result was not the one we expected: the score did not rank outcomes. Higher-scoring setups did not resolve favourably more often than lower-scoring ones. The ranking signal we assumed was there was not there.
Two things followed. The declared weights stayed exactly as they were, because the fit had no evidence to justify moving them and reweighting to noise is how a scoring system starts describing its own dataset instead of the market. And the confidence number stopped being a restatement of the score, because a score that does not rank outcomes has no business being displayed as though it does.
The engine was exact and repeatable throughout. Every run on an affected setup produced the same number, and the number was not measuring what we thought. That is the honest shape of a data reader’s guarantee: determinism made the problem findable and the correction verifiable, and it did nothing whatsoever to prevent the problem. A pixel reader would not have had this specific failure, because a pixel reader has no weights to fit. That is not an advantage. It is a different failure, with no changelog.
Can AI detect order blocks, FVGs and liquidity sweeps?
A data reader can detect all three, provided you accept that detection is only as good as the definition it was given, and that the definition is a choice rather than a fact.
There is no standard for what an order block is. There is rough agreement on the three-candle imbalance behind a fair value gap, and none at all on mitigation, partial fills, or whether a lower-timeframe gap counts. Liquidity is a claim about resting orders, and resting orders are not in OHLCV, so every liquidity detector is a proxy built from swing highs and lows. A tool that says it detects these concepts is telling you it has chosen a definition and written code for it. The question worth asking is whether it will show you the definition.
ORIN’s liquidity sweep, for example, is a wick that takes out a prior pivot and closes back inside it. That is the whole rule. If your sweep requires a displacement candle of a certain size, ORIN will find sweeps you would not draw and miss ones you would, and the disagreement is legible rather than mysterious. The setups the engine can name are a closed list: breakout retest, trend pullback, range fade, liquidity sweep, change of character reversal, extended chase, and no clean setup, which is a real answer rather than a failure to find one.
When two tools both report an order block on the same chart, they may be pointing at different candles. When one reports it and the other does not, that is not evidence that either is wrong. A pixel reader handles these concepts differently again: the concepts are usually not drawn, so the model matches candles to a resemblance of the description rather than to a definition. If you have already drawn your zones, it can see them and comment on them, which is a useful check on your own markup and is not detection.
Gold, forex, crypto: what changes
The instrument changes what the session clock means and whether volume is real, and those two things change what any AI read is worth.
Gold. XAU/USD trades nearly around the clock with structure concentrated in the London and New York sessions and their overlap, so a reader that derives sessions from timestamps has something real to work with. Spot gold volume from a retail feed is that broker’s tick volume, not exchange volume, so any factor reading volume is reading a proxy. Gold also reacts to scheduled US data, and nothing on this page reads a calendar. There is a fuller treatment on the XAU/USD page.
Forex. Sessions matter more and macro matters more. A pair at 02:00 UTC and the same pair at 13:30 UTC are different regimes, and a read that ignores the session is reading the wrong chart. Volume is tick volume from your broker, and the same pair on two brokers can show slightly different candles, which moves any detector working at the level of single candles.
Crypto. Markets never close, so there is no daily close, no session in the forex sense, and no daily reset unless a tool imposes one. Session-based factors are meaningless here, and a tool that scores them anyway is scoring noise. Exchange volume is real but is per exchange, and the exchange you screenshot may not be the one whose volume the tool reads.
Do you still need to learn charts?
Yes, and the fastest route is to make your own call before you look at the engine’s, then log where the two disagree.
- 1
Call it yourself
Write down the structure, the bias and the levels before the read runs.
- 2
Run the read
Let the engine grade the same window.
- 3
Compare
Line the two up factor by factor and find where they part.
- 4
Log the disagreement
Not the trade. The disagreement, and which of you read the chart correctly.
Call it yourself first: before the read runs, write down the structure you see, the bias and the levels. Then run the read. Then compare them properly, and log the disagreement in your journal — not the trade, the disagreement, and which of you turned out to be describing the chart accurately.
The order matters because a read shown first anchors you. Once you have seen a grade you cannot un-see it, and your own read becomes a reaction to the tool’s. Reading first keeps your judgment independent long enough to measure it, and over a few hundred setups the journal shows you the specific structures you misread. That is more useful than any general lesson. A tool you never disagree with is one you have stopped checking.
Is a grade advice?
A grade is not advice, because it is a property of the chart rather than a recommendation for you, and the line between those two is drawn at personalisation rather than at intelligence.
A tool that computes structure conformance for an instrument returns the same output to everyone who asks. It does not know your account, your risk, your holding period or your tax position. The moment a tool takes those in and returns “you should”, it has crossed into advice, whatever model sits underneath. Intelligence is not the test. Personalisation is.
Which raises the question every reader of a tool roundup should ask: why does almost nobody publish an auditable track record? Some publish a number. Very few publish the setup list, the entry and exit rules, the fee assumptions and the period, which is what an audit would need. The better question to ask a vendor is not what their win rate is. It is whether you can re-run their read on a chart from six months ago and get the same answer, and whether you can see the rules it used. If both answers are yes you can audit it yourself. If either is no, no published number substitutes.
Questions people actually ask
How does AI read a candlestick chart?
One of two ways. A pixel reader converts a screenshot into a description with a vision model, so it sees candle shapes and estimates values from the axis. A data reader takes the open, high, low, close and timestamp of every bar and runs fixed detectors over the numbers, so it sees exact values and the full history. The two can name the same pattern and mean different things by it.
Is AI chart analysis accurate?
Accurate at what. A data reader is exact at reading values and repeatable at detecting structure, which the run above measures. A pixel reader is approximate at values and can vary between runs. Neither is accurate at predicting what happens next, because neither has the next bar. If accuracy means whether a grade predicts an outcome, this engine does not publish that number, and the section above explains why.
Can AI predict price?
No. Neither architecture has the next bar. A data reader describes the structure that exists as of the last close; a pixel reader describes a screenshot. A grade measures structure conformance, not outcome probability.
What is inside an AI setup grade?
For ORIN, nine weighted structure factors, published above with their weights and read out of engine v1.6.0 at render time. Tools that issue a grade without publishing weights are asking you to trust a number whose composition you cannot inspect, which is a different product from the one it appears to be.
Can ChatGPT analyse a stock chart?
Yes, as a pixel reader, with everything that implies. Given a screenshot it will name a pattern, suggest a bias and estimate levels. It cannot see bars off screen, does not know the session, estimates values from the axis and has no fixed definition of any pattern. It is useful as a second pair of eyes on markup you have already drawn. It is not a detector.
Is there free AI chart analysis?
A general vision model with an image is the common free route, with the pixel-reader limitations above. ORIN grades 2 charts a day on a free account with no card, which is enough to check whether you disagree with it.
Is AI chart analysis financial advice?
Not when it describes the chart, and yes when it is personalised to you. The line is personalisation, not intelligence. A structure grade for XAU/USD is identical for every user; a recommendation accounting for your balance and goals is advice, and carries obligations regardless of whether a model or a person produced it.
Which stock should I buy?
That is a different question from anything here. Fundamental scorers rank companies for a holding period of months on fundamentals and factor models, and none of the chart tools discussed on this page answer it. If you are choosing what to own for a year, start there. If you are choosing whether to take a setup in the next hour, stay here.
What is missing from this page
The comparison. The version of this article we set out to write puts nine tools on one XAUUSD window, captures each output unedited, re-runs three of them ten times, and prices every tier on a stated date. We have run that test on exactly one tool, which is the one we built, and a comparison with one participant is not a comparison.
It is absent rather than estimated because a page arguing that vendors should show their work does not get to fill a table from product pages and memory. When the test is run it lands here, with screenshots, dates and the window published so you can repeat it.
7 posts · all of them