Chart
Chart Properties
| Function | Status | Description |
|---|---|---|
chart.bg_color | ✅ | Background color |
chart.fg_color | ✅ | Foreground color |
Chart Type Detection
| Function | Status | Description |
|---|---|---|
chart.is_heikinashi | ✅ | True on a Heikin Ashi chart (see note below) |
chart.is_kagi | ⚠️ | Always false — chart type not representable |
chart.is_linebreak | ⚠️ | Always false — chart type not representable |
chart.is_pnf | ⚠️ | Always false — chart type not representable |
chart.is_range | ⚠️ | Always false — chart type not representable |
chart.is_renko | ⚠️ | Always false — chart type not representable |
chart.is_standard | ✅ | True unless the chart is a non-standard type |
Visible Range
| Function | Status | Description |
|---|---|---|
chart.left_visible_bar_time | ✅ | Left visible bar time |
chart.right_visible_bar_time | ✅ | Right visible bar time |
Chart Point
| Function | Status | Description |
|---|---|---|
chart.point.copy() | ✅ | Copy chart point |
chart.point.from_index() | ✅ | Create point from index |
chart.point.from_time() | ✅ | Create point from time |
chart.point.new() | ✅ | Create new chart point |
chart.point.now() | ✅ | Get current chart point |
Chart Point Fields
| Field | Status | Description |
|---|---|---|
chart.point.index | ✅ | Bar index of point |
chart.point.price | ✅ | Price of point |
chart.point.time | ✅ | Timestamp of point |
Notes
is_heikinashi/is_standard— THE CHART TYPE IS THE TICKER. A host declares a Heikin Ashi chart by constructing PineTS with an extended ticker:new PineTS(source, 'BTCUSDT;heikinashi', 'D', …). The chart type is derived from that ticker's;heikinashimodifier — there is no separate setting. On such a chart,chart.is_heikinashiistrue,chart.is_standardisfalse, andsyminfo.tickeridcarries the modifier (sorequest.security(syminfo.tickerid, …)routes chart-typed data requests to the data source — see Ticker). PineTS never transforms bars: the data source of an extended ticker is expected to serve the chart-type view already (an embedding host that owns the transform, e.g. a charting library); PineTS' bundled providers strip the modifier and serve standard candles.is_kagi/is_renko/is_linebreak/is_pnf/is_range— these chart types have no data source that can construct their bars, so the predicates are hardcodedfalse.- These predicates are Pine variables (bare member access,
chart.is_heikinashi— no call), exposed as getters like the visible-range built-ins below. left_visible_bar_time/right_visible_bar_time— In TradingView these reflect the user's UI viewport (what's scrolled into view). PineTS is renderer-agnostic, so by default they fall back to the first/last bar of the loadedmarketData(i.e. "the full loaded range is the viewport"). Hosts that render PineTS output and want to model a true zoom/pan can override viaPineTS.setVisibleRange(left, right). UsePineTS.usesVisibleRange()to skip viewport-change re-runs for indicators that don't reference these built-ins;PineTS.update(code)is a smart re-run helper that gates on this tag automatically.