Limits
These ceilings are part of the language. Crossing one stops the run with a clear message.
| Resource | Ceiling |
|---|---|
| Source size | 65,536 bytes |
| Tokens | 20,000 |
| Syntax nodes | 10,000 |
| Bars per run | 200,000 |
| Stored series values, bars times top level declarations | 8,000,000 |
| History offset, start_offset, bars_right, bars_back | 200,000 |
| Statements executed on one bar, outside loop bodies | 10,000 |
| Loop passes on one bar | 100,000 |
| Loop steps in one run | 25,000,000 |
| Markers, texts, boxes, dots, segments, event zones and vertical lines drawn by a script with a loop | 250,000 per run |
| Shape points from plot.rect, plot.polygon and plot.cell | 240,000 per run, the newest kept |
| plot.hbar rows | 5,000 |
| plot.table cells | 640 |
| plot.cell texts | 5,000 per run, the newest kept |
| profile.row_color rows | 5,000 per run |
| Strings built on one bar | 200,000 |
| Characters of text built on one bar, and in one run | 16,000,000 and 512,000,000 |
| Different mtf timeframes in one script | 8 |
| Different session.open and session.adr windows in one run | 64 |
| Function call depth | 32 |
| Parameters per function | 16 |
| Arguments per call | 24 |
| Distinct plot call sites | 64 |
| Folded profiles per run | 512 |
| Folded profile rows per run | 200,000 |
| String length | 1,024 characters |
| Lines in one text block | 8 |
| Market items supplied to one run: prints, ladder rows, book levels, orders and strikes together | 1,000,000 |
| Items walked by whole bar answers on one bar | 1,000,000 |
| Time for one run | 8 seconds |
A script without a loop has no separate cap on markers, text blocks or zones: it draws at most one per call site per bar, the chart keeps the whole result and draws only what the current view intersects.
