[{"data":1,"prerenderedAt":5325},["ShallowReactive",2],{"kscript:core-concepts/multi-source":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":13,"tree":14},"core-concepts/multi-source","core-concepts/multi-source.md",{"title":7,"description":8,"verified":9},"Multi-Source & Aggregation","Combine multiple data sources in one script: other symbols, other venues, other data types, aggregated metrics like cross-exchange CVD, and the request(), ltf(), and requestBars() helpers.",{"engine":10,"probes":11},"3.0.67",[12],"scripts/probes/data-sources/source_budget_boundary.ks","---\ntitle: Multi-Source & Aggregation\ndescription: >-\n  Combine multiple data sources in one script: other symbols, other venues,\n  other data types, aggregated metrics like cross-exchange CVD, and the\n  request(), ltf(), and requestBars() helpers.\nverified:\n  engine: 3.0.67\n  probes:\n    - scripts/probes/data-sources/source_budget_boundary.ks\n---\n\n\u003Cdiv class=\"flex gap-3 mb-6\">\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-purple-50 text-purple-600 text-sm font-medium\">\n    Advanced\n  \u003C/span>\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-gray-100 text-gray-600 text-sm font-medium\">\n    12 min read\n  \u003C/span>\n\u003C/div>\n\n> **Updated for engine 3.0.49.** `requestBars()` gains `anchor: \"latest\"` / `\"window\"` and serves composed intervals like `\"2h\"`; both are backed by the engine's passing `g6-request-bars.test.ts` suite and a live pan-back test against the chart backend.\n\n\n## Introduction\n\nA kScript script is not limited to its chart's data. You can load **any number of sources** in one script: other symbols, other exchanges, other data types (open interest, funding, order book, buy/sell volume), and combine them with ordinary math. \"Aggregated\" indicators (one metric summed across venues) are not a special feature; they fall out of this plus [collections](collections.md).\n\n```javascript\ntimeseries btc = source(\"ohlcv\", \"BTCUSDT\", \"BINANCE_FUTURES\")\ntimeseries eth = source(\"ohlcv\", \"ETHUSDT\", \"BINANCE_FUTURES\")\n\ntimeseries ratio = eth.close / btc.close\nplotLine(ratio, label=[\"ETH/BTC\"])\n```\n## How multiple sources coexist\n\nThree engine rules make cross-source math safe by default:\n\n1. **One unified timeline.** The engine unions all sources' timestamps into the chart's bar sequence. Every series is readable on every bar.\n2. **Values forward-fill.** Reading a series at a bar where *that* source has no row (slower cadence, late listing, different venue calendar) returns its last known value, so arithmetic keeps working. Funding (8h cadence) against 1h candles just works.\n3. **Events never fabricate.** The strictness rules from the [TA conventions](../functions/ta-library.md) apply: a missing condition row is false, and crosses never fire on `na`. Stale venue data cannot invent signals.\n\n## Multi-symbol\n\nAny source call can name a symbol other than the chart's:\n\n```javascript\ntimeseries spy = source(\"ohlcv\", \"ETHUSDT\", \"BINANCE_FUTURES\")\ntimeseries lead = htf(spy, \"4h\")           // other-symbol HTF, still no-repaint\nvar leading = rsi(source=spy.close, period=14)\n```\n\nEverything downstream is source-agnostic: indicators, `htf()`, drawings, reducers. For the common case there is sugar:\n```javascript\ntimeseries eth4h = request(\"ETHUSDT\", \"4h\")        // = htf(source(\"ohlcv\", \"ETHUSDT\", currentExchange), \"4h\")\ntimeseries ethNow = request(\"ETHUSDT\")             // raw, chart timeframe\n```\n\n`request(symbol, timeframe?, type?, exchange?, opts?)` keeps every `htf` guarantee (confirmed buckets, no repaint) and counts toward the source budget like any fetch. When the timeframe is a statically-known string coarser than the chart (e.g. `\"4h\"` on a 1h chart), `request` fetches that interval **natively** (a distinct source keyed by interval) and step-projects it onto the chart timeline, rather than aggregating chart bars. It falls back to chart-bar aggregation only when the venue serves no native data for that interval, when the timeframe is dynamic (a variable or input, which cannot be prefetched), or when the source is array-celled (`volume_profile` and similar). The `opts` object (`mode`/`offset`/`bars`) is documented under [Multi-Timeframe opts](/kscript/core-concepts/multi-timeframe#opts-mode-offset-and-bars).\n\n## Higher-timeframe requests fetch their own depth\n\nA `1d` source on a `1m` chart is fetched as a deep daily window (the default is ~400 bars of the requested interval), not as the chart's few-bar span, so a daily, weekly, monthly, or yearly level **resolves even on a fine chart**. The base chart-interval sources keep a shallow fetch window; only the higher-timeframe request pulls deep.\n\n- **Auto depth.** Omit `bars` and the request loads a period-sized window deep enough to reach the prior completed period (and the current forming one).\n- **`opts.bars: N`** overrides that with exactly `N` bars **of the requested timeframe**: `request(\"ETHUSDT\", \"4h\", { bars: 500 })` fetches 500 native 4h bars. For a calendar token the count is converted to the backing interval. `bars` is request-only.\n- **Calendar backing.** Calendar tokens aggregate engine-side from a shared, deduped backing source: `1D`/`1W`/`1M` from a deep **daily** source, `1Q`/`1Y` from a coarser **weekly** source (about 5x fewer bars). Tokens that share a backing interval (plus a plain `request(sym, \"1d\")` or `request(sym, \"1w\")`) collapse to **one** cached fetch each, so a symbol's calendar requests use at most two backing sources.\n\n**Source-count consequence.** Because a coarser request is keyed by its interval, `request(\"ETHUSDT\")` (chart interval) and `request(\"ETHUSDT\", \"4h\")` (native 4h) are **two distinct sources**, not one. Duplicate identical requests still dedupe.\n\nFor history depth on the chart's **own** series (cumulative `vwap()`, anchored VWAPs) that survives panning, you still declare it with [`define(..., maxBarsBack=N)`](/kscript/functions/script-definition); that is about the base series, separate from a higher-timeframe request's independent fetch.\n\n## Multi-venue aggregation\n\nThe flagship pattern: one metric, summed across exchanges.\n\n**Aggregated CVD:**\n\n```javascript\ndefine(\"Aggregated CVD\", \"offchart\", true)\n\ntimeseries bsBinance = source(\"buy_sell_volume\", \"BTCUSDT\", \"BINANCE_FUTURES\")\ntimeseries bsBybit = source(\"buy_sell_volume\", \"BTCUSDT\", \"BYBIT\")\ntimeseries bsOkx = source(\"buy_sell_volume\", \"BTCUSDT\", \"OKX\")\n\nfunc delta(bs) {\n  return bs.buy - bs.sell\n}\n\ntimeseries aggDelta = delta(bsBinance) + delta(bsBybit) + delta(bsOkx)\ntimeseries aggCvd = cum(aggDelta)\n\nplotLine(aggCvd, colors=[aggDelta > 0 ? \"#16a34a\" : \"#dc2626\"], label=[\"Aggregated CVD\"], desc=[\"cumulative delta across venues\"])\n```\n\n**Aggregated open interest, venue-weighted:**\n```javascript\ntimeseries oiBinance = source(\"open_interest\", \"BTCUSDT\", \"BINANCE_FUTURES\")\ntimeseries oiBybit = source(\"open_interest\", \"BTCUSDT\", \"BYBIT\")\n\nvar weights = {}\nweights.set(\"binance\", 0.6)\nweights.set(\"bybit\", 0.4)\n\n// open_interest is OHLC-shaped; .close is the current OI value\ntimeseries aggOI = oiBinance.close * weights.get(\"binance\")\n  + oiBybit.close * weights.get(\"bybit\")\n\nplotLine(aggOI)\nplotLine(ema(source=aggOI, period=21), colors=[\"#94a3b8\"], zOrder=0, label=[\"OI EMA\"], desc=[\"smoothed aggregated open interest\"])\n```\n\n**Venue dominance** (one venue's share of the aggregate):\n\n```javascript\ntimeseries share = delta(bsBinance) / nz(aggDelta, 1)\n```\n\nThe same shape covers aggregated funding, liquidation totals, and cross-venue spreads. Package the helpers as a [library](../functions/libraries.md) (`import \"agg\" as agg`) and the whole family becomes one import.\n\n{% hint style=\"info\" %}\n**Higher-timeframe views of aggregates** compose directly: `htf(aggCvd, \"4h\")` resamples the cumulative series correctly (last-in-bucket), still repaint-free.\n\n{% endhint %}\n## Lower-timeframe data: ltf()\n\n`ltf(interval)` fetches **finer** bars than the chart and delivers them as **cells on the chart's own bars** (the chart timeline is untouched):\n\n```javascript\n// on a 1h chart: each bar carries its four 15m bars\ntimeseries fine = ltf(\"15m\")\n\n// intrabar drift: sum of the finer bars' close-open\ntimeseries drift = fine.cells.map((c) => c[4] - c[1]).reduce((s, x) => s + x, 0)\nplotLine(drift)\n```\n\nCells use the same `.cells` machinery as order-flow sources, so reducers, structs, and the causality guarantees all apply. The interval must be a literal string, strictly finer than the chart, and (like everything here) it errors loudly with line:column when misused.\n## requestBars(): raw bars for drawing\n\nWhen you want to **draw** on top of a coarser timeframe (mark the last N daily highs/lows, box weekly ranges, label monthly opens) rather than feed a series into TA, reach for `requestBars(symbol, timeframe, type?, exchange?, opts)`. It returns the last `opts.bars` **native** bars of `symbol` at `timeframe` as a plain array of `[time, open, high, low, close, volume]` rows, oldest first. The timeframe is a native interval string (`\"15m\"`, `\"1h\"`, `\"1d\"`) and is required; `opts.bars` is a required positive integer; `type` defaults to `\"ohlcv\"` and `exchange` defaults to the current venue. `opts.anchor` (below) chooses which window the bars come from. There is no `mode`/`offset` here (those are `request()`/`htf()` period concepts). Calendar tokens (`1W`, `1M`, `1Q`, `1Y`) are rejected — requestBars is for native venue intervals. Intervals the venue does not serve directly but that compose from a finer one (`\"2h\"`, `\"3h\"`, `\"12h\"`, `\"2d\"`, `\"45m\"`) are served by aggregating the largest fetchable divisor (`2h` = 2×`1h`), UTC-bucketed, so they return true bars at the requested timeframe.\n\nThe result is **draw-only and inert**: a raw array indexed by position (`rows[i]`), not a chart-indexed timeseries. It carries no `[n]` bar-offset history and is not chainable into TA functions; you iterate it and draw. Crucially it is **independent of `maxBarsBack`**, reading the deep source directly, so a 1m chart can draw the last 20 daily candles even with a tiny lookback window.\n\nThis is the counterpart to `request()`. Where `request()` returns a chart-aligned, bar-indexed, TA-chainable timeseries (and `request(..., { bars: N })` only sets the fetch depth of that still-projected series), `requestBars()` hands you the raw native rows for drawing:\n\n```javascript\ndefine(\"daily levels\", \"onchart\", true, maxBarsBack=50)\nif (isLastBar) {\n  var rows = requestBars(currentSymbol, \"1d\", { bars: 20 })\n  for (var i = 0; i \u003C 20; i = i + 1) {\n    var r = rows[i]                 // r = [t, o, h, l, c, v]\n    line.new(r[0], r[2], r[0], r[3], { color: \"#ffffff\", width: 1 })\n  }\n}\n```\n\n### anchor: \"latest\" — bars pinned to the market, not the pan position\n\nBy default, `requestBars()` is **window-relative**: the rows come from the range the script is executing over, so when the user pans the chart back a week, a re-run over that window returns bars from the historical week. That is right for \"levels near what I'm looking at\", but wrong for dashboards that should always show *current* market data — the panels of a [`plotMiniChartGrid`](/kscript/functions/plotting#plotminichartgrid) would silently turn into last week's candles.\n\n`anchor: \"latest\"` pins the request to the **newest** native bars instead:\n\n```javascript\nvar rows = requestBars(currentSymbol, \"15m\", \"ohlcv\", currentExchange, { bars: 18, anchor: \"latest\" })\n```\n\n- The rows are always the latest `bars` bars of that timeframe — **independent of how far back the user has panned** and of the script's execution window. They update live: the last row is the forming bar, and the tail advances when a bar closes.\n- `anchor` must resolve **statically** to `\"latest\"` or `\"window\"` — any other value is a hard error, and so is a value the compiler cannot pin down at build time (say, a ternary on bar data), because the anchor is part of the source's identity and cannot vary at runtime. A top-level `var mode = \"latest\"` used as `anchor: mode` does resolve statically and is accepted; write the literal for clarity.\n- `\"window\"` spells the default explicitly and behaves byte-identically to omitting `anchor` (it also dedupes with an anchor-less request of the same parameters).\n- An anchored and a window-relative request of the **same symbol and timeframe are two distinct sources** and cost two source-budget slots — they fetch different windows, so they cannot share one subscription.\n\n## Sparse flow sources align to the chart timeline\n\nSome market-flow feeds are naturally sparse: a liquidation, funding, or buy/sell\nvolume bucket may simply have no event for a candle. Source\ntypes that mark missing buckets as zero are aligned to the chart's candle\ntimeline before your script reads them. Once the source has started returning\nreal rows, a missing bucket reads as `0` instead of shifting every later value\nonto the wrong candle. Bars before the source's first real row still read as\n`na`, because the engine does not invent data for a period where coverage is\nunknown.\n\nFor authors, the practical rule is: keep an `ohlcv(...)` spine in multi-source\nflow scripts, then read the flow source directly. The candle timeline stays\nstable, sparse \"nothing happened\" buckets become zero, and truly unavailable\nhistory remains distinguishable from zero activity.\n\n\n## Budgets and good citizenship\n\nA script has a budget of **10 weighted source slots** (`MAX_SOURCES_PER_SCRIPT`): a native stream costs one slot, heavier source types can be configured to cost more, and the chart's own price spine can cost zero. Identical `source(...)` calls dedupe to one, and `htf()` over a source you already opened is free since it transforms already-fetched data rather than fetching. A coarser `request(sym, \"4h\")`, however, is keyed by its interval, so it is its **own** source distinct from a chart-interval `request(sym)` (see [Higher-timeframe requests fetch their own depth](#higher-timeframe-requests-fetch-their-own-depth)); a symbol's calendar requests collapse onto at most two shared backing sources. Ten single-slot sources fill the budget exactly; design within the 10 weighted slots.\n\n## Availability\n\nThe language accepts any registered `(type, symbol, exchange)` triple; whether a venue serves a given data type is a platform question. The platform exposes a machine-readable catalog of servable source types, and an unavailable request fails loudly with the list of what exists, never with silent empty data.\n",{"type":15,"children":16,"data":5319,"position":5321},"root",[17,104,105,248,249,267,268,332,333,513,514,530,531,546,547,715,716,731,732,746,747,889,890,923,924,1010,1011,1242,1243,1260,1261,1337,1338,1746,1747,1837,1838,1924,1925,1940,1941,1955,1956,1977,1978,2395,2396,2420,2421,2837,2838,2865,2866,2917,2918,2976,2977,3029,3030,3046,3047,3118,3119,3321,3322,3353,3354,3369,3370,3961,3962,4069,4070,4156,4157,4466,4467,4484,4485,4589,4590,4636,4637,4704,4705,4976,4977,4993,4994,5043,5044,5076,5077,5093,5094,5269,5270,5286,5287],{"type":18,"tagName":19,"properties":20,"children":25,"position":99},"element","div",{"className":21},[22,23,24],"flex","gap-3","mb-6",[26,38,67,73,92],{"type":27,"value":28,"position":29},"text","\n  ",{"start":30,"end":34},{"line":31,"column":32,"offset":33},1,30,29,{"line":35,"column":36,"offset":37},2,3,32,{"type":18,"tagName":39,"properties":40,"children":52,"position":62},"span",{"className":41},[42,43,44,45,46,47,48,49,50,51],"inline-flex","items-center","gap-1.5","px-3","py-1","rounded-full","bg-purple-50","text-purple-600","text-sm","font-medium",[53],{"type":27,"value":54,"position":55},"\n    Advanced\n  ",{"start":56,"end":59},{"line":35,"column":57,"offset":58},122,151,{"line":60,"column":36,"offset":61},4,167,{"start":63,"end":64},{"line":35,"column":36,"offset":37},{"line":60,"column":65,"offset":66},10,174,{"type":27,"value":28,"position":68},{"start":69,"end":70},{"line":60,"column":65,"offset":66},{"line":71,"column":36,"offset":72},5,177,{"type":18,"tagName":39,"properties":74,"children":78,"position":88},{"className":75},[42,43,44,45,46,47,76,77,50,51],"bg-gray-100","text-gray-600",[79],{"type":27,"value":80,"position":81},"\n    12 min read\n  ",{"start":82,"end":85},{"line":71,"column":83,"offset":84},119,293,{"line":86,"column":36,"offset":87},7,312,{"start":89,"end":90},{"line":71,"column":36,"offset":72},{"line":86,"column":65,"offset":91},319,{"type":27,"value":93,"position":94},"\n",{"start":95,"end":96},{"line":86,"column":65,"offset":91},{"line":97,"column":31,"offset":98},8,320,{"start":100,"end":102},{"line":31,"column":31,"offset":101},0,{"line":97,"column":86,"offset":103},326,{"type":27,"value":93},{"type":18,"tagName":106,"properties":107,"children":108,"position":244},"blockquote",{},[109,110,243],{"type":27,"value":93},{"type":18,"tagName":111,"properties":112,"children":113,"position":240},"p",{},[114,132,139,153,160,173,180,193,200,213,220,233],{"type":18,"tagName":115,"properties":116,"children":117,"position":126},"strong",{},[118],{"type":27,"value":119,"position":120},"Updated for engine 3.0.49.",{"start":121,"end":123},{"line":65,"column":71,"offset":122},332,{"line":65,"column":124,"offset":125},31,358,{"start":127,"end":129},{"line":65,"column":36,"offset":128},330,{"line":65,"column":130,"offset":131},33,360,{"type":27,"value":133,"position":134}," ",{"start":135,"end":136},{"line":65,"column":130,"offset":131},{"line":65,"column":137,"offset":138},34,361,{"type":18,"tagName":140,"properties":141,"children":142,"position":150},"code",{},[143],{"type":27,"value":144,"position":145},"requestBars()",{"start":146,"end":147},{"line":65,"column":137,"offset":138},{"line":65,"column":148,"offset":149},49,376,{"start":151,"end":152},{"line":65,"column":137,"offset":138},{"line":65,"column":148,"offset":149},{"type":27,"value":154,"position":155}," gains ",{"start":156,"end":157},{"line":65,"column":148,"offset":149},{"line":65,"column":158,"offset":159},56,383,{"type":18,"tagName":140,"properties":161,"children":162,"position":170},{},[163],{"type":27,"value":164,"position":165},"anchor: \"latest\"",{"start":166,"end":167},{"line":65,"column":158,"offset":159},{"line":65,"column":168,"offset":169},74,401,{"start":171,"end":172},{"line":65,"column":158,"offset":159},{"line":65,"column":168,"offset":169},{"type":27,"value":174,"position":175}," / ",{"start":176,"end":177},{"line":65,"column":168,"offset":169},{"line":65,"column":178,"offset":179},77,404,{"type":18,"tagName":140,"properties":181,"children":182,"position":190},{},[183],{"type":27,"value":184,"position":185},"\"window\"",{"start":186,"end":187},{"line":65,"column":178,"offset":179},{"line":65,"column":188,"offset":189},87,414,{"start":191,"end":192},{"line":65,"column":178,"offset":179},{"line":65,"column":188,"offset":189},{"type":27,"value":194,"position":195}," and serves composed intervals like ",{"start":196,"end":197},{"line":65,"column":188,"offset":189},{"line":65,"column":198,"offset":199},123,450,{"type":18,"tagName":140,"properties":201,"children":202,"position":210},{},[203],{"type":27,"value":204,"position":205},"\"2h\"",{"start":206,"end":207},{"line":65,"column":198,"offset":199},{"line":65,"column":208,"offset":209},129,456,{"start":211,"end":212},{"line":65,"column":198,"offset":199},{"line":65,"column":208,"offset":209},{"type":27,"value":214,"position":215},"; both are backed by the engine's passing ",{"start":216,"end":217},{"line":65,"column":208,"offset":209},{"line":65,"column":218,"offset":219},171,498,{"type":18,"tagName":140,"properties":221,"children":222,"position":230},{},[223],{"type":27,"value":224,"position":225},"g6-request-bars.test.ts",{"start":226,"end":227},{"line":65,"column":218,"offset":219},{"line":65,"column":228,"offset":229},196,523,{"start":231,"end":232},{"line":65,"column":218,"offset":219},{"line":65,"column":228,"offset":229},{"type":27,"value":234,"position":235}," suite and a live pan-back test against the chart backend.",{"start":236,"end":237},{"line":65,"column":228,"offset":229},{"line":65,"column":238,"offset":239},254,581,{"start":241,"end":242},{"line":65,"column":36,"offset":128},{"line":65,"column":238,"offset":239},{"type":27,"value":93},{"start":245,"end":247},{"line":65,"column":31,"offset":246},328,{"line":65,"column":238,"offset":239},{"type":27,"value":93},{"type":18,"tagName":250,"properties":251,"children":253,"position":263},"h2",{"id":252},"introduction",[254],{"type":27,"value":255,"position":256},"Introduction",{"start":257,"end":260},{"line":258,"column":60,"offset":259},13,587,{"line":258,"column":261,"offset":262},16,599,{"start":264,"end":266},{"line":258,"column":31,"offset":265},584,{"line":258,"column":261,"offset":262},{"type":27,"value":93},{"type":18,"tagName":111,"properties":269,"children":270,"position":329},{},[271,280,297,303,322],{"type":27,"value":272,"position":273},"A kScript script is not limited to its chart's data. You can load ",{"start":274,"end":277},{"line":275,"column":31,"offset":276},15,601,{"line":275,"column":278,"offset":279},67,667,{"type":18,"tagName":115,"properties":281,"children":282,"position":292},{},[283],{"type":27,"value":284,"position":285},"any number of sources",{"start":286,"end":289},{"line":275,"column":287,"offset":288},69,669,{"line":275,"column":290,"offset":291},90,690,{"start":293,"end":294},{"line":275,"column":278,"offset":279},{"line":275,"column":295,"offset":296},92,692,{"type":27,"value":298,"position":299}," in one script: other symbols, other exchanges, other data types (open interest, funding, order book, buy/sell volume), and combine them with ordinary math. \"Aggregated\" indicators (one metric summed across venues) are not a special feature; they fall out of this plus ",{"start":300,"end":301},{"line":275,"column":295,"offset":296},{"line":275,"column":138,"offset":302},961,{"type":18,"tagName":304,"properties":305,"children":307,"position":317},"a",{"href":306},"collections.md",[308],{"type":27,"value":309,"position":310},"collections",{"start":311,"end":314},{"line":275,"column":312,"offset":313},362,962,{"line":275,"column":315,"offset":316},373,973,{"start":318,"end":319},{"line":275,"column":138,"offset":302},{"line":275,"column":320,"offset":321},390,990,{"type":27,"value":323,"position":324},".",{"start":325,"end":326},{"line":275,"column":320,"offset":321},{"line":275,"column":327,"offset":328},391,991,{"start":330,"end":331},{"line":275,"column":31,"offset":276},{"line":275,"column":327,"offset":328},{"type":27,"value":93},{"type":15,"children":334},[335],{"type":18,"tagName":336,"properties":337,"children":341,"data":-1},"pre",{"class":338,"style":339,"tabindex":340},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[342],{"type":18,"tagName":140,"properties":343,"children":344},{},[345,402,403,448,449,452,453,480,481],{"type":18,"tagName":39,"properties":346,"children":348},{"class":347},"line",[349,355,361,367,372,378,383,388,392,397],{"type":18,"tagName":39,"properties":350,"children":352},{"style":351},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[353],{"type":27,"value":354},"timeseries btc ",{"type":18,"tagName":39,"properties":356,"children":358},{"style":357},"--shiki-dark:#F97583;--shiki-light:#D73A49",[359],{"type":27,"value":360},"=",{"type":18,"tagName":39,"properties":362,"children":364},{"style":363},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[365],{"type":27,"value":366}," source",{"type":18,"tagName":39,"properties":368,"children":369},{"style":351},[370],{"type":27,"value":371},"(",{"type":18,"tagName":39,"properties":373,"children":375},{"style":374},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[376],{"type":27,"value":377},"\"ohlcv\"",{"type":18,"tagName":39,"properties":379,"children":380},{"style":351},[381],{"type":27,"value":382},", ",{"type":18,"tagName":39,"properties":384,"children":385},{"style":374},[386],{"type":27,"value":387},"\"BTCUSDT\"",{"type":18,"tagName":39,"properties":389,"children":390},{"style":351},[391],{"type":27,"value":382},{"type":18,"tagName":39,"properties":393,"children":394},{"style":374},[395],{"type":27,"value":396},"\"BINANCE_FUTURES\"",{"type":18,"tagName":39,"properties":398,"children":399},{"style":351},[400],{"type":27,"value":401},")",{"type":27,"value":93},{"type":18,"tagName":39,"properties":404,"children":405},{"class":347},[406,411,415,419,423,427,431,436,440,444],{"type":18,"tagName":39,"properties":407,"children":408},{"style":351},[409],{"type":27,"value":410},"timeseries eth ",{"type":18,"tagName":39,"properties":412,"children":413},{"style":357},[414],{"type":27,"value":360},{"type":18,"tagName":39,"properties":416,"children":417},{"style":363},[418],{"type":27,"value":366},{"type":18,"tagName":39,"properties":420,"children":421},{"style":351},[422],{"type":27,"value":371},{"type":18,"tagName":39,"properties":424,"children":425},{"style":374},[426],{"type":27,"value":377},{"type":18,"tagName":39,"properties":428,"children":429},{"style":351},[430],{"type":27,"value":382},{"type":18,"tagName":39,"properties":432,"children":433},{"style":374},[434],{"type":27,"value":435},"\"ETHUSDT\"",{"type":18,"tagName":39,"properties":437,"children":438},{"style":351},[439],{"type":27,"value":382},{"type":18,"tagName":39,"properties":441,"children":442},{"style":374},[443],{"type":27,"value":396},{"type":18,"tagName":39,"properties":445,"children":446},{"style":351},[447],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":450,"children":451},{"class":347},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":454,"children":455},{"class":347},[456,461,465,470,475],{"type":18,"tagName":39,"properties":457,"children":458},{"style":351},[459],{"type":27,"value":460},"timeseries ratio ",{"type":18,"tagName":39,"properties":462,"children":463},{"style":357},[464],{"type":27,"value":360},{"type":18,"tagName":39,"properties":466,"children":467},{"style":351},[468],{"type":27,"value":469}," eth.close ",{"type":18,"tagName":39,"properties":471,"children":472},{"style":357},[473],{"type":27,"value":474},"/",{"type":18,"tagName":39,"properties":476,"children":477},{"style":351},[478],{"type":27,"value":479}," btc.close",{"type":27,"value":93},{"type":18,"tagName":39,"properties":482,"children":483},{"class":347},[484,489,494,498,503,508],{"type":18,"tagName":39,"properties":485,"children":486},{"style":363},[487],{"type":27,"value":488},"plotLine",{"type":18,"tagName":39,"properties":490,"children":491},{"style":351},[492],{"type":27,"value":493},"(ratio, label",{"type":18,"tagName":39,"properties":495,"children":496},{"style":357},[497],{"type":27,"value":360},{"type":18,"tagName":39,"properties":499,"children":500},{"style":351},[501],{"type":27,"value":502},"[",{"type":18,"tagName":39,"properties":504,"children":505},{"style":374},[506],{"type":27,"value":507},"\"ETH/BTC\"",{"type":18,"tagName":39,"properties":509,"children":510},{"style":351},[511],{"type":27,"value":512},"])",{"type":27,"value":93},{"type":18,"tagName":250,"properties":515,"children":517,"position":526},{"id":516},"how-multiple-sources-coexist",[518],{"type":27,"value":519,"position":520},"How multiple sources coexist",{"start":521,"end":524},{"line":522,"column":60,"offset":523},24,1217,{"line":522,"column":37,"offset":525},1245,{"start":527,"end":529},{"line":522,"column":31,"offset":528},1214,{"line":522,"column":37,"offset":525},{"type":27,"value":93},{"type":18,"tagName":111,"properties":532,"children":533,"position":543},{},[534],{"type":27,"value":535,"position":536},"Three engine rules make cross-source math safe by default:",{"start":537,"end":540},{"line":538,"column":31,"offset":539},26,1247,{"line":538,"column":541,"offset":542},59,1305,{"start":544,"end":545},{"line":538,"column":31,"offset":539},{"line":538,"column":541,"offset":542},{"type":27,"value":93},{"type":18,"tagName":548,"properties":549,"children":550,"position":712},"ol",{},[551,552,585,586,639,640,711],{"type":27,"value":93},{"type":18,"tagName":553,"properties":554,"children":555,"position":581},"li",{},[556,574],{"type":18,"tagName":115,"properties":557,"children":558,"position":569},{},[559],{"type":27,"value":560,"position":561},"One unified timeline.",{"start":562,"end":566},{"line":563,"column":564,"offset":565},28,6,1312,{"line":563,"column":567,"offset":568},27,1333,{"start":570,"end":572},{"line":563,"column":60,"offset":571},1310,{"line":563,"column":33,"offset":573},1335,{"type":27,"value":575,"position":576}," The engine unions all sources' timestamps into the chart's bar sequence. Every series is readable on every bar.",{"start":577,"end":578},{"line":563,"column":33,"offset":573},{"line":563,"column":579,"offset":580},141,1447,{"start":582,"end":584},{"line":563,"column":31,"offset":583},1307,{"line":563,"column":579,"offset":580},{"type":27,"value":93},{"type":18,"tagName":553,"properties":587,"children":588,"position":635},{},[589,604,611,628],{"type":18,"tagName":115,"properties":590,"children":591,"position":599},{},[592],{"type":27,"value":593,"position":594},"Values forward-fill.",{"start":595,"end":597},{"line":33,"column":564,"offset":596},1453,{"line":33,"column":538,"offset":598},1473,{"start":600,"end":602},{"line":33,"column":60,"offset":601},1451,{"line":33,"column":563,"offset":603},1475,{"type":27,"value":605,"position":606}," Reading a series at a bar where ",{"start":607,"end":608},{"line":33,"column":563,"offset":603},{"line":33,"column":609,"offset":610},61,1508,{"type":18,"tagName":612,"properties":613,"children":614,"position":624},"em",{},[615],{"type":27,"value":616,"position":617},"that",{"start":618,"end":621},{"line":33,"column":619,"offset":620},62,1509,{"line":33,"column":622,"offset":623},66,1513,{"start":625,"end":626},{"line":33,"column":609,"offset":610},{"line":33,"column":278,"offset":627},1514,{"type":27,"value":629,"position":630}," source has no row (slower cadence, late listing, different venue calendar) returns its last known value, so arithmetic keeps working. Funding (8h cadence) against 1h candles just works.",{"start":631,"end":632},{"line":33,"column":278,"offset":627},{"line":33,"column":633,"offset":634},253,1700,{"start":636,"end":638},{"line":33,"column":31,"offset":637},1448,{"line":33,"column":633,"offset":634},{"type":27,"value":93},{"type":18,"tagName":553,"properties":641,"children":642,"position":707},{},[643,658,664,681,687,700],{"type":18,"tagName":115,"properties":644,"children":645,"position":653},{},[646],{"type":27,"value":647,"position":648},"Events never fabricate.",{"start":649,"end":651},{"line":32,"column":564,"offset":650},1706,{"line":32,"column":33,"offset":652},1729,{"start":654,"end":656},{"line":32,"column":60,"offset":655},1704,{"line":32,"column":124,"offset":657},1731,{"type":27,"value":659,"position":660}," The strictness rules from the ",{"start":661,"end":662},{"line":32,"column":124,"offset":657},{"line":32,"column":619,"offset":663},1762,{"type":18,"tagName":304,"properties":665,"children":667,"position":676},{"href":666},"../functions/ta-library.md",[668],{"type":27,"value":669,"position":670},"TA conventions",{"start":671,"end":674},{"line":32,"column":672,"offset":673},63,1763,{"line":32,"column":178,"offset":675},1777,{"start":677,"end":678},{"line":32,"column":619,"offset":663},{"line":32,"column":679,"offset":680},106,1806,{"type":27,"value":682,"position":683}," apply: a missing condition row is false, and crosses never fire on ",{"start":684,"end":685},{"line":32,"column":679,"offset":680},{"line":32,"column":66,"offset":686},1874,{"type":18,"tagName":140,"properties":688,"children":689,"position":697},{},[690],{"type":27,"value":691,"position":692},"na",{"start":693,"end":694},{"line":32,"column":66,"offset":686},{"line":32,"column":695,"offset":696},178,1878,{"start":698,"end":699},{"line":32,"column":66,"offset":686},{"line":32,"column":695,"offset":696},{"type":27,"value":701,"position":702},". Stale venue data cannot invent signals.",{"start":703,"end":704},{"line":32,"column":695,"offset":696},{"line":32,"column":705,"offset":706},219,1919,{"start":708,"end":710},{"line":32,"column":31,"offset":709},1701,{"line":32,"column":705,"offset":706},{"type":27,"value":93},{"start":713,"end":714},{"line":563,"column":31,"offset":583},{"line":32,"column":705,"offset":706},{"type":27,"value":93},{"type":18,"tagName":250,"properties":717,"children":719,"position":727},{"id":718},"multi-symbol",[720],{"type":27,"value":721,"position":722},"Multi-symbol",{"start":723,"end":725},{"line":37,"column":60,"offset":724},1924,{"line":37,"column":261,"offset":726},1936,{"start":728,"end":730},{"line":37,"column":31,"offset":729},1921,{"line":37,"column":261,"offset":726},{"type":27,"value":93},{"type":18,"tagName":111,"properties":733,"children":734,"position":743},{},[735],{"type":27,"value":736,"position":737},"Any source call can name a symbol other than the chart's:",{"start":738,"end":740},{"line":137,"column":31,"offset":739},1938,{"line":137,"column":741,"offset":742},58,1995,{"start":744,"end":745},{"line":137,"column":31,"offset":739},{"line":137,"column":741,"offset":742},{"type":27,"value":93},{"type":15,"children":748},[749],{"type":18,"tagName":336,"properties":750,"children":751,"data":-1},{"class":338,"style":339,"tabindex":340},[752],{"type":18,"tagName":140,"properties":753,"children":754},{},[755,799,800,838,839],{"type":18,"tagName":39,"properties":756,"children":757},{"class":347},[758,763,767,771,775,779,783,787,791,795],{"type":18,"tagName":39,"properties":759,"children":760},{"style":351},[761],{"type":27,"value":762},"timeseries spy ",{"type":18,"tagName":39,"properties":764,"children":765},{"style":357},[766],{"type":27,"value":360},{"type":18,"tagName":39,"properties":768,"children":769},{"style":363},[770],{"type":27,"value":366},{"type":18,"tagName":39,"properties":772,"children":773},{"style":351},[774],{"type":27,"value":371},{"type":18,"tagName":39,"properties":776,"children":777},{"style":374},[778],{"type":27,"value":377},{"type":18,"tagName":39,"properties":780,"children":781},{"style":351},[782],{"type":27,"value":382},{"type":18,"tagName":39,"properties":784,"children":785},{"style":374},[786],{"type":27,"value":435},{"type":18,"tagName":39,"properties":788,"children":789},{"style":351},[790],{"type":27,"value":382},{"type":18,"tagName":39,"properties":792,"children":793},{"style":374},[794],{"type":27,"value":396},{"type":18,"tagName":39,"properties":796,"children":797},{"style":351},[798],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":801,"children":802},{"class":347},[803,808,812,817,822,827,832],{"type":18,"tagName":39,"properties":804,"children":805},{"style":351},[806],{"type":27,"value":807},"timeseries lead ",{"type":18,"tagName":39,"properties":809,"children":810},{"style":357},[811],{"type":27,"value":360},{"type":18,"tagName":39,"properties":813,"children":814},{"style":363},[815],{"type":27,"value":816}," htf",{"type":18,"tagName":39,"properties":818,"children":819},{"style":351},[820],{"type":27,"value":821},"(spy, ",{"type":18,"tagName":39,"properties":823,"children":824},{"style":374},[825],{"type":27,"value":826},"\"4h\"",{"type":18,"tagName":39,"properties":828,"children":829},{"style":351},[830],{"type":27,"value":831},")           ",{"type":18,"tagName":39,"properties":833,"children":835},{"style":834},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[836],{"type":27,"value":837},"// other-symbol HTF, still no-repaint",{"type":27,"value":93},{"type":18,"tagName":39,"properties":840,"children":841},{"class":347},[842,847,852,856,861,866,870,875,879,885],{"type":18,"tagName":39,"properties":843,"children":844},{"style":357},[845],{"type":27,"value":846},"var",{"type":18,"tagName":39,"properties":848,"children":849},{"style":351},[850],{"type":27,"value":851}," leading ",{"type":18,"tagName":39,"properties":853,"children":854},{"style":357},[855],{"type":27,"value":360},{"type":18,"tagName":39,"properties":857,"children":858},{"style":363},[859],{"type":27,"value":860}," rsi",{"type":18,"tagName":39,"properties":862,"children":863},{"style":351},[864],{"type":27,"value":865},"(source",{"type":18,"tagName":39,"properties":867,"children":868},{"style":357},[869],{"type":27,"value":360},{"type":18,"tagName":39,"properties":871,"children":872},{"style":351},[873],{"type":27,"value":874},"spy.close, period",{"type":18,"tagName":39,"properties":876,"children":877},{"style":357},[878],{"type":27,"value":360},{"type":18,"tagName":39,"properties":880,"children":882},{"style":881},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[883],{"type":27,"value":884},"14",{"type":18,"tagName":39,"properties":886,"children":887},{"style":351},[888],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":111,"properties":891,"children":892,"position":920},{},[893,902,914],{"type":27,"value":894,"position":895},"Everything downstream is source-agnostic: indicators, ",{"start":896,"end":899},{"line":897,"column":31,"offset":898},42,2207,{"line":897,"column":900,"offset":901},55,2261,{"type":18,"tagName":140,"properties":903,"children":904,"position":911},{},[905],{"type":27,"value":906,"position":907},"htf()",{"start":908,"end":909},{"line":897,"column":900,"offset":901},{"line":897,"column":619,"offset":910},2268,{"start":912,"end":913},{"line":897,"column":900,"offset":901},{"line":897,"column":619,"offset":910},{"type":27,"value":915,"position":916},", drawings, reducers. For the common case there is sugar:",{"start":917,"end":918},{"line":897,"column":619,"offset":910},{"line":897,"column":83,"offset":919},2325,{"start":921,"end":922},{"line":897,"column":31,"offset":898},{"line":897,"column":83,"offset":919},{"type":27,"value":93},{"type":15,"children":925},[926],{"type":18,"tagName":336,"properties":927,"children":928,"data":-1},{"class":338,"style":339,"tabindex":340},[929],{"type":18,"tagName":140,"properties":930,"children":931},{},[932,975,976],{"type":18,"tagName":39,"properties":933,"children":934},{"class":347},[935,940,944,949,953,957,961,965,970],{"type":18,"tagName":39,"properties":936,"children":937},{"style":351},[938],{"type":27,"value":939},"timeseries eth4h ",{"type":18,"tagName":39,"properties":941,"children":942},{"style":357},[943],{"type":27,"value":360},{"type":18,"tagName":39,"properties":945,"children":946},{"style":363},[947],{"type":27,"value":948}," request",{"type":18,"tagName":39,"properties":950,"children":951},{"style":351},[952],{"type":27,"value":371},{"type":18,"tagName":39,"properties":954,"children":955},{"style":374},[956],{"type":27,"value":435},{"type":18,"tagName":39,"properties":958,"children":959},{"style":351},[960],{"type":27,"value":382},{"type":18,"tagName":39,"properties":962,"children":963},{"style":374},[964],{"type":27,"value":826},{"type":18,"tagName":39,"properties":966,"children":967},{"style":351},[968],{"type":27,"value":969},")        ",{"type":18,"tagName":39,"properties":971,"children":972},{"style":834},[973],{"type":27,"value":974},"// = htf(source(\"ohlcv\", \"ETHUSDT\", currentExchange), \"4h\")",{"type":27,"value":93},{"type":18,"tagName":39,"properties":977,"children":978},{"class":347},[979,984,988,992,996,1000,1005],{"type":18,"tagName":39,"properties":980,"children":981},{"style":351},[982],{"type":27,"value":983},"timeseries ethNow ",{"type":18,"tagName":39,"properties":985,"children":986},{"style":357},[987],{"type":27,"value":360},{"type":18,"tagName":39,"properties":989,"children":990},{"style":363},[991],{"type":27,"value":948},{"type":18,"tagName":39,"properties":993,"children":994},{"style":351},[995],{"type":27,"value":371},{"type":18,"tagName":39,"properties":997,"children":998},{"style":374},[999],{"type":27,"value":435},{"type":18,"tagName":39,"properties":1001,"children":1002},{"style":351},[1003],{"type":27,"value":1004},")             ",{"type":18,"tagName":39,"properties":1006,"children":1007},{"style":834},[1008],{"type":27,"value":1009},"// raw, chart timeframe",{"type":27,"value":93},{"type":18,"tagName":111,"properties":1012,"children":1013,"position":1239},{},[1014,1028,1035,1048,1055,1067,1074,1087,1094,1110,1117,1130,1137,1150,1157,1170,1176,1189,1195,1208,1215,1233],{"type":18,"tagName":140,"properties":1015,"children":1016,"position":1025},{},[1017],{"type":27,"value":1018,"position":1019},"request(symbol, timeframe?, type?, exchange?, opts?)",{"start":1020,"end":1023},{"line":1021,"column":31,"offset":1022},48,2531,{"line":1021,"column":900,"offset":1024},2585,{"start":1026,"end":1027},{"line":1021,"column":31,"offset":1022},{"line":1021,"column":900,"offset":1024},{"type":27,"value":1029,"position":1030}," keeps every ",{"start":1031,"end":1032},{"line":1021,"column":900,"offset":1024},{"line":1021,"column":1033,"offset":1034},68,2598,{"type":18,"tagName":140,"properties":1036,"children":1037,"position":1045},{},[1038],{"type":27,"value":1039,"position":1040},"htf",{"start":1041,"end":1042},{"line":1021,"column":1033,"offset":1034},{"line":1021,"column":1043,"offset":1044},73,2603,{"start":1046,"end":1047},{"line":1021,"column":1033,"offset":1034},{"line":1021,"column":1043,"offset":1044},{"type":27,"value":1049,"position":1050}," guarantee (confirmed buckets, no repaint) and counts toward the source budget like any fetch. When the timeframe is a statically-known string coarser than the chart (e.g. ",{"start":1051,"end":1052},{"line":1021,"column":1043,"offset":1044},{"line":1021,"column":1053,"offset":1054},245,2775,{"type":18,"tagName":140,"properties":1056,"children":1057,"position":1064},{},[1058],{"type":27,"value":826,"position":1059},{"start":1060,"end":1061},{"line":1021,"column":1053,"offset":1054},{"line":1021,"column":1062,"offset":1063},251,2781,{"start":1065,"end":1066},{"line":1021,"column":1053,"offset":1054},{"line":1021,"column":1062,"offset":1063},{"type":27,"value":1068,"position":1069}," on a 1h chart), ",{"start":1070,"end":1071},{"line":1021,"column":1062,"offset":1063},{"line":1021,"column":1072,"offset":1073},268,2798,{"type":18,"tagName":140,"properties":1075,"children":1076,"position":1084},{},[1077],{"type":27,"value":1078,"position":1079},"request",{"start":1080,"end":1081},{"line":1021,"column":1072,"offset":1073},{"line":1021,"column":1082,"offset":1083},277,2807,{"start":1085,"end":1086},{"line":1021,"column":1072,"offset":1073},{"line":1021,"column":1082,"offset":1083},{"type":27,"value":1088,"position":1089}," fetches that interval ",{"start":1090,"end":1091},{"line":1021,"column":1082,"offset":1083},{"line":1021,"column":1092,"offset":1093},300,2830,{"type":18,"tagName":115,"properties":1095,"children":1096,"position":1106},{},[1097],{"type":27,"value":1098,"position":1099},"natively",{"start":1100,"end":1103},{"line":1021,"column":1101,"offset":1102},302,2832,{"line":1021,"column":1104,"offset":1105},310,2840,{"start":1107,"end":1108},{"line":1021,"column":1092,"offset":1093},{"line":1021,"column":87,"offset":1109},2842,{"type":27,"value":1111,"position":1112}," (a distinct source keyed by interval) and step-projects it onto the chart timeline, rather than aggregating chart bars. It falls back to chart-bar aggregation only when the venue serves no native data for that interval, when the timeframe is dynamic (a variable or input, which cannot be prefetched), or when the source is array-celled (",{"start":1113,"end":1114},{"line":1021,"column":87,"offset":1109},{"line":1021,"column":1115,"offset":1116},650,3180,{"type":18,"tagName":140,"properties":1118,"children":1119,"position":1127},{},[1120],{"type":27,"value":1121,"position":1122},"volume_profile",{"start":1123,"end":1124},{"line":1021,"column":1115,"offset":1116},{"line":1021,"column":1125,"offset":1126},666,3196,{"start":1128,"end":1129},{"line":1021,"column":1115,"offset":1116},{"line":1021,"column":1125,"offset":1126},{"type":27,"value":1131,"position":1132}," and similar). The ",{"start":1133,"end":1134},{"line":1021,"column":1125,"offset":1126},{"line":1021,"column":1135,"offset":1136},685,3215,{"type":18,"tagName":140,"properties":1138,"children":1139,"position":1147},{},[1140],{"type":27,"value":1141,"position":1142},"opts",{"start":1143,"end":1144},{"line":1021,"column":1135,"offset":1136},{"line":1021,"column":1145,"offset":1146},691,3221,{"start":1148,"end":1149},{"line":1021,"column":1135,"offset":1136},{"line":1021,"column":1145,"offset":1146},{"type":27,"value":1151,"position":1152}," object (",{"start":1153,"end":1154},{"line":1021,"column":1145,"offset":1146},{"line":1021,"column":1155,"offset":1156},700,3230,{"type":18,"tagName":140,"properties":1158,"children":1159,"position":1167},{},[1160],{"type":27,"value":1161,"position":1162},"mode",{"start":1163,"end":1164},{"line":1021,"column":1155,"offset":1156},{"line":1021,"column":1165,"offset":1166},706,3236,{"start":1168,"end":1169},{"line":1021,"column":1155,"offset":1156},{"line":1021,"column":1165,"offset":1166},{"type":27,"value":474,"position":1171},{"start":1172,"end":1173},{"line":1021,"column":1165,"offset":1166},{"line":1021,"column":1174,"offset":1175},707,3237,{"type":18,"tagName":140,"properties":1177,"children":1178,"position":1186},{},[1179],{"type":27,"value":1180,"position":1181},"offset",{"start":1182,"end":1183},{"line":1021,"column":1174,"offset":1175},{"line":1021,"column":1184,"offset":1185},715,3245,{"start":1187,"end":1188},{"line":1021,"column":1174,"offset":1175},{"line":1021,"column":1184,"offset":1185},{"type":27,"value":474,"position":1190},{"start":1191,"end":1192},{"line":1021,"column":1184,"offset":1185},{"line":1021,"column":1193,"offset":1194},716,3246,{"type":18,"tagName":140,"properties":1196,"children":1197,"position":1205},{},[1198],{"type":27,"value":1199,"position":1200},"bars",{"start":1201,"end":1202},{"line":1021,"column":1193,"offset":1194},{"line":1021,"column":1203,"offset":1204},722,3252,{"start":1206,"end":1207},{"line":1021,"column":1193,"offset":1194},{"line":1021,"column":1203,"offset":1204},{"type":27,"value":1209,"position":1210},") is documented under ",{"start":1211,"end":1212},{"line":1021,"column":1203,"offset":1204},{"line":1021,"column":1213,"offset":1214},744,3274,{"type":18,"tagName":304,"properties":1216,"children":1218,"position":1228},{"href":1217},"/kscript/core-concepts/multi-timeframe#opts-mode-offset-and-bars",[1219],{"type":27,"value":1220,"position":1221},"Multi-Timeframe opts",{"start":1222,"end":1225},{"line":1021,"column":1223,"offset":1224},745,3275,{"line":1021,"column":1226,"offset":1227},765,3295,{"start":1229,"end":1230},{"line":1021,"column":1213,"offset":1214},{"line":1021,"column":1231,"offset":1232},832,3362,{"type":27,"value":323,"position":1234},{"start":1235,"end":1236},{"line":1021,"column":1231,"offset":1232},{"line":1021,"column":1237,"offset":1238},833,3363,{"start":1240,"end":1241},{"line":1021,"column":31,"offset":1022},{"line":1021,"column":1237,"offset":1238},{"type":27,"value":93},{"type":18,"tagName":250,"properties":1244,"children":1246,"position":1256},{"id":1245},"higher-timeframe-requests-fetch-their-own-depth",[1247],{"type":27,"value":1248,"position":1249},"Higher-timeframe requests fetch their own depth",{"start":1250,"end":1253},{"line":1251,"column":60,"offset":1252},50,3368,{"line":1251,"column":1254,"offset":1255},51,3415,{"start":1257,"end":1259},{"line":1251,"column":31,"offset":1258},3365,{"line":1251,"column":1254,"offset":1255},{"type":27,"value":93},{"type":18,"tagName":111,"properties":1262,"children":1263,"position":1334},{},[1264,1272,1284,1291,1303,1310,1327],{"type":27,"value":1265,"position":1266},"A ",{"start":1267,"end":1270},{"line":1268,"column":31,"offset":1269},52,3417,{"line":1268,"column":36,"offset":1271},3419,{"type":18,"tagName":140,"properties":1273,"children":1274,"position":1281},{},[1275],{"type":27,"value":1276,"position":1277},"1d",{"start":1278,"end":1279},{"line":1268,"column":36,"offset":1271},{"line":1268,"column":86,"offset":1280},3423,{"start":1282,"end":1283},{"line":1268,"column":36,"offset":1271},{"line":1268,"column":86,"offset":1280},{"type":27,"value":1285,"position":1286}," source on a ",{"start":1287,"end":1288},{"line":1268,"column":86,"offset":1280},{"line":1268,"column":1289,"offset":1290},20,3436,{"type":18,"tagName":140,"properties":1292,"children":1293,"position":1300},{},[1294],{"type":27,"value":1295,"position":1296},"1m",{"start":1297,"end":1298},{"line":1268,"column":1289,"offset":1290},{"line":1268,"column":522,"offset":1299},3440,{"start":1301,"end":1302},{"line":1268,"column":1289,"offset":1290},{"line":1268,"column":522,"offset":1299},{"type":27,"value":1304,"position":1305}," chart is fetched as a deep daily window (the default is ~400 bars of the requested interval), not as the chart's few-bar span, so a daily, weekly, monthly, or yearly level ",{"start":1306,"end":1307},{"line":1268,"column":522,"offset":1299},{"line":1268,"column":1308,"offset":1309},197,3613,{"type":18,"tagName":115,"properties":1311,"children":1312,"position":1322},{},[1313],{"type":27,"value":1314,"position":1315},"resolves even on a fine chart",{"start":1316,"end":1319},{"line":1268,"column":1317,"offset":1318},199,3615,{"line":1268,"column":1320,"offset":1321},228,3644,{"start":1323,"end":1324},{"line":1268,"column":1308,"offset":1309},{"line":1268,"column":1325,"offset":1326},230,3646,{"type":27,"value":1328,"position":1329},". The base chart-interval sources keep a shallow fetch window; only the higher-timeframe request pulls deep.",{"start":1330,"end":1331},{"line":1268,"column":1325,"offset":1326},{"line":1268,"column":1332,"offset":1333},338,3754,{"start":1335,"end":1336},{"line":1268,"column":31,"offset":1269},{"line":1268,"column":1332,"offset":1333},{"type":27,"value":93},{"type":18,"tagName":1339,"properties":1340,"children":1341,"position":1743},"ul",{},[1342,1343,1391,1392,1506,1507,1742],{"type":27,"value":93},{"type":18,"tagName":553,"properties":1344,"children":1345,"position":1387},{},[1346,1363,1369,1380],{"type":18,"tagName":115,"properties":1347,"children":1348,"position":1357},{},[1349],{"type":27,"value":1350,"position":1351},"Auto depth.",{"start":1352,"end":1355},{"line":1353,"column":71,"offset":1354},54,3760,{"line":1353,"column":261,"offset":1356},3771,{"start":1358,"end":1360},{"line":1353,"column":36,"offset":1359},3758,{"line":1353,"column":1361,"offset":1362},18,3773,{"type":27,"value":1364,"position":1365}," Omit ",{"start":1366,"end":1367},{"line":1353,"column":1361,"offset":1362},{"line":1353,"column":522,"offset":1368},3779,{"type":18,"tagName":140,"properties":1370,"children":1371,"position":1377},{},[1372],{"type":27,"value":1199,"position":1373},{"start":1374,"end":1375},{"line":1353,"column":522,"offset":1368},{"line":1353,"column":32,"offset":1376},3785,{"start":1378,"end":1379},{"line":1353,"column":522,"offset":1368},{"line":1353,"column":32,"offset":1376},{"type":27,"value":1381,"position":1382}," and the request loads a period-sized window deep enough to reach the prior completed period (and the current forming one).",{"start":1383,"end":1384},{"line":1353,"column":32,"offset":1376},{"line":1353,"column":1385,"offset":1386},153,3908,{"start":1388,"end":1390},{"line":1353,"column":31,"offset":1389},3756,{"line":1353,"column":1385,"offset":1386},{"type":27,"value":93},{"type":18,"tagName":553,"properties":1393,"children":1394,"position":1502},{},[1395,1418,1424,1437,1443,1458,1465,1478,1484,1496],{"type":18,"tagName":115,"properties":1396,"children":1397,"position":1412},{},[1398],{"type":18,"tagName":140,"properties":1399,"children":1400,"position":1409},{},[1401],{"type":27,"value":1402,"position":1403},"opts.bars: N",{"start":1404,"end":1406},{"line":900,"column":71,"offset":1405},3913,{"line":900,"column":1407,"offset":1408},19,3927,{"start":1410,"end":1411},{"line":900,"column":71,"offset":1405},{"line":900,"column":1407,"offset":1408},{"start":1413,"end":1415},{"line":900,"column":36,"offset":1414},3911,{"line":900,"column":1416,"offset":1417},21,3929,{"type":27,"value":1419,"position":1420}," overrides that with exactly ",{"start":1421,"end":1422},{"line":900,"column":1416,"offset":1417},{"line":900,"column":1251,"offset":1423},3958,{"type":18,"tagName":140,"properties":1425,"children":1426,"position":1434},{},[1427],{"type":27,"value":1428,"position":1429},"N",{"start":1430,"end":1431},{"line":900,"column":1251,"offset":1423},{"line":900,"column":1432,"offset":1433},53,3961,{"start":1435,"end":1436},{"line":900,"column":1251,"offset":1423},{"line":900,"column":1432,"offset":1433},{"type":27,"value":1438,"position":1439}," bars ",{"start":1440,"end":1441},{"line":900,"column":1432,"offset":1433},{"line":900,"column":541,"offset":1442},3967,{"type":18,"tagName":115,"properties":1444,"children":1445,"position":1453},{},[1446],{"type":27,"value":1447,"position":1448},"of the requested timeframe",{"start":1449,"end":1451},{"line":900,"column":609,"offset":1450},3969,{"line":900,"column":188,"offset":1452},3995,{"start":1454,"end":1455},{"line":900,"column":541,"offset":1442},{"line":900,"column":1456,"offset":1457},89,3997,{"type":27,"value":1459,"position":1460},": ",{"start":1461,"end":1462},{"line":900,"column":1456,"offset":1457},{"line":900,"column":1463,"offset":1464},91,3999,{"type":18,"tagName":140,"properties":1466,"children":1467,"position":1475},{},[1468],{"type":27,"value":1469,"position":1470},"request(\"ETHUSDT\", \"4h\", { bars: 500 })",{"start":1471,"end":1472},{"line":900,"column":1463,"offset":1464},{"line":900,"column":1473,"offset":1474},132,4040,{"start":1476,"end":1477},{"line":900,"column":1463,"offset":1464},{"line":900,"column":1473,"offset":1474},{"type":27,"value":1479,"position":1480}," fetches 500 native 4h bars. For a calendar token the count is converted to the backing interval. ",{"start":1481,"end":1482},{"line":900,"column":1473,"offset":1474},{"line":900,"column":1325,"offset":1483},4138,{"type":18,"tagName":140,"properties":1485,"children":1486,"position":1493},{},[1487],{"type":27,"value":1199,"position":1488},{"start":1489,"end":1490},{"line":900,"column":1325,"offset":1483},{"line":900,"column":1491,"offset":1492},236,4144,{"start":1494,"end":1495},{"line":900,"column":1325,"offset":1483},{"line":900,"column":1491,"offset":1492},{"type":27,"value":1497,"position":1498}," is request-only.",{"start":1499,"end":1500},{"line":900,"column":1491,"offset":1492},{"line":900,"column":633,"offset":1501},4161,{"start":1503,"end":1505},{"line":900,"column":31,"offset":1504},3909,{"line":900,"column":633,"offset":1501},{"type":27,"value":93},{"type":18,"tagName":553,"properties":1508,"children":1509,"position":1738},{},[1510,1526,1533,1545,1551,1564,1570,1583,1589,1606,1613,1625,1631,1644,1651,1667,1674,1687,1694,1707,1714,1731],{"type":18,"tagName":115,"properties":1511,"children":1512,"position":1521},{},[1513],{"type":27,"value":1514,"position":1515},"Calendar backing.",{"start":1516,"end":1518},{"line":158,"column":71,"offset":1517},4166,{"line":158,"column":1519,"offset":1520},22,4183,{"start":1522,"end":1524},{"line":158,"column":36,"offset":1523},4164,{"line":158,"column":522,"offset":1525},4185,{"type":27,"value":1527,"position":1528}," Calendar tokens aggregate engine-side from a shared, deduped backing source: ",{"start":1529,"end":1530},{"line":158,"column":522,"offset":1525},{"line":158,"column":1531,"offset":1532},102,4263,{"type":18,"tagName":140,"properties":1534,"children":1535,"position":1542},{},[1536],{"type":27,"value":1537,"position":1538},"1D",{"start":1539,"end":1540},{"line":158,"column":1531,"offset":1532},{"line":158,"column":679,"offset":1541},4267,{"start":1543,"end":1544},{"line":158,"column":1531,"offset":1532},{"line":158,"column":679,"offset":1541},{"type":27,"value":474,"position":1546},{"start":1547,"end":1548},{"line":158,"column":679,"offset":1541},{"line":158,"column":1549,"offset":1550},107,4268,{"type":18,"tagName":140,"properties":1552,"children":1553,"position":1561},{},[1554],{"type":27,"value":1555,"position":1556},"1W",{"start":1557,"end":1558},{"line":158,"column":1549,"offset":1550},{"line":158,"column":1559,"offset":1560},111,4272,{"start":1562,"end":1563},{"line":158,"column":1549,"offset":1550},{"line":158,"column":1559,"offset":1560},{"type":27,"value":474,"position":1565},{"start":1566,"end":1567},{"line":158,"column":1559,"offset":1560},{"line":158,"column":1568,"offset":1569},112,4273,{"type":18,"tagName":140,"properties":1571,"children":1572,"position":1580},{},[1573],{"type":27,"value":1574,"position":1575},"1M",{"start":1576,"end":1577},{"line":158,"column":1568,"offset":1569},{"line":158,"column":1578,"offset":1579},116,4277,{"start":1581,"end":1582},{"line":158,"column":1568,"offset":1569},{"line":158,"column":1578,"offset":1579},{"type":27,"value":1584,"position":1585}," from a deep ",{"start":1586,"end":1587},{"line":158,"column":1578,"offset":1579},{"line":158,"column":208,"offset":1588},4290,{"type":18,"tagName":115,"properties":1590,"children":1591,"position":1601},{},[1592],{"type":27,"value":1593,"position":1594},"daily",{"start":1595,"end":1598},{"line":158,"column":1596,"offset":1597},131,4292,{"line":158,"column":1599,"offset":1600},136,4297,{"start":1602,"end":1603},{"line":158,"column":208,"offset":1588},{"line":158,"column":1604,"offset":1605},138,4299,{"type":27,"value":1607,"position":1608}," source, ",{"start":1609,"end":1610},{"line":158,"column":1604,"offset":1605},{"line":158,"column":1611,"offset":1612},147,4308,{"type":18,"tagName":140,"properties":1614,"children":1615,"position":1622},{},[1616],{"type":27,"value":1617,"position":1618},"1Q",{"start":1619,"end":1620},{"line":158,"column":1611,"offset":1612},{"line":158,"column":58,"offset":1621},4312,{"start":1623,"end":1624},{"line":158,"column":1611,"offset":1612},{"line":158,"column":58,"offset":1621},{"type":27,"value":474,"position":1626},{"start":1627,"end":1628},{"line":158,"column":58,"offset":1621},{"line":158,"column":1629,"offset":1630},152,4313,{"type":18,"tagName":140,"properties":1632,"children":1633,"position":1641},{},[1634],{"type":27,"value":1635,"position":1636},"1Y",{"start":1637,"end":1638},{"line":158,"column":1629,"offset":1630},{"line":158,"column":1639,"offset":1640},156,4317,{"start":1642,"end":1643},{"line":158,"column":1629,"offset":1630},{"line":158,"column":1639,"offset":1640},{"type":27,"value":1645,"position":1646}," from a coarser ",{"start":1647,"end":1648},{"line":158,"column":1639,"offset":1640},{"line":158,"column":1649,"offset":1650},172,4333,{"type":18,"tagName":115,"properties":1652,"children":1653,"position":1662},{},[1654],{"type":27,"value":1655,"position":1656},"weekly",{"start":1657,"end":1659},{"line":158,"column":66,"offset":1658},4335,{"line":158,"column":1660,"offset":1661},180,4341,{"start":1663,"end":1664},{"line":158,"column":1649,"offset":1650},{"line":158,"column":1665,"offset":1666},182,4343,{"type":27,"value":1668,"position":1669}," source (about 5x fewer bars). Tokens that share a backing interval (plus a plain ",{"start":1670,"end":1671},{"line":158,"column":1665,"offset":1666},{"line":158,"column":1672,"offset":1673},264,4425,{"type":18,"tagName":140,"properties":1675,"children":1676,"position":1684},{},[1677],{"type":27,"value":1678,"position":1679},"request(sym, \"1d\")",{"start":1680,"end":1681},{"line":158,"column":1672,"offset":1673},{"line":158,"column":1682,"offset":1683},284,4445,{"start":1685,"end":1686},{"line":158,"column":1672,"offset":1673},{"line":158,"column":1682,"offset":1683},{"type":27,"value":1688,"position":1689}," or ",{"start":1690,"end":1691},{"line":158,"column":1682,"offset":1683},{"line":158,"column":1692,"offset":1693},288,4449,{"type":18,"tagName":140,"properties":1695,"children":1696,"position":1704},{},[1697],{"type":27,"value":1698,"position":1699},"request(sym, \"1w\")",{"start":1700,"end":1701},{"line":158,"column":1692,"offset":1693},{"line":158,"column":1702,"offset":1703},308,4469,{"start":1705,"end":1706},{"line":158,"column":1692,"offset":1693},{"line":158,"column":1702,"offset":1703},{"type":27,"value":1708,"position":1709},") collapse to ",{"start":1710,"end":1711},{"line":158,"column":1702,"offset":1703},{"line":158,"column":1712,"offset":1713},322,4483,{"type":18,"tagName":115,"properties":1715,"children":1716,"position":1726},{},[1717],{"type":27,"value":1718,"position":1719},"one",{"start":1720,"end":1723},{"line":158,"column":1721,"offset":1722},324,4485,{"line":158,"column":1724,"offset":1725},327,4488,{"start":1727,"end":1728},{"line":158,"column":1712,"offset":1713},{"line":158,"column":1729,"offset":1730},329,4490,{"type":27,"value":1732,"position":1733}," cached fetch each, so a symbol's calendar requests use at most two backing sources.",{"start":1734,"end":1735},{"line":158,"column":1729,"offset":1730},{"line":158,"column":1736,"offset":1737},413,4574,{"start":1739,"end":1741},{"line":158,"column":31,"offset":1740},4162,{"line":158,"column":1736,"offset":1737},{"type":27,"value":93},{"start":1744,"end":1745},{"line":1353,"column":31,"offset":1389},{"line":158,"column":1736,"offset":1737},{"type":27,"value":93},{"type":18,"tagName":111,"properties":1748,"children":1749,"position":1834},{},[1750,1765,1772,1785,1792,1804,1811,1828],{"type":18,"tagName":115,"properties":1751,"children":1752,"position":1760},{},[1753],{"type":27,"value":1754,"position":1755},"Source-count consequence.",{"start":1756,"end":1758},{"line":741,"column":36,"offset":1757},4578,{"line":741,"column":563,"offset":1759},4603,{"start":1761,"end":1763},{"line":741,"column":31,"offset":1762},4576,{"line":741,"column":32,"offset":1764},4605,{"type":27,"value":1766,"position":1767}," Because a coarser request is keyed by its interval, ",{"start":1768,"end":1769},{"line":741,"column":32,"offset":1764},{"line":741,"column":1770,"offset":1771},83,4658,{"type":18,"tagName":140,"properties":1773,"children":1774,"position":1782},{},[1775],{"type":27,"value":1776,"position":1777},"request(\"ETHUSDT\")",{"start":1778,"end":1779},{"line":741,"column":1770,"offset":1771},{"line":741,"column":1780,"offset":1781},103,4678,{"start":1783,"end":1784},{"line":741,"column":1770,"offset":1771},{"line":741,"column":1780,"offset":1781},{"type":27,"value":1786,"position":1787}," (chart interval) and ",{"start":1788,"end":1789},{"line":741,"column":1780,"offset":1781},{"line":741,"column":1790,"offset":1791},125,4700,{"type":18,"tagName":140,"properties":1793,"children":1794,"position":1801},{},[1795],{"type":27,"value":1796,"position":1797},"request(\"ETHUSDT\", \"4h\")",{"start":1798,"end":1799},{"line":741,"column":1790,"offset":1791},{"line":741,"column":58,"offset":1800},4726,{"start":1802,"end":1803},{"line":741,"column":1790,"offset":1791},{"line":741,"column":58,"offset":1800},{"type":27,"value":1805,"position":1806}," (native 4h) are ",{"start":1807,"end":1808},{"line":741,"column":58,"offset":1800},{"line":741,"column":1809,"offset":1810},168,4743,{"type":18,"tagName":115,"properties":1812,"children":1813,"position":1823},{},[1814],{"type":27,"value":1815,"position":1816},"two distinct sources",{"start":1817,"end":1820},{"line":741,"column":1818,"offset":1819},170,4745,{"line":741,"column":1821,"offset":1822},190,4765,{"start":1824,"end":1825},{"line":741,"column":1809,"offset":1810},{"line":741,"column":1826,"offset":1827},192,4767,{"type":27,"value":1829,"position":1830},", not one. Duplicate identical requests still dedupe.",{"start":1831,"end":1832},{"line":741,"column":1826,"offset":1827},{"line":741,"column":1053,"offset":1833},4820,{"start":1835,"end":1836},{"line":741,"column":31,"offset":1762},{"line":741,"column":1053,"offset":1833},{"type":27,"value":93},{"type":18,"tagName":111,"properties":1839,"children":1840,"position":1921},{},[1841,1849,1866,1872,1884,1890,1914],{"type":27,"value":1842,"position":1843},"For history depth on the chart's ",{"start":1844,"end":1847},{"line":1845,"column":31,"offset":1846},60,4822,{"line":1845,"column":137,"offset":1848},4855,{"type":18,"tagName":115,"properties":1850,"children":1851,"position":1861},{},[1852],{"type":27,"value":1853,"position":1854},"own",{"start":1855,"end":1858},{"line":1845,"column":1856,"offset":1857},36,4857,{"line":1845,"column":1859,"offset":1860},39,4860,{"start":1862,"end":1863},{"line":1845,"column":137,"offset":1848},{"line":1845,"column":1864,"offset":1865},41,4862,{"type":27,"value":1867,"position":1868}," series (cumulative ",{"start":1869,"end":1870},{"line":1845,"column":1864,"offset":1865},{"line":1845,"column":609,"offset":1871},4882,{"type":18,"tagName":140,"properties":1873,"children":1874,"position":1881},{},[1875],{"type":27,"value":1876,"position":1877},"vwap()",{"start":1878,"end":1879},{"line":1845,"column":609,"offset":1871},{"line":1845,"column":287,"offset":1880},4890,{"start":1882,"end":1883},{"line":1845,"column":609,"offset":1871},{"line":1845,"column":287,"offset":1880},{"type":27,"value":1885,"position":1886},", anchored VWAPs) that survives panning, you still declare it with ",{"start":1887,"end":1888},{"line":1845,"column":287,"offset":1880},{"line":1845,"column":1599,"offset":1889},4957,{"type":18,"tagName":304,"properties":1891,"children":1893,"position":1909},{"href":1892},"/kscript/functions/script-definition",[1894],{"type":18,"tagName":140,"properties":1895,"children":1896,"position":1906},{},[1897],{"type":27,"value":1898,"position":1899},"define(..., maxBarsBack=N)",{"start":1900,"end":1903},{"line":1845,"column":1901,"offset":1902},137,4958,{"line":1845,"column":1904,"offset":1905},165,4986,{"start":1907,"end":1908},{"line":1845,"column":1901,"offset":1902},{"line":1845,"column":1904,"offset":1905},{"start":1910,"end":1911},{"line":1845,"column":1599,"offset":1889},{"line":1845,"column":1912,"offset":1913},204,5025,{"type":27,"value":1915,"position":1916},"; that is about the base series, separate from a higher-timeframe request's independent fetch.",{"start":1917,"end":1918},{"line":1845,"column":1912,"offset":1913},{"line":1845,"column":1919,"offset":1920},298,5119,{"start":1922,"end":1923},{"line":1845,"column":31,"offset":1846},{"line":1845,"column":1919,"offset":1920},{"type":27,"value":93},{"type":18,"tagName":250,"properties":1926,"children":1928,"position":1936},{"id":1927},"multi-venue-aggregation",[1929],{"type":27,"value":1930,"position":1931},"Multi-venue aggregation",{"start":1932,"end":1934},{"line":619,"column":60,"offset":1933},5124,{"line":619,"column":567,"offset":1935},5147,{"start":1937,"end":1939},{"line":619,"column":31,"offset":1938},5121,{"line":619,"column":567,"offset":1935},{"type":27,"value":93},{"type":18,"tagName":111,"properties":1942,"children":1943,"position":1952},{},[1944],{"type":27,"value":1945,"position":1946},"The flagship pattern: one metric, summed across exchanges.",{"start":1947,"end":1950},{"line":1948,"column":31,"offset":1949},64,5149,{"line":1948,"column":541,"offset":1951},5207,{"start":1953,"end":1954},{"line":1948,"column":31,"offset":1949},{"line":1948,"column":541,"offset":1951},{"type":27,"value":93},{"type":18,"tagName":111,"properties":1957,"children":1958,"position":1974},{},[1959],{"type":18,"tagName":115,"properties":1960,"children":1961,"position":1969},{},[1962],{"type":27,"value":1963,"position":1964},"Aggregated CVD:",{"start":1965,"end":1967},{"line":622,"column":36,"offset":1966},5211,{"line":622,"column":1361,"offset":1968},5226,{"start":1970,"end":1972},{"line":622,"column":31,"offset":1971},5209,{"line":622,"column":1289,"offset":1973},5228,{"start":1975,"end":1976},{"line":622,"column":31,"offset":1971},{"line":622,"column":1289,"offset":1973},{"type":27,"value":93},{"type":15,"children":1979},[1980],{"type":18,"tagName":336,"properties":1981,"children":1982,"data":-1},{"class":338,"style":339,"tabindex":340},[1983],{"type":18,"tagName":140,"properties":1984,"children":1985},{},[1986,2025,2026,2029,2030,2075,2076,2121,2122,2167,2168,2171,2172,2190,2191,2214,2215,2223,2224,2227,2228,2277,2278,2300,2301,2304,2305],{"type":18,"tagName":39,"properties":1987,"children":1988},{"class":347},[1989,1994,1998,2003,2007,2012,2016,2021],{"type":18,"tagName":39,"properties":1990,"children":1991},{"style":363},[1992],{"type":27,"value":1993},"define",{"type":18,"tagName":39,"properties":1995,"children":1996},{"style":351},[1997],{"type":27,"value":371},{"type":18,"tagName":39,"properties":1999,"children":2000},{"style":374},[2001],{"type":27,"value":2002},"\"Aggregated CVD\"",{"type":18,"tagName":39,"properties":2004,"children":2005},{"style":351},[2006],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2008,"children":2009},{"style":374},[2010],{"type":27,"value":2011},"\"offchart\"",{"type":18,"tagName":39,"properties":2013,"children":2014},{"style":351},[2015],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2017,"children":2018},{"style":881},[2019],{"type":27,"value":2020},"true",{"type":18,"tagName":39,"properties":2022,"children":2023},{"style":351},[2024],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2027,"children":2028},{"class":347},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":2031,"children":2032},{"class":347},[2033,2038,2042,2046,2050,2055,2059,2063,2067,2071],{"type":18,"tagName":39,"properties":2034,"children":2035},{"style":351},[2036],{"type":27,"value":2037},"timeseries bsBinance ",{"type":18,"tagName":39,"properties":2039,"children":2040},{"style":357},[2041],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2043,"children":2044},{"style":363},[2045],{"type":27,"value":366},{"type":18,"tagName":39,"properties":2047,"children":2048},{"style":351},[2049],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2051,"children":2052},{"style":374},[2053],{"type":27,"value":2054},"\"buy_sell_volume\"",{"type":18,"tagName":39,"properties":2056,"children":2057},{"style":351},[2058],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2060,"children":2061},{"style":374},[2062],{"type":27,"value":387},{"type":18,"tagName":39,"properties":2064,"children":2065},{"style":351},[2066],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2068,"children":2069},{"style":374},[2070],{"type":27,"value":396},{"type":18,"tagName":39,"properties":2072,"children":2073},{"style":351},[2074],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2077,"children":2078},{"class":347},[2079,2084,2088,2092,2096,2100,2104,2108,2112,2117],{"type":18,"tagName":39,"properties":2080,"children":2081},{"style":351},[2082],{"type":27,"value":2083},"timeseries bsBybit ",{"type":18,"tagName":39,"properties":2085,"children":2086},{"style":357},[2087],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2089,"children":2090},{"style":363},[2091],{"type":27,"value":366},{"type":18,"tagName":39,"properties":2093,"children":2094},{"style":351},[2095],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2097,"children":2098},{"style":374},[2099],{"type":27,"value":2054},{"type":18,"tagName":39,"properties":2101,"children":2102},{"style":351},[2103],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2105,"children":2106},{"style":374},[2107],{"type":27,"value":387},{"type":18,"tagName":39,"properties":2109,"children":2110},{"style":351},[2111],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2113,"children":2114},{"style":374},[2115],{"type":27,"value":2116},"\"BYBIT\"",{"type":18,"tagName":39,"properties":2118,"children":2119},{"style":351},[2120],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2123,"children":2124},{"class":347},[2125,2130,2134,2138,2142,2146,2150,2154,2158,2163],{"type":18,"tagName":39,"properties":2126,"children":2127},{"style":351},[2128],{"type":27,"value":2129},"timeseries bsOkx ",{"type":18,"tagName":39,"properties":2131,"children":2132},{"style":357},[2133],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2135,"children":2136},{"style":363},[2137],{"type":27,"value":366},{"type":18,"tagName":39,"properties":2139,"children":2140},{"style":351},[2141],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2143,"children":2144},{"style":374},[2145],{"type":27,"value":2054},{"type":18,"tagName":39,"properties":2147,"children":2148},{"style":351},[2149],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2151,"children":2152},{"style":374},[2153],{"type":27,"value":387},{"type":18,"tagName":39,"properties":2155,"children":2156},{"style":351},[2157],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2159,"children":2160},{"style":374},[2161],{"type":27,"value":2162},"\"OKX\"",{"type":18,"tagName":39,"properties":2164,"children":2165},{"style":351},[2166],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2169,"children":2170},{"class":347},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":2173,"children":2174},{"class":347},[2175,2180,2185],{"type":18,"tagName":39,"properties":2176,"children":2177},{"style":351},[2178],{"type":27,"value":2179},"func ",{"type":18,"tagName":39,"properties":2181,"children":2182},{"style":363},[2183],{"type":27,"value":2184},"delta",{"type":18,"tagName":39,"properties":2186,"children":2187},{"style":351},[2188],{"type":27,"value":2189},"(bs) {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2192,"children":2193},{"class":347},[2194,2199,2204,2209],{"type":18,"tagName":39,"properties":2195,"children":2196},{"style":357},[2197],{"type":27,"value":2198},"  return",{"type":18,"tagName":39,"properties":2200,"children":2201},{"style":351},[2202],{"type":27,"value":2203}," bs.buy ",{"type":18,"tagName":39,"properties":2205,"children":2206},{"style":357},[2207],{"type":27,"value":2208},"-",{"type":18,"tagName":39,"properties":2210,"children":2211},{"style":351},[2212],{"type":27,"value":2213}," bs.sell",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2216,"children":2217},{"class":347},[2218],{"type":18,"tagName":39,"properties":2219,"children":2220},{"style":351},[2221],{"type":27,"value":2222},"}",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2225,"children":2226},{"class":347},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":2229,"children":2230},{"class":347},[2231,2236,2240,2245,2250,2255,2259,2264,2268,2272],{"type":18,"tagName":39,"properties":2232,"children":2233},{"style":351},[2234],{"type":27,"value":2235},"timeseries aggDelta ",{"type":18,"tagName":39,"properties":2237,"children":2238},{"style":357},[2239],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2241,"children":2242},{"style":363},[2243],{"type":27,"value":2244}," delta",{"type":18,"tagName":39,"properties":2246,"children":2247},{"style":351},[2248],{"type":27,"value":2249},"(bsBinance) ",{"type":18,"tagName":39,"properties":2251,"children":2252},{"style":357},[2253],{"type":27,"value":2254},"+",{"type":18,"tagName":39,"properties":2256,"children":2257},{"style":363},[2258],{"type":27,"value":2244},{"type":18,"tagName":39,"properties":2260,"children":2261},{"style":351},[2262],{"type":27,"value":2263},"(bsBybit) ",{"type":18,"tagName":39,"properties":2265,"children":2266},{"style":357},[2267],{"type":27,"value":2254},{"type":18,"tagName":39,"properties":2269,"children":2270},{"style":363},[2271],{"type":27,"value":2244},{"type":18,"tagName":39,"properties":2273,"children":2274},{"style":351},[2275],{"type":27,"value":2276},"(bsOkx)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2279,"children":2280},{"class":347},[2281,2286,2290,2295],{"type":18,"tagName":39,"properties":2282,"children":2283},{"style":351},[2284],{"type":27,"value":2285},"timeseries aggCvd ",{"type":18,"tagName":39,"properties":2287,"children":2288},{"style":357},[2289],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2291,"children":2292},{"style":363},[2293],{"type":27,"value":2294}," cum",{"type":18,"tagName":39,"properties":2296,"children":2297},{"style":351},[2298],{"type":27,"value":2299},"(aggDelta)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2302,"children":2303},{"class":347},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":2306,"children":2307},{"class":347},[2308,2312,2317,2321,2326,2331,2336,2341,2346,2351,2356,2361,2365,2369,2373,2378,2382,2386,2391],{"type":18,"tagName":39,"properties":2309,"children":2310},{"style":363},[2311],{"type":27,"value":488},{"type":18,"tagName":39,"properties":2313,"children":2314},{"style":351},[2315],{"type":27,"value":2316},"(aggCvd, colors",{"type":18,"tagName":39,"properties":2318,"children":2319},{"style":357},[2320],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2322,"children":2323},{"style":351},[2324],{"type":27,"value":2325},"[aggDelta ",{"type":18,"tagName":39,"properties":2327,"children":2328},{"style":357},[2329],{"type":27,"value":2330},">",{"type":18,"tagName":39,"properties":2332,"children":2333},{"style":881},[2334],{"type":27,"value":2335}," 0",{"type":18,"tagName":39,"properties":2337,"children":2338},{"style":357},[2339],{"type":27,"value":2340}," ?",{"type":18,"tagName":39,"properties":2342,"children":2343},{"style":374},[2344],{"type":27,"value":2345}," \"#16a34a\"",{"type":18,"tagName":39,"properties":2347,"children":2348},{"style":357},[2349],{"type":27,"value":2350}," :",{"type":18,"tagName":39,"properties":2352,"children":2353},{"style":374},[2354],{"type":27,"value":2355}," \"#dc2626\"",{"type":18,"tagName":39,"properties":2357,"children":2358},{"style":351},[2359],{"type":27,"value":2360},"], label",{"type":18,"tagName":39,"properties":2362,"children":2363},{"style":357},[2364],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2366,"children":2367},{"style":351},[2368],{"type":27,"value":502},{"type":18,"tagName":39,"properties":2370,"children":2371},{"style":374},[2372],{"type":27,"value":2002},{"type":18,"tagName":39,"properties":2374,"children":2375},{"style":351},[2376],{"type":27,"value":2377},"], desc",{"type":18,"tagName":39,"properties":2379,"children":2380},{"style":357},[2381],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2383,"children":2384},{"style":351},[2385],{"type":27,"value":502},{"type":18,"tagName":39,"properties":2387,"children":2388},{"style":374},[2389],{"type":27,"value":2390},"\"cumulative delta across venues\"",{"type":18,"tagName":39,"properties":2392,"children":2393},{"style":351},[2394],{"type":27,"value":512},{"type":27,"value":93},{"type":18,"tagName":111,"properties":2397,"children":2398,"position":2417},{},[2399],{"type":18,"tagName":115,"properties":2400,"children":2401,"position":2411},{},[2402],{"type":27,"value":2403,"position":2404},"Aggregated open interest, venue-weighted:",{"start":2405,"end":2408},{"line":2406,"column":36,"offset":2407},85,5788,{"line":2406,"column":2409,"offset":2410},44,5829,{"start":2412,"end":2414},{"line":2406,"column":31,"offset":2413},5786,{"line":2406,"column":2415,"offset":2416},46,5831,{"start":2418,"end":2419},{"line":2406,"column":31,"offset":2413},{"line":2406,"column":2415,"offset":2416},{"type":27,"value":93},{"type":15,"children":2422},[2423],{"type":18,"tagName":336,"properties":2424,"children":2425,"data":-1},{"class":338,"style":339,"tabindex":340},[2426],{"type":18,"tagName":140,"properties":2427,"children":2428},{},[2429,2474,2475,2519,2520,2523,2524,2545,2546,2581,2582,2615,2616,2619,2620,2628,2629,2673,2674,2711,2712,2715,2716,2728,2729],{"type":18,"tagName":39,"properties":2430,"children":2431},{"class":347},[2432,2437,2441,2445,2449,2454,2458,2462,2466,2470],{"type":18,"tagName":39,"properties":2433,"children":2434},{"style":351},[2435],{"type":27,"value":2436},"timeseries oiBinance ",{"type":18,"tagName":39,"properties":2438,"children":2439},{"style":357},[2440],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2442,"children":2443},{"style":363},[2444],{"type":27,"value":366},{"type":18,"tagName":39,"properties":2446,"children":2447},{"style":351},[2448],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2450,"children":2451},{"style":374},[2452],{"type":27,"value":2453},"\"open_interest\"",{"type":18,"tagName":39,"properties":2455,"children":2456},{"style":351},[2457],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2459,"children":2460},{"style":374},[2461],{"type":27,"value":387},{"type":18,"tagName":39,"properties":2463,"children":2464},{"style":351},[2465],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2467,"children":2468},{"style":374},[2469],{"type":27,"value":396},{"type":18,"tagName":39,"properties":2471,"children":2472},{"style":351},[2473],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2476,"children":2477},{"class":347},[2478,2483,2487,2491,2495,2499,2503,2507,2511,2515],{"type":18,"tagName":39,"properties":2479,"children":2480},{"style":351},[2481],{"type":27,"value":2482},"timeseries oiBybit ",{"type":18,"tagName":39,"properties":2484,"children":2485},{"style":357},[2486],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2488,"children":2489},{"style":363},[2490],{"type":27,"value":366},{"type":18,"tagName":39,"properties":2492,"children":2493},{"style":351},[2494],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2496,"children":2497},{"style":374},[2498],{"type":27,"value":2453},{"type":18,"tagName":39,"properties":2500,"children":2501},{"style":351},[2502],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2504,"children":2505},{"style":374},[2506],{"type":27,"value":387},{"type":18,"tagName":39,"properties":2508,"children":2509},{"style":351},[2510],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2512,"children":2513},{"style":374},[2514],{"type":27,"value":2116},{"type":18,"tagName":39,"properties":2516,"children":2517},{"style":351},[2518],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2521,"children":2522},{"class":347},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":2525,"children":2526},{"class":347},[2527,2531,2536,2540],{"type":18,"tagName":39,"properties":2528,"children":2529},{"style":357},[2530],{"type":27,"value":846},{"type":18,"tagName":39,"properties":2532,"children":2533},{"style":351},[2534],{"type":27,"value":2535}," weights ",{"type":18,"tagName":39,"properties":2537,"children":2538},{"style":357},[2539],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2541,"children":2542},{"style":351},[2543],{"type":27,"value":2544}," {}",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2547,"children":2548},{"class":347},[2549,2554,2559,2563,2568,2572,2577],{"type":18,"tagName":39,"properties":2550,"children":2551},{"style":351},[2552],{"type":27,"value":2553},"weights.",{"type":18,"tagName":39,"properties":2555,"children":2556},{"style":363},[2557],{"type":27,"value":2558},"set",{"type":18,"tagName":39,"properties":2560,"children":2561},{"style":351},[2562],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2564,"children":2565},{"style":374},[2566],{"type":27,"value":2567},"\"binance\"",{"type":18,"tagName":39,"properties":2569,"children":2570},{"style":351},[2571],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2573,"children":2574},{"style":881},[2575],{"type":27,"value":2576},"0.6",{"type":18,"tagName":39,"properties":2578,"children":2579},{"style":351},[2580],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2583,"children":2584},{"class":347},[2585,2589,2593,2597,2602,2606,2611],{"type":18,"tagName":39,"properties":2586,"children":2587},{"style":351},[2588],{"type":27,"value":2553},{"type":18,"tagName":39,"properties":2590,"children":2591},{"style":363},[2592],{"type":27,"value":2558},{"type":18,"tagName":39,"properties":2594,"children":2595},{"style":351},[2596],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2598,"children":2599},{"style":374},[2600],{"type":27,"value":2601},"\"bybit\"",{"type":18,"tagName":39,"properties":2603,"children":2604},{"style":351},[2605],{"type":27,"value":382},{"type":18,"tagName":39,"properties":2607,"children":2608},{"style":881},[2609],{"type":27,"value":2610},"0.4",{"type":18,"tagName":39,"properties":2612,"children":2613},{"style":351},[2614],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2617,"children":2618},{"class":347},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":2621,"children":2622},{"class":347},[2623],{"type":18,"tagName":39,"properties":2624,"children":2625},{"style":834},[2626],{"type":27,"value":2627},"// open_interest is OHLC-shaped; .close is the current OI value",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2630,"children":2631},{"class":347},[2632,2637,2641,2646,2651,2656,2661,2665,2669],{"type":18,"tagName":39,"properties":2633,"children":2634},{"style":351},[2635],{"type":27,"value":2636},"timeseries aggOI ",{"type":18,"tagName":39,"properties":2638,"children":2639},{"style":357},[2640],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2642,"children":2643},{"style":351},[2644],{"type":27,"value":2645}," oiBinance.close ",{"type":18,"tagName":39,"properties":2647,"children":2648},{"style":357},[2649],{"type":27,"value":2650},"*",{"type":18,"tagName":39,"properties":2652,"children":2653},{"style":351},[2654],{"type":27,"value":2655}," weights.",{"type":18,"tagName":39,"properties":2657,"children":2658},{"style":363},[2659],{"type":27,"value":2660},"get",{"type":18,"tagName":39,"properties":2662,"children":2663},{"style":351},[2664],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2666,"children":2667},{"style":374},[2668],{"type":27,"value":2567},{"type":18,"tagName":39,"properties":2670,"children":2671},{"style":351},[2672],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2675,"children":2676},{"class":347},[2677,2682,2687,2691,2695,2699,2703,2707],{"type":18,"tagName":39,"properties":2678,"children":2679},{"style":357},[2680],{"type":27,"value":2681},"  +",{"type":18,"tagName":39,"properties":2683,"children":2684},{"style":351},[2685],{"type":27,"value":2686}," oiBybit.close ",{"type":18,"tagName":39,"properties":2688,"children":2689},{"style":357},[2690],{"type":27,"value":2650},{"type":18,"tagName":39,"properties":2692,"children":2693},{"style":351},[2694],{"type":27,"value":2655},{"type":18,"tagName":39,"properties":2696,"children":2697},{"style":363},[2698],{"type":27,"value":2660},{"type":18,"tagName":39,"properties":2700,"children":2701},{"style":351},[2702],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2704,"children":2705},{"style":374},[2706],{"type":27,"value":2601},{"type":18,"tagName":39,"properties":2708,"children":2709},{"style":351},[2710],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2713,"children":2714},{"class":347},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":2717,"children":2718},{"class":347},[2719,2723],{"type":18,"tagName":39,"properties":2720,"children":2721},{"style":363},[2722],{"type":27,"value":488},{"type":18,"tagName":39,"properties":2724,"children":2725},{"style":351},[2726],{"type":27,"value":2727},"(aggOI)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2730,"children":2731},{"class":347},[2732,2736,2740,2745,2749,2753,2758,2762,2767,2772,2776,2780,2785,2790,2794,2798,2803,2807,2811,2816,2820,2824,2828,2833],{"type":18,"tagName":39,"properties":2733,"children":2734},{"style":363},[2735],{"type":27,"value":488},{"type":18,"tagName":39,"properties":2737,"children":2738},{"style":351},[2739],{"type":27,"value":371},{"type":18,"tagName":39,"properties":2741,"children":2742},{"style":363},[2743],{"type":27,"value":2744},"ema",{"type":18,"tagName":39,"properties":2746,"children":2747},{"style":351},[2748],{"type":27,"value":865},{"type":18,"tagName":39,"properties":2750,"children":2751},{"style":357},[2752],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2754,"children":2755},{"style":351},[2756],{"type":27,"value":2757},"aggOI, period",{"type":18,"tagName":39,"properties":2759,"children":2760},{"style":357},[2761],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2763,"children":2764},{"style":881},[2765],{"type":27,"value":2766},"21",{"type":18,"tagName":39,"properties":2768,"children":2769},{"style":351},[2770],{"type":27,"value":2771},"), colors",{"type":18,"tagName":39,"properties":2773,"children":2774},{"style":357},[2775],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2777,"children":2778},{"style":351},[2779],{"type":27,"value":502},{"type":18,"tagName":39,"properties":2781,"children":2782},{"style":374},[2783],{"type":27,"value":2784},"\"#94a3b8\"",{"type":18,"tagName":39,"properties":2786,"children":2787},{"style":351},[2788],{"type":27,"value":2789},"], zOrder",{"type":18,"tagName":39,"properties":2791,"children":2792},{"style":357},[2793],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2795,"children":2796},{"style":881},[2797],{"type":27,"value":340},{"type":18,"tagName":39,"properties":2799,"children":2800},{"style":351},[2801],{"type":27,"value":2802},", label",{"type":18,"tagName":39,"properties":2804,"children":2805},{"style":357},[2806],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2808,"children":2809},{"style":351},[2810],{"type":27,"value":502},{"type":18,"tagName":39,"properties":2812,"children":2813},{"style":374},[2814],{"type":27,"value":2815},"\"OI EMA\"",{"type":18,"tagName":39,"properties":2817,"children":2818},{"style":351},[2819],{"type":27,"value":2377},{"type":18,"tagName":39,"properties":2821,"children":2822},{"style":357},[2823],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2825,"children":2826},{"style":351},[2827],{"type":27,"value":502},{"type":18,"tagName":39,"properties":2829,"children":2830},{"style":374},[2831],{"type":27,"value":2832},"\"smoothed aggregated open interest\"",{"type":18,"tagName":39,"properties":2834,"children":2835},{"style":351},[2836],{"type":27,"value":512},{"type":27,"value":93},{"type":18,"tagName":111,"properties":2839,"children":2840,"position":2862},{},[2841,2856],{"type":18,"tagName":115,"properties":2842,"children":2843,"position":2851},{},[2844],{"type":27,"value":2845,"position":2846},"Venue dominance",{"start":2847,"end":2849},{"line":1531,"column":36,"offset":2848},6381,{"line":1531,"column":1361,"offset":2850},6396,{"start":2852,"end":2854},{"line":1531,"column":31,"offset":2853},6379,{"line":1531,"column":1289,"offset":2855},6398,{"type":27,"value":2857,"position":2858}," (one venue's share of the aggregate):",{"start":2859,"end":2860},{"line":1531,"column":1289,"offset":2855},{"line":1531,"column":741,"offset":2861},6436,{"start":2863,"end":2864},{"line":1531,"column":31,"offset":2853},{"line":1531,"column":741,"offset":2861},{"type":27,"value":93},{"type":15,"children":2867},[2868],{"type":18,"tagName":336,"properties":2869,"children":2870,"data":-1},{"class":338,"style":339,"tabindex":340},[2871],{"type":18,"tagName":140,"properties":2872,"children":2873},{},[2874],{"type":18,"tagName":39,"properties":2875,"children":2876},{"class":347},[2877,2882,2886,2890,2894,2898,2903,2908,2913],{"type":18,"tagName":39,"properties":2878,"children":2879},{"style":351},[2880],{"type":27,"value":2881},"timeseries share ",{"type":18,"tagName":39,"properties":2883,"children":2884},{"style":357},[2885],{"type":27,"value":360},{"type":18,"tagName":39,"properties":2887,"children":2888},{"style":363},[2889],{"type":27,"value":2244},{"type":18,"tagName":39,"properties":2891,"children":2892},{"style":351},[2893],{"type":27,"value":2249},{"type":18,"tagName":39,"properties":2895,"children":2896},{"style":357},[2897],{"type":27,"value":474},{"type":18,"tagName":39,"properties":2899,"children":2900},{"style":363},[2901],{"type":27,"value":2902}," nz",{"type":18,"tagName":39,"properties":2904,"children":2905},{"style":351},[2906],{"type":27,"value":2907},"(aggDelta, ",{"type":18,"tagName":39,"properties":2909,"children":2910},{"style":881},[2911],{"type":27,"value":2912},"1",{"type":18,"tagName":39,"properties":2914,"children":2915},{"style":351},[2916],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":111,"properties":2919,"children":2920,"position":2973},{},[2921,2930,2948,2954,2966],{"type":27,"value":2922,"position":2923},"The same shape covers aggregated funding, liquidation totals, and cross-venue spreads. Package the helpers as a ",{"start":2924,"end":2927},{"line":2925,"column":31,"offset":2926},108,6511,{"line":2925,"column":2928,"offset":2929},113,6623,{"type":18,"tagName":304,"properties":2931,"children":2933,"position":2943},{"href":2932},"../functions/libraries.md",[2934],{"type":27,"value":2935,"position":2936},"library",{"start":2937,"end":2940},{"line":2925,"column":2938,"offset":2939},114,6624,{"line":2925,"column":2941,"offset":2942},121,6631,{"start":2944,"end":2945},{"line":2925,"column":2928,"offset":2929},{"line":2925,"column":2946,"offset":2947},149,6659,{"type":27,"value":2949,"position":2950}," (",{"start":2951,"end":2952},{"line":2925,"column":2946,"offset":2947},{"line":2925,"column":58,"offset":2953},6661,{"type":18,"tagName":140,"properties":2955,"children":2956,"position":2963},{},[2957],{"type":27,"value":2958,"position":2959},"import \"agg\" as agg",{"start":2960,"end":2961},{"line":2925,"column":58,"offset":2953},{"line":2925,"column":1649,"offset":2962},6682,{"start":2964,"end":2965},{"line":2925,"column":58,"offset":2953},{"line":2925,"column":1649,"offset":2962},{"type":27,"value":2967,"position":2968},") and the whole family becomes one import.",{"start":2969,"end":2970},{"line":2925,"column":1649,"offset":2962},{"line":2925,"column":2971,"offset":2972},214,6724,{"start":2974,"end":2975},{"line":2925,"column":31,"offset":2926},{"line":2925,"column":2971,"offset":2972},{"type":27,"value":93},{"type":18,"tagName":2978,"properties":2979,"children":2981},"hint",{"type":2980},"info",[2982],{"type":18,"tagName":111,"properties":2983,"children":2984,"position":3026},{},[2985,3000,3006,3019],{"type":18,"tagName":115,"properties":2986,"children":2987,"position":2995},{},[2988],{"type":27,"value":2989,"position":2990},"Higher-timeframe views of aggregates",{"start":2991,"end":2993},{"line":2928,"column":36,"offset":2992},6754,{"line":2928,"column":1859,"offset":2994},6790,{"start":2996,"end":2998},{"line":2928,"column":31,"offset":2997},6752,{"line":2928,"column":1864,"offset":2999},6792,{"type":27,"value":3001,"position":3002}," compose directly: ",{"start":3003,"end":3004},{"line":2928,"column":1864,"offset":2999},{"line":2928,"column":1845,"offset":3005},6811,{"type":18,"tagName":140,"properties":3007,"children":3008,"position":3016},{},[3009],{"type":27,"value":3010,"position":3011},"htf(aggCvd, \"4h\")",{"start":3012,"end":3013},{"line":2928,"column":1845,"offset":3005},{"line":2928,"column":3014,"offset":3015},79,6830,{"start":3017,"end":3018},{"line":2928,"column":1845,"offset":3005},{"line":2928,"column":3014,"offset":3015},{"type":27,"value":3020,"position":3021}," resamples the cumulative series correctly (last-in-bucket), still repaint-free.",{"start":3022,"end":3023},{"line":2928,"column":3014,"offset":3015},{"line":2928,"column":3024,"offset":3025},159,6910,{"start":3027,"end":3028},{"line":2928,"column":31,"offset":2997},{"line":2928,"column":3024,"offset":3025},{"type":27,"value":93},{"type":18,"tagName":250,"properties":3031,"children":3033,"position":3042},{"id":3032},"lower-timeframe-data-ltf",[3034],{"type":27,"value":3035,"position":3036},"Lower-timeframe data: ltf()",{"start":3037,"end":3040},{"line":3038,"column":60,"offset":3039},118,6931,{"line":3038,"column":124,"offset":3041},6958,{"start":3043,"end":3045},{"line":3038,"column":31,"offset":3044},6928,{"line":3038,"column":124,"offset":3041},{"type":27,"value":93},{"type":18,"tagName":111,"properties":3048,"children":3049,"position":3115},{},[3050,3064,3071,3085,3092,3108],{"type":18,"tagName":140,"properties":3051,"children":3052,"position":3061},{},[3053],{"type":27,"value":3054,"position":3055},"ltf(interval)",{"start":3056,"end":3059},{"line":3057,"column":31,"offset":3058},120,6960,{"line":3057,"column":261,"offset":3060},6975,{"start":3062,"end":3063},{"line":3057,"column":31,"offset":3058},{"line":3057,"column":261,"offset":3060},{"type":27,"value":3065,"position":3066}," fetches ",{"start":3067,"end":3068},{"line":3057,"column":261,"offset":3060},{"line":3057,"column":3069,"offset":3070},25,6984,{"type":18,"tagName":115,"properties":3072,"children":3073,"position":3081},{},[3074],{"type":27,"value":3075,"position":3076},"finer",{"start":3077,"end":3079},{"line":3057,"column":567,"offset":3078},6986,{"line":3057,"column":37,"offset":3080},6991,{"start":3082,"end":3083},{"line":3057,"column":3069,"offset":3070},{"line":3057,"column":137,"offset":3084},6993,{"type":27,"value":3086,"position":3087}," bars than the chart and delivers them as ",{"start":3088,"end":3089},{"line":3057,"column":137,"offset":3084},{"line":3057,"column":3090,"offset":3091},76,7035,{"type":18,"tagName":115,"properties":3093,"children":3094,"position":3103},{},[3095],{"type":27,"value":3096,"position":3097},"cells on the chart's own bars",{"start":3098,"end":3101},{"line":3057,"column":3099,"offset":3100},78,7037,{"line":3057,"column":1549,"offset":3102},7066,{"start":3104,"end":3105},{"line":3057,"column":3090,"offset":3091},{"line":3057,"column":3106,"offset":3107},109,7068,{"type":27,"value":3109,"position":3110}," (the chart timeline is untouched):",{"start":3111,"end":3112},{"line":3057,"column":3106,"offset":3107},{"line":3057,"column":3113,"offset":3114},144,7103,{"start":3116,"end":3117},{"line":3057,"column":31,"offset":3058},{"line":3057,"column":3113,"offset":3114},{"type":27,"value":93},{"type":15,"children":3120},[3121],{"type":18,"tagName":336,"properties":3122,"children":3123,"data":-1},{"class":338,"style":339,"tabindex":340},[3124],{"type":18,"tagName":140,"properties":3125,"children":3126},{},[3127,3135,3136,3166,3167,3170,3171,3179,3180,3308,3309],{"type":18,"tagName":39,"properties":3128,"children":3129},{"class":347},[3130],{"type":18,"tagName":39,"properties":3131,"children":3132},{"style":834},[3133],{"type":27,"value":3134},"// on a 1h chart: each bar carries its four 15m bars",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3137,"children":3138},{"class":347},[3139,3144,3148,3153,3157,3162],{"type":18,"tagName":39,"properties":3140,"children":3141},{"style":351},[3142],{"type":27,"value":3143},"timeseries fine ",{"type":18,"tagName":39,"properties":3145,"children":3146},{"style":357},[3147],{"type":27,"value":360},{"type":18,"tagName":39,"properties":3149,"children":3150},{"style":363},[3151],{"type":27,"value":3152}," ltf",{"type":18,"tagName":39,"properties":3154,"children":3155},{"style":351},[3156],{"type":27,"value":371},{"type":18,"tagName":39,"properties":3158,"children":3159},{"style":374},[3160],{"type":27,"value":3161},"\"15m\"",{"type":18,"tagName":39,"properties":3163,"children":3164},{"style":351},[3165],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3168,"children":3169},{"class":347},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":3172,"children":3173},{"class":347},[3174],{"type":18,"tagName":39,"properties":3175,"children":3176},{"style":834},[3177],{"type":27,"value":3178},"// intrabar drift: sum of the finer bars' close-open",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3181,"children":3182},{"class":347},[3183,3188,3192,3197,3202,3207,3213,3218,3223,3228,3233,3238,3242,3246,3250,3255,3260,3264,3269,3273,3278,3282,3286,3291,3295,3300,3304],{"type":18,"tagName":39,"properties":3184,"children":3185},{"style":351},[3186],{"type":27,"value":3187},"timeseries drift ",{"type":18,"tagName":39,"properties":3189,"children":3190},{"style":357},[3191],{"type":27,"value":360},{"type":18,"tagName":39,"properties":3193,"children":3194},{"style":351},[3195],{"type":27,"value":3196}," fine.cells.",{"type":18,"tagName":39,"properties":3198,"children":3199},{"style":363},[3200],{"type":27,"value":3201},"map",{"type":18,"tagName":39,"properties":3203,"children":3204},{"style":351},[3205],{"type":27,"value":3206},"((",{"type":18,"tagName":39,"properties":3208,"children":3210},{"style":3209},"--shiki-dark:#FFAB70;--shiki-light:#E36209",[3211],{"type":27,"value":3212},"c",{"type":18,"tagName":39,"properties":3214,"children":3215},{"style":351},[3216],{"type":27,"value":3217},") ",{"type":18,"tagName":39,"properties":3219,"children":3220},{"style":357},[3221],{"type":27,"value":3222},"=>",{"type":18,"tagName":39,"properties":3224,"children":3225},{"style":351},[3226],{"type":27,"value":3227}," c[",{"type":18,"tagName":39,"properties":3229,"children":3230},{"style":881},[3231],{"type":27,"value":3232},"4",{"type":18,"tagName":39,"properties":3234,"children":3235},{"style":351},[3236],{"type":27,"value":3237},"] ",{"type":18,"tagName":39,"properties":3239,"children":3240},{"style":357},[3241],{"type":27,"value":2208},{"type":18,"tagName":39,"properties":3243,"children":3244},{"style":351},[3245],{"type":27,"value":3227},{"type":18,"tagName":39,"properties":3247,"children":3248},{"style":881},[3249],{"type":27,"value":2912},{"type":18,"tagName":39,"properties":3251,"children":3252},{"style":351},[3253],{"type":27,"value":3254},"]).",{"type":18,"tagName":39,"properties":3256,"children":3257},{"style":363},[3258],{"type":27,"value":3259},"reduce",{"type":18,"tagName":39,"properties":3261,"children":3262},{"style":351},[3263],{"type":27,"value":3206},{"type":18,"tagName":39,"properties":3265,"children":3266},{"style":3209},[3267],{"type":27,"value":3268},"s",{"type":18,"tagName":39,"properties":3270,"children":3271},{"style":351},[3272],{"type":27,"value":382},{"type":18,"tagName":39,"properties":3274,"children":3275},{"style":3209},[3276],{"type":27,"value":3277},"x",{"type":18,"tagName":39,"properties":3279,"children":3280},{"style":351},[3281],{"type":27,"value":3217},{"type":18,"tagName":39,"properties":3283,"children":3284},{"style":357},[3285],{"type":27,"value":3222},{"type":18,"tagName":39,"properties":3287,"children":3288},{"style":351},[3289],{"type":27,"value":3290}," s ",{"type":18,"tagName":39,"properties":3292,"children":3293},{"style":357},[3294],{"type":27,"value":2254},{"type":18,"tagName":39,"properties":3296,"children":3297},{"style":351},[3298],{"type":27,"value":3299}," x, ",{"type":18,"tagName":39,"properties":3301,"children":3302},{"style":881},[3303],{"type":27,"value":340},{"type":18,"tagName":39,"properties":3305,"children":3306},{"style":351},[3307],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3310,"children":3311},{"class":347},[3312,3316],{"type":18,"tagName":39,"properties":3313,"children":3314},{"style":363},[3315],{"type":27,"value":488},{"type":18,"tagName":39,"properties":3317,"children":3318},{"style":351},[3319],{"type":27,"value":3320},"(drift)",{"type":27,"value":93},{"type":18,"tagName":111,"properties":3323,"children":3324,"position":3350},{},[3325,3332,3344],{"type":27,"value":3326,"position":3327},"Cells use the same ",{"start":3328,"end":3330},{"line":1596,"column":31,"offset":3329},7357,{"line":1596,"column":1289,"offset":3331},7376,{"type":18,"tagName":140,"properties":3333,"children":3334,"position":3341},{},[3335],{"type":27,"value":3336,"position":3337},".cells",{"start":3338,"end":3339},{"line":1596,"column":1289,"offset":3331},{"line":1596,"column":563,"offset":3340},7384,{"start":3342,"end":3343},{"line":1596,"column":1289,"offset":3331},{"line":1596,"column":563,"offset":3340},{"type":27,"value":3345,"position":3346}," machinery as order-flow sources, so reducers, structs, and the causality guarantees all apply. The interval must be a literal string, strictly finer than the chart, and (like everything here) it errors loudly with line:column when misused.",{"start":3347,"end":3348},{"line":1596,"column":563,"offset":3340},{"line":1596,"column":1072,"offset":3349},7624,{"start":3351,"end":3352},{"line":1596,"column":31,"offset":3329},{"line":1596,"column":1072,"offset":3349},{"type":27,"value":93},{"type":18,"tagName":250,"properties":3355,"children":3357,"position":3365},{"id":3356},"requestbars-raw-bars-for-drawing",[3358],{"type":27,"value":3359,"position":3360},"requestBars(): raw bars for drawing",{"start":3361,"end":3363},{"line":1473,"column":60,"offset":3362},7628,{"line":1473,"column":1859,"offset":3364},7663,{"start":3366,"end":3368},{"line":1473,"column":31,"offset":3367},7625,{"line":1473,"column":1859,"offset":3364},{"type":27,"value":93},{"type":18,"tagName":111,"properties":3371,"children":3372,"position":3958},{},[3373,3381,3395,3401,3414,3421,3434,3440,3456,3463,3476,3482,3495,3501,3514,3521,3533,3539,3552,3558,3571,3578,3590,3597,3610,3617,3629,3636,3649,3656,3669,3676,3688,3694,3705,3712,3725,3731,3743,3750,3762,3768,3780,3786,3798,3804,3816,3823,3835,3841,3854,3860,3873,3879,3892,3898,3911,3918,3931,3938,3951],{"type":27,"value":3374,"position":3375},"When you want to ",{"start":3376,"end":3379},{"line":3377,"column":31,"offset":3378},134,7665,{"line":3377,"column":1361,"offset":3380},7682,{"type":18,"tagName":115,"properties":3382,"children":3383,"position":3391},{},[3384],{"type":27,"value":3385,"position":3386},"draw",{"start":3387,"end":3389},{"line":3377,"column":1289,"offset":3388},7684,{"line":3377,"column":522,"offset":3390},7688,{"start":3392,"end":3393},{"line":3377,"column":1361,"offset":3380},{"line":3377,"column":538,"offset":3394},7690,{"type":27,"value":3396,"position":3397}," on top of a coarser timeframe (mark the last N daily highs/lows, box weekly ranges, label monthly opens) rather than feed a series into TA, reach for ",{"start":3398,"end":3399},{"line":3377,"column":538,"offset":3394},{"line":3377,"column":72,"offset":3400},7841,{"type":18,"tagName":140,"properties":3402,"children":3403,"position":3411},{},[3404],{"type":27,"value":3405,"position":3406},"requestBars(symbol, timeframe, type?, exchange?, opts)",{"start":3407,"end":3408},{"line":3377,"column":72,"offset":3400},{"line":3377,"column":3409,"offset":3410},233,7897,{"start":3412,"end":3413},{"line":3377,"column":72,"offset":3400},{"line":3377,"column":3409,"offset":3410},{"type":27,"value":3415,"position":3416},". It returns the last ",{"start":3417,"end":3418},{"line":3377,"column":3409,"offset":3410},{"line":3377,"column":3419,"offset":3420},255,7919,{"type":18,"tagName":140,"properties":3422,"children":3423,"position":3431},{},[3424],{"type":27,"value":3425,"position":3426},"opts.bars",{"start":3427,"end":3428},{"line":3377,"column":3419,"offset":3420},{"line":3377,"column":3429,"offset":3430},266,7930,{"start":3432,"end":3433},{"line":3377,"column":3419,"offset":3420},{"line":3377,"column":3429,"offset":3430},{"type":27,"value":133,"position":3435},{"start":3436,"end":3437},{"line":3377,"column":3429,"offset":3430},{"line":3377,"column":3438,"offset":3439},267,7931,{"type":18,"tagName":115,"properties":3441,"children":3442,"position":3452},{},[3443],{"type":27,"value":3444,"position":3445},"native",{"start":3446,"end":3449},{"line":3377,"column":3447,"offset":3448},269,7933,{"line":3377,"column":3450,"offset":3451},275,7939,{"start":3453,"end":3454},{"line":3377,"column":3438,"offset":3439},{"line":3377,"column":1082,"offset":3455},7941,{"type":27,"value":3457,"position":3458}," bars of ",{"start":3459,"end":3460},{"line":3377,"column":1082,"offset":3455},{"line":3377,"column":3461,"offset":3462},286,7950,{"type":18,"tagName":140,"properties":3464,"children":3465,"position":3473},{},[3466],{"type":27,"value":3467,"position":3468},"symbol",{"start":3469,"end":3470},{"line":3377,"column":3461,"offset":3462},{"line":3377,"column":3471,"offset":3472},294,7958,{"start":3474,"end":3475},{"line":3377,"column":3461,"offset":3462},{"line":3377,"column":3471,"offset":3472},{"type":27,"value":3477,"position":3478}," at ",{"start":3479,"end":3480},{"line":3377,"column":3471,"offset":3472},{"line":3377,"column":1919,"offset":3481},7962,{"type":18,"tagName":140,"properties":3483,"children":3484,"position":3492},{},[3485],{"type":27,"value":3486,"position":3487},"timeframe",{"start":3488,"end":3489},{"line":3377,"column":1919,"offset":3481},{"line":3377,"column":3490,"offset":3491},309,7973,{"start":3493,"end":3494},{"line":3377,"column":1919,"offset":3481},{"line":3377,"column":3490,"offset":3491},{"type":27,"value":3496,"position":3497}," as a plain array of ",{"start":3498,"end":3499},{"line":3377,"column":3490,"offset":3491},{"line":3377,"column":128,"offset":3500},7994,{"type":18,"tagName":140,"properties":3502,"children":3503,"position":3511},{},[3504],{"type":27,"value":3505,"position":3506},"[time, open, high, low, close, volume]",{"start":3507,"end":3508},{"line":3377,"column":128,"offset":3500},{"line":3377,"column":3509,"offset":3510},370,8034,{"start":3512,"end":3513},{"line":3377,"column":128,"offset":3500},{"line":3377,"column":3509,"offset":3510},{"type":27,"value":3515,"position":3516}," rows, oldest first. The timeframe is a native interval string (",{"start":3517,"end":3518},{"line":3377,"column":3509,"offset":3510},{"line":3377,"column":3519,"offset":3520},434,8098,{"type":18,"tagName":140,"properties":3522,"children":3523,"position":3530},{},[3524],{"type":27,"value":3161,"position":3525},{"start":3526,"end":3527},{"line":3377,"column":3519,"offset":3520},{"line":3377,"column":3528,"offset":3529},441,8105,{"start":3531,"end":3532},{"line":3377,"column":3519,"offset":3520},{"line":3377,"column":3528,"offset":3529},{"type":27,"value":382,"position":3534},{"start":3535,"end":3536},{"line":3377,"column":3528,"offset":3529},{"line":3377,"column":3537,"offset":3538},443,8107,{"type":18,"tagName":140,"properties":3540,"children":3541,"position":3549},{},[3542],{"type":27,"value":3543,"position":3544},"\"1h\"",{"start":3545,"end":3546},{"line":3377,"column":3537,"offset":3538},{"line":3377,"column":3547,"offset":3548},449,8113,{"start":3550,"end":3551},{"line":3377,"column":3537,"offset":3538},{"line":3377,"column":3547,"offset":3548},{"type":27,"value":382,"position":3553},{"start":3554,"end":3555},{"line":3377,"column":3547,"offset":3548},{"line":3377,"column":3556,"offset":3557},451,8115,{"type":18,"tagName":140,"properties":3559,"children":3560,"position":3568},{},[3561],{"type":27,"value":3562,"position":3563},"\"1d\"",{"start":3564,"end":3565},{"line":3377,"column":3556,"offset":3557},{"line":3377,"column":3566,"offset":3567},457,8121,{"start":3569,"end":3570},{"line":3377,"column":3556,"offset":3557},{"line":3377,"column":3566,"offset":3567},{"type":27,"value":3572,"position":3573},") and is required; ",{"start":3574,"end":3575},{"line":3377,"column":3566,"offset":3567},{"line":3377,"column":3576,"offset":3577},476,8140,{"type":18,"tagName":140,"properties":3579,"children":3580,"position":3587},{},[3581],{"type":27,"value":3425,"position":3582},{"start":3583,"end":3584},{"line":3377,"column":3576,"offset":3577},{"line":3377,"column":3585,"offset":3586},487,8151,{"start":3588,"end":3589},{"line":3377,"column":3576,"offset":3577},{"line":3377,"column":3585,"offset":3586},{"type":27,"value":3591,"position":3592}," is a required positive integer; ",{"start":3593,"end":3594},{"line":3377,"column":3585,"offset":3586},{"line":3377,"column":3595,"offset":3596},520,8184,{"type":18,"tagName":140,"properties":3598,"children":3599,"position":3607},{},[3600],{"type":27,"value":3601,"position":3602},"type",{"start":3603,"end":3604},{"line":3377,"column":3595,"offset":3596},{"line":3377,"column":3605,"offset":3606},526,8190,{"start":3608,"end":3609},{"line":3377,"column":3595,"offset":3596},{"line":3377,"column":3605,"offset":3606},{"type":27,"value":3611,"position":3612}," defaults to ",{"start":3613,"end":3614},{"line":3377,"column":3605,"offset":3606},{"line":3377,"column":3615,"offset":3616},539,8203,{"type":18,"tagName":140,"properties":3618,"children":3619,"position":3626},{},[3620],{"type":27,"value":377,"position":3621},{"start":3622,"end":3623},{"line":3377,"column":3615,"offset":3616},{"line":3377,"column":3624,"offset":3625},548,8212,{"start":3627,"end":3628},{"line":3377,"column":3615,"offset":3616},{"line":3377,"column":3624,"offset":3625},{"type":27,"value":3630,"position":3631}," and ",{"start":3632,"end":3633},{"line":3377,"column":3624,"offset":3625},{"line":3377,"column":3634,"offset":3635},553,8217,{"type":18,"tagName":140,"properties":3637,"children":3638,"position":3646},{},[3639],{"type":27,"value":3640,"position":3641},"exchange",{"start":3642,"end":3643},{"line":3377,"column":3634,"offset":3635},{"line":3377,"column":3644,"offset":3645},563,8227,{"start":3647,"end":3648},{"line":3377,"column":3634,"offset":3635},{"line":3377,"column":3644,"offset":3645},{"type":27,"value":3650,"position":3651}," defaults to the current venue. ",{"start":3652,"end":3653},{"line":3377,"column":3644,"offset":3645},{"line":3377,"column":3654,"offset":3655},595,8259,{"type":18,"tagName":140,"properties":3657,"children":3658,"position":3666},{},[3659],{"type":27,"value":3660,"position":3661},"opts.anchor",{"start":3662,"end":3663},{"line":3377,"column":3654,"offset":3655},{"line":3377,"column":3664,"offset":3665},608,8272,{"start":3667,"end":3668},{"line":3377,"column":3654,"offset":3655},{"line":3377,"column":3664,"offset":3665},{"type":27,"value":3670,"position":3671}," (below) chooses which window the bars come from. There is no ",{"start":3672,"end":3673},{"line":3377,"column":3664,"offset":3665},{"line":3377,"column":3674,"offset":3675},670,8334,{"type":18,"tagName":140,"properties":3677,"children":3678,"position":3685},{},[3679],{"type":27,"value":1161,"position":3680},{"start":3681,"end":3682},{"line":3377,"column":3674,"offset":3675},{"line":3377,"column":3683,"offset":3684},676,8340,{"start":3686,"end":3687},{"line":3377,"column":3674,"offset":3675},{"line":3377,"column":3683,"offset":3684},{"type":27,"value":474,"position":3689},{"start":3690,"end":3691},{"line":3377,"column":3683,"offset":3684},{"line":3377,"column":3692,"offset":3693},677,8341,{"type":18,"tagName":140,"properties":3695,"children":3696,"position":3702},{},[3697],{"type":27,"value":1180,"position":3698},{"start":3699,"end":3700},{"line":3377,"column":3692,"offset":3693},{"line":3377,"column":1135,"offset":3701},8349,{"start":3703,"end":3704},{"line":3377,"column":3692,"offset":3693},{"line":3377,"column":1135,"offset":3701},{"type":27,"value":3706,"position":3707}," here (those are ",{"start":3708,"end":3709},{"line":3377,"column":1135,"offset":3701},{"line":3377,"column":3710,"offset":3711},702,8366,{"type":18,"tagName":140,"properties":3713,"children":3714,"position":3722},{},[3715],{"type":27,"value":3716,"position":3717},"request()",{"start":3718,"end":3719},{"line":3377,"column":3710,"offset":3711},{"line":3377,"column":3720,"offset":3721},713,8377,{"start":3723,"end":3724},{"line":3377,"column":3710,"offset":3711},{"line":3377,"column":3720,"offset":3721},{"type":27,"value":474,"position":3726},{"start":3727,"end":3728},{"line":3377,"column":3720,"offset":3721},{"line":3377,"column":3729,"offset":3730},714,8378,{"type":18,"tagName":140,"properties":3732,"children":3733,"position":3740},{},[3734],{"type":27,"value":906,"position":3735},{"start":3736,"end":3737},{"line":3377,"column":3729,"offset":3730},{"line":3377,"column":3738,"offset":3739},721,8385,{"start":3741,"end":3742},{"line":3377,"column":3729,"offset":3730},{"line":3377,"column":3738,"offset":3739},{"type":27,"value":3744,"position":3745}," period concepts). Calendar tokens (",{"start":3746,"end":3747},{"line":3377,"column":3738,"offset":3739},{"line":3377,"column":3748,"offset":3749},757,8421,{"type":18,"tagName":140,"properties":3751,"children":3752,"position":3759},{},[3753],{"type":27,"value":1555,"position":3754},{"start":3755,"end":3756},{"line":3377,"column":3748,"offset":3749},{"line":3377,"column":3757,"offset":3758},761,8425,{"start":3760,"end":3761},{"line":3377,"column":3748,"offset":3749},{"line":3377,"column":3757,"offset":3758},{"type":27,"value":382,"position":3763},{"start":3764,"end":3765},{"line":3377,"column":3757,"offset":3758},{"line":3377,"column":3766,"offset":3767},763,8427,{"type":18,"tagName":140,"properties":3769,"children":3770,"position":3777},{},[3771],{"type":27,"value":1574,"position":3772},{"start":3773,"end":3774},{"line":3377,"column":3766,"offset":3767},{"line":3377,"column":3775,"offset":3776},767,8431,{"start":3778,"end":3779},{"line":3377,"column":3766,"offset":3767},{"line":3377,"column":3775,"offset":3776},{"type":27,"value":382,"position":3781},{"start":3782,"end":3783},{"line":3377,"column":3775,"offset":3776},{"line":3377,"column":3784,"offset":3785},769,8433,{"type":18,"tagName":140,"properties":3787,"children":3788,"position":3795},{},[3789],{"type":27,"value":1617,"position":3790},{"start":3791,"end":3792},{"line":3377,"column":3784,"offset":3785},{"line":3377,"column":3793,"offset":3794},773,8437,{"start":3796,"end":3797},{"line":3377,"column":3784,"offset":3785},{"line":3377,"column":3793,"offset":3794},{"type":27,"value":382,"position":3799},{"start":3800,"end":3801},{"line":3377,"column":3793,"offset":3794},{"line":3377,"column":3802,"offset":3803},775,8439,{"type":18,"tagName":140,"properties":3805,"children":3806,"position":3813},{},[3807],{"type":27,"value":1635,"position":3808},{"start":3809,"end":3810},{"line":3377,"column":3802,"offset":3803},{"line":3377,"column":3811,"offset":3812},779,8443,{"start":3814,"end":3815},{"line":3377,"column":3802,"offset":3803},{"line":3377,"column":3811,"offset":3812},{"type":27,"value":3817,"position":3818},") are rejected — requestBars is for native venue intervals. Intervals the venue does not serve directly but that compose from a finer one (",{"start":3819,"end":3820},{"line":3377,"column":3811,"offset":3812},{"line":3377,"column":3821,"offset":3822},918,8582,{"type":18,"tagName":140,"properties":3824,"children":3825,"position":3832},{},[3826],{"type":27,"value":204,"position":3827},{"start":3828,"end":3829},{"line":3377,"column":3821,"offset":3822},{"line":3377,"column":3830,"offset":3831},924,8588,{"start":3833,"end":3834},{"line":3377,"column":3821,"offset":3822},{"line":3377,"column":3830,"offset":3831},{"type":27,"value":382,"position":3836},{"start":3837,"end":3838},{"line":3377,"column":3830,"offset":3831},{"line":3377,"column":3839,"offset":3840},926,8590,{"type":18,"tagName":140,"properties":3842,"children":3843,"position":3851},{},[3844],{"type":27,"value":3845,"position":3846},"\"3h\"",{"start":3847,"end":3848},{"line":3377,"column":3839,"offset":3840},{"line":3377,"column":3849,"offset":3850},932,8596,{"start":3852,"end":3853},{"line":3377,"column":3839,"offset":3840},{"line":3377,"column":3849,"offset":3850},{"type":27,"value":382,"position":3855},{"start":3856,"end":3857},{"line":3377,"column":3849,"offset":3850},{"line":3377,"column":3858,"offset":3859},934,8598,{"type":18,"tagName":140,"properties":3861,"children":3862,"position":3870},{},[3863],{"type":27,"value":3864,"position":3865},"\"12h\"",{"start":3866,"end":3867},{"line":3377,"column":3858,"offset":3859},{"line":3377,"column":3868,"offset":3869},941,8605,{"start":3871,"end":3872},{"line":3377,"column":3858,"offset":3859},{"line":3377,"column":3868,"offset":3869},{"type":27,"value":382,"position":3874},{"start":3875,"end":3876},{"line":3377,"column":3868,"offset":3869},{"line":3377,"column":3877,"offset":3878},943,8607,{"type":18,"tagName":140,"properties":3880,"children":3881,"position":3889},{},[3882],{"type":27,"value":3883,"position":3884},"\"2d\"",{"start":3885,"end":3886},{"line":3377,"column":3877,"offset":3878},{"line":3377,"column":3887,"offset":3888},949,8613,{"start":3890,"end":3891},{"line":3377,"column":3877,"offset":3878},{"line":3377,"column":3887,"offset":3888},{"type":27,"value":382,"position":3893},{"start":3894,"end":3895},{"line":3377,"column":3887,"offset":3888},{"line":3377,"column":3896,"offset":3897},951,8615,{"type":18,"tagName":140,"properties":3899,"children":3900,"position":3908},{},[3901],{"type":27,"value":3902,"position":3903},"\"45m\"",{"start":3904,"end":3905},{"line":3377,"column":3896,"offset":3897},{"line":3377,"column":3906,"offset":3907},958,8622,{"start":3909,"end":3910},{"line":3377,"column":3896,"offset":3897},{"line":3377,"column":3906,"offset":3907},{"type":27,"value":3912,"position":3913},") are served by aggregating the largest fetchable divisor (",{"start":3914,"end":3915},{"line":3377,"column":3906,"offset":3907},{"line":3377,"column":3916,"offset":3917},1017,8681,{"type":18,"tagName":140,"properties":3919,"children":3920,"position":3928},{},[3921],{"type":27,"value":3922,"position":3923},"2h",{"start":3924,"end":3925},{"line":3377,"column":3916,"offset":3917},{"line":3377,"column":3926,"offset":3927},1021,8685,{"start":3929,"end":3930},{"line":3377,"column":3916,"offset":3917},{"line":3377,"column":3926,"offset":3927},{"type":27,"value":3932,"position":3933}," = 2×",{"start":3934,"end":3935},{"line":3377,"column":3926,"offset":3927},{"line":3377,"column":3936,"offset":3937},1026,8690,{"type":18,"tagName":140,"properties":3939,"children":3940,"position":3948},{},[3941],{"type":27,"value":3942,"position":3943},"1h",{"start":3944,"end":3945},{"line":3377,"column":3936,"offset":3937},{"line":3377,"column":3946,"offset":3947},1030,8694,{"start":3949,"end":3950},{"line":3377,"column":3936,"offset":3937},{"line":3377,"column":3946,"offset":3947},{"type":27,"value":3952,"position":3953},"), UTC-bucketed, so they return true bars at the requested timeframe.",{"start":3954,"end":3955},{"line":3377,"column":3946,"offset":3947},{"line":3377,"column":3956,"offset":3957},1099,8763,{"start":3959,"end":3960},{"line":3377,"column":31,"offset":3378},{"line":3377,"column":3956,"offset":3957},{"type":27,"value":93},{"type":18,"tagName":111,"properties":3963,"children":3964,"position":4066},{},[3965,3972,3988,3994,4007,4013,4025,4032,4059],{"type":27,"value":3966,"position":3967},"The result is ",{"start":3968,"end":3970},{"line":1599,"column":31,"offset":3969},8765,{"line":1599,"column":275,"offset":3971},8779,{"type":18,"tagName":115,"properties":3973,"children":3974,"position":3983},{},[3975],{"type":27,"value":3976,"position":3977},"draw-only and inert",{"start":3978,"end":3981},{"line":1599,"column":3979,"offset":3980},17,8781,{"line":1599,"column":1856,"offset":3982},8800,{"start":3984,"end":3985},{"line":1599,"column":275,"offset":3971},{"line":1599,"column":3986,"offset":3987},38,8802,{"type":27,"value":3989,"position":3990},": a raw array indexed by position (",{"start":3991,"end":3992},{"line":1599,"column":3986,"offset":3987},{"line":1599,"column":1043,"offset":3993},8837,{"type":18,"tagName":140,"properties":3995,"children":3996,"position":4004},{},[3997],{"type":27,"value":3998,"position":3999},"rows[i]",{"start":4000,"end":4001},{"line":1599,"column":1043,"offset":3993},{"line":1599,"column":4002,"offset":4003},82,8846,{"start":4005,"end":4006},{"line":1599,"column":1043,"offset":3993},{"line":1599,"column":4002,"offset":4003},{"type":27,"value":4008,"position":4009},"), not a chart-indexed timeseries. It carries no ",{"start":4010,"end":4011},{"line":1599,"column":4002,"offset":4003},{"line":1599,"column":1596,"offset":4012},8895,{"type":18,"tagName":140,"properties":4014,"children":4015,"position":4022},{},[4016],{"type":27,"value":4017,"position":4018},"[n]",{"start":4019,"end":4020},{"line":1599,"column":1596,"offset":4012},{"line":1599,"column":1599,"offset":4021},8900,{"start":4023,"end":4024},{"line":1599,"column":1596,"offset":4012},{"line":1599,"column":1599,"offset":4021},{"type":27,"value":4026,"position":4027}," bar-offset history and is not chainable into TA functions; you iterate it and draw. Crucially it is ",{"start":4028,"end":4029},{"line":1599,"column":1599,"offset":4021},{"line":1599,"column":4030,"offset":4031},237,9001,{"type":18,"tagName":115,"properties":4033,"children":4034,"position":4055},{},[4035,4043],{"type":27,"value":4036,"position":4037},"independent of ",{"start":4038,"end":4041},{"line":1599,"column":4039,"offset":4040},239,9003,{"line":1599,"column":238,"offset":4042},9018,{"type":18,"tagName":140,"properties":4044,"children":4045,"position":4052},{},[4046],{"type":27,"value":4047,"position":4048},"maxBarsBack",{"start":4049,"end":4050},{"line":1599,"column":238,"offset":4042},{"line":1599,"column":3438,"offset":4051},9031,{"start":4053,"end":4054},{"line":1599,"column":238,"offset":4042},{"line":1599,"column":3438,"offset":4051},{"start":4056,"end":4057},{"line":1599,"column":4030,"offset":4031},{"line":1599,"column":3447,"offset":4058},9033,{"type":27,"value":4060,"position":4061},", reading the deep source directly, so a 1m chart can draw the last 20 daily candles even with a tiny lookback window.",{"start":4062,"end":4063},{"line":1599,"column":3447,"offset":4058},{"line":1599,"column":4064,"offset":4065},387,9151,{"start":4067,"end":4068},{"line":1599,"column":31,"offset":3969},{"line":1599,"column":4064,"offset":4065},{"type":27,"value":93},{"type":18,"tagName":111,"properties":4071,"children":4072,"position":4153},{},[4073,4080,4091,4098,4109,4116,4128,4135,4146],{"type":27,"value":4074,"position":4075},"This is the counterpart to ",{"start":4076,"end":4078},{"line":1604,"column":31,"offset":4077},9153,{"line":1604,"column":563,"offset":4079},9180,{"type":18,"tagName":140,"properties":4081,"children":4082,"position":4088},{},[4083],{"type":27,"value":3716,"position":4084},{"start":4085,"end":4086},{"line":1604,"column":563,"offset":4079},{"line":1604,"column":1859,"offset":4087},9191,{"start":4089,"end":4090},{"line":1604,"column":563,"offset":4079},{"line":1604,"column":1859,"offset":4087},{"type":27,"value":4092,"position":4093},". Where ",{"start":4094,"end":4095},{"line":1604,"column":1859,"offset":4087},{"line":1604,"column":4096,"offset":4097},47,9199,{"type":18,"tagName":140,"properties":4099,"children":4100,"position":4106},{},[4101],{"type":27,"value":3716,"position":4102},{"start":4103,"end":4104},{"line":1604,"column":4096,"offset":4097},{"line":1604,"column":741,"offset":4105},9210,{"start":4107,"end":4108},{"line":1604,"column":4096,"offset":4097},{"line":1604,"column":741,"offset":4105},{"type":27,"value":4110,"position":4111}," returns a chart-aligned, bar-indexed, TA-chainable timeseries (and ",{"start":4112,"end":4113},{"line":1604,"column":741,"offset":4105},{"line":1604,"column":4114,"offset":4115},126,9278,{"type":18,"tagName":140,"properties":4117,"children":4118,"position":4125},{},[4119],{"type":27,"value":4120,"position":4121},"request(..., { bars: N })",{"start":4122,"end":4123},{"line":1604,"column":4114,"offset":4115},{"line":1604,"column":1385,"offset":4124},9305,{"start":4126,"end":4127},{"line":1604,"column":4114,"offset":4115},{"line":1604,"column":1385,"offset":4124},{"type":27,"value":4129,"position":4130}," only sets the fetch depth of that still-projected series), ",{"start":4131,"end":4132},{"line":1604,"column":1385,"offset":4124},{"line":1604,"column":4133,"offset":4134},213,9365,{"type":18,"tagName":140,"properties":4136,"children":4137,"position":4143},{},[4138],{"type":27,"value":144,"position":4139},{"start":4140,"end":4141},{"line":1604,"column":4133,"offset":4134},{"line":1604,"column":1320,"offset":4142},9380,{"start":4144,"end":4145},{"line":1604,"column":4133,"offset":4134},{"line":1604,"column":1320,"offset":4142},{"type":27,"value":4147,"position":4148}," hands you the raw native rows for drawing:",{"start":4149,"end":4150},{"line":1604,"column":1320,"offset":4142},{"line":1604,"column":4151,"offset":4152},271,9423,{"start":4154,"end":4155},{"line":1604,"column":31,"offset":4077},{"line":1604,"column":4151,"offset":4152},{"type":27,"value":93},{"type":15,"children":4158},[4159],{"type":18,"tagName":336,"properties":4160,"children":4161,"data":-1},{"class":338,"style":339,"tabindex":340},[4162],{"type":18,"tagName":140,"properties":4163,"children":4164},{},[4165,4216,4217,4230,4231,4277,4278,4348,4349,4376,4377,4449,4450,4458,4459],{"type":18,"tagName":39,"properties":4166,"children":4167},{"class":347},[4168,4172,4176,4181,4185,4190,4194,4198,4203,4207,4212],{"type":18,"tagName":39,"properties":4169,"children":4170},{"style":363},[4171],{"type":27,"value":1993},{"type":18,"tagName":39,"properties":4173,"children":4174},{"style":351},[4175],{"type":27,"value":371},{"type":18,"tagName":39,"properties":4177,"children":4178},{"style":374},[4179],{"type":27,"value":4180},"\"daily levels\"",{"type":18,"tagName":39,"properties":4182,"children":4183},{"style":351},[4184],{"type":27,"value":382},{"type":18,"tagName":39,"properties":4186,"children":4187},{"style":374},[4188],{"type":27,"value":4189},"\"onchart\"",{"type":18,"tagName":39,"properties":4191,"children":4192},{"style":351},[4193],{"type":27,"value":382},{"type":18,"tagName":39,"properties":4195,"children":4196},{"style":881},[4197],{"type":27,"value":2020},{"type":18,"tagName":39,"properties":4199,"children":4200},{"style":351},[4201],{"type":27,"value":4202},", maxBarsBack",{"type":18,"tagName":39,"properties":4204,"children":4205},{"style":357},[4206],{"type":27,"value":360},{"type":18,"tagName":39,"properties":4208,"children":4209},{"style":881},[4210],{"type":27,"value":4211},"50",{"type":18,"tagName":39,"properties":4213,"children":4214},{"style":351},[4215],{"type":27,"value":401},{"type":27,"value":93},{"type":18,"tagName":39,"properties":4218,"children":4219},{"class":347},[4220,4225],{"type":18,"tagName":39,"properties":4221,"children":4222},{"style":357},[4223],{"type":27,"value":4224},"if",{"type":18,"tagName":39,"properties":4226,"children":4227},{"style":351},[4228],{"type":27,"value":4229}," (isLastBar) {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":4232,"children":4233},{"class":347},[4234,4239,4244,4248,4253,4258,4262,4267,4272],{"type":18,"tagName":39,"properties":4235,"children":4236},{"style":357},[4237],{"type":27,"value":4238},"  var",{"type":18,"tagName":39,"properties":4240,"children":4241},{"style":351},[4242],{"type":27,"value":4243}," rows ",{"type":18,"tagName":39,"properties":4245,"children":4246},{"style":357},[4247],{"type":27,"value":360},{"type":18,"tagName":39,"properties":4249,"children":4250},{"style":363},[4251],{"type":27,"value":4252}," requestBars",{"type":18,"tagName":39,"properties":4254,"children":4255},{"style":351},[4256],{"type":27,"value":4257},"(currentSymbol, ",{"type":18,"tagName":39,"properties":4259,"children":4260},{"style":374},[4261],{"type":27,"value":3562},{"type":18,"tagName":39,"properties":4263,"children":4264},{"style":351},[4265],{"type":27,"value":4266},", { bars: ",{"type":18,"tagName":39,"properties":4268,"children":4269},{"style":881},[4270],{"type":27,"value":4271},"20",{"type":18,"tagName":39,"properties":4273,"children":4274},{"style":351},[4275],{"type":27,"value":4276}," })",{"type":27,"value":93},{"type":18,"tagName":39,"properties":4279,"children":4280},{"class":347},[4281,4286,4290,4294,4299,4303,4307,4312,4317,4322,4326,4330,4334,4338,4343],{"type":18,"tagName":39,"properties":4282,"children":4283},{"style":357},[4284],{"type":27,"value":4285},"  for",{"type":18,"tagName":39,"properties":4287,"children":4288},{"style":351},[4289],{"type":27,"value":2949},{"type":18,"tagName":39,"properties":4291,"children":4292},{"style":357},[4293],{"type":27,"value":846},{"type":18,"tagName":39,"properties":4295,"children":4296},{"style":351},[4297],{"type":27,"value":4298}," i ",{"type":18,"tagName":39,"properties":4300,"children":4301},{"style":357},[4302],{"type":27,"value":360},{"type":18,"tagName":39,"properties":4304,"children":4305},{"style":881},[4306],{"type":27,"value":2335},{"type":18,"tagName":39,"properties":4308,"children":4309},{"style":351},[4310],{"type":27,"value":4311},"; i ",{"type":18,"tagName":39,"properties":4313,"children":4314},{"style":357},[4315],{"type":27,"value":4316},"\u003C",{"type":18,"tagName":39,"properties":4318,"children":4319},{"style":881},[4320],{"type":27,"value":4321}," 20",{"type":18,"tagName":39,"properties":4323,"children":4324},{"style":351},[4325],{"type":27,"value":4311},{"type":18,"tagName":39,"properties":4327,"children":4328},{"style":357},[4329],{"type":27,"value":360},{"type":18,"tagName":39,"properties":4331,"children":4332},{"style":351},[4333],{"type":27,"value":4298},{"type":18,"tagName":39,"properties":4335,"children":4336},{"style":357},[4337],{"type":27,"value":2254},{"type":18,"tagName":39,"properties":4339,"children":4340},{"style":881},[4341],{"type":27,"value":4342}," 1",{"type":18,"tagName":39,"properties":4344,"children":4345},{"style":351},[4346],{"type":27,"value":4347},") {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":4350,"children":4351},{"class":347},[4352,4357,4362,4366,4371],{"type":18,"tagName":39,"properties":4353,"children":4354},{"style":357},[4355],{"type":27,"value":4356},"    var",{"type":18,"tagName":39,"properties":4358,"children":4359},{"style":351},[4360],{"type":27,"value":4361}," r ",{"type":18,"tagName":39,"properties":4363,"children":4364},{"style":357},[4365],{"type":27,"value":360},{"type":18,"tagName":39,"properties":4367,"children":4368},{"style":351},[4369],{"type":27,"value":4370}," rows[i]                 ",{"type":18,"tagName":39,"properties":4372,"children":4373},{"style":834},[4374],{"type":27,"value":4375},"// r = [t, o, h, l, c, v]",{"type":27,"value":93},{"type":18,"tagName":39,"properties":4378,"children":4379},{"class":347},[4380,4385,4390,4395,4399,4404,4409,4413,4417,4421,4426,4431,4436,4441,4445],{"type":18,"tagName":39,"properties":4381,"children":4382},{"style":351},[4383],{"type":27,"value":4384},"    line.",{"type":18,"tagName":39,"properties":4386,"children":4387},{"style":363},[4388],{"type":27,"value":4389},"new",{"type":18,"tagName":39,"properties":4391,"children":4392},{"style":351},[4393],{"type":27,"value":4394},"(r[",{"type":18,"tagName":39,"properties":4396,"children":4397},{"style":881},[4398],{"type":27,"value":340},{"type":18,"tagName":39,"properties":4400,"children":4401},{"style":351},[4402],{"type":27,"value":4403},"], r[",{"type":18,"tagName":39,"properties":4405,"children":4406},{"style":881},[4407],{"type":27,"value":4408},"2",{"type":18,"tagName":39,"properties":4410,"children":4411},{"style":351},[4412],{"type":27,"value":4403},{"type":18,"tagName":39,"properties":4414,"children":4415},{"style":881},[4416],{"type":27,"value":340},{"type":18,"tagName":39,"properties":4418,"children":4419},{"style":351},[4420],{"type":27,"value":4403},{"type":18,"tagName":39,"properties":4422,"children":4423},{"style":881},[4424],{"type":27,"value":4425},"3",{"type":18,"tagName":39,"properties":4427,"children":4428},{"style":351},[4429],{"type":27,"value":4430},"], { color: ",{"type":18,"tagName":39,"properties":4432,"children":4433},{"style":374},[4434],{"type":27,"value":4435},"\"#ffffff\"",{"type":18,"tagName":39,"properties":4437,"children":4438},{"style":351},[4439],{"type":27,"value":4440},", width: ",{"type":18,"tagName":39,"properties":4442,"children":4443},{"style":881},[4444],{"type":27,"value":2912},{"type":18,"tagName":39,"properties":4446,"children":4447},{"style":351},[4448],{"type":27,"value":4276},{"type":27,"value":93},{"type":18,"tagName":39,"properties":4451,"children":4452},{"class":347},[4453],{"type":18,"tagName":39,"properties":4454,"children":4455},{"style":351},[4456],{"type":27,"value":4457},"  }",{"type":27,"value":93},{"type":18,"tagName":39,"properties":4460,"children":4461},{"class":347},[4462],{"type":18,"tagName":39,"properties":4463,"children":4464},{"style":351},[4465],{"type":27,"value":2222},{"type":27,"value":93},{"type":18,"tagName":4468,"properties":4469,"children":4471,"position":4480},"h3",{"id":4470},"anchor-latest-bars-pinned-to-the-market-not-the-pan-position",[4472],{"type":27,"value":4473,"position":4474},"anchor: \"latest\" — bars pinned to the market, not the pan position",{"start":4475,"end":4477},{"line":58,"column":71,"offset":4476},9757,{"line":58,"column":4478,"offset":4479},71,9823,{"start":4481,"end":4483},{"line":58,"column":31,"offset":4482},9753,{"line":58,"column":4478,"offset":4479},{"type":27,"value":93},{"type":18,"tagName":111,"properties":4486,"children":4487,"position":4586},{},[4488,4495,4506,4512,4526,4532,4548,4555,4579],{"type":27,"value":4489,"position":4490},"By default, ",{"start":4491,"end":4493},{"line":1385,"column":31,"offset":4492},9825,{"line":1385,"column":258,"offset":4494},9837,{"type":18,"tagName":140,"properties":4496,"children":4497,"position":4503},{},[4498],{"type":27,"value":144,"position":4499},{"start":4500,"end":4501},{"line":1385,"column":258,"offset":4494},{"line":1385,"column":563,"offset":4502},9852,{"start":4504,"end":4505},{"line":1385,"column":258,"offset":4494},{"line":1385,"column":563,"offset":4502},{"type":27,"value":4507,"position":4508}," is ",{"start":4509,"end":4510},{"line":1385,"column":563,"offset":4502},{"line":1385,"column":37,"offset":4511},9856,{"type":18,"tagName":115,"properties":4513,"children":4514,"position":4522},{},[4515],{"type":27,"value":4516,"position":4517},"window-relative",{"start":4518,"end":4520},{"line":1385,"column":137,"offset":4519},9858,{"line":1385,"column":148,"offset":4521},9873,{"start":4523,"end":4524},{"line":1385,"column":37,"offset":4511},{"line":1385,"column":1254,"offset":4525},9875,{"type":27,"value":4527,"position":4528},": the rows come from the range the script is executing over, so when the user pans the chart back a week, a re-run over that window returns bars from the historical week. That is right for \"levels near what I'm looking at\", but wrong for dashboards that should always show ",{"start":4529,"end":4530},{"line":1385,"column":1254,"offset":4525},{"line":1385,"column":1721,"offset":4531},10148,{"type":18,"tagName":612,"properties":4533,"children":4534,"position":4543},{},[4535],{"type":27,"value":4536,"position":4537},"current",{"start":4538,"end":4541},{"line":1385,"column":4539,"offset":4540},325,10149,{"line":1385,"column":122,"offset":4542},10156,{"start":4544,"end":4545},{"line":1385,"column":1721,"offset":4531},{"line":1385,"column":4546,"offset":4547},333,10157,{"type":27,"value":4549,"position":4550}," market data — the panels of a ",{"start":4551,"end":4552},{"line":1385,"column":4546,"offset":4547},{"line":1385,"column":4553,"offset":4554},364,10188,{"type":18,"tagName":304,"properties":4556,"children":4558,"position":4574},{"href":4557},"/kscript/functions/plotting#plotminichartgrid",[4559],{"type":18,"tagName":140,"properties":4560,"children":4561,"position":4571},{},[4562],{"type":27,"value":4563,"position":4564},"plotMiniChartGrid",{"start":4565,"end":4568},{"line":1385,"column":4566,"offset":4567},365,10189,{"line":1385,"column":4569,"offset":4570},384,10208,{"start":4572,"end":4573},{"line":1385,"column":4566,"offset":4567},{"line":1385,"column":4569,"offset":4570},{"start":4575,"end":4576},{"line":1385,"column":4553,"offset":4554},{"line":1385,"column":4577,"offset":4578},432,10256,{"type":27,"value":4580,"position":4581}," would silently turn into last week's candles.",{"start":4582,"end":4583},{"line":1385,"column":4577,"offset":4578},{"line":1385,"column":4584,"offset":4585},478,10302,{"start":4587,"end":4588},{"line":1385,"column":31,"offset":4492},{"line":1385,"column":4584,"offset":4585},{"type":27,"value":93},{"type":18,"tagName":111,"properties":4591,"children":4592,"position":4633},{},[4593,4606,4612,4626],{"type":18,"tagName":140,"properties":4594,"children":4595,"position":4603},{},[4596],{"type":27,"value":164,"position":4597},{"start":4598,"end":4601},{"line":4599,"column":31,"offset":4600},155,10304,{"line":4599,"column":1407,"offset":4602},10322,{"start":4604,"end":4605},{"line":4599,"column":31,"offset":4600},{"line":4599,"column":1407,"offset":4602},{"type":27,"value":4607,"position":4608}," pins the request to the ",{"start":4609,"end":4610},{"line":4599,"column":1407,"offset":4602},{"line":4599,"column":2409,"offset":4611},10347,{"type":18,"tagName":115,"properties":4613,"children":4614,"position":4622},{},[4615],{"type":27,"value":4616,"position":4617},"newest",{"start":4618,"end":4620},{"line":4599,"column":2415,"offset":4619},10349,{"line":4599,"column":1268,"offset":4621},10355,{"start":4623,"end":4624},{"line":4599,"column":2409,"offset":4611},{"line":4599,"column":1353,"offset":4625},10357,{"type":27,"value":4627,"position":4628}," native bars instead:",{"start":4629,"end":4630},{"line":4599,"column":1353,"offset":4625},{"line":4599,"column":4631,"offset":4632},75,10378,{"start":4634,"end":4635},{"line":4599,"column":31,"offset":4600},{"line":4599,"column":4631,"offset":4632},{"type":27,"value":93},{"type":15,"children":4638},[4639],{"type":18,"tagName":336,"properties":4640,"children":4641,"data":-1},{"class":338,"style":339,"tabindex":340},[4642],{"type":18,"tagName":140,"properties":4643,"children":4644},{},[4645],{"type":18,"tagName":39,"properties":4646,"children":4647},{"class":347},[4648,4652,4656,4660,4664,4668,4672,4676,4680,4685,4690,4695,4700],{"type":18,"tagName":39,"properties":4649,"children":4650},{"style":357},[4651],{"type":27,"value":846},{"type":18,"tagName":39,"properties":4653,"children":4654},{"style":351},[4655],{"type":27,"value":4243},{"type":18,"tagName":39,"properties":4657,"children":4658},{"style":357},[4659],{"type":27,"value":360},{"type":18,"tagName":39,"properties":4661,"children":4662},{"style":363},[4663],{"type":27,"value":4252},{"type":18,"tagName":39,"properties":4665,"children":4666},{"style":351},[4667],{"type":27,"value":4257},{"type":18,"tagName":39,"properties":4669,"children":4670},{"style":374},[4671],{"type":27,"value":3161},{"type":18,"tagName":39,"properties":4673,"children":4674},{"style":351},[4675],{"type":27,"value":382},{"type":18,"tagName":39,"properties":4677,"children":4678},{"style":374},[4679],{"type":27,"value":377},{"type":18,"tagName":39,"properties":4681,"children":4682},{"style":351},[4683],{"type":27,"value":4684},", currentExchange, { bars: ",{"type":18,"tagName":39,"properties":4686,"children":4687},{"style":881},[4688],{"type":27,"value":4689},"18",{"type":18,"tagName":39,"properties":4691,"children":4692},{"style":351},[4693],{"type":27,"value":4694},", anchor: ",{"type":18,"tagName":39,"properties":4696,"children":4697},{"style":374},[4698],{"type":27,"value":4699},"\"latest\"",{"type":18,"tagName":39,"properties":4701,"children":4702},{"style":351},[4703],{"type":27,"value":4276},{"type":27,"value":93},{"type":18,"tagName":1339,"properties":4706,"children":4707,"position":4973},{},[4708,4709,4765,4766,4889,4890,4934,4935,4972],{"type":27,"value":93},{"type":18,"tagName":553,"properties":4710,"children":4711,"position":4761},{},[4712,4720,4732,4738,4754],{"type":27,"value":4713,"position":4714},"The rows are always the latest ",{"start":4715,"end":4718},{"line":4716,"column":36,"offset":4717},161,10504,{"line":4716,"column":137,"offset":4719},10535,{"type":18,"tagName":140,"properties":4721,"children":4722,"position":4729},{},[4723],{"type":27,"value":1199,"position":4724},{"start":4725,"end":4726},{"line":4716,"column":137,"offset":4719},{"line":4716,"column":4727,"offset":4728},40,10541,{"start":4730,"end":4731},{"line":4716,"column":137,"offset":4719},{"line":4716,"column":4727,"offset":4728},{"type":27,"value":4733,"position":4734}," bars of that timeframe — ",{"start":4735,"end":4736},{"line":4716,"column":4727,"offset":4728},{"line":4716,"column":622,"offset":4737},10567,{"type":18,"tagName":115,"properties":4739,"children":4740,"position":4749},{},[4741],{"type":27,"value":4742,"position":4743},"independent of how far back the user has panned",{"start":4744,"end":4746},{"line":4716,"column":1033,"offset":4745},10569,{"line":4716,"column":4747,"offset":4748},115,10616,{"start":4750,"end":4751},{"line":4716,"column":622,"offset":4737},{"line":4716,"column":4752,"offset":4753},117,10618,{"type":27,"value":4755,"position":4756}," and of the script's execution window. They update live: the last row is the forming bar, and the tail advances when a bar closes.",{"start":4757,"end":4758},{"line":4716,"column":4752,"offset":4753},{"line":4716,"column":4759,"offset":4760},247,10748,{"start":4762,"end":4764},{"line":4716,"column":31,"offset":4763},10502,{"line":4716,"column":4759,"offset":4760},{"type":27,"value":93},{"type":18,"tagName":553,"properties":4767,"children":4768,"position":4885},{},[4769,4784,4790,4805,4812,4823,4829,4840,4846,4859,4866,4878],{"type":18,"tagName":140,"properties":4770,"children":4771,"position":4781},{},[4772],{"type":27,"value":4773,"position":4774},"anchor",{"start":4775,"end":4778},{"line":4776,"column":36,"offset":4777},162,10751,{"line":4776,"column":4779,"offset":4780},11,10759,{"start":4782,"end":4783},{"line":4776,"column":36,"offset":4777},{"line":4776,"column":4779,"offset":4780},{"type":27,"value":4785,"position":4786}," must resolve ",{"start":4787,"end":4788},{"line":4776,"column":4779,"offset":4780},{"line":4776,"column":3069,"offset":4789},10773,{"type":18,"tagName":115,"properties":4791,"children":4792,"position":4801},{},[4793],{"type":27,"value":4794,"position":4795},"statically",{"start":4796,"end":4798},{"line":4776,"column":567,"offset":4797},10775,{"line":4776,"column":4799,"offset":4800},37,10785,{"start":4802,"end":4803},{"line":4776,"column":3069,"offset":4789},{"line":4776,"column":1859,"offset":4804},10787,{"type":27,"value":4806,"position":4807}," to ",{"start":4808,"end":4809},{"line":4776,"column":1859,"offset":4804},{"line":4776,"column":4810,"offset":4811},43,10791,{"type":18,"tagName":140,"properties":4813,"children":4814,"position":4820},{},[4815],{"type":27,"value":4699,"position":4816},{"start":4817,"end":4818},{"line":4776,"column":4810,"offset":4811},{"line":4776,"column":1432,"offset":4819},10801,{"start":4821,"end":4822},{"line":4776,"column":4810,"offset":4811},{"line":4776,"column":1432,"offset":4819},{"type":27,"value":1688,"position":4824},{"start":4825,"end":4826},{"line":4776,"column":1432,"offset":4819},{"line":4776,"column":4827,"offset":4828},57,10805,{"type":18,"tagName":140,"properties":4830,"children":4831,"position":4837},{},[4832],{"type":27,"value":184,"position":4833},{"start":4834,"end":4835},{"line":4776,"column":4827,"offset":4828},{"line":4776,"column":278,"offset":4836},10815,{"start":4838,"end":4839},{"line":4776,"column":4827,"offset":4828},{"line":4776,"column":278,"offset":4836},{"type":27,"value":4841,"position":4842}," — any other value is a hard error, and so is a value the compiler cannot pin down at build time (say, a ternary on bar data), because the anchor is part of the source's identity and cannot vary at runtime. A top-level ",{"start":4843,"end":4844},{"line":4776,"column":278,"offset":4836},{"line":4776,"column":3461,"offset":4845},11034,{"type":18,"tagName":140,"properties":4847,"children":4848,"position":4856},{},[4849],{"type":27,"value":4850,"position":4851},"var mode = \"latest\"",{"start":4852,"end":4853},{"line":4776,"column":3461,"offset":4845},{"line":4776,"column":4854,"offset":4855},307,11055,{"start":4857,"end":4858},{"line":4776,"column":3461,"offset":4845},{"line":4776,"column":4854,"offset":4855},{"type":27,"value":4860,"position":4861}," used as ",{"start":4862,"end":4863},{"line":4776,"column":4854,"offset":4855},{"line":4776,"column":4864,"offset":4865},316,11064,{"type":18,"tagName":140,"properties":4867,"children":4868,"position":4875},{},[4869],{"type":27,"value":4870,"position":4871},"anchor: mode",{"start":4872,"end":4873},{"line":4776,"column":4864,"offset":4865},{"line":4776,"column":128,"offset":4874},11078,{"start":4876,"end":4877},{"line":4776,"column":4864,"offset":4865},{"line":4776,"column":128,"offset":4874},{"type":27,"value":4879,"position":4880}," does resolve statically and is accepted; write the literal for clarity.",{"start":4881,"end":4882},{"line":4776,"column":128,"offset":4874},{"line":4776,"column":4883,"offset":4884},402,11150,{"start":4886,"end":4888},{"line":4776,"column":31,"offset":4887},10749,{"line":4776,"column":4883,"offset":4884},{"type":27,"value":93},{"type":18,"tagName":553,"properties":4891,"children":4892,"position":4930},{},[4893,4906,4912,4924],{"type":18,"tagName":140,"properties":4894,"children":4895,"position":4903},{},[4896],{"type":27,"value":184,"position":4897},{"start":4898,"end":4901},{"line":4899,"column":36,"offset":4900},163,11153,{"line":4899,"column":258,"offset":4902},11163,{"start":4904,"end":4905},{"line":4899,"column":36,"offset":4900},{"line":4899,"column":258,"offset":4902},{"type":27,"value":4907,"position":4908}," spells the default explicitly and behaves byte-identically to omitting ",{"start":4909,"end":4910},{"line":4899,"column":258,"offset":4902},{"line":4899,"column":2406,"offset":4911},11235,{"type":18,"tagName":140,"properties":4913,"children":4914,"position":4921},{},[4915],{"type":27,"value":4773,"position":4916},{"start":4917,"end":4918},{"line":4899,"column":2406,"offset":4911},{"line":4899,"column":4919,"offset":4920},93,11243,{"start":4922,"end":4923},{"line":4899,"column":2406,"offset":4911},{"line":4899,"column":4919,"offset":4920},{"type":27,"value":4925,"position":4926}," (it also dedupes with an anchor-less request of the same parameters).",{"start":4927,"end":4928},{"line":4899,"column":4919,"offset":4920},{"line":4899,"column":4899,"offset":4929},11313,{"start":4931,"end":4933},{"line":4899,"column":31,"offset":4932},11151,{"line":4899,"column":4899,"offset":4929},{"type":27,"value":93},{"type":18,"tagName":553,"properties":4936,"children":4937,"position":4968},{},[4938,4946,4961],{"type":27,"value":4939,"position":4940},"An anchored and a window-relative request of the ",{"start":4941,"end":4944},{"line":4942,"column":36,"offset":4943},164,11316,{"line":4942,"column":1268,"offset":4945},11365,{"type":18,"tagName":115,"properties":4947,"children":4948,"position":4957},{},[4949],{"type":27,"value":4950,"position":4951},"same symbol and timeframe are two distinct sources",{"start":4952,"end":4954},{"line":4942,"column":1353,"offset":4953},11367,{"line":4942,"column":4955,"offset":4956},104,11417,{"start":4958,"end":4959},{"line":4942,"column":1268,"offset":4945},{"line":4942,"column":679,"offset":4960},11419,{"type":27,"value":4962,"position":4963}," and cost two source-budget slots — they fetch different windows, so they cannot share one subscription.",{"start":4964,"end":4965},{"line":4942,"column":679,"offset":4960},{"line":4942,"column":4966,"offset":4967},210,11523,{"start":4969,"end":4971},{"line":4942,"column":31,"offset":4970},11314,{"line":4942,"column":4966,"offset":4967},{"type":27,"value":93},{"start":4974,"end":4975},{"line":4716,"column":31,"offset":4763},{"line":4942,"column":4966,"offset":4967},{"type":27,"value":93},{"type":18,"tagName":250,"properties":4978,"children":4980,"position":4989},{"id":4979},"sparse-flow-sources-align-to-the-chart-timeline",[4981],{"type":27,"value":4982,"position":4983},"Sparse flow sources align to the chart timeline",{"start":4984,"end":4987},{"line":4985,"column":60,"offset":4986},166,11528,{"line":4985,"column":1254,"offset":4988},11575,{"start":4990,"end":4992},{"line":4985,"column":31,"offset":4991},11525,{"line":4985,"column":1254,"offset":4988},{"type":27,"value":93},{"type":18,"tagName":111,"properties":4995,"children":4996,"position":5040},{},[4997,5004,5015,5021,5032],{"type":27,"value":4998,"position":4999},"Some market-flow feeds are naturally sparse: a liquidation, funding, or buy/sell\nvolume bucket may simply have no event for a candle. Source\ntypes that mark missing buckets as zero are aligned to the chart's candle\ntimeline before your script reads them. Once the source has started returning\nreal rows, a missing bucket reads as ",{"start":5000,"end":5002},{"line":1809,"column":31,"offset":5001},11577,{"line":1649,"column":3986,"offset":5003},11907,{"type":18,"tagName":140,"properties":5005,"children":5006,"position":5012},{},[5007],{"type":27,"value":340,"position":5008},{"start":5009,"end":5010},{"line":1649,"column":3986,"offset":5003},{"line":1649,"column":1864,"offset":5011},11910,{"start":5013,"end":5014},{"line":1649,"column":3986,"offset":5003},{"line":1649,"column":1864,"offset":5011},{"type":27,"value":5016,"position":5017}," instead of shifting every later value\nonto the wrong candle. Bars before the source's first real row still read as\n",{"start":5018,"end":5019},{"line":1649,"column":1864,"offset":5011},{"line":66,"column":31,"offset":5020},12026,{"type":18,"tagName":140,"properties":5022,"children":5023,"position":5029},{},[5024],{"type":27,"value":691,"position":5025},{"start":5026,"end":5027},{"line":66,"column":31,"offset":5020},{"line":66,"column":71,"offset":5028},12030,{"start":5030,"end":5031},{"line":66,"column":31,"offset":5020},{"line":66,"column":71,"offset":5028},{"type":27,"value":5033,"position":5034},", because the engine does not invent data for a period where coverage is\nunknown.",{"start":5035,"end":5036},{"line":66,"column":71,"offset":5028},{"line":5037,"column":5038,"offset":5039},175,9,12111,{"start":5041,"end":5042},{"line":1809,"column":31,"offset":5001},{"line":5037,"column":5038,"offset":5039},{"type":27,"value":93},{"type":18,"tagName":111,"properties":5045,"children":5046,"position":5073},{},[5047,5055,5067],{"type":27,"value":5048,"position":5049},"For authors, the practical rule is: keep an ",{"start":5050,"end":5052},{"line":72,"column":31,"offset":5051},12113,{"line":72,"column":5053,"offset":5054},45,12157,{"type":18,"tagName":140,"properties":5056,"children":5057,"position":5064},{},[5058],{"type":27,"value":5059,"position":5060},"ohlcv(...)",{"start":5061,"end":5062},{"line":72,"column":5053,"offset":5054},{"line":72,"column":4827,"offset":5063},12169,{"start":5065,"end":5066},{"line":72,"column":5053,"offset":5054},{"line":72,"column":4827,"offset":5063},{"type":27,"value":5068,"position":5069}," spine in multi-source\nflow scripts, then read the flow source directly. The candle timeline stays\nstable, sparse \"nothing happened\" buckets become zero, and truly unavailable\nhistory remains distinguishable from zero activity.",{"start":5070,"end":5071},{"line":72,"column":4827,"offset":5063},{"line":1660,"column":1268,"offset":5072},12396,{"start":5074,"end":5075},{"line":72,"column":31,"offset":5051},{"line":1660,"column":1268,"offset":5072},{"type":27,"value":93},{"type":18,"tagName":250,"properties":5078,"children":5080,"position":5089},{"id":5079},"budgets-and-good-citizenship",[5081],{"type":27,"value":5082,"position":5083},"Budgets and good citizenship",{"start":5084,"end":5087},{"line":5085,"column":60,"offset":5086},183,12402,{"line":5085,"column":37,"offset":5088},12430,{"start":5090,"end":5092},{"line":5085,"column":31,"offset":5091},12399,{"line":5085,"column":37,"offset":5088},{"type":27,"value":93},{"type":18,"tagName":111,"properties":5095,"children":5096,"position":5266},{},[5097,5105,5119,5124,5137,5144,5157,5163,5174,5181,5194,5200,5216,5223,5236,5243,5259],{"type":27,"value":5098,"position":5099},"A script has a budget of ",{"start":5100,"end":5103},{"line":5101,"column":31,"offset":5102},185,12432,{"line":5101,"column":538,"offset":5104},12457,{"type":18,"tagName":115,"properties":5106,"children":5107,"position":5115},{},[5108],{"type":27,"value":5109,"position":5110},"10 weighted source slots",{"start":5111,"end":5113},{"line":5101,"column":563,"offset":5112},12459,{"line":5101,"column":1268,"offset":5114},12483,{"start":5116,"end":5117},{"line":5101,"column":538,"offset":5104},{"line":5101,"column":1353,"offset":5118},12485,{"type":27,"value":2949,"position":5120},{"start":5121,"end":5122},{"line":5101,"column":1353,"offset":5118},{"line":5101,"column":158,"offset":5123},12487,{"type":18,"tagName":140,"properties":5125,"children":5126,"position":5134},{},[5127],{"type":27,"value":5128,"position":5129},"MAX_SOURCES_PER_SCRIPT",{"start":5130,"end":5131},{"line":5101,"column":158,"offset":5123},{"line":5101,"column":5132,"offset":5133},80,12511,{"start":5135,"end":5136},{"line":5101,"column":158,"offset":5123},{"line":5101,"column":5132,"offset":5133},{"type":27,"value":5138,"position":5139},"): a native stream costs one slot, heavier source types can be configured to cost more, and the chart's own price spine can cost zero. Identical ",{"start":5140,"end":5141},{"line":5101,"column":5132,"offset":5133},{"line":5101,"column":5142,"offset":5143},225,12656,{"type":18,"tagName":140,"properties":5145,"children":5146,"position":5154},{},[5147],{"type":27,"value":5148,"position":5149},"source(...)",{"start":5150,"end":5151},{"line":5101,"column":5142,"offset":5143},{"line":5101,"column":5152,"offset":5153},238,12669,{"start":5155,"end":5156},{"line":5101,"column":5142,"offset":5143},{"line":5101,"column":5152,"offset":5153},{"type":27,"value":5158,"position":5159}," calls dedupe to one, and ",{"start":5160,"end":5161},{"line":5101,"column":5152,"offset":5153},{"line":5101,"column":1672,"offset":5162},12695,{"type":18,"tagName":140,"properties":5164,"children":5165,"position":5171},{},[5166],{"type":27,"value":906,"position":5167},{"start":5168,"end":5169},{"line":5101,"column":1672,"offset":5162},{"line":5101,"column":4151,"offset":5170},12702,{"start":5172,"end":5173},{"line":5101,"column":1672,"offset":5162},{"line":5101,"column":4151,"offset":5170},{"type":27,"value":5175,"position":5176}," over a source you already opened is free since it transforms already-fetched data rather than fetching. A coarser ",{"start":5177,"end":5178},{"line":5101,"column":4151,"offset":5170},{"line":5101,"column":5179,"offset":5180},386,12817,{"type":18,"tagName":140,"properties":5182,"children":5183,"position":5191},{},[5184],{"type":27,"value":5185,"position":5186},"request(sym, \"4h\")",{"start":5187,"end":5188},{"line":5101,"column":5179,"offset":5180},{"line":5101,"column":5189,"offset":5190},406,12837,{"start":5192,"end":5193},{"line":5101,"column":5179,"offset":5180},{"line":5101,"column":5189,"offset":5190},{"type":27,"value":5195,"position":5196},", however, is keyed by its interval, so it is its ",{"start":5197,"end":5198},{"line":5101,"column":5189,"offset":5190},{"line":5101,"column":209,"offset":5199},12887,{"type":18,"tagName":115,"properties":5201,"children":5202,"position":5211},{},[5203],{"type":27,"value":1853,"position":5204},{"start":5205,"end":5208},{"line":5101,"column":5206,"offset":5207},458,12889,{"line":5101,"column":5209,"offset":5210},461,12892,{"start":5212,"end":5213},{"line":5101,"column":209,"offset":5199},{"line":5101,"column":5214,"offset":5215},463,12894,{"type":27,"value":5217,"position":5218}," source distinct from a chart-interval ",{"start":5219,"end":5220},{"line":5101,"column":5214,"offset":5215},{"line":5101,"column":5221,"offset":5222},502,12933,{"type":18,"tagName":140,"properties":5224,"children":5225,"position":5233},{},[5226],{"type":27,"value":5227,"position":5228},"request(sym)",{"start":5229,"end":5230},{"line":5101,"column":5221,"offset":5222},{"line":5101,"column":5231,"offset":5232},516,12947,{"start":5234,"end":5235},{"line":5101,"column":5221,"offset":5222},{"line":5101,"column":5231,"offset":5232},{"type":27,"value":5237,"position":5238}," (see ",{"start":5239,"end":5240},{"line":5101,"column":5231,"offset":5232},{"line":5101,"column":5241,"offset":5242},522,12953,{"type":18,"tagName":304,"properties":5244,"children":5246,"position":5254},{"href":5245},"#higher-timeframe-requests-fetch-their-own-depth",[5247],{"type":27,"value":1248,"position":5248},{"start":5249,"end":5251},{"line":5101,"column":229,"offset":5250},12954,{"line":5101,"column":5252,"offset":5253},570,13001,{"start":5255,"end":5256},{"line":5101,"column":5241,"offset":5242},{"line":5101,"column":5257,"offset":5258},621,13052,{"type":27,"value":5260,"position":5261},"); a symbol's calendar requests collapse onto at most two shared backing sources. Ten single-slot sources fill the budget exactly; design within the 10 weighted slots.",{"start":5262,"end":5263},{"line":5101,"column":5257,"offset":5258},{"line":5101,"column":5264,"offset":5265},788,13219,{"start":5267,"end":5268},{"line":5101,"column":31,"offset":5102},{"line":5101,"column":5264,"offset":5265},{"type":27,"value":93},{"type":18,"tagName":250,"properties":5271,"children":5273,"position":5282},{"id":5272},"availability",[5274],{"type":27,"value":5275,"position":5276},"Availability",{"start":5277,"end":5280},{"line":5278,"column":60,"offset":5279},187,13224,{"line":5278,"column":261,"offset":5281},13236,{"start":5283,"end":5285},{"line":5278,"column":31,"offset":5284},13221,{"line":5278,"column":261,"offset":5281},{"type":27,"value":93},{"type":18,"tagName":111,"properties":5288,"children":5289,"position":5316},{},[5290,5298,5310],{"type":27,"value":5291,"position":5292},"The language accepts any registered ",{"start":5293,"end":5296},{"line":5294,"column":31,"offset":5295},189,13238,{"line":5294,"column":4799,"offset":5297},13274,{"type":18,"tagName":140,"properties":5299,"children":5300,"position":5307},{},[5301],{"type":27,"value":5302,"position":5303},"(type, symbol, exchange)",{"start":5304,"end":5305},{"line":5294,"column":4799,"offset":5297},{"line":5294,"column":672,"offset":5306},13300,{"start":5308,"end":5309},{"line":5294,"column":4799,"offset":5297},{"line":5294,"column":672,"offset":5306},{"type":27,"value":5311,"position":5312}," triple; whether a venue serves a given data type is a platform question. The platform exposes a machine-readable catalog of servable source types, and an unavailable request fails loudly with the list of what exists, never with silent empty data.",{"start":5313,"end":5314},{"line":5294,"column":672,"offset":5306},{"line":5294,"column":1104,"offset":5315},13547,{"start":5317,"end":5318},{"line":5294,"column":31,"offset":5295},{"line":5294,"column":1104,"offset":5315},{"quirksMode":5320},false,{"start":5322,"end":5323},{"line":31,"column":31,"offset":101},{"line":1821,"column":31,"offset":5324},13548,1784888044614]