[{"data":1,"prerenderedAt":4634},["ShallowReactive",2],{"kscript:core-concepts/multi-source":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":9,"tree":10},"core-concepts/multi-source","core-concepts/multi-source.md",{"title":7,"description":8},"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.","---\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.\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> **Verified against engine 3.0.26.** The per-source deep-fetch behavior of higher-timeframe `request()` (and the source-count shift that comes with it) is **since engine 3.0.26 (in-flight)** and corrects an earlier \"bounded by the chart window\" claim. The depth and source-count facts are backed by the engine's passing `g6-request-source-discovery.test.ts` suite.\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 (footprint 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\n> **Corrected since engine 3.0.26 (in-flight).** Earlier docs said a higher-timeframe `request()` was \"bounded by the chart's loaded window\" and could not reach a far-back anchor. That is **no longer true**: a coarser `request()` now fetches its **own deep history**, scaled by the requested interval rather than the chart interval.\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 their existing shallow fetch window unchanged; 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 now **two distinct sources**, not one. This is a budget shift from earlier versions where they shared a key. Duplicate identical requests still dedupe. This per-source deep fetch and its source-count behavior are verified by the engine's `src/__tests__/g6-request-source-discovery.test.ts` suite (the `EC1` deep-fetch-range and `B1a` calendar-backing cases), passing on 3.0.26.\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\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\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 coarse native interval string (`\"1d\"`, `\"4h\"`, `\"1w\"`) and is required; `opts.bars` is a required positive integer; `type` defaults to `\"ohlcv\"` and `exchange` defaults to the current venue. There is no `mode`/`offset` here (those are `request()`/`htf()` period concepts).\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## Budgets and good citizenship\n\nA script can subscribe to **at most 20 distinct sources**. The editor and the runtime enforce the same number, so a script that runs also passes validation; a 21st source fails with `Script exceeds the source budget (21/20)`. 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. Heavy source types count for more than one (`orderbook` counts as 3), so a handful of order books reaches the cap sooner. Twenty distinct streams is ample headroom for multi-venue aggregation.\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":11,"children":12,"data":4627,"position":4629},"root",[13,100,101,208,209,227,228,293,294,474,475,491,492,507,508,679,680,695,696,711,712,854,855,888,889,975,976,1186,1187,1204,1205,1327,1328,1403,1404,1813,1814,1963,1964,2048,2049,2064,2065,2079,2080,2101,2102,2519,2520,2544,2545,2961,2962,2989,2990,3041,3042,3099,3100,3152,3153,3168,3169,3239,3240,3442,3443,3474,3475,3490,3491,3852,3853,3961,3962,4049,4050,4359,4360,4375,4376,4576,4577,4593,4594],{"type":14,"tagName":15,"properties":16,"children":21,"position":95},"element","div",{"className":17},[18,19,20],"flex","gap-3","mb-6",[22,34,63,69,88],{"type":23,"value":24,"position":25},"text","\n  ",{"start":26,"end":30},{"line":27,"column":28,"offset":29},1,30,29,{"line":31,"column":32,"offset":33},2,3,32,{"type":14,"tagName":35,"properties":36,"children":48,"position":58},"span",{"className":37},[38,39,40,41,42,43,44,45,46,47],"inline-flex","items-center","gap-1.5","px-3","py-1","rounded-full","bg-purple-50","text-purple-600","text-sm","font-medium",[49],{"type":23,"value":50,"position":51},"\n    Advanced\n  ",{"start":52,"end":55},{"line":31,"column":53,"offset":54},122,151,{"line":56,"column":32,"offset":57},4,167,{"start":59,"end":60},{"line":31,"column":32,"offset":33},{"line":56,"column":61,"offset":62},10,174,{"type":23,"value":24,"position":64},{"start":65,"end":66},{"line":56,"column":61,"offset":62},{"line":67,"column":32,"offset":68},5,177,{"type":14,"tagName":35,"properties":70,"children":74,"position":84},{"className":71},[38,39,40,41,42,43,72,73,46,47],"bg-gray-100","text-gray-600",[75],{"type":23,"value":76,"position":77},"\n    12 min read\n  ",{"start":78,"end":81},{"line":67,"column":79,"offset":80},119,293,{"line":82,"column":32,"offset":83},7,312,{"start":85,"end":86},{"line":67,"column":32,"offset":68},{"line":82,"column":61,"offset":87},319,{"type":23,"value":89,"position":90},"\n",{"start":91,"end":92},{"line":82,"column":61,"offset":87},{"line":93,"column":27,"offset":94},8,320,{"start":96,"end":98},{"line":27,"column":27,"offset":97},0,{"line":93,"column":82,"offset":99},326,{"type":23,"value":89},{"type":14,"tagName":102,"properties":103,"children":104,"position":204},"blockquote",{},[105,106,203],{"type":23,"value":89},{"type":14,"tagName":107,"properties":108,"children":109,"position":200},"p",{},[110,128,135,149,156,173,180,193],{"type":14,"tagName":111,"properties":112,"children":113,"position":122},"strong",{},[114],{"type":23,"value":115,"position":116},"Verified against engine 3.0.26.",{"start":117,"end":119},{"line":61,"column":67,"offset":118},332,{"line":61,"column":120,"offset":121},36,363,{"start":123,"end":125},{"line":61,"column":32,"offset":124},330,{"line":61,"column":126,"offset":127},38,365,{"type":23,"value":129,"position":130}," The per-source deep-fetch behavior of higher-timeframe ",{"start":131,"end":132},{"line":61,"column":126,"offset":127},{"line":61,"column":133,"offset":134},94,421,{"type":14,"tagName":136,"properties":137,"children":138,"position":146},"code",{},[139],{"type":23,"value":140,"position":141},"request()",{"start":142,"end":143},{"line":61,"column":133,"offset":134},{"line":61,"column":144,"offset":145},105,432,{"start":147,"end":148},{"line":61,"column":133,"offset":134},{"line":61,"column":144,"offset":145},{"type":23,"value":150,"position":151}," (and the source-count shift that comes with it) is ",{"start":152,"end":153},{"line":61,"column":144,"offset":145},{"line":61,"column":154,"offset":155},157,484,{"type":14,"tagName":111,"properties":157,"children":158,"position":168},{},[159],{"type":23,"value":160,"position":161},"since engine 3.0.26 (in-flight)",{"start":162,"end":165},{"line":61,"column":163,"offset":164},159,486,{"line":61,"column":166,"offset":167},190,517,{"start":169,"end":170},{"line":61,"column":154,"offset":155},{"line":61,"column":171,"offset":172},192,519,{"type":23,"value":174,"position":175}," and corrects an earlier \"bounded by the chart window\" claim. The depth and source-count facts are backed by the engine's passing ",{"start":176,"end":177},{"line":61,"column":171,"offset":172},{"line":61,"column":178,"offset":179},322,649,{"type":14,"tagName":136,"properties":181,"children":182,"position":190},{},[183],{"type":23,"value":184,"position":185},"g6-request-source-discovery.test.ts",{"start":186,"end":187},{"line":61,"column":178,"offset":179},{"line":61,"column":188,"offset":189},359,686,{"start":191,"end":192},{"line":61,"column":178,"offset":179},{"line":61,"column":188,"offset":189},{"type":23,"value":194,"position":195}," suite.",{"start":196,"end":197},{"line":61,"column":188,"offset":189},{"line":61,"column":198,"offset":199},366,693,{"start":201,"end":202},{"line":61,"column":32,"offset":124},{"line":61,"column":198,"offset":199},{"type":23,"value":89},{"start":205,"end":207},{"line":61,"column":27,"offset":206},328,{"line":61,"column":198,"offset":199},{"type":23,"value":89},{"type":14,"tagName":210,"properties":211,"children":213,"position":223},"h2",{"id":212},"introduction",[214],{"type":23,"value":215,"position":216},"Introduction",{"start":217,"end":220},{"line":218,"column":56,"offset":219},12,698,{"line":218,"column":221,"offset":222},16,710,{"start":224,"end":226},{"line":218,"column":27,"offset":225},695,{"line":218,"column":221,"offset":222},{"type":23,"value":89},{"type":14,"tagName":107,"properties":229,"children":230,"position":290},{},[231,240,257,264,283],{"type":23,"value":232,"position":233},"A kScript script is not limited to its chart's data. You can load ",{"start":234,"end":237},{"line":235,"column":27,"offset":236},14,712,{"line":235,"column":238,"offset":239},67,778,{"type":14,"tagName":111,"properties":241,"children":242,"position":252},{},[243],{"type":23,"value":244,"position":245},"any number of sources",{"start":246,"end":249},{"line":235,"column":247,"offset":248},69,780,{"line":235,"column":250,"offset":251},90,801,{"start":253,"end":254},{"line":235,"column":238,"offset":239},{"line":235,"column":255,"offset":256},92,803,{"type":23,"value":258,"position":259}," 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":260,"end":261},{"line":235,"column":255,"offset":256},{"line":235,"column":262,"offset":263},361,1072,{"type":14,"tagName":265,"properties":266,"children":268,"position":278},"a",{"href":267},"collections.md",[269],{"type":23,"value":270,"position":271},"collections",{"start":272,"end":275},{"line":235,"column":273,"offset":274},362,1073,{"line":235,"column":276,"offset":277},373,1084,{"start":279,"end":280},{"line":235,"column":262,"offset":263},{"line":235,"column":281,"offset":282},390,1101,{"type":23,"value":284,"position":285},".",{"start":286,"end":287},{"line":235,"column":281,"offset":282},{"line":235,"column":288,"offset":289},391,1102,{"start":291,"end":292},{"line":235,"column":27,"offset":236},{"line":235,"column":288,"offset":289},{"type":23,"value":89},{"type":11,"children":295},[296],{"type":14,"tagName":297,"properties":298,"children":302,"data":-1},"pre",{"class":299,"style":300,"tabindex":301},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[303],{"type":14,"tagName":136,"properties":304,"children":305},{},[306,363,364,409,410,413,414,441,442],{"type":14,"tagName":35,"properties":307,"children":309},{"class":308},"line",[310,316,322,328,333,339,344,349,353,358],{"type":14,"tagName":35,"properties":311,"children":313},{"style":312},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[314],{"type":23,"value":315},"timeseries btc ",{"type":14,"tagName":35,"properties":317,"children":319},{"style":318},"--shiki-dark:#F97583;--shiki-light:#D73A49",[320],{"type":23,"value":321},"=",{"type":14,"tagName":35,"properties":323,"children":325},{"style":324},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[326],{"type":23,"value":327}," source",{"type":14,"tagName":35,"properties":329,"children":330},{"style":312},[331],{"type":23,"value":332},"(",{"type":14,"tagName":35,"properties":334,"children":336},{"style":335},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[337],{"type":23,"value":338},"\"ohlcv\"",{"type":14,"tagName":35,"properties":340,"children":341},{"style":312},[342],{"type":23,"value":343},", ",{"type":14,"tagName":35,"properties":345,"children":346},{"style":335},[347],{"type":23,"value":348},"\"BTCUSDT\"",{"type":14,"tagName":35,"properties":350,"children":351},{"style":312},[352],{"type":23,"value":343},{"type":14,"tagName":35,"properties":354,"children":355},{"style":335},[356],{"type":23,"value":357},"\"BINANCE_FUTURES\"",{"type":14,"tagName":35,"properties":359,"children":360},{"style":312},[361],{"type":23,"value":362},")",{"type":23,"value":89},{"type":14,"tagName":35,"properties":365,"children":366},{"class":308},[367,372,376,380,384,388,392,397,401,405],{"type":14,"tagName":35,"properties":368,"children":369},{"style":312},[370],{"type":23,"value":371},"timeseries eth ",{"type":14,"tagName":35,"properties":373,"children":374},{"style":318},[375],{"type":23,"value":321},{"type":14,"tagName":35,"properties":377,"children":378},{"style":324},[379],{"type":23,"value":327},{"type":14,"tagName":35,"properties":381,"children":382},{"style":312},[383],{"type":23,"value":332},{"type":14,"tagName":35,"properties":385,"children":386},{"style":335},[387],{"type":23,"value":338},{"type":14,"tagName":35,"properties":389,"children":390},{"style":312},[391],{"type":23,"value":343},{"type":14,"tagName":35,"properties":393,"children":394},{"style":335},[395],{"type":23,"value":396},"\"ETHUSDT\"",{"type":14,"tagName":35,"properties":398,"children":399},{"style":312},[400],{"type":23,"value":343},{"type":14,"tagName":35,"properties":402,"children":403},{"style":335},[404],{"type":23,"value":357},{"type":14,"tagName":35,"properties":406,"children":407},{"style":312},[408],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":411,"children":412},{"class":308},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":415,"children":416},{"class":308},[417,422,426,431,436],{"type":14,"tagName":35,"properties":418,"children":419},{"style":312},[420],{"type":23,"value":421},"timeseries ratio ",{"type":14,"tagName":35,"properties":423,"children":424},{"style":318},[425],{"type":23,"value":321},{"type":14,"tagName":35,"properties":427,"children":428},{"style":312},[429],{"type":23,"value":430}," eth.close ",{"type":14,"tagName":35,"properties":432,"children":433},{"style":318},[434],{"type":23,"value":435},"/",{"type":14,"tagName":35,"properties":437,"children":438},{"style":312},[439],{"type":23,"value":440}," btc.close",{"type":23,"value":89},{"type":14,"tagName":35,"properties":443,"children":444},{"class":308},[445,450,455,459,464,469],{"type":14,"tagName":35,"properties":446,"children":447},{"style":324},[448],{"type":23,"value":449},"plotLine",{"type":14,"tagName":35,"properties":451,"children":452},{"style":312},[453],{"type":23,"value":454},"(ratio, label",{"type":14,"tagName":35,"properties":456,"children":457},{"style":318},[458],{"type":23,"value":321},{"type":14,"tagName":35,"properties":460,"children":461},{"style":312},[462],{"type":23,"value":463},"[",{"type":14,"tagName":35,"properties":465,"children":466},{"style":335},[467],{"type":23,"value":468},"\"ETH/BTC\"",{"type":14,"tagName":35,"properties":470,"children":471},{"style":312},[472],{"type":23,"value":473},"])",{"type":23,"value":89},{"type":14,"tagName":210,"properties":476,"children":478,"position":487},{"id":477},"how-multiple-sources-coexist",[479],{"type":23,"value":480,"position":481},"How multiple sources coexist",{"start":482,"end":485},{"line":483,"column":56,"offset":484},23,1328,{"line":483,"column":33,"offset":486},1356,{"start":488,"end":490},{"line":483,"column":27,"offset":489},1325,{"line":483,"column":33,"offset":486},{"type":23,"value":89},{"type":14,"tagName":107,"properties":493,"children":494,"position":504},{},[495],{"type":23,"value":496,"position":497},"Three engine rules make cross-source math safe by default:",{"start":498,"end":501},{"line":499,"column":27,"offset":500},25,1358,{"line":499,"column":502,"offset":503},59,1416,{"start":505,"end":506},{"line":499,"column":27,"offset":500},{"line":499,"column":502,"offset":503},{"type":23,"value":89},{"type":14,"tagName":509,"properties":510,"children":511,"position":676},"ol",{},[512,513,545,546,601,602,675],{"type":23,"value":89},{"type":14,"tagName":514,"properties":515,"children":516,"position":541},"li",{},[517,534],{"type":14,"tagName":111,"properties":518,"children":519,"position":529},{},[520],{"type":23,"value":521,"position":522},"One unified timeline.",{"start":523,"end":527},{"line":524,"column":525,"offset":526},27,6,1423,{"line":524,"column":524,"offset":528},1444,{"start":530,"end":532},{"line":524,"column":56,"offset":531},1421,{"line":524,"column":29,"offset":533},1446,{"type":23,"value":535,"position":536}," The engine unions all sources' timestamps into the chart's bar sequence. Every series is readable on every bar.",{"start":537,"end":538},{"line":524,"column":29,"offset":533},{"line":524,"column":539,"offset":540},141,1558,{"start":542,"end":544},{"line":524,"column":27,"offset":543},1418,{"line":524,"column":539,"offset":540},{"type":23,"value":89},{"type":14,"tagName":514,"properties":547,"children":548,"position":597},{},[549,566,573,590],{"type":14,"tagName":111,"properties":550,"children":551,"position":561},{},[552],{"type":23,"value":553,"position":554},"Values forward-fill.",{"start":555,"end":558},{"line":556,"column":525,"offset":557},28,1564,{"line":556,"column":559,"offset":560},26,1584,{"start":562,"end":564},{"line":556,"column":56,"offset":563},1562,{"line":556,"column":556,"offset":565},1586,{"type":23,"value":567,"position":568}," Reading a series at a bar where ",{"start":569,"end":570},{"line":556,"column":556,"offset":565},{"line":556,"column":571,"offset":572},61,1619,{"type":14,"tagName":574,"properties":575,"children":576,"position":586},"em",{},[577],{"type":23,"value":578,"position":579},"that",{"start":580,"end":583},{"line":556,"column":581,"offset":582},62,1620,{"line":556,"column":584,"offset":585},66,1624,{"start":587,"end":588},{"line":556,"column":571,"offset":572},{"line":556,"column":238,"offset":589},1625,{"type":23,"value":591,"position":592}," 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":593,"end":594},{"line":556,"column":238,"offset":589},{"line":556,"column":595,"offset":596},253,1811,{"start":598,"end":600},{"line":556,"column":27,"offset":599},1559,{"line":556,"column":595,"offset":596},{"type":23,"value":89},{"type":14,"tagName":514,"properties":603,"children":604,"position":671},{},[605,621,627,645,651,664],{"type":14,"tagName":111,"properties":606,"children":607,"position":615},{},[608],{"type":23,"value":609,"position":610},"Events never fabricate.",{"start":611,"end":613},{"line":29,"column":525,"offset":612},1817,{"line":29,"column":29,"offset":614},1840,{"start":616,"end":618},{"line":29,"column":56,"offset":617},1815,{"line":29,"column":619,"offset":620},31,1842,{"type":23,"value":622,"position":623}," The strictness rules from the ",{"start":624,"end":625},{"line":29,"column":619,"offset":620},{"line":29,"column":581,"offset":626},1873,{"type":14,"tagName":265,"properties":628,"children":630,"position":640},{"href":629},"../functions/ta-library.md",[631],{"type":23,"value":632,"position":633},"TA conventions",{"start":634,"end":637},{"line":29,"column":635,"offset":636},63,1874,{"line":29,"column":638,"offset":639},77,1888,{"start":641,"end":642},{"line":29,"column":581,"offset":626},{"line":29,"column":643,"offset":644},106,1917,{"type":23,"value":646,"position":647}," apply: a missing condition row is false, and crosses never fire on ",{"start":648,"end":649},{"line":29,"column":643,"offset":644},{"line":29,"column":62,"offset":650},1985,{"type":14,"tagName":136,"properties":652,"children":653,"position":661},{},[654],{"type":23,"value":655,"position":656},"na",{"start":657,"end":658},{"line":29,"column":62,"offset":650},{"line":29,"column":659,"offset":660},178,1989,{"start":662,"end":663},{"line":29,"column":62,"offset":650},{"line":29,"column":659,"offset":660},{"type":23,"value":665,"position":666},". Stale venue data cannot invent signals.",{"start":667,"end":668},{"line":29,"column":659,"offset":660},{"line":29,"column":669,"offset":670},219,2030,{"start":672,"end":674},{"line":29,"column":27,"offset":673},1812,{"line":29,"column":669,"offset":670},{"type":23,"value":89},{"start":677,"end":678},{"line":524,"column":27,"offset":543},{"line":29,"column":669,"offset":670},{"type":23,"value":89},{"type":14,"tagName":210,"properties":681,"children":683,"position":691},{"id":682},"multi-symbol",[684],{"type":23,"value":685,"position":686},"Multi-symbol",{"start":687,"end":689},{"line":619,"column":56,"offset":688},2035,{"line":619,"column":221,"offset":690},2047,{"start":692,"end":694},{"line":619,"column":27,"offset":693},2032,{"line":619,"column":221,"offset":690},{"type":23,"value":89},{"type":14,"tagName":107,"properties":697,"children":698,"position":708},{},[699],{"type":23,"value":700,"position":701},"Any source call can name a symbol other than the chart's:",{"start":702,"end":705},{"line":703,"column":27,"offset":704},33,2049,{"line":703,"column":706,"offset":707},58,2106,{"start":709,"end":710},{"line":703,"column":27,"offset":704},{"line":703,"column":706,"offset":707},{"type":23,"value":89},{"type":11,"children":713},[714],{"type":14,"tagName":297,"properties":715,"children":716,"data":-1},{"class":299,"style":300,"tabindex":301},[717],{"type":14,"tagName":136,"properties":718,"children":719},{},[720,764,765,803,804],{"type":14,"tagName":35,"properties":721,"children":722},{"class":308},[723,728,732,736,740,744,748,752,756,760],{"type":14,"tagName":35,"properties":724,"children":725},{"style":312},[726],{"type":23,"value":727},"timeseries spy ",{"type":14,"tagName":35,"properties":729,"children":730},{"style":318},[731],{"type":23,"value":321},{"type":14,"tagName":35,"properties":733,"children":734},{"style":324},[735],{"type":23,"value":327},{"type":14,"tagName":35,"properties":737,"children":738},{"style":312},[739],{"type":23,"value":332},{"type":14,"tagName":35,"properties":741,"children":742},{"style":335},[743],{"type":23,"value":338},{"type":14,"tagName":35,"properties":745,"children":746},{"style":312},[747],{"type":23,"value":343},{"type":14,"tagName":35,"properties":749,"children":750},{"style":335},[751],{"type":23,"value":396},{"type":14,"tagName":35,"properties":753,"children":754},{"style":312},[755],{"type":23,"value":343},{"type":14,"tagName":35,"properties":757,"children":758},{"style":335},[759],{"type":23,"value":357},{"type":14,"tagName":35,"properties":761,"children":762},{"style":312},[763],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":766,"children":767},{"class":308},[768,773,777,782,787,792,797],{"type":14,"tagName":35,"properties":769,"children":770},{"style":312},[771],{"type":23,"value":772},"timeseries lead ",{"type":14,"tagName":35,"properties":774,"children":775},{"style":318},[776],{"type":23,"value":321},{"type":14,"tagName":35,"properties":778,"children":779},{"style":324},[780],{"type":23,"value":781}," htf",{"type":14,"tagName":35,"properties":783,"children":784},{"style":312},[785],{"type":23,"value":786},"(spy, ",{"type":14,"tagName":35,"properties":788,"children":789},{"style":335},[790],{"type":23,"value":791},"\"4h\"",{"type":14,"tagName":35,"properties":793,"children":794},{"style":312},[795],{"type":23,"value":796},")           ",{"type":14,"tagName":35,"properties":798,"children":800},{"style":799},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[801],{"type":23,"value":802},"// other-symbol HTF, still no-repaint",{"type":23,"value":89},{"type":14,"tagName":35,"properties":805,"children":806},{"class":308},[807,812,817,821,826,831,835,840,844,850],{"type":14,"tagName":35,"properties":808,"children":809},{"style":318},[810],{"type":23,"value":811},"var",{"type":14,"tagName":35,"properties":813,"children":814},{"style":312},[815],{"type":23,"value":816}," leading ",{"type":14,"tagName":35,"properties":818,"children":819},{"style":318},[820],{"type":23,"value":321},{"type":14,"tagName":35,"properties":822,"children":823},{"style":324},[824],{"type":23,"value":825}," rsi",{"type":14,"tagName":35,"properties":827,"children":828},{"style":312},[829],{"type":23,"value":830},"(source",{"type":14,"tagName":35,"properties":832,"children":833},{"style":318},[834],{"type":23,"value":321},{"type":14,"tagName":35,"properties":836,"children":837},{"style":312},[838],{"type":23,"value":839},"spy.close, period",{"type":14,"tagName":35,"properties":841,"children":842},{"style":318},[843],{"type":23,"value":321},{"type":14,"tagName":35,"properties":845,"children":847},{"style":846},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[848],{"type":23,"value":849},"14",{"type":14,"tagName":35,"properties":851,"children":852},{"style":312},[853],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":107,"properties":856,"children":857,"position":885},{},[858,867,879],{"type":23,"value":859,"position":860},"Everything downstream is source-agnostic: indicators, ",{"start":861,"end":864},{"line":862,"column":27,"offset":863},41,2318,{"line":862,"column":865,"offset":866},55,2372,{"type":14,"tagName":136,"properties":868,"children":869,"position":876},{},[870],{"type":23,"value":871,"position":872},"htf()",{"start":873,"end":874},{"line":862,"column":865,"offset":866},{"line":862,"column":581,"offset":875},2379,{"start":877,"end":878},{"line":862,"column":865,"offset":866},{"line":862,"column":581,"offset":875},{"type":23,"value":880,"position":881},", drawings, reducers. For the common case there is sugar:",{"start":882,"end":883},{"line":862,"column":581,"offset":875},{"line":862,"column":79,"offset":884},2436,{"start":886,"end":887},{"line":862,"column":27,"offset":863},{"line":862,"column":79,"offset":884},{"type":23,"value":89},{"type":11,"children":890},[891],{"type":14,"tagName":297,"properties":892,"children":893,"data":-1},{"class":299,"style":300,"tabindex":301},[894],{"type":14,"tagName":136,"properties":895,"children":896},{},[897,940,941],{"type":14,"tagName":35,"properties":898,"children":899},{"class":308},[900,905,909,914,918,922,926,930,935],{"type":14,"tagName":35,"properties":901,"children":902},{"style":312},[903],{"type":23,"value":904},"timeseries eth4h ",{"type":14,"tagName":35,"properties":906,"children":907},{"style":318},[908],{"type":23,"value":321},{"type":14,"tagName":35,"properties":910,"children":911},{"style":324},[912],{"type":23,"value":913}," request",{"type":14,"tagName":35,"properties":915,"children":916},{"style":312},[917],{"type":23,"value":332},{"type":14,"tagName":35,"properties":919,"children":920},{"style":335},[921],{"type":23,"value":396},{"type":14,"tagName":35,"properties":923,"children":924},{"style":312},[925],{"type":23,"value":343},{"type":14,"tagName":35,"properties":927,"children":928},{"style":335},[929],{"type":23,"value":791},{"type":14,"tagName":35,"properties":931,"children":932},{"style":312},[933],{"type":23,"value":934},")        ",{"type":14,"tagName":35,"properties":936,"children":937},{"style":799},[938],{"type":23,"value":939},"// = htf(source(\"ohlcv\", \"ETHUSDT\", currentExchange), \"4h\")",{"type":23,"value":89},{"type":14,"tagName":35,"properties":942,"children":943},{"class":308},[944,949,953,957,961,965,970],{"type":14,"tagName":35,"properties":945,"children":946},{"style":312},[947],{"type":23,"value":948},"timeseries ethNow ",{"type":14,"tagName":35,"properties":950,"children":951},{"style":318},[952],{"type":23,"value":321},{"type":14,"tagName":35,"properties":954,"children":955},{"style":324},[956],{"type":23,"value":913},{"type":14,"tagName":35,"properties":958,"children":959},{"style":312},[960],{"type":23,"value":332},{"type":14,"tagName":35,"properties":962,"children":963},{"style":335},[964],{"type":23,"value":396},{"type":14,"tagName":35,"properties":966,"children":967},{"style":312},[968],{"type":23,"value":969},")             ",{"type":14,"tagName":35,"properties":971,"children":972},{"style":799},[973],{"type":23,"value":974},"// raw, chart timeframe",{"type":23,"value":89},{"type":14,"tagName":107,"properties":977,"children":978,"position":1183},{},[979,993,1000,1013,1020,1032,1039,1052,1059,1075,1082,1095,1101,1114,1120,1133,1139,1152,1159,1177],{"type":14,"tagName":136,"properties":980,"children":981,"position":990},{},[982],{"type":23,"value":983,"position":984},"request(symbol, timeframe?, type?, exchange?, opts?)",{"start":985,"end":988},{"line":986,"column":27,"offset":987},47,2642,{"line":986,"column":865,"offset":989},2696,{"start":991,"end":992},{"line":986,"column":27,"offset":987},{"line":986,"column":865,"offset":989},{"type":23,"value":994,"position":995}," keeps every ",{"start":996,"end":997},{"line":986,"column":865,"offset":989},{"line":986,"column":998,"offset":999},68,2709,{"type":14,"tagName":136,"properties":1001,"children":1002,"position":1010},{},[1003],{"type":23,"value":1004,"position":1005},"htf",{"start":1006,"end":1007},{"line":986,"column":998,"offset":999},{"line":986,"column":1008,"offset":1009},73,2714,{"start":1011,"end":1012},{"line":986,"column":998,"offset":999},{"line":986,"column":1008,"offset":1009},{"type":23,"value":1014,"position":1015}," 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":1016,"end":1017},{"line":986,"column":1008,"offset":1009},{"line":986,"column":1018,"offset":1019},245,2886,{"type":14,"tagName":136,"properties":1021,"children":1022,"position":1029},{},[1023],{"type":23,"value":791,"position":1024},{"start":1025,"end":1026},{"line":986,"column":1018,"offset":1019},{"line":986,"column":1027,"offset":1028},251,2892,{"start":1030,"end":1031},{"line":986,"column":1018,"offset":1019},{"line":986,"column":1027,"offset":1028},{"type":23,"value":1033,"position":1034}," on a 1h chart), ",{"start":1035,"end":1036},{"line":986,"column":1027,"offset":1028},{"line":986,"column":1037,"offset":1038},268,2909,{"type":14,"tagName":136,"properties":1040,"children":1041,"position":1049},{},[1042],{"type":23,"value":1043,"position":1044},"request",{"start":1045,"end":1046},{"line":986,"column":1037,"offset":1038},{"line":986,"column":1047,"offset":1048},277,2918,{"start":1050,"end":1051},{"line":986,"column":1037,"offset":1038},{"line":986,"column":1047,"offset":1048},{"type":23,"value":1053,"position":1054}," fetches that interval ",{"start":1055,"end":1056},{"line":986,"column":1047,"offset":1048},{"line":986,"column":1057,"offset":1058},300,2941,{"type":14,"tagName":111,"properties":1060,"children":1061,"position":1071},{},[1062],{"type":23,"value":1063,"position":1064},"natively",{"start":1065,"end":1068},{"line":986,"column":1066,"offset":1067},302,2943,{"line":986,"column":1069,"offset":1070},310,2951,{"start":1072,"end":1073},{"line":986,"column":1057,"offset":1058},{"line":986,"column":83,"offset":1074},2953,{"type":23,"value":1076,"position":1077}," (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 (footprint and similar). The ",{"start":1078,"end":1079},{"line":986,"column":83,"offset":1074},{"line":986,"column":1080,"offset":1081},678,3319,{"type":14,"tagName":136,"properties":1083,"children":1084,"position":1092},{},[1085],{"type":23,"value":1086,"position":1087},"opts",{"start":1088,"end":1089},{"line":986,"column":1080,"offset":1081},{"line":986,"column":1090,"offset":1091},684,3325,{"start":1093,"end":1094},{"line":986,"column":1080,"offset":1081},{"line":986,"column":1090,"offset":1091},{"type":23,"value":1096,"position":1097}," object (",{"start":1098,"end":1099},{"line":986,"column":1090,"offset":1091},{"line":986,"column":199,"offset":1100},3334,{"type":14,"tagName":136,"properties":1102,"children":1103,"position":1111},{},[1104],{"type":23,"value":1105,"position":1106},"mode",{"start":1107,"end":1108},{"line":986,"column":199,"offset":1100},{"line":986,"column":1109,"offset":1110},699,3340,{"start":1112,"end":1113},{"line":986,"column":199,"offset":1100},{"line":986,"column":1109,"offset":1110},{"type":23,"value":435,"position":1115},{"start":1116,"end":1117},{"line":986,"column":1109,"offset":1110},{"line":986,"column":1118,"offset":1119},700,3341,{"type":14,"tagName":136,"properties":1121,"children":1122,"position":1130},{},[1123],{"type":23,"value":1124,"position":1125},"offset",{"start":1126,"end":1127},{"line":986,"column":1118,"offset":1119},{"line":986,"column":1128,"offset":1129},708,3349,{"start":1131,"end":1132},{"line":986,"column":1118,"offset":1119},{"line":986,"column":1128,"offset":1129},{"type":23,"value":435,"position":1134},{"start":1135,"end":1136},{"line":986,"column":1128,"offset":1129},{"line":986,"column":1137,"offset":1138},709,3350,{"type":14,"tagName":136,"properties":1140,"children":1141,"position":1149},{},[1142],{"type":23,"value":1143,"position":1144},"bars",{"start":1145,"end":1146},{"line":986,"column":1137,"offset":1138},{"line":986,"column":1147,"offset":1148},715,3356,{"start":1150,"end":1151},{"line":986,"column":1137,"offset":1138},{"line":986,"column":1147,"offset":1148},{"type":23,"value":1153,"position":1154},") is documented under ",{"start":1155,"end":1156},{"line":986,"column":1147,"offset":1148},{"line":986,"column":1157,"offset":1158},737,3378,{"type":14,"tagName":265,"properties":1160,"children":1162,"position":1172},{"href":1161},"/kscript/core-concepts/multi-timeframe#opts-mode-offset-and-bars",[1163],{"type":23,"value":1164,"position":1165},"Multi-Timeframe opts",{"start":1166,"end":1169},{"line":986,"column":1167,"offset":1168},738,3379,{"line":986,"column":1170,"offset":1171},758,3399,{"start":1173,"end":1174},{"line":986,"column":1157,"offset":1158},{"line":986,"column":1175,"offset":1176},825,3466,{"type":23,"value":284,"position":1178},{"start":1179,"end":1180},{"line":986,"column":1175,"offset":1176},{"line":986,"column":1181,"offset":1182},826,3467,{"start":1184,"end":1185},{"line":986,"column":27,"offset":987},{"line":986,"column":1181,"offset":1182},{"type":23,"value":89},{"type":14,"tagName":210,"properties":1188,"children":1190,"position":1200},{"id":1189},"higher-timeframe-requests-fetch-their-own-depth",[1191],{"type":23,"value":1192,"position":1193},"Higher-timeframe requests fetch their own depth",{"start":1194,"end":1197},{"line":1195,"column":56,"offset":1196},49,3472,{"line":1195,"column":1198,"offset":1199},51,3519,{"start":1201,"end":1203},{"line":1195,"column":27,"offset":1202},3469,{"line":1195,"column":1198,"offset":1199},{"type":23,"value":89},{"type":14,"tagName":102,"properties":1206,"children":1207,"position":1323},{},[1208,1209,1322],{"type":23,"value":89},{"type":14,"tagName":107,"properties":1210,"children":1211,"position":1319},{},[1212,1227,1234,1246,1253,1270,1276,1288,1295,1312],{"type":14,"tagName":111,"properties":1213,"children":1214,"position":1222},{},[1215],{"type":23,"value":1216,"position":1217},"Corrected since engine 3.0.26 (in-flight).",{"start":1218,"end":1220},{"line":1198,"column":67,"offset":1219},3525,{"line":1198,"column":986,"offset":1221},3567,{"start":1223,"end":1225},{"line":1198,"column":32,"offset":1224},3523,{"line":1198,"column":1195,"offset":1226},3569,{"type":23,"value":1228,"position":1229}," Earlier docs said a higher-timeframe ",{"start":1230,"end":1231},{"line":1198,"column":1195,"offset":1226},{"line":1198,"column":1232,"offset":1233},87,3607,{"type":14,"tagName":136,"properties":1235,"children":1236,"position":1243},{},[1237],{"type":23,"value":140,"position":1238},{"start":1239,"end":1240},{"line":1198,"column":1232,"offset":1233},{"line":1198,"column":1241,"offset":1242},98,3618,{"start":1244,"end":1245},{"line":1198,"column":1232,"offset":1233},{"line":1198,"column":1241,"offset":1242},{"type":23,"value":1247,"position":1248}," was \"bounded by the chart's loaded window\" and could not reach a far-back anchor. That is ",{"start":1249,"end":1250},{"line":1198,"column":1241,"offset":1242},{"line":1198,"column":1251,"offset":1252},189,3709,{"type":14,"tagName":111,"properties":1254,"children":1255,"position":1265},{},[1256],{"type":23,"value":1257,"position":1258},"no longer true",{"start":1259,"end":1262},{"line":1198,"column":1260,"offset":1261},191,3711,{"line":1198,"column":1263,"offset":1264},205,3725,{"start":1266,"end":1267},{"line":1198,"column":1251,"offset":1252},{"line":1198,"column":1268,"offset":1269},207,3727,{"type":23,"value":1271,"position":1272},": a coarser ",{"start":1273,"end":1274},{"line":1198,"column":1268,"offset":1269},{"line":1198,"column":669,"offset":1275},3739,{"type":14,"tagName":136,"properties":1277,"children":1278,"position":1285},{},[1279],{"type":23,"value":140,"position":1280},{"start":1281,"end":1282},{"line":1198,"column":669,"offset":1275},{"line":1198,"column":1283,"offset":1284},230,3750,{"start":1286,"end":1287},{"line":1198,"column":669,"offset":1275},{"line":1198,"column":1283,"offset":1284},{"type":23,"value":1289,"position":1290}," now fetches its ",{"start":1291,"end":1292},{"line":1198,"column":1283,"offset":1284},{"line":1198,"column":1293,"offset":1294},247,3767,{"type":14,"tagName":111,"properties":1296,"children":1297,"position":1307},{},[1298],{"type":23,"value":1299,"position":1300},"own deep history",{"start":1301,"end":1304},{"line":1198,"column":1302,"offset":1303},249,3769,{"line":1198,"column":1305,"offset":1306},265,3785,{"start":1308,"end":1309},{"line":1198,"column":1293,"offset":1294},{"line":1198,"column":1310,"offset":1311},267,3787,{"type":23,"value":1313,"position":1314},", scaled by the requested interval rather than the chart interval.",{"start":1315,"end":1316},{"line":1198,"column":1310,"offset":1311},{"line":1198,"column":1317,"offset":1318},333,3853,{"start":1320,"end":1321},{"line":1198,"column":32,"offset":1224},{"line":1198,"column":1317,"offset":1318},{"type":23,"value":89},{"start":1324,"end":1326},{"line":1198,"column":27,"offset":1325},3521,{"line":1198,"column":1317,"offset":1318},{"type":23,"value":89},{"type":14,"tagName":107,"properties":1329,"children":1330,"position":1400},{},[1331,1339,1351,1358,1371,1378,1394],{"type":23,"value":1332,"position":1333},"A ",{"start":1334,"end":1337},{"line":1335,"column":27,"offset":1336},53,3855,{"line":1335,"column":32,"offset":1338},3857,{"type":14,"tagName":136,"properties":1340,"children":1341,"position":1348},{},[1342],{"type":23,"value":1343,"position":1344},"1d",{"start":1345,"end":1346},{"line":1335,"column":32,"offset":1338},{"line":1335,"column":82,"offset":1347},3861,{"start":1349,"end":1350},{"line":1335,"column":32,"offset":1338},{"line":1335,"column":82,"offset":1347},{"type":23,"value":1352,"position":1353}," source on a ",{"start":1354,"end":1355},{"line":1335,"column":82,"offset":1347},{"line":1335,"column":1356,"offset":1357},20,3874,{"type":14,"tagName":136,"properties":1359,"children":1360,"position":1368},{},[1361],{"type":23,"value":1362,"position":1363},"1m",{"start":1364,"end":1365},{"line":1335,"column":1356,"offset":1357},{"line":1335,"column":1366,"offset":1367},24,3878,{"start":1369,"end":1370},{"line":1335,"column":1356,"offset":1357},{"line":1335,"column":1366,"offset":1367},{"type":23,"value":1372,"position":1373}," 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":1374,"end":1375},{"line":1335,"column":1366,"offset":1367},{"line":1335,"column":1376,"offset":1377},197,4051,{"type":14,"tagName":111,"properties":1379,"children":1380,"position":1390},{},[1381],{"type":23,"value":1382,"position":1383},"resolves even on a fine chart",{"start":1384,"end":1387},{"line":1335,"column":1385,"offset":1386},199,4053,{"line":1335,"column":1388,"offset":1389},228,4082,{"start":1391,"end":1392},{"line":1335,"column":1376,"offset":1377},{"line":1335,"column":1283,"offset":1393},4084,{"type":23,"value":1395,"position":1396},". The base chart-interval sources keep their existing shallow fetch window unchanged; only the higher-timeframe request pulls deep.",{"start":1397,"end":1398},{"line":1335,"column":1283,"offset":1393},{"line":1335,"column":262,"offset":1399},4215,{"start":1401,"end":1402},{"line":1335,"column":27,"offset":1336},{"line":1335,"column":262,"offset":1399},{"type":23,"value":89},{"type":14,"tagName":1405,"properties":1406,"children":1407,"position":1810},"ul",{},[1408,1409,1456,1457,1572,1573,1809],{"type":23,"value":89},{"type":14,"tagName":514,"properties":1410,"children":1411,"position":1452},{},[1412,1428,1434,1445],{"type":14,"tagName":111,"properties":1413,"children":1414,"position":1422},{},[1415],{"type":23,"value":1416,"position":1417},"Auto depth.",{"start":1418,"end":1420},{"line":865,"column":67,"offset":1419},4221,{"line":865,"column":221,"offset":1421},4232,{"start":1423,"end":1425},{"line":865,"column":32,"offset":1424},4219,{"line":865,"column":1426,"offset":1427},18,4234,{"type":23,"value":1429,"position":1430}," Omit ",{"start":1431,"end":1432},{"line":865,"column":1426,"offset":1427},{"line":865,"column":1366,"offset":1433},4240,{"type":14,"tagName":136,"properties":1435,"children":1436,"position":1442},{},[1437],{"type":23,"value":1143,"position":1438},{"start":1439,"end":1440},{"line":865,"column":1366,"offset":1433},{"line":865,"column":28,"offset":1441},4246,{"start":1443,"end":1444},{"line":865,"column":1366,"offset":1433},{"line":865,"column":28,"offset":1441},{"type":23,"value":1446,"position":1447}," and the request loads a period-sized window deep enough to reach the prior completed period (and the current forming one).",{"start":1448,"end":1449},{"line":865,"column":28,"offset":1441},{"line":865,"column":1450,"offset":1451},153,4369,{"start":1453,"end":1455},{"line":865,"column":27,"offset":1454},4217,{"line":865,"column":1450,"offset":1451},{"type":23,"value":89},{"type":14,"tagName":514,"properties":1458,"children":1459,"position":1568},{},[1460,1484,1491,1503,1509,1524,1531,1544,1550,1562],{"type":14,"tagName":111,"properties":1461,"children":1462,"position":1478},{},[1463],{"type":14,"tagName":136,"properties":1464,"children":1465,"position":1475},{},[1466],{"type":23,"value":1467,"position":1468},"opts.bars: N",{"start":1469,"end":1472},{"line":1470,"column":67,"offset":1471},56,4374,{"line":1470,"column":1473,"offset":1474},19,4388,{"start":1476,"end":1477},{"line":1470,"column":67,"offset":1471},{"line":1470,"column":1473,"offset":1474},{"start":1479,"end":1481},{"line":1470,"column":32,"offset":1480},4372,{"line":1470,"column":1482,"offset":1483},21,4390,{"type":23,"value":1485,"position":1486}," overrides that with exactly ",{"start":1487,"end":1488},{"line":1470,"column":1482,"offset":1483},{"line":1470,"column":1489,"offset":1490},50,4419,{"type":14,"tagName":136,"properties":1492,"children":1493,"position":1500},{},[1494],{"type":23,"value":1495,"position":1496},"N",{"start":1497,"end":1498},{"line":1470,"column":1489,"offset":1490},{"line":1470,"column":1335,"offset":1499},4422,{"start":1501,"end":1502},{"line":1470,"column":1489,"offset":1490},{"line":1470,"column":1335,"offset":1499},{"type":23,"value":1504,"position":1505}," bars ",{"start":1506,"end":1507},{"line":1470,"column":1335,"offset":1499},{"line":1470,"column":502,"offset":1508},4428,{"type":14,"tagName":111,"properties":1510,"children":1511,"position":1519},{},[1512],{"type":23,"value":1513,"position":1514},"of the requested timeframe",{"start":1515,"end":1517},{"line":1470,"column":571,"offset":1516},4430,{"line":1470,"column":1232,"offset":1518},4456,{"start":1520,"end":1521},{"line":1470,"column":502,"offset":1508},{"line":1470,"column":1522,"offset":1523},89,4458,{"type":23,"value":1525,"position":1526},": ",{"start":1527,"end":1528},{"line":1470,"column":1522,"offset":1523},{"line":1470,"column":1529,"offset":1530},91,4460,{"type":14,"tagName":136,"properties":1532,"children":1533,"position":1541},{},[1534],{"type":23,"value":1535,"position":1536},"request(\"ETHUSDT\", \"4h\", { bars: 500 })",{"start":1537,"end":1538},{"line":1470,"column":1529,"offset":1530},{"line":1470,"column":1539,"offset":1540},132,4501,{"start":1542,"end":1543},{"line":1470,"column":1529,"offset":1530},{"line":1470,"column":1539,"offset":1540},{"type":23,"value":1545,"position":1546}," fetches 500 native 4h bars. For a calendar token the count is converted to the backing interval. ",{"start":1547,"end":1548},{"line":1470,"column":1539,"offset":1540},{"line":1470,"column":1283,"offset":1549},4599,{"type":14,"tagName":136,"properties":1551,"children":1552,"position":1559},{},[1553],{"type":23,"value":1143,"position":1554},{"start":1555,"end":1556},{"line":1470,"column":1283,"offset":1549},{"line":1470,"column":1557,"offset":1558},236,4605,{"start":1560,"end":1561},{"line":1470,"column":1283,"offset":1549},{"line":1470,"column":1557,"offset":1558},{"type":23,"value":1563,"position":1564}," is request-only.",{"start":1565,"end":1566},{"line":1470,"column":1557,"offset":1558},{"line":1470,"column":595,"offset":1567},4622,{"start":1569,"end":1571},{"line":1470,"column":27,"offset":1570},4370,{"line":1470,"column":595,"offset":1567},{"type":23,"value":89},{"type":14,"tagName":514,"properties":1574,"children":1575,"position":1805},{},[1576,1593,1600,1612,1618,1631,1637,1650,1657,1674,1681,1693,1699,1712,1719,1735,1742,1755,1762,1775,1781,1798],{"type":14,"tagName":111,"properties":1577,"children":1578,"position":1588},{},[1579],{"type":23,"value":1580,"position":1581},"Calendar backing.",{"start":1582,"end":1585},{"line":1583,"column":67,"offset":1584},57,4627,{"line":1583,"column":1586,"offset":1587},22,4644,{"start":1589,"end":1591},{"line":1583,"column":32,"offset":1590},4625,{"line":1583,"column":1366,"offset":1592},4646,{"type":23,"value":1594,"position":1595}," Calendar tokens aggregate engine-side from a shared, deduped backing source: ",{"start":1596,"end":1597},{"line":1583,"column":1366,"offset":1592},{"line":1583,"column":1598,"offset":1599},102,4724,{"type":14,"tagName":136,"properties":1601,"children":1602,"position":1609},{},[1603],{"type":23,"value":1604,"position":1605},"1D",{"start":1606,"end":1607},{"line":1583,"column":1598,"offset":1599},{"line":1583,"column":643,"offset":1608},4728,{"start":1610,"end":1611},{"line":1583,"column":1598,"offset":1599},{"line":1583,"column":643,"offset":1608},{"type":23,"value":435,"position":1613},{"start":1614,"end":1615},{"line":1583,"column":643,"offset":1608},{"line":1583,"column":1616,"offset":1617},107,4729,{"type":14,"tagName":136,"properties":1619,"children":1620,"position":1628},{},[1621],{"type":23,"value":1622,"position":1623},"1W",{"start":1624,"end":1625},{"line":1583,"column":1616,"offset":1617},{"line":1583,"column":1626,"offset":1627},111,4733,{"start":1629,"end":1630},{"line":1583,"column":1616,"offset":1617},{"line":1583,"column":1626,"offset":1627},{"type":23,"value":435,"position":1632},{"start":1633,"end":1634},{"line":1583,"column":1626,"offset":1627},{"line":1583,"column":1635,"offset":1636},112,4734,{"type":14,"tagName":136,"properties":1638,"children":1639,"position":1647},{},[1640],{"type":23,"value":1641,"position":1642},"1M",{"start":1643,"end":1644},{"line":1583,"column":1635,"offset":1636},{"line":1583,"column":1645,"offset":1646},116,4738,{"start":1648,"end":1649},{"line":1583,"column":1635,"offset":1636},{"line":1583,"column":1645,"offset":1646},{"type":23,"value":1651,"position":1652}," from a deep ",{"start":1653,"end":1654},{"line":1583,"column":1645,"offset":1646},{"line":1583,"column":1655,"offset":1656},129,4751,{"type":14,"tagName":111,"properties":1658,"children":1659,"position":1669},{},[1660],{"type":23,"value":1661,"position":1662},"daily",{"start":1663,"end":1666},{"line":1583,"column":1664,"offset":1665},131,4753,{"line":1583,"column":1667,"offset":1668},136,4758,{"start":1670,"end":1671},{"line":1583,"column":1655,"offset":1656},{"line":1583,"column":1672,"offset":1673},138,4760,{"type":23,"value":1675,"position":1676}," source, ",{"start":1677,"end":1678},{"line":1583,"column":1672,"offset":1673},{"line":1583,"column":1679,"offset":1680},147,4769,{"type":14,"tagName":136,"properties":1682,"children":1683,"position":1690},{},[1684],{"type":23,"value":1685,"position":1686},"1Q",{"start":1687,"end":1688},{"line":1583,"column":1679,"offset":1680},{"line":1583,"column":54,"offset":1689},4773,{"start":1691,"end":1692},{"line":1583,"column":1679,"offset":1680},{"line":1583,"column":54,"offset":1689},{"type":23,"value":435,"position":1694},{"start":1695,"end":1696},{"line":1583,"column":54,"offset":1689},{"line":1583,"column":1697,"offset":1698},152,4774,{"type":14,"tagName":136,"properties":1700,"children":1701,"position":1709},{},[1702],{"type":23,"value":1703,"position":1704},"1Y",{"start":1705,"end":1706},{"line":1583,"column":1697,"offset":1698},{"line":1583,"column":1707,"offset":1708},156,4778,{"start":1710,"end":1711},{"line":1583,"column":1697,"offset":1698},{"line":1583,"column":1707,"offset":1708},{"type":23,"value":1713,"position":1714}," from a coarser ",{"start":1715,"end":1716},{"line":1583,"column":1707,"offset":1708},{"line":1583,"column":1717,"offset":1718},172,4794,{"type":14,"tagName":111,"properties":1720,"children":1721,"position":1730},{},[1722],{"type":23,"value":1723,"position":1724},"weekly",{"start":1725,"end":1727},{"line":1583,"column":62,"offset":1726},4796,{"line":1583,"column":1728,"offset":1729},180,4802,{"start":1731,"end":1732},{"line":1583,"column":1717,"offset":1718},{"line":1583,"column":1733,"offset":1734},182,4804,{"type":23,"value":1736,"position":1737}," source (about 5x fewer bars). Tokens that share a backing interval (plus a plain ",{"start":1738,"end":1739},{"line":1583,"column":1733,"offset":1734},{"line":1583,"column":1740,"offset":1741},264,4886,{"type":14,"tagName":136,"properties":1743,"children":1744,"position":1752},{},[1745],{"type":23,"value":1746,"position":1747},"request(sym, \"1d\")",{"start":1748,"end":1749},{"line":1583,"column":1740,"offset":1741},{"line":1583,"column":1750,"offset":1751},284,4906,{"start":1753,"end":1754},{"line":1583,"column":1740,"offset":1741},{"line":1583,"column":1750,"offset":1751},{"type":23,"value":1756,"position":1757}," or ",{"start":1758,"end":1759},{"line":1583,"column":1750,"offset":1751},{"line":1583,"column":1760,"offset":1761},288,4910,{"type":14,"tagName":136,"properties":1763,"children":1764,"position":1772},{},[1765],{"type":23,"value":1766,"position":1767},"request(sym, \"1w\")",{"start":1768,"end":1769},{"line":1583,"column":1760,"offset":1761},{"line":1583,"column":1770,"offset":1771},308,4930,{"start":1773,"end":1774},{"line":1583,"column":1760,"offset":1761},{"line":1583,"column":1770,"offset":1771},{"type":23,"value":1776,"position":1777},") collapse to ",{"start":1778,"end":1779},{"line":1583,"column":1770,"offset":1771},{"line":1583,"column":178,"offset":1780},4944,{"type":14,"tagName":111,"properties":1782,"children":1783,"position":1793},{},[1784],{"type":23,"value":1785,"position":1786},"one",{"start":1787,"end":1790},{"line":1583,"column":1788,"offset":1789},324,4946,{"line":1583,"column":1791,"offset":1792},327,4949,{"start":1794,"end":1795},{"line":1583,"column":178,"offset":1780},{"line":1583,"column":1796,"offset":1797},329,4951,{"type":23,"value":1799,"position":1800}," cached fetch each, so a symbol's calendar requests use at most two backing sources.",{"start":1801,"end":1802},{"line":1583,"column":1796,"offset":1797},{"line":1583,"column":1803,"offset":1804},413,5035,{"start":1806,"end":1808},{"line":1583,"column":27,"offset":1807},4623,{"line":1583,"column":1803,"offset":1804},{"type":23,"value":89},{"start":1811,"end":1812},{"line":865,"column":27,"offset":1454},{"line":1583,"column":1803,"offset":1804},{"type":23,"value":89},{"type":14,"tagName":107,"properties":1815,"children":1816,"position":1960},{},[1817,1832,1839,1852,1859,1871,1877,1893,1900,1913,1920,1933,1940,1953],{"type":14,"tagName":111,"properties":1818,"children":1819,"position":1827},{},[1820],{"type":23,"value":1821,"position":1822},"Source-count consequence.",{"start":1823,"end":1825},{"line":502,"column":32,"offset":1824},5039,{"line":502,"column":556,"offset":1826},5064,{"start":1828,"end":1830},{"line":502,"column":27,"offset":1829},5037,{"line":502,"column":28,"offset":1831},5066,{"type":23,"value":1833,"position":1834}," Because a coarser request is keyed by its interval, ",{"start":1835,"end":1836},{"line":502,"column":28,"offset":1831},{"line":502,"column":1837,"offset":1838},83,5119,{"type":14,"tagName":136,"properties":1840,"children":1841,"position":1849},{},[1842],{"type":23,"value":1843,"position":1844},"request(\"ETHUSDT\")",{"start":1845,"end":1846},{"line":502,"column":1837,"offset":1838},{"line":502,"column":1847,"offset":1848},103,5139,{"start":1850,"end":1851},{"line":502,"column":1837,"offset":1838},{"line":502,"column":1847,"offset":1848},{"type":23,"value":1853,"position":1854}," (chart interval) and ",{"start":1855,"end":1856},{"line":502,"column":1847,"offset":1848},{"line":502,"column":1857,"offset":1858},125,5161,{"type":14,"tagName":136,"properties":1860,"children":1861,"position":1868},{},[1862],{"type":23,"value":1863,"position":1864},"request(\"ETHUSDT\", \"4h\")",{"start":1865,"end":1866},{"line":502,"column":1857,"offset":1858},{"line":502,"column":54,"offset":1867},5187,{"start":1869,"end":1870},{"line":502,"column":1857,"offset":1858},{"line":502,"column":54,"offset":1867},{"type":23,"value":1872,"position":1873}," (native 4h) are now ",{"start":1874,"end":1875},{"line":502,"column":54,"offset":1867},{"line":502,"column":1717,"offset":1876},5208,{"type":14,"tagName":111,"properties":1878,"children":1879,"position":1888},{},[1880],{"type":23,"value":1881,"position":1882},"two distinct sources",{"start":1883,"end":1885},{"line":502,"column":62,"offset":1884},5210,{"line":502,"column":1886,"offset":1887},194,5230,{"start":1889,"end":1890},{"line":502,"column":1717,"offset":1876},{"line":502,"column":1891,"offset":1892},196,5232,{"type":23,"value":1894,"position":1895},", not one. This is a budget shift from earlier versions where they shared a key. Duplicate identical requests still dedupe. This per-source deep fetch and its source-count behavior are verified by the engine's ",{"start":1896,"end":1897},{"line":502,"column":1891,"offset":1892},{"line":502,"column":1898,"offset":1899},406,5442,{"type":14,"tagName":136,"properties":1901,"children":1902,"position":1910},{},[1903],{"type":23,"value":1904,"position":1905},"src/__tests__/g6-request-source-discovery.test.ts",{"start":1906,"end":1907},{"line":502,"column":1898,"offset":1899},{"line":502,"column":1908,"offset":1909},457,5493,{"start":1911,"end":1912},{"line":502,"column":1898,"offset":1899},{"line":502,"column":1908,"offset":1909},{"type":23,"value":1914,"position":1915}," suite (the ",{"start":1916,"end":1917},{"line":502,"column":1908,"offset":1909},{"line":502,"column":1918,"offset":1919},469,5505,{"type":14,"tagName":136,"properties":1921,"children":1922,"position":1930},{},[1923],{"type":23,"value":1924,"position":1925},"EC1",{"start":1926,"end":1927},{"line":502,"column":1918,"offset":1919},{"line":502,"column":1928,"offset":1929},474,5510,{"start":1931,"end":1932},{"line":502,"column":1918,"offset":1919},{"line":502,"column":1928,"offset":1929},{"type":23,"value":1934,"position":1935}," deep-fetch-range and ",{"start":1936,"end":1937},{"line":502,"column":1928,"offset":1929},{"line":502,"column":1938,"offset":1939},496,5532,{"type":14,"tagName":136,"properties":1941,"children":1942,"position":1950},{},[1943],{"type":23,"value":1944,"position":1945},"B1a",{"start":1946,"end":1947},{"line":502,"column":1938,"offset":1939},{"line":502,"column":1948,"offset":1949},501,5537,{"start":1951,"end":1952},{"line":502,"column":1938,"offset":1939},{"line":502,"column":1948,"offset":1949},{"type":23,"value":1954,"position":1955}," calendar-backing cases), passing on 3.0.26.",{"start":1956,"end":1957},{"line":502,"column":1948,"offset":1949},{"line":502,"column":1958,"offset":1959},545,5581,{"start":1961,"end":1962},{"line":502,"column":27,"offset":1829},{"line":502,"column":1958,"offset":1959},{"type":23,"value":89},{"type":14,"tagName":107,"properties":1965,"children":1966,"position":2045},{},[1967,1975,1990,1996,2008,2014,2038],{"type":23,"value":1968,"position":1969},"For history depth on the chart's ",{"start":1970,"end":1972},{"line":571,"column":27,"offset":1971},5583,{"line":571,"column":1973,"offset":1974},34,5616,{"type":14,"tagName":111,"properties":1976,"children":1977,"position":1986},{},[1978],{"type":23,"value":1979,"position":1980},"own",{"start":1981,"end":1983},{"line":571,"column":120,"offset":1982},5618,{"line":571,"column":1984,"offset":1985},39,5621,{"start":1987,"end":1988},{"line":571,"column":1973,"offset":1974},{"line":571,"column":862,"offset":1989},5623,{"type":23,"value":1991,"position":1992}," series (cumulative ",{"start":1993,"end":1994},{"line":571,"column":862,"offset":1989},{"line":571,"column":571,"offset":1995},5643,{"type":14,"tagName":136,"properties":1997,"children":1998,"position":2005},{},[1999],{"type":23,"value":2000,"position":2001},"vwap()",{"start":2002,"end":2003},{"line":571,"column":571,"offset":1995},{"line":571,"column":247,"offset":2004},5651,{"start":2006,"end":2007},{"line":571,"column":571,"offset":1995},{"line":571,"column":247,"offset":2004},{"type":23,"value":2009,"position":2010},", anchored VWAPs) that survives panning, you still declare it with ",{"start":2011,"end":2012},{"line":571,"column":247,"offset":2004},{"line":571,"column":1667,"offset":2013},5718,{"type":14,"tagName":265,"properties":2015,"children":2017,"position":2033},{"href":2016},"/kscript/functions/script-definition",[2018],{"type":14,"tagName":136,"properties":2019,"children":2020,"position":2030},{},[2021],{"type":23,"value":2022,"position":2023},"define(..., maxBarsBack=N)",{"start":2024,"end":2027},{"line":571,"column":2025,"offset":2026},137,5719,{"line":571,"column":2028,"offset":2029},165,5747,{"start":2031,"end":2032},{"line":571,"column":2025,"offset":2026},{"line":571,"column":2028,"offset":2029},{"start":2034,"end":2035},{"line":571,"column":1667,"offset":2013},{"line":571,"column":2036,"offset":2037},204,5786,{"type":23,"value":2039,"position":2040},"; that is about the base series, separate from a higher-timeframe request's independent fetch.",{"start":2041,"end":2042},{"line":571,"column":2036,"offset":2037},{"line":571,"column":2043,"offset":2044},298,5880,{"start":2046,"end":2047},{"line":571,"column":27,"offset":1971},{"line":571,"column":2043,"offset":2044},{"type":23,"value":89},{"type":14,"tagName":210,"properties":2050,"children":2052,"position":2060},{"id":2051},"multi-venue-aggregation",[2053],{"type":23,"value":2054,"position":2055},"Multi-venue aggregation",{"start":2056,"end":2058},{"line":635,"column":56,"offset":2057},5885,{"line":635,"column":524,"offset":2059},5908,{"start":2061,"end":2063},{"line":635,"column":27,"offset":2062},5882,{"line":635,"column":524,"offset":2059},{"type":23,"value":89},{"type":14,"tagName":107,"properties":2066,"children":2067,"position":2076},{},[2068],{"type":23,"value":2069,"position":2070},"The flagship pattern: one metric, summed across exchanges.",{"start":2071,"end":2074},{"line":2072,"column":27,"offset":2073},65,5910,{"line":2072,"column":502,"offset":2075},5968,{"start":2077,"end":2078},{"line":2072,"column":27,"offset":2073},{"line":2072,"column":502,"offset":2075},{"type":23,"value":89},{"type":14,"tagName":107,"properties":2081,"children":2082,"position":2098},{},[2083],{"type":14,"tagName":111,"properties":2084,"children":2085,"position":2093},{},[2086],{"type":23,"value":2087,"position":2088},"Aggregated CVD:",{"start":2089,"end":2091},{"line":238,"column":32,"offset":2090},5972,{"line":238,"column":1426,"offset":2092},5987,{"start":2094,"end":2096},{"line":238,"column":27,"offset":2095},5970,{"line":238,"column":1356,"offset":2097},5989,{"start":2099,"end":2100},{"line":238,"column":27,"offset":2095},{"line":238,"column":1356,"offset":2097},{"type":23,"value":89},{"type":11,"children":2103},[2104],{"type":14,"tagName":297,"properties":2105,"children":2106,"data":-1},{"class":299,"style":300,"tabindex":301},[2107],{"type":14,"tagName":136,"properties":2108,"children":2109},{},[2110,2149,2150,2153,2154,2199,2200,2245,2246,2291,2292,2295,2296,2314,2315,2338,2339,2347,2348,2351,2352,2401,2402,2424,2425,2428,2429],{"type":14,"tagName":35,"properties":2111,"children":2112},{"class":308},[2113,2118,2122,2127,2131,2136,2140,2145],{"type":14,"tagName":35,"properties":2114,"children":2115},{"style":324},[2116],{"type":23,"value":2117},"define",{"type":14,"tagName":35,"properties":2119,"children":2120},{"style":312},[2121],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2123,"children":2124},{"style":335},[2125],{"type":23,"value":2126},"\"Aggregated CVD\"",{"type":14,"tagName":35,"properties":2128,"children":2129},{"style":312},[2130],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2132,"children":2133},{"style":335},[2134],{"type":23,"value":2135},"\"offchart\"",{"type":14,"tagName":35,"properties":2137,"children":2138},{"style":312},[2139],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2141,"children":2142},{"style":846},[2143],{"type":23,"value":2144},"true",{"type":14,"tagName":35,"properties":2146,"children":2147},{"style":312},[2148],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2151,"children":2152},{"class":308},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2155,"children":2156},{"class":308},[2157,2162,2166,2170,2174,2179,2183,2187,2191,2195],{"type":14,"tagName":35,"properties":2158,"children":2159},{"style":312},[2160],{"type":23,"value":2161},"timeseries bsBinance ",{"type":14,"tagName":35,"properties":2163,"children":2164},{"style":318},[2165],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2167,"children":2168},{"style":324},[2169],{"type":23,"value":327},{"type":14,"tagName":35,"properties":2171,"children":2172},{"style":312},[2173],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2175,"children":2176},{"style":335},[2177],{"type":23,"value":2178},"\"buy_sell_volume\"",{"type":14,"tagName":35,"properties":2180,"children":2181},{"style":312},[2182],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2184,"children":2185},{"style":335},[2186],{"type":23,"value":348},{"type":14,"tagName":35,"properties":2188,"children":2189},{"style":312},[2190],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2192,"children":2193},{"style":335},[2194],{"type":23,"value":357},{"type":14,"tagName":35,"properties":2196,"children":2197},{"style":312},[2198],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2201,"children":2202},{"class":308},[2203,2208,2212,2216,2220,2224,2228,2232,2236,2241],{"type":14,"tagName":35,"properties":2204,"children":2205},{"style":312},[2206],{"type":23,"value":2207},"timeseries bsBybit ",{"type":14,"tagName":35,"properties":2209,"children":2210},{"style":318},[2211],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2213,"children":2214},{"style":324},[2215],{"type":23,"value":327},{"type":14,"tagName":35,"properties":2217,"children":2218},{"style":312},[2219],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2221,"children":2222},{"style":335},[2223],{"type":23,"value":2178},{"type":14,"tagName":35,"properties":2225,"children":2226},{"style":312},[2227],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2229,"children":2230},{"style":335},[2231],{"type":23,"value":348},{"type":14,"tagName":35,"properties":2233,"children":2234},{"style":312},[2235],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2237,"children":2238},{"style":335},[2239],{"type":23,"value":2240},"\"BYBIT\"",{"type":14,"tagName":35,"properties":2242,"children":2243},{"style":312},[2244],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2247,"children":2248},{"class":308},[2249,2254,2258,2262,2266,2270,2274,2278,2282,2287],{"type":14,"tagName":35,"properties":2250,"children":2251},{"style":312},[2252],{"type":23,"value":2253},"timeseries bsOkx ",{"type":14,"tagName":35,"properties":2255,"children":2256},{"style":318},[2257],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2259,"children":2260},{"style":324},[2261],{"type":23,"value":327},{"type":14,"tagName":35,"properties":2263,"children":2264},{"style":312},[2265],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2267,"children":2268},{"style":335},[2269],{"type":23,"value":2178},{"type":14,"tagName":35,"properties":2271,"children":2272},{"style":312},[2273],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2275,"children":2276},{"style":335},[2277],{"type":23,"value":348},{"type":14,"tagName":35,"properties":2279,"children":2280},{"style":312},[2281],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2283,"children":2284},{"style":335},[2285],{"type":23,"value":2286},"\"OKX\"",{"type":14,"tagName":35,"properties":2288,"children":2289},{"style":312},[2290],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2293,"children":2294},{"class":308},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2297,"children":2298},{"class":308},[2299,2304,2309],{"type":14,"tagName":35,"properties":2300,"children":2301},{"style":312},[2302],{"type":23,"value":2303},"func ",{"type":14,"tagName":35,"properties":2305,"children":2306},{"style":324},[2307],{"type":23,"value":2308},"delta",{"type":14,"tagName":35,"properties":2310,"children":2311},{"style":312},[2312],{"type":23,"value":2313},"(bs) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2316,"children":2317},{"class":308},[2318,2323,2328,2333],{"type":14,"tagName":35,"properties":2319,"children":2320},{"style":318},[2321],{"type":23,"value":2322},"  return",{"type":14,"tagName":35,"properties":2324,"children":2325},{"style":312},[2326],{"type":23,"value":2327}," bs.buy ",{"type":14,"tagName":35,"properties":2329,"children":2330},{"style":318},[2331],{"type":23,"value":2332},"-",{"type":14,"tagName":35,"properties":2334,"children":2335},{"style":312},[2336],{"type":23,"value":2337}," bs.sell",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2340,"children":2341},{"class":308},[2342],{"type":14,"tagName":35,"properties":2343,"children":2344},{"style":312},[2345],{"type":23,"value":2346},"}",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2349,"children":2350},{"class":308},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2353,"children":2354},{"class":308},[2355,2360,2364,2369,2374,2379,2383,2388,2392,2396],{"type":14,"tagName":35,"properties":2356,"children":2357},{"style":312},[2358],{"type":23,"value":2359},"timeseries aggDelta ",{"type":14,"tagName":35,"properties":2361,"children":2362},{"style":318},[2363],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2365,"children":2366},{"style":324},[2367],{"type":23,"value":2368}," delta",{"type":14,"tagName":35,"properties":2370,"children":2371},{"style":312},[2372],{"type":23,"value":2373},"(bsBinance) ",{"type":14,"tagName":35,"properties":2375,"children":2376},{"style":318},[2377],{"type":23,"value":2378},"+",{"type":14,"tagName":35,"properties":2380,"children":2381},{"style":324},[2382],{"type":23,"value":2368},{"type":14,"tagName":35,"properties":2384,"children":2385},{"style":312},[2386],{"type":23,"value":2387},"(bsBybit) ",{"type":14,"tagName":35,"properties":2389,"children":2390},{"style":318},[2391],{"type":23,"value":2378},{"type":14,"tagName":35,"properties":2393,"children":2394},{"style":324},[2395],{"type":23,"value":2368},{"type":14,"tagName":35,"properties":2397,"children":2398},{"style":312},[2399],{"type":23,"value":2400},"(bsOkx)",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2403,"children":2404},{"class":308},[2405,2410,2414,2419],{"type":14,"tagName":35,"properties":2406,"children":2407},{"style":312},[2408],{"type":23,"value":2409},"timeseries aggCvd ",{"type":14,"tagName":35,"properties":2411,"children":2412},{"style":318},[2413],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2415,"children":2416},{"style":324},[2417],{"type":23,"value":2418}," cum",{"type":14,"tagName":35,"properties":2420,"children":2421},{"style":312},[2422],{"type":23,"value":2423},"(aggDelta)",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2426,"children":2427},{"class":308},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2430,"children":2431},{"class":308},[2432,2436,2441,2445,2450,2455,2460,2465,2470,2475,2480,2485,2489,2493,2497,2502,2506,2510,2515],{"type":14,"tagName":35,"properties":2433,"children":2434},{"style":324},[2435],{"type":23,"value":449},{"type":14,"tagName":35,"properties":2437,"children":2438},{"style":312},[2439],{"type":23,"value":2440},"(aggCvd, colors",{"type":14,"tagName":35,"properties":2442,"children":2443},{"style":318},[2444],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2446,"children":2447},{"style":312},[2448],{"type":23,"value":2449},"[aggDelta ",{"type":14,"tagName":35,"properties":2451,"children":2452},{"style":318},[2453],{"type":23,"value":2454},">",{"type":14,"tagName":35,"properties":2456,"children":2457},{"style":846},[2458],{"type":23,"value":2459}," 0",{"type":14,"tagName":35,"properties":2461,"children":2462},{"style":318},[2463],{"type":23,"value":2464}," ?",{"type":14,"tagName":35,"properties":2466,"children":2467},{"style":335},[2468],{"type":23,"value":2469}," \"#16a34a\"",{"type":14,"tagName":35,"properties":2471,"children":2472},{"style":318},[2473],{"type":23,"value":2474}," :",{"type":14,"tagName":35,"properties":2476,"children":2477},{"style":335},[2478],{"type":23,"value":2479}," \"#dc2626\"",{"type":14,"tagName":35,"properties":2481,"children":2482},{"style":312},[2483],{"type":23,"value":2484},"], label",{"type":14,"tagName":35,"properties":2486,"children":2487},{"style":318},[2488],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2490,"children":2491},{"style":312},[2492],{"type":23,"value":463},{"type":14,"tagName":35,"properties":2494,"children":2495},{"style":335},[2496],{"type":23,"value":2126},{"type":14,"tagName":35,"properties":2498,"children":2499},{"style":312},[2500],{"type":23,"value":2501},"], desc",{"type":14,"tagName":35,"properties":2503,"children":2504},{"style":318},[2505],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2507,"children":2508},{"style":312},[2509],{"type":23,"value":463},{"type":14,"tagName":35,"properties":2511,"children":2512},{"style":335},[2513],{"type":23,"value":2514},"\"cumulative delta across venues\"",{"type":14,"tagName":35,"properties":2516,"children":2517},{"style":312},[2518],{"type":23,"value":473},{"type":23,"value":89},{"type":14,"tagName":107,"properties":2521,"children":2522,"position":2541},{},[2523],{"type":14,"tagName":111,"properties":2524,"children":2525,"position":2535},{},[2526],{"type":23,"value":2527,"position":2528},"Aggregated open interest, venue-weighted:",{"start":2529,"end":2532},{"line":2530,"column":32,"offset":2531},86,6549,{"line":2530,"column":2533,"offset":2534},44,6590,{"start":2536,"end":2538},{"line":2530,"column":27,"offset":2537},6547,{"line":2530,"column":2539,"offset":2540},46,6592,{"start":2542,"end":2543},{"line":2530,"column":27,"offset":2537},{"line":2530,"column":2539,"offset":2540},{"type":23,"value":89},{"type":11,"children":2546},[2547],{"type":14,"tagName":297,"properties":2548,"children":2549,"data":-1},{"class":299,"style":300,"tabindex":301},[2550],{"type":14,"tagName":136,"properties":2551,"children":2552},{},[2553,2598,2599,2643,2644,2647,2648,2669,2670,2705,2706,2739,2740,2743,2744,2752,2753,2797,2798,2835,2836,2839,2840,2852,2853],{"type":14,"tagName":35,"properties":2554,"children":2555},{"class":308},[2556,2561,2565,2569,2573,2578,2582,2586,2590,2594],{"type":14,"tagName":35,"properties":2557,"children":2558},{"style":312},[2559],{"type":23,"value":2560},"timeseries oiBinance ",{"type":14,"tagName":35,"properties":2562,"children":2563},{"style":318},[2564],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2566,"children":2567},{"style":324},[2568],{"type":23,"value":327},{"type":14,"tagName":35,"properties":2570,"children":2571},{"style":312},[2572],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2574,"children":2575},{"style":335},[2576],{"type":23,"value":2577},"\"open_interest\"",{"type":14,"tagName":35,"properties":2579,"children":2580},{"style":312},[2581],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2583,"children":2584},{"style":335},[2585],{"type":23,"value":348},{"type":14,"tagName":35,"properties":2587,"children":2588},{"style":312},[2589],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2591,"children":2592},{"style":335},[2593],{"type":23,"value":357},{"type":14,"tagName":35,"properties":2595,"children":2596},{"style":312},[2597],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2600,"children":2601},{"class":308},[2602,2607,2611,2615,2619,2623,2627,2631,2635,2639],{"type":14,"tagName":35,"properties":2603,"children":2604},{"style":312},[2605],{"type":23,"value":2606},"timeseries oiBybit ",{"type":14,"tagName":35,"properties":2608,"children":2609},{"style":318},[2610],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2612,"children":2613},{"style":324},[2614],{"type":23,"value":327},{"type":14,"tagName":35,"properties":2616,"children":2617},{"style":312},[2618],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2620,"children":2621},{"style":335},[2622],{"type":23,"value":2577},{"type":14,"tagName":35,"properties":2624,"children":2625},{"style":312},[2626],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2628,"children":2629},{"style":335},[2630],{"type":23,"value":348},{"type":14,"tagName":35,"properties":2632,"children":2633},{"style":312},[2634],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2636,"children":2637},{"style":335},[2638],{"type":23,"value":2240},{"type":14,"tagName":35,"properties":2640,"children":2641},{"style":312},[2642],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2645,"children":2646},{"class":308},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2649,"children":2650},{"class":308},[2651,2655,2660,2664],{"type":14,"tagName":35,"properties":2652,"children":2653},{"style":318},[2654],{"type":23,"value":811},{"type":14,"tagName":35,"properties":2656,"children":2657},{"style":312},[2658],{"type":23,"value":2659}," weights ",{"type":14,"tagName":35,"properties":2661,"children":2662},{"style":318},[2663],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2665,"children":2666},{"style":312},[2667],{"type":23,"value":2668}," {}",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2671,"children":2672},{"class":308},[2673,2678,2683,2687,2692,2696,2701],{"type":14,"tagName":35,"properties":2674,"children":2675},{"style":312},[2676],{"type":23,"value":2677},"weights.",{"type":14,"tagName":35,"properties":2679,"children":2680},{"style":324},[2681],{"type":23,"value":2682},"set",{"type":14,"tagName":35,"properties":2684,"children":2685},{"style":312},[2686],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2688,"children":2689},{"style":335},[2690],{"type":23,"value":2691},"\"binance\"",{"type":14,"tagName":35,"properties":2693,"children":2694},{"style":312},[2695],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2697,"children":2698},{"style":846},[2699],{"type":23,"value":2700},"0.6",{"type":14,"tagName":35,"properties":2702,"children":2703},{"style":312},[2704],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2707,"children":2708},{"class":308},[2709,2713,2717,2721,2726,2730,2735],{"type":14,"tagName":35,"properties":2710,"children":2711},{"style":312},[2712],{"type":23,"value":2677},{"type":14,"tagName":35,"properties":2714,"children":2715},{"style":324},[2716],{"type":23,"value":2682},{"type":14,"tagName":35,"properties":2718,"children":2719},{"style":312},[2720],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2722,"children":2723},{"style":335},[2724],{"type":23,"value":2725},"\"bybit\"",{"type":14,"tagName":35,"properties":2727,"children":2728},{"style":312},[2729],{"type":23,"value":343},{"type":14,"tagName":35,"properties":2731,"children":2732},{"style":846},[2733],{"type":23,"value":2734},"0.4",{"type":14,"tagName":35,"properties":2736,"children":2737},{"style":312},[2738],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2741,"children":2742},{"class":308},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2745,"children":2746},{"class":308},[2747],{"type":14,"tagName":35,"properties":2748,"children":2749},{"style":799},[2750],{"type":23,"value":2751},"// open_interest is OHLC-shaped; .close is the current OI value",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2754,"children":2755},{"class":308},[2756,2761,2765,2770,2775,2780,2785,2789,2793],{"type":14,"tagName":35,"properties":2757,"children":2758},{"style":312},[2759],{"type":23,"value":2760},"timeseries aggOI ",{"type":14,"tagName":35,"properties":2762,"children":2763},{"style":318},[2764],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2766,"children":2767},{"style":312},[2768],{"type":23,"value":2769}," oiBinance.close ",{"type":14,"tagName":35,"properties":2771,"children":2772},{"style":318},[2773],{"type":23,"value":2774},"*",{"type":14,"tagName":35,"properties":2776,"children":2777},{"style":312},[2778],{"type":23,"value":2779}," weights.",{"type":14,"tagName":35,"properties":2781,"children":2782},{"style":324},[2783],{"type":23,"value":2784},"get",{"type":14,"tagName":35,"properties":2786,"children":2787},{"style":312},[2788],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2790,"children":2791},{"style":335},[2792],{"type":23,"value":2691},{"type":14,"tagName":35,"properties":2794,"children":2795},{"style":312},[2796],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2799,"children":2800},{"class":308},[2801,2806,2811,2815,2819,2823,2827,2831],{"type":14,"tagName":35,"properties":2802,"children":2803},{"style":318},[2804],{"type":23,"value":2805},"  +",{"type":14,"tagName":35,"properties":2807,"children":2808},{"style":312},[2809],{"type":23,"value":2810}," oiBybit.close ",{"type":14,"tagName":35,"properties":2812,"children":2813},{"style":318},[2814],{"type":23,"value":2774},{"type":14,"tagName":35,"properties":2816,"children":2817},{"style":312},[2818],{"type":23,"value":2779},{"type":14,"tagName":35,"properties":2820,"children":2821},{"style":324},[2822],{"type":23,"value":2784},{"type":14,"tagName":35,"properties":2824,"children":2825},{"style":312},[2826],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2828,"children":2829},{"style":335},[2830],{"type":23,"value":2725},{"type":14,"tagName":35,"properties":2832,"children":2833},{"style":312},[2834],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2837,"children":2838},{"class":308},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2841,"children":2842},{"class":308},[2843,2847],{"type":14,"tagName":35,"properties":2844,"children":2845},{"style":324},[2846],{"type":23,"value":449},{"type":14,"tagName":35,"properties":2848,"children":2849},{"style":312},[2850],{"type":23,"value":2851},"(aggOI)",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2854,"children":2855},{"class":308},[2856,2860,2864,2869,2873,2877,2882,2886,2891,2896,2900,2904,2909,2914,2918,2922,2927,2931,2935,2940,2944,2948,2952,2957],{"type":14,"tagName":35,"properties":2857,"children":2858},{"style":324},[2859],{"type":23,"value":449},{"type":14,"tagName":35,"properties":2861,"children":2862},{"style":312},[2863],{"type":23,"value":332},{"type":14,"tagName":35,"properties":2865,"children":2866},{"style":324},[2867],{"type":23,"value":2868},"ema",{"type":14,"tagName":35,"properties":2870,"children":2871},{"style":312},[2872],{"type":23,"value":830},{"type":14,"tagName":35,"properties":2874,"children":2875},{"style":318},[2876],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2878,"children":2879},{"style":312},[2880],{"type":23,"value":2881},"aggOI, period",{"type":14,"tagName":35,"properties":2883,"children":2884},{"style":318},[2885],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2887,"children":2888},{"style":846},[2889],{"type":23,"value":2890},"21",{"type":14,"tagName":35,"properties":2892,"children":2893},{"style":312},[2894],{"type":23,"value":2895},"), colors",{"type":14,"tagName":35,"properties":2897,"children":2898},{"style":318},[2899],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2901,"children":2902},{"style":312},[2903],{"type":23,"value":463},{"type":14,"tagName":35,"properties":2905,"children":2906},{"style":335},[2907],{"type":23,"value":2908},"\"#94a3b8\"",{"type":14,"tagName":35,"properties":2910,"children":2911},{"style":312},[2912],{"type":23,"value":2913},"], zOrder",{"type":14,"tagName":35,"properties":2915,"children":2916},{"style":318},[2917],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2919,"children":2920},{"style":846},[2921],{"type":23,"value":301},{"type":14,"tagName":35,"properties":2923,"children":2924},{"style":312},[2925],{"type":23,"value":2926},", label",{"type":14,"tagName":35,"properties":2928,"children":2929},{"style":318},[2930],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2932,"children":2933},{"style":312},[2934],{"type":23,"value":463},{"type":14,"tagName":35,"properties":2936,"children":2937},{"style":335},[2938],{"type":23,"value":2939},"\"OI EMA\"",{"type":14,"tagName":35,"properties":2941,"children":2942},{"style":312},[2943],{"type":23,"value":2501},{"type":14,"tagName":35,"properties":2945,"children":2946},{"style":318},[2947],{"type":23,"value":321},{"type":14,"tagName":35,"properties":2949,"children":2950},{"style":312},[2951],{"type":23,"value":463},{"type":14,"tagName":35,"properties":2953,"children":2954},{"style":335},[2955],{"type":23,"value":2956},"\"smoothed aggregated open interest\"",{"type":14,"tagName":35,"properties":2958,"children":2959},{"style":312},[2960],{"type":23,"value":473},{"type":23,"value":89},{"type":14,"tagName":107,"properties":2963,"children":2964,"position":2986},{},[2965,2980],{"type":14,"tagName":111,"properties":2966,"children":2967,"position":2975},{},[2968],{"type":23,"value":2969,"position":2970},"Venue dominance",{"start":2971,"end":2973},{"line":1847,"column":32,"offset":2972},7142,{"line":1847,"column":1426,"offset":2974},7157,{"start":2976,"end":2978},{"line":1847,"column":27,"offset":2977},7140,{"line":1847,"column":1356,"offset":2979},7159,{"type":23,"value":2981,"position":2982}," (one venue's share of the aggregate):",{"start":2983,"end":2984},{"line":1847,"column":1356,"offset":2979},{"line":1847,"column":706,"offset":2985},7197,{"start":2987,"end":2988},{"line":1847,"column":27,"offset":2977},{"line":1847,"column":706,"offset":2985},{"type":23,"value":89},{"type":11,"children":2991},[2992],{"type":14,"tagName":297,"properties":2993,"children":2994,"data":-1},{"class":299,"style":300,"tabindex":301},[2995],{"type":14,"tagName":136,"properties":2996,"children":2997},{},[2998],{"type":14,"tagName":35,"properties":2999,"children":3000},{"class":308},[3001,3006,3010,3014,3018,3022,3027,3032,3037],{"type":14,"tagName":35,"properties":3002,"children":3003},{"style":312},[3004],{"type":23,"value":3005},"timeseries share ",{"type":14,"tagName":35,"properties":3007,"children":3008},{"style":318},[3009],{"type":23,"value":321},{"type":14,"tagName":35,"properties":3011,"children":3012},{"style":324},[3013],{"type":23,"value":2368},{"type":14,"tagName":35,"properties":3015,"children":3016},{"style":312},[3017],{"type":23,"value":2373},{"type":14,"tagName":35,"properties":3019,"children":3020},{"style":318},[3021],{"type":23,"value":435},{"type":14,"tagName":35,"properties":3023,"children":3024},{"style":324},[3025],{"type":23,"value":3026}," nz",{"type":14,"tagName":35,"properties":3028,"children":3029},{"style":312},[3030],{"type":23,"value":3031},"(aggDelta, ",{"type":14,"tagName":35,"properties":3033,"children":3034},{"style":846},[3035],{"type":23,"value":3036},"1",{"type":14,"tagName":35,"properties":3038,"children":3039},{"style":312},[3040],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":107,"properties":3043,"children":3044,"position":3096},{},[3045,3053,3071,3077,3089],{"type":23,"value":3046,"position":3047},"The same shape covers aggregated funding, liquidation totals, and cross-venue spreads. Package the helpers as a ",{"start":3048,"end":3050},{"line":1626,"column":27,"offset":3049},7274,{"line":1626,"column":3051,"offset":3052},113,7386,{"type":14,"tagName":265,"properties":3054,"children":3056,"position":3066},{"href":3055},"../functions/libraries.md",[3057],{"type":23,"value":3058,"position":3059},"library",{"start":3060,"end":3063},{"line":1626,"column":3061,"offset":3062},114,7387,{"line":1626,"column":3064,"offset":3065},121,7394,{"start":3067,"end":3068},{"line":1626,"column":3051,"offset":3052},{"line":1626,"column":3069,"offset":3070},149,7422,{"type":23,"value":3072,"position":3073}," (",{"start":3074,"end":3075},{"line":1626,"column":3069,"offset":3070},{"line":1626,"column":54,"offset":3076},7424,{"type":14,"tagName":136,"properties":3078,"children":3079,"position":3086},{},[3080],{"type":23,"value":3081,"position":3082},"import \"agg\" as agg",{"start":3083,"end":3084},{"line":1626,"column":54,"offset":3076},{"line":1626,"column":1717,"offset":3085},7445,{"start":3087,"end":3088},{"line":1626,"column":54,"offset":3076},{"line":1626,"column":1717,"offset":3085},{"type":23,"value":3090,"position":3091},") and the whole family becomes one import.",{"start":3092,"end":3093},{"line":1626,"column":1717,"offset":3085},{"line":1626,"column":3094,"offset":3095},214,7487,{"start":3097,"end":3098},{"line":1626,"column":27,"offset":3049},{"line":1626,"column":3094,"offset":3095},{"type":23,"value":89},{"type":14,"tagName":3101,"properties":3102,"children":3104},"hint",{"type":3103},"info",[3105],{"type":14,"tagName":107,"properties":3106,"children":3107,"position":3149},{},[3108,3123,3130,3143],{"type":14,"tagName":111,"properties":3109,"children":3110,"position":3118},{},[3111],{"type":23,"value":3112,"position":3113},"Higher-timeframe views of aggregates",{"start":3114,"end":3116},{"line":1645,"column":32,"offset":3115},7517,{"line":1645,"column":1984,"offset":3117},7553,{"start":3119,"end":3121},{"line":1645,"column":27,"offset":3120},7515,{"line":1645,"column":862,"offset":3122},7555,{"type":23,"value":3124,"position":3125}," compose directly: ",{"start":3126,"end":3127},{"line":1645,"column":862,"offset":3122},{"line":1645,"column":3128,"offset":3129},60,7574,{"type":14,"tagName":136,"properties":3131,"children":3132,"position":3140},{},[3133],{"type":23,"value":3134,"position":3135},"htf(aggCvd, \"4h\")",{"start":3136,"end":3137},{"line":1645,"column":3128,"offset":3129},{"line":1645,"column":3138,"offset":3139},79,7593,{"start":3141,"end":3142},{"line":1645,"column":3128,"offset":3129},{"line":1645,"column":3138,"offset":3139},{"type":23,"value":3144,"position":3145}," resamples the cumulative series correctly (last-in-bucket), still repaint-free.",{"start":3146,"end":3147},{"line":1645,"column":3138,"offset":3139},{"line":1645,"column":163,"offset":3148},7673,{"start":3150,"end":3151},{"line":1645,"column":27,"offset":3120},{"line":1645,"column":163,"offset":3148},{"type":23,"value":89},{"type":14,"tagName":210,"properties":3154,"children":3156,"position":3164},{"id":3155},"lower-timeframe-data-ltf",[3157],{"type":23,"value":3158,"position":3159},"Lower-timeframe data: ltf()",{"start":3160,"end":3162},{"line":3064,"column":56,"offset":3161},7694,{"line":3064,"column":619,"offset":3163},7721,{"start":3165,"end":3167},{"line":3064,"column":27,"offset":3166},7691,{"line":3064,"column":619,"offset":3163},{"type":23,"value":89},{"type":14,"tagName":107,"properties":3170,"children":3171,"position":3236},{},[3172,3186,3192,3206,3213,3229],{"type":14,"tagName":136,"properties":3173,"children":3174,"position":3183},{},[3175],{"type":23,"value":3176,"position":3177},"ltf(interval)",{"start":3178,"end":3181},{"line":3179,"column":27,"offset":3180},123,7723,{"line":3179,"column":221,"offset":3182},7738,{"start":3184,"end":3185},{"line":3179,"column":27,"offset":3180},{"line":3179,"column":221,"offset":3182},{"type":23,"value":3187,"position":3188}," fetches ",{"start":3189,"end":3190},{"line":3179,"column":221,"offset":3182},{"line":3179,"column":499,"offset":3191},7747,{"type":14,"tagName":111,"properties":3193,"children":3194,"position":3202},{},[3195],{"type":23,"value":3196,"position":3197},"finer",{"start":3198,"end":3200},{"line":3179,"column":524,"offset":3199},7749,{"line":3179,"column":33,"offset":3201},7754,{"start":3203,"end":3204},{"line":3179,"column":499,"offset":3191},{"line":3179,"column":1973,"offset":3205},7756,{"type":23,"value":3207,"position":3208}," bars than the chart and delivers them as ",{"start":3209,"end":3210},{"line":3179,"column":1973,"offset":3205},{"line":3179,"column":3211,"offset":3212},76,7798,{"type":14,"tagName":111,"properties":3214,"children":3215,"position":3224},{},[3216],{"type":23,"value":3217,"position":3218},"cells on the chart's own bars",{"start":3219,"end":3222},{"line":3179,"column":3220,"offset":3221},78,7800,{"line":3179,"column":1616,"offset":3223},7829,{"start":3225,"end":3226},{"line":3179,"column":3211,"offset":3212},{"line":3179,"column":3227,"offset":3228},109,7831,{"type":23,"value":3230,"position":3231}," (the chart timeline is untouched):",{"start":3232,"end":3233},{"line":3179,"column":3227,"offset":3228},{"line":3179,"column":3234,"offset":3235},144,7866,{"start":3237,"end":3238},{"line":3179,"column":27,"offset":3180},{"line":3179,"column":3234,"offset":3235},{"type":23,"value":89},{"type":11,"children":3241},[3242],{"type":14,"tagName":297,"properties":3243,"children":3244,"data":-1},{"class":299,"style":300,"tabindex":301},[3245],{"type":14,"tagName":136,"properties":3246,"children":3247},{},[3248,3256,3257,3287,3288,3291,3292,3300,3301,3429,3430],{"type":14,"tagName":35,"properties":3249,"children":3250},{"class":308},[3251],{"type":14,"tagName":35,"properties":3252,"children":3253},{"style":799},[3254],{"type":23,"value":3255},"// on a 1h chart: each bar carries its four 15m bars",{"type":23,"value":89},{"type":14,"tagName":35,"properties":3258,"children":3259},{"class":308},[3260,3265,3269,3274,3278,3283],{"type":14,"tagName":35,"properties":3261,"children":3262},{"style":312},[3263],{"type":23,"value":3264},"timeseries fine ",{"type":14,"tagName":35,"properties":3266,"children":3267},{"style":318},[3268],{"type":23,"value":321},{"type":14,"tagName":35,"properties":3270,"children":3271},{"style":324},[3272],{"type":23,"value":3273}," ltf",{"type":14,"tagName":35,"properties":3275,"children":3276},{"style":312},[3277],{"type":23,"value":332},{"type":14,"tagName":35,"properties":3279,"children":3280},{"style":335},[3281],{"type":23,"value":3282},"\"15m\"",{"type":14,"tagName":35,"properties":3284,"children":3285},{"style":312},[3286],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":3289,"children":3290},{"class":308},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":3293,"children":3294},{"class":308},[3295],{"type":14,"tagName":35,"properties":3296,"children":3297},{"style":799},[3298],{"type":23,"value":3299},"// intrabar drift: sum of the finer bars' close-open",{"type":23,"value":89},{"type":14,"tagName":35,"properties":3302,"children":3303},{"class":308},[3304,3309,3313,3318,3323,3328,3334,3339,3344,3349,3354,3359,3363,3367,3371,3376,3381,3385,3390,3394,3399,3403,3407,3412,3416,3421,3425],{"type":14,"tagName":35,"properties":3305,"children":3306},{"style":312},[3307],{"type":23,"value":3308},"timeseries drift ",{"type":14,"tagName":35,"properties":3310,"children":3311},{"style":318},[3312],{"type":23,"value":321},{"type":14,"tagName":35,"properties":3314,"children":3315},{"style":312},[3316],{"type":23,"value":3317}," fine.cells.",{"type":14,"tagName":35,"properties":3319,"children":3320},{"style":324},[3321],{"type":23,"value":3322},"map",{"type":14,"tagName":35,"properties":3324,"children":3325},{"style":312},[3326],{"type":23,"value":3327},"((",{"type":14,"tagName":35,"properties":3329,"children":3331},{"style":3330},"--shiki-dark:#FFAB70;--shiki-light:#E36209",[3332],{"type":23,"value":3333},"c",{"type":14,"tagName":35,"properties":3335,"children":3336},{"style":312},[3337],{"type":23,"value":3338},") ",{"type":14,"tagName":35,"properties":3340,"children":3341},{"style":318},[3342],{"type":23,"value":3343},"=>",{"type":14,"tagName":35,"properties":3345,"children":3346},{"style":312},[3347],{"type":23,"value":3348}," c[",{"type":14,"tagName":35,"properties":3350,"children":3351},{"style":846},[3352],{"type":23,"value":3353},"4",{"type":14,"tagName":35,"properties":3355,"children":3356},{"style":312},[3357],{"type":23,"value":3358},"] ",{"type":14,"tagName":35,"properties":3360,"children":3361},{"style":318},[3362],{"type":23,"value":2332},{"type":14,"tagName":35,"properties":3364,"children":3365},{"style":312},[3366],{"type":23,"value":3348},{"type":14,"tagName":35,"properties":3368,"children":3369},{"style":846},[3370],{"type":23,"value":3036},{"type":14,"tagName":35,"properties":3372,"children":3373},{"style":312},[3374],{"type":23,"value":3375},"]).",{"type":14,"tagName":35,"properties":3377,"children":3378},{"style":324},[3379],{"type":23,"value":3380},"reduce",{"type":14,"tagName":35,"properties":3382,"children":3383},{"style":312},[3384],{"type":23,"value":3327},{"type":14,"tagName":35,"properties":3386,"children":3387},{"style":3330},[3388],{"type":23,"value":3389},"s",{"type":14,"tagName":35,"properties":3391,"children":3392},{"style":312},[3393],{"type":23,"value":343},{"type":14,"tagName":35,"properties":3395,"children":3396},{"style":3330},[3397],{"type":23,"value":3398},"x",{"type":14,"tagName":35,"properties":3400,"children":3401},{"style":312},[3402],{"type":23,"value":3338},{"type":14,"tagName":35,"properties":3404,"children":3405},{"style":318},[3406],{"type":23,"value":3343},{"type":14,"tagName":35,"properties":3408,"children":3409},{"style":312},[3410],{"type":23,"value":3411}," s ",{"type":14,"tagName":35,"properties":3413,"children":3414},{"style":318},[3415],{"type":23,"value":2378},{"type":14,"tagName":35,"properties":3417,"children":3418},{"style":312},[3419],{"type":23,"value":3420}," x, ",{"type":14,"tagName":35,"properties":3422,"children":3423},{"style":846},[3424],{"type":23,"value":301},{"type":14,"tagName":35,"properties":3426,"children":3427},{"style":312},[3428],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":3431,"children":3432},{"class":308},[3433,3437],{"type":14,"tagName":35,"properties":3434,"children":3435},{"style":324},[3436],{"type":23,"value":449},{"type":14,"tagName":35,"properties":3438,"children":3439},{"style":312},[3440],{"type":23,"value":3441},"(drift)",{"type":23,"value":89},{"type":14,"tagName":107,"properties":3444,"children":3445,"position":3471},{},[3446,3453,3465],{"type":23,"value":3447,"position":3448},"Cells use the same ",{"start":3449,"end":3451},{"line":1667,"column":27,"offset":3450},8122,{"line":1667,"column":1356,"offset":3452},8141,{"type":14,"tagName":136,"properties":3454,"children":3455,"position":3462},{},[3456],{"type":23,"value":3457,"position":3458},".cells",{"start":3459,"end":3460},{"line":1667,"column":1356,"offset":3452},{"line":1667,"column":556,"offset":3461},8149,{"start":3463,"end":3464},{"line":1667,"column":1356,"offset":3452},{"line":1667,"column":556,"offset":3461},{"type":23,"value":3466,"position":3467}," 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":3468,"end":3469},{"line":1667,"column":556,"offset":3461},{"line":1667,"column":1037,"offset":3470},8389,{"start":3472,"end":3473},{"line":1667,"column":27,"offset":3450},{"line":1667,"column":1037,"offset":3470},{"type":23,"value":89},{"type":14,"tagName":210,"properties":3476,"children":3478,"position":3486},{"id":3477},"requestbars-raw-bars-for-drawing",[3479],{"type":23,"value":3480,"position":3481},"requestBars(): raw bars for drawing",{"start":3482,"end":3484},{"line":2025,"column":56,"offset":3483},8393,{"line":2025,"column":1984,"offset":3485},8428,{"start":3487,"end":3489},{"line":2025,"column":27,"offset":3488},8390,{"line":2025,"column":1984,"offset":3485},{"type":23,"value":89},{"type":14,"tagName":107,"properties":3492,"children":3493,"position":3849},{},[3494,3502,3516,3522,3535,3542,3555,3561,3577,3584,3597,3603,3616,3622,3635,3642,3655,3661,3673,3678,3691,3698,3710,3717,3730,3736,3748,3755,3768,3775,3787,3793,3805,3812,3824,3830,3842],{"type":23,"value":3495,"position":3496},"When you want to ",{"start":3497,"end":3500},{"line":3498,"column":27,"offset":3499},139,8430,{"line":3498,"column":1426,"offset":3501},8447,{"type":14,"tagName":111,"properties":3503,"children":3504,"position":3512},{},[3505],{"type":23,"value":3506,"position":3507},"draw",{"start":3508,"end":3510},{"line":3498,"column":1356,"offset":3509},8449,{"line":3498,"column":1366,"offset":3511},8453,{"start":3513,"end":3514},{"line":3498,"column":1426,"offset":3501},{"line":3498,"column":559,"offset":3515},8455,{"type":23,"value":3517,"position":3518}," 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":3519,"end":3520},{"line":3498,"column":559,"offset":3515},{"line":3498,"column":68,"offset":3521},8606,{"type":14,"tagName":136,"properties":3523,"children":3524,"position":3532},{},[3525],{"type":23,"value":3526,"position":3527},"requestBars(symbol, timeframe, type?, exchange?, opts)",{"start":3528,"end":3529},{"line":3498,"column":68,"offset":3521},{"line":3498,"column":3530,"offset":3531},233,8662,{"start":3533,"end":3534},{"line":3498,"column":68,"offset":3521},{"line":3498,"column":3530,"offset":3531},{"type":23,"value":3536,"position":3537},". It returns the last ",{"start":3538,"end":3539},{"line":3498,"column":3530,"offset":3531},{"line":3498,"column":3540,"offset":3541},255,8684,{"type":14,"tagName":136,"properties":3543,"children":3544,"position":3552},{},[3545],{"type":23,"value":3546,"position":3547},"opts.bars",{"start":3548,"end":3549},{"line":3498,"column":3540,"offset":3541},{"line":3498,"column":3550,"offset":3551},266,8695,{"start":3553,"end":3554},{"line":3498,"column":3540,"offset":3541},{"line":3498,"column":3550,"offset":3551},{"type":23,"value":3556,"position":3557}," ",{"start":3558,"end":3559},{"line":3498,"column":3550,"offset":3551},{"line":3498,"column":1310,"offset":3560},8696,{"type":14,"tagName":111,"properties":3562,"children":3563,"position":3573},{},[3564],{"type":23,"value":3565,"position":3566},"native",{"start":3567,"end":3570},{"line":3498,"column":3568,"offset":3569},269,8698,{"line":3498,"column":3571,"offset":3572},275,8704,{"start":3574,"end":3575},{"line":3498,"column":1310,"offset":3560},{"line":3498,"column":1047,"offset":3576},8706,{"type":23,"value":3578,"position":3579}," bars of ",{"start":3580,"end":3581},{"line":3498,"column":1047,"offset":3576},{"line":3498,"column":3582,"offset":3583},286,8715,{"type":14,"tagName":136,"properties":3585,"children":3586,"position":3594},{},[3587],{"type":23,"value":3588,"position":3589},"symbol",{"start":3590,"end":3591},{"line":3498,"column":3582,"offset":3583},{"line":3498,"column":3592,"offset":3593},294,8723,{"start":3595,"end":3596},{"line":3498,"column":3582,"offset":3583},{"line":3498,"column":3592,"offset":3593},{"type":23,"value":3598,"position":3599}," at ",{"start":3600,"end":3601},{"line":3498,"column":3592,"offset":3593},{"line":3498,"column":2043,"offset":3602},8727,{"type":14,"tagName":136,"properties":3604,"children":3605,"position":3613},{},[3606],{"type":23,"value":3607,"position":3608},"timeframe",{"start":3609,"end":3610},{"line":3498,"column":2043,"offset":3602},{"line":3498,"column":3611,"offset":3612},309,8738,{"start":3614,"end":3615},{"line":3498,"column":2043,"offset":3602},{"line":3498,"column":3611,"offset":3612},{"type":23,"value":3617,"position":3618}," as a plain array of ",{"start":3619,"end":3620},{"line":3498,"column":3611,"offset":3612},{"line":3498,"column":124,"offset":3621},8759,{"type":14,"tagName":136,"properties":3623,"children":3624,"position":3632},{},[3625],{"type":23,"value":3626,"position":3627},"[time, open, high, low, close, volume]",{"start":3628,"end":3629},{"line":3498,"column":124,"offset":3621},{"line":3498,"column":3630,"offset":3631},370,8799,{"start":3633,"end":3634},{"line":3498,"column":124,"offset":3621},{"line":3498,"column":3630,"offset":3631},{"type":23,"value":3636,"position":3637}," rows, oldest first. The timeframe is a coarse native interval string (",{"start":3638,"end":3639},{"line":3498,"column":3630,"offset":3631},{"line":3498,"column":3640,"offset":3641},441,8870,{"type":14,"tagName":136,"properties":3643,"children":3644,"position":3652},{},[3645],{"type":23,"value":3646,"position":3647},"\"1d\"",{"start":3648,"end":3649},{"line":3498,"column":3640,"offset":3641},{"line":3498,"column":3650,"offset":3651},447,8876,{"start":3653,"end":3654},{"line":3498,"column":3640,"offset":3641},{"line":3498,"column":3650,"offset":3651},{"type":23,"value":343,"position":3656},{"start":3657,"end":3658},{"line":3498,"column":3650,"offset":3651},{"line":3498,"column":3659,"offset":3660},449,8878,{"type":14,"tagName":136,"properties":3662,"children":3663,"position":3670},{},[3664],{"type":23,"value":791,"position":3665},{"start":3666,"end":3667},{"line":3498,"column":3659,"offset":3660},{"line":3498,"column":3668,"offset":3669},455,8884,{"start":3671,"end":3672},{"line":3498,"column":3659,"offset":3660},{"line":3498,"column":3668,"offset":3669},{"type":23,"value":343,"position":3674},{"start":3675,"end":3676},{"line":3498,"column":3668,"offset":3669},{"line":3498,"column":1908,"offset":3677},8886,{"type":14,"tagName":136,"properties":3679,"children":3680,"position":3688},{},[3681],{"type":23,"value":3682,"position":3683},"\"1w\"",{"start":3684,"end":3685},{"line":3498,"column":1908,"offset":3677},{"line":3498,"column":3686,"offset":3687},463,8892,{"start":3689,"end":3690},{"line":3498,"column":1908,"offset":3677},{"line":3498,"column":3686,"offset":3687},{"type":23,"value":3692,"position":3693},") and is required; ",{"start":3694,"end":3695},{"line":3498,"column":3686,"offset":3687},{"line":3498,"column":3696,"offset":3697},482,8911,{"type":14,"tagName":136,"properties":3699,"children":3700,"position":3707},{},[3701],{"type":23,"value":3546,"position":3702},{"start":3703,"end":3704},{"line":3498,"column":3696,"offset":3697},{"line":3498,"column":3705,"offset":3706},493,8922,{"start":3708,"end":3709},{"line":3498,"column":3696,"offset":3697},{"line":3498,"column":3705,"offset":3706},{"type":23,"value":3711,"position":3712}," is a required positive integer; ",{"start":3713,"end":3714},{"line":3498,"column":3705,"offset":3706},{"line":3498,"column":3715,"offset":3716},526,8955,{"type":14,"tagName":136,"properties":3718,"children":3719,"position":3727},{},[3720],{"type":23,"value":3721,"position":3722},"type",{"start":3723,"end":3724},{"line":3498,"column":3715,"offset":3716},{"line":3498,"column":3725,"offset":3726},532,8961,{"start":3728,"end":3729},{"line":3498,"column":3715,"offset":3716},{"line":3498,"column":3725,"offset":3726},{"type":23,"value":3731,"position":3732}," defaults to ",{"start":3733,"end":3734},{"line":3498,"column":3725,"offset":3726},{"line":3498,"column":1958,"offset":3735},8974,{"type":14,"tagName":136,"properties":3737,"children":3738,"position":3745},{},[3739],{"type":23,"value":338,"position":3740},{"start":3741,"end":3742},{"line":3498,"column":1958,"offset":3735},{"line":3498,"column":3743,"offset":3744},554,8983,{"start":3746,"end":3747},{"line":3498,"column":1958,"offset":3735},{"line":3498,"column":3743,"offset":3744},{"type":23,"value":3749,"position":3750}," and ",{"start":3751,"end":3752},{"line":3498,"column":3743,"offset":3744},{"line":3498,"column":3753,"offset":3754},559,8988,{"type":14,"tagName":136,"properties":3756,"children":3757,"position":3765},{},[3758],{"type":23,"value":3759,"position":3760},"exchange",{"start":3761,"end":3762},{"line":3498,"column":3753,"offset":3754},{"line":3498,"column":3763,"offset":3764},569,8998,{"start":3766,"end":3767},{"line":3498,"column":3753,"offset":3754},{"line":3498,"column":3763,"offset":3764},{"type":23,"value":3769,"position":3770}," defaults to the current venue. There is no ",{"start":3771,"end":3772},{"line":3498,"column":3763,"offset":3764},{"line":3498,"column":3773,"offset":3774},613,9042,{"type":14,"tagName":136,"properties":3776,"children":3777,"position":3784},{},[3778],{"type":23,"value":1105,"position":3779},{"start":3780,"end":3781},{"line":3498,"column":3773,"offset":3774},{"line":3498,"column":3782,"offset":3783},619,9048,{"start":3785,"end":3786},{"line":3498,"column":3773,"offset":3774},{"line":3498,"column":3782,"offset":3783},{"type":23,"value":435,"position":3788},{"start":3789,"end":3790},{"line":3498,"column":3782,"offset":3783},{"line":3498,"column":3791,"offset":3792},620,9049,{"type":14,"tagName":136,"properties":3794,"children":3795,"position":3802},{},[3796],{"type":23,"value":1124,"position":3797},{"start":3798,"end":3799},{"line":3498,"column":3791,"offset":3792},{"line":3498,"column":3800,"offset":3801},628,9057,{"start":3803,"end":3804},{"line":3498,"column":3791,"offset":3792},{"line":3498,"column":3800,"offset":3801},{"type":23,"value":3806,"position":3807}," here (those are ",{"start":3808,"end":3809},{"line":3498,"column":3800,"offset":3801},{"line":3498,"column":3810,"offset":3811},645,9074,{"type":14,"tagName":136,"properties":3813,"children":3814,"position":3821},{},[3815],{"type":23,"value":140,"position":3816},{"start":3817,"end":3818},{"line":3498,"column":3810,"offset":3811},{"line":3498,"column":3819,"offset":3820},656,9085,{"start":3822,"end":3823},{"line":3498,"column":3810,"offset":3811},{"line":3498,"column":3819,"offset":3820},{"type":23,"value":435,"position":3825},{"start":3826,"end":3827},{"line":3498,"column":3819,"offset":3820},{"line":3498,"column":3828,"offset":3829},657,9086,{"type":14,"tagName":136,"properties":3831,"children":3832,"position":3839},{},[3833],{"type":23,"value":871,"position":3834},{"start":3835,"end":3836},{"line":3498,"column":3828,"offset":3829},{"line":3498,"column":3837,"offset":3838},664,9093,{"start":3840,"end":3841},{"line":3498,"column":3828,"offset":3829},{"line":3498,"column":3837,"offset":3838},{"type":23,"value":3843,"position":3844}," period concepts).",{"start":3845,"end":3846},{"line":3498,"column":3837,"offset":3838},{"line":3498,"column":3847,"offset":3848},682,9111,{"start":3850,"end":3851},{"line":3498,"column":27,"offset":3499},{"line":3498,"column":3847,"offset":3848},{"type":23,"value":89},{"type":14,"tagName":107,"properties":3854,"children":3855,"position":3958},{},[3856,3864,3879,3885,3898,3904,3916,3923,3951],{"type":23,"value":3857,"position":3858},"The result is ",{"start":3859,"end":3861},{"line":539,"column":27,"offset":3860},9113,{"line":539,"column":3862,"offset":3863},15,9127,{"type":14,"tagName":111,"properties":3865,"children":3866,"position":3875},{},[3867],{"type":23,"value":3868,"position":3869},"draw-only and inert",{"start":3870,"end":3873},{"line":539,"column":3871,"offset":3872},17,9129,{"line":539,"column":120,"offset":3874},9148,{"start":3876,"end":3877},{"line":539,"column":3862,"offset":3863},{"line":539,"column":126,"offset":3878},9150,{"type":23,"value":3880,"position":3881},": a raw array indexed by position (",{"start":3882,"end":3883},{"line":539,"column":126,"offset":3878},{"line":539,"column":1008,"offset":3884},9185,{"type":14,"tagName":136,"properties":3886,"children":3887,"position":3895},{},[3888],{"type":23,"value":3889,"position":3890},"rows[i]",{"start":3891,"end":3892},{"line":539,"column":1008,"offset":3884},{"line":539,"column":3893,"offset":3894},82,9194,{"start":3896,"end":3897},{"line":539,"column":1008,"offset":3884},{"line":539,"column":3893,"offset":3894},{"type":23,"value":3899,"position":3900},"), not a chart-indexed timeseries. It carries no ",{"start":3901,"end":3902},{"line":539,"column":3893,"offset":3894},{"line":539,"column":1664,"offset":3903},9243,{"type":14,"tagName":136,"properties":3905,"children":3906,"position":3913},{},[3907],{"type":23,"value":3908,"position":3909},"[n]",{"start":3910,"end":3911},{"line":539,"column":1664,"offset":3903},{"line":539,"column":1667,"offset":3912},9248,{"start":3914,"end":3915},{"line":539,"column":1664,"offset":3903},{"line":539,"column":1667,"offset":3912},{"type":23,"value":3917,"position":3918}," bar-offset history and is not chainable into TA functions; you iterate it and draw. Crucially it is ",{"start":3919,"end":3920},{"line":539,"column":1667,"offset":3912},{"line":539,"column":3921,"offset":3922},237,9349,{"type":14,"tagName":111,"properties":3924,"children":3925,"position":3947},{},[3926,3935],{"type":23,"value":3927,"position":3928},"independent of ",{"start":3929,"end":3932},{"line":539,"column":3930,"offset":3931},239,9351,{"line":539,"column":3933,"offset":3934},254,9366,{"type":14,"tagName":136,"properties":3936,"children":3937,"position":3944},{},[3938],{"type":23,"value":3939,"position":3940},"maxBarsBack",{"start":3941,"end":3942},{"line":539,"column":3933,"offset":3934},{"line":539,"column":1310,"offset":3943},9379,{"start":3945,"end":3946},{"line":539,"column":3933,"offset":3934},{"line":539,"column":1310,"offset":3943},{"start":3948,"end":3949},{"line":539,"column":3921,"offset":3922},{"line":539,"column":3568,"offset":3950},9381,{"type":23,"value":3952,"position":3953},", reading the deep source directly, so a 1m chart can draw the last 20 daily candles even with a tiny lookback window.",{"start":3954,"end":3955},{"line":539,"column":3568,"offset":3950},{"line":539,"column":3956,"offset":3957},387,9499,{"start":3959,"end":3960},{"line":539,"column":27,"offset":3860},{"line":539,"column":3956,"offset":3957},{"type":23,"value":89},{"type":14,"tagName":107,"properties":3963,"children":3964,"position":4046},{},[3965,3973,3984,3990,4001,4008,4020,4027,4039],{"type":23,"value":3966,"position":3967},"This is the counterpart to ",{"start":3968,"end":3971},{"line":3969,"column":27,"offset":3970},143,9501,{"line":3969,"column":556,"offset":3972},9528,{"type":14,"tagName":136,"properties":3974,"children":3975,"position":3981},{},[3976],{"type":23,"value":140,"position":3977},{"start":3978,"end":3979},{"line":3969,"column":556,"offset":3972},{"line":3969,"column":1984,"offset":3980},9539,{"start":3982,"end":3983},{"line":3969,"column":556,"offset":3972},{"line":3969,"column":1984,"offset":3980},{"type":23,"value":3985,"position":3986},". Where ",{"start":3987,"end":3988},{"line":3969,"column":1984,"offset":3980},{"line":3969,"column":986,"offset":3989},9547,{"type":14,"tagName":136,"properties":3991,"children":3992,"position":3998},{},[3993],{"type":23,"value":140,"position":3994},{"start":3995,"end":3996},{"line":3969,"column":986,"offset":3989},{"line":3969,"column":706,"offset":3997},9558,{"start":3999,"end":4000},{"line":3969,"column":986,"offset":3989},{"line":3969,"column":706,"offset":3997},{"type":23,"value":4002,"position":4003}," returns a chart-aligned, bar-indexed, TA-chainable timeseries (and ",{"start":4004,"end":4005},{"line":3969,"column":706,"offset":3997},{"line":3969,"column":4006,"offset":4007},126,9626,{"type":14,"tagName":136,"properties":4009,"children":4010,"position":4017},{},[4011],{"type":23,"value":4012,"position":4013},"request(..., { bars: N })",{"start":4014,"end":4015},{"line":3969,"column":4006,"offset":4007},{"line":3969,"column":1450,"offset":4016},9653,{"start":4018,"end":4019},{"line":3969,"column":4006,"offset":4007},{"line":3969,"column":1450,"offset":4016},{"type":23,"value":4021,"position":4022}," only sets the fetch depth of that still-projected series), ",{"start":4023,"end":4024},{"line":3969,"column":1450,"offset":4016},{"line":3969,"column":4025,"offset":4026},213,9713,{"type":14,"tagName":136,"properties":4028,"children":4029,"position":4036},{},[4030],{"type":23,"value":4031,"position":4032},"requestBars()",{"start":4033,"end":4034},{"line":3969,"column":4025,"offset":4026},{"line":3969,"column":1388,"offset":4035},9728,{"start":4037,"end":4038},{"line":3969,"column":4025,"offset":4026},{"line":3969,"column":1388,"offset":4035},{"type":23,"value":4040,"position":4041}," hands you the raw native rows for drawing:",{"start":4042,"end":4043},{"line":3969,"column":1388,"offset":4035},{"line":3969,"column":4044,"offset":4045},271,9771,{"start":4047,"end":4048},{"line":3969,"column":27,"offset":3970},{"line":3969,"column":4044,"offset":4045},{"type":23,"value":89},{"type":11,"children":4051},[4052],{"type":14,"tagName":297,"properties":4053,"children":4054,"data":-1},{"class":299,"style":300,"tabindex":301},[4055],{"type":14,"tagName":136,"properties":4056,"children":4057},{},[4058,4109,4110,4123,4124,4170,4171,4241,4242,4269,4270,4342,4343,4351,4352],{"type":14,"tagName":35,"properties":4059,"children":4060},{"class":308},[4061,4065,4069,4074,4078,4083,4087,4091,4096,4100,4105],{"type":14,"tagName":35,"properties":4062,"children":4063},{"style":324},[4064],{"type":23,"value":2117},{"type":14,"tagName":35,"properties":4066,"children":4067},{"style":312},[4068],{"type":23,"value":332},{"type":14,"tagName":35,"properties":4070,"children":4071},{"style":335},[4072],{"type":23,"value":4073},"\"daily levels\"",{"type":14,"tagName":35,"properties":4075,"children":4076},{"style":312},[4077],{"type":23,"value":343},{"type":14,"tagName":35,"properties":4079,"children":4080},{"style":335},[4081],{"type":23,"value":4082},"\"onchart\"",{"type":14,"tagName":35,"properties":4084,"children":4085},{"style":312},[4086],{"type":23,"value":343},{"type":14,"tagName":35,"properties":4088,"children":4089},{"style":846},[4090],{"type":23,"value":2144},{"type":14,"tagName":35,"properties":4092,"children":4093},{"style":312},[4094],{"type":23,"value":4095},", maxBarsBack",{"type":14,"tagName":35,"properties":4097,"children":4098},{"style":318},[4099],{"type":23,"value":321},{"type":14,"tagName":35,"properties":4101,"children":4102},{"style":846},[4103],{"type":23,"value":4104},"50",{"type":14,"tagName":35,"properties":4106,"children":4107},{"style":312},[4108],{"type":23,"value":362},{"type":23,"value":89},{"type":14,"tagName":35,"properties":4111,"children":4112},{"class":308},[4113,4118],{"type":14,"tagName":35,"properties":4114,"children":4115},{"style":318},[4116],{"type":23,"value":4117},"if",{"type":14,"tagName":35,"properties":4119,"children":4120},{"style":312},[4121],{"type":23,"value":4122}," (isLastBar) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":4125,"children":4126},{"class":308},[4127,4132,4137,4141,4146,4151,4155,4160,4165],{"type":14,"tagName":35,"properties":4128,"children":4129},{"style":318},[4130],{"type":23,"value":4131},"  var",{"type":14,"tagName":35,"properties":4133,"children":4134},{"style":312},[4135],{"type":23,"value":4136}," rows ",{"type":14,"tagName":35,"properties":4138,"children":4139},{"style":318},[4140],{"type":23,"value":321},{"type":14,"tagName":35,"properties":4142,"children":4143},{"style":324},[4144],{"type":23,"value":4145}," requestBars",{"type":14,"tagName":35,"properties":4147,"children":4148},{"style":312},[4149],{"type":23,"value":4150},"(currentSymbol, ",{"type":14,"tagName":35,"properties":4152,"children":4153},{"style":335},[4154],{"type":23,"value":3646},{"type":14,"tagName":35,"properties":4156,"children":4157},{"style":312},[4158],{"type":23,"value":4159},", { bars: ",{"type":14,"tagName":35,"properties":4161,"children":4162},{"style":846},[4163],{"type":23,"value":4164},"20",{"type":14,"tagName":35,"properties":4166,"children":4167},{"style":312},[4168],{"type":23,"value":4169}," })",{"type":23,"value":89},{"type":14,"tagName":35,"properties":4172,"children":4173},{"class":308},[4174,4179,4183,4187,4192,4196,4200,4205,4210,4215,4219,4223,4227,4231,4236],{"type":14,"tagName":35,"properties":4175,"children":4176},{"style":318},[4177],{"type":23,"value":4178},"  for",{"type":14,"tagName":35,"properties":4180,"children":4181},{"style":312},[4182],{"type":23,"value":3072},{"type":14,"tagName":35,"properties":4184,"children":4185},{"style":318},[4186],{"type":23,"value":811},{"type":14,"tagName":35,"properties":4188,"children":4189},{"style":312},[4190],{"type":23,"value":4191}," i ",{"type":14,"tagName":35,"properties":4193,"children":4194},{"style":318},[4195],{"type":23,"value":321},{"type":14,"tagName":35,"properties":4197,"children":4198},{"style":846},[4199],{"type":23,"value":2459},{"type":14,"tagName":35,"properties":4201,"children":4202},{"style":312},[4203],{"type":23,"value":4204},"; i ",{"type":14,"tagName":35,"properties":4206,"children":4207},{"style":318},[4208],{"type":23,"value":4209},"\u003C",{"type":14,"tagName":35,"properties":4211,"children":4212},{"style":846},[4213],{"type":23,"value":4214}," 20",{"type":14,"tagName":35,"properties":4216,"children":4217},{"style":312},[4218],{"type":23,"value":4204},{"type":14,"tagName":35,"properties":4220,"children":4221},{"style":318},[4222],{"type":23,"value":321},{"type":14,"tagName":35,"properties":4224,"children":4225},{"style":312},[4226],{"type":23,"value":4191},{"type":14,"tagName":35,"properties":4228,"children":4229},{"style":318},[4230],{"type":23,"value":2378},{"type":14,"tagName":35,"properties":4232,"children":4233},{"style":846},[4234],{"type":23,"value":4235}," 1",{"type":14,"tagName":35,"properties":4237,"children":4238},{"style":312},[4239],{"type":23,"value":4240},") {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":4243,"children":4244},{"class":308},[4245,4250,4255,4259,4264],{"type":14,"tagName":35,"properties":4246,"children":4247},{"style":318},[4248],{"type":23,"value":4249},"    var",{"type":14,"tagName":35,"properties":4251,"children":4252},{"style":312},[4253],{"type":23,"value":4254}," r ",{"type":14,"tagName":35,"properties":4256,"children":4257},{"style":318},[4258],{"type":23,"value":321},{"type":14,"tagName":35,"properties":4260,"children":4261},{"style":312},[4262],{"type":23,"value":4263}," rows[i]                 ",{"type":14,"tagName":35,"properties":4265,"children":4266},{"style":799},[4267],{"type":23,"value":4268},"// r = [t, o, h, l, c, v]",{"type":23,"value":89},{"type":14,"tagName":35,"properties":4271,"children":4272},{"class":308},[4273,4278,4283,4288,4292,4297,4302,4306,4310,4314,4319,4324,4329,4334,4338],{"type":14,"tagName":35,"properties":4274,"children":4275},{"style":312},[4276],{"type":23,"value":4277},"    line.",{"type":14,"tagName":35,"properties":4279,"children":4280},{"style":324},[4281],{"type":23,"value":4282},"new",{"type":14,"tagName":35,"properties":4284,"children":4285},{"style":312},[4286],{"type":23,"value":4287},"(r[",{"type":14,"tagName":35,"properties":4289,"children":4290},{"style":846},[4291],{"type":23,"value":301},{"type":14,"tagName":35,"properties":4293,"children":4294},{"style":312},[4295],{"type":23,"value":4296},"], r[",{"type":14,"tagName":35,"properties":4298,"children":4299},{"style":846},[4300],{"type":23,"value":4301},"2",{"type":14,"tagName":35,"properties":4303,"children":4304},{"style":312},[4305],{"type":23,"value":4296},{"type":14,"tagName":35,"properties":4307,"children":4308},{"style":846},[4309],{"type":23,"value":301},{"type":14,"tagName":35,"properties":4311,"children":4312},{"style":312},[4313],{"type":23,"value":4296},{"type":14,"tagName":35,"properties":4315,"children":4316},{"style":846},[4317],{"type":23,"value":4318},"3",{"type":14,"tagName":35,"properties":4320,"children":4321},{"style":312},[4322],{"type":23,"value":4323},"], { color: ",{"type":14,"tagName":35,"properties":4325,"children":4326},{"style":335},[4327],{"type":23,"value":4328},"\"#ffffff\"",{"type":14,"tagName":35,"properties":4330,"children":4331},{"style":312},[4332],{"type":23,"value":4333},", width: ",{"type":14,"tagName":35,"properties":4335,"children":4336},{"style":846},[4337],{"type":23,"value":3036},{"type":14,"tagName":35,"properties":4339,"children":4340},{"style":312},[4341],{"type":23,"value":4169},{"type":23,"value":89},{"type":14,"tagName":35,"properties":4344,"children":4345},{"class":308},[4346],{"type":14,"tagName":35,"properties":4347,"children":4348},{"style":312},[4349],{"type":23,"value":4350},"  }",{"type":23,"value":89},{"type":14,"tagName":35,"properties":4353,"children":4354},{"class":308},[4355],{"type":14,"tagName":35,"properties":4356,"children":4357},{"style":312},[4358],{"type":23,"value":2346},{"type":23,"value":89},{"type":14,"tagName":210,"properties":4361,"children":4363,"position":4371},{"id":4362},"budgets-and-good-citizenship",[4364],{"type":23,"value":4365,"position":4366},"Budgets and good citizenship",{"start":4367,"end":4369},{"line":1707,"column":56,"offset":4368},10104,{"line":1707,"column":33,"offset":4370},10132,{"start":4372,"end":4374},{"line":1707,"column":27,"offset":4373},10101,{"line":1707,"column":33,"offset":4370},{"type":23,"value":89},{"type":14,"tagName":107,"properties":4377,"children":4378,"position":4573},{},[4379,4387,4401,4408,4421,4427,4440,4447,4459,4466,4479,4486,4502,4509,4522,4529,4546,4553,4566],{"type":23,"value":4380,"position":4381},"A script can subscribe to ",{"start":4382,"end":4385},{"line":4383,"column":27,"offset":4384},158,10134,{"line":4383,"column":524,"offset":4386},10160,{"type":14,"tagName":111,"properties":4388,"children":4389,"position":4397},{},[4390],{"type":23,"value":4391,"position":4392},"at most 20 distinct sources",{"start":4393,"end":4395},{"line":4383,"column":29,"offset":4394},10162,{"line":4383,"column":1470,"offset":4396},10189,{"start":4398,"end":4399},{"line":4383,"column":524,"offset":4386},{"line":4383,"column":706,"offset":4400},10191,{"type":23,"value":4402,"position":4403},". The editor and the runtime enforce the same number, so a script that runs also passes validation; a 21st source fails with ",{"start":4404,"end":4405},{"line":4383,"column":706,"offset":4400},{"line":4383,"column":4406,"offset":4407},183,10316,{"type":14,"tagName":136,"properties":4409,"children":4410,"position":4418},{},[4411],{"type":23,"value":4412,"position":4413},"Script exceeds the source budget (21/20)",{"start":4414,"end":4415},{"line":4383,"column":4406,"offset":4407},{"line":4383,"column":4416,"offset":4417},225,10358,{"start":4419,"end":4420},{"line":4383,"column":4406,"offset":4407},{"line":4383,"column":4416,"offset":4417},{"type":23,"value":4422,"position":4423},". Identical ",{"start":4424,"end":4425},{"line":4383,"column":4416,"offset":4417},{"line":4383,"column":3921,"offset":4426},10370,{"type":14,"tagName":136,"properties":4428,"children":4429,"position":4437},{},[4430],{"type":23,"value":4431,"position":4432},"source(...)",{"start":4433,"end":4434},{"line":4383,"column":3921,"offset":4426},{"line":4383,"column":4435,"offset":4436},250,10383,{"start":4438,"end":4439},{"line":4383,"column":3921,"offset":4426},{"line":4383,"column":4435,"offset":4436},{"type":23,"value":4441,"position":4442}," calls dedupe to one, and ",{"start":4443,"end":4444},{"line":4383,"column":4435,"offset":4436},{"line":4383,"column":4445,"offset":4446},276,10409,{"type":14,"tagName":136,"properties":4448,"children":4449,"position":4456},{},[4450],{"type":23,"value":871,"position":4451},{"start":4452,"end":4453},{"line":4383,"column":4445,"offset":4446},{"line":4383,"column":4454,"offset":4455},283,10416,{"start":4457,"end":4458},{"line":4383,"column":4445,"offset":4446},{"line":4383,"column":4454,"offset":4455},{"type":23,"value":4460,"position":4461}," over a source you already opened is free since it transforms already-fetched data rather than fetching. A coarser ",{"start":4462,"end":4463},{"line":4383,"column":4454,"offset":4455},{"line":4383,"column":4464,"offset":4465},398,10531,{"type":14,"tagName":136,"properties":4467,"children":4468,"position":4476},{},[4469],{"type":23,"value":4470,"position":4471},"request(sym, \"4h\")",{"start":4472,"end":4473},{"line":4383,"column":4464,"offset":4465},{"line":4383,"column":4474,"offset":4475},418,10551,{"start":4477,"end":4478},{"line":4383,"column":4464,"offset":4465},{"line":4383,"column":4474,"offset":4475},{"type":23,"value":4480,"position":4481},", however, is keyed by its interval, so it is its ",{"start":4482,"end":4483},{"line":4383,"column":4474,"offset":4475},{"line":4383,"column":4484,"offset":4485},468,10601,{"type":14,"tagName":111,"properties":4487,"children":4488,"position":4497},{},[4489],{"type":23,"value":1979,"position":4490},{"start":4491,"end":4494},{"line":4383,"column":4492,"offset":4493},470,10603,{"line":4383,"column":4495,"offset":4496},473,10606,{"start":4498,"end":4499},{"line":4383,"column":4484,"offset":4485},{"line":4383,"column":4500,"offset":4501},475,10608,{"type":23,"value":4503,"position":4504}," source distinct from a chart-interval ",{"start":4505,"end":4506},{"line":4383,"column":4500,"offset":4501},{"line":4383,"column":4507,"offset":4508},514,10647,{"type":14,"tagName":136,"properties":4510,"children":4511,"position":4519},{},[4512],{"type":23,"value":4513,"position":4514},"request(sym)",{"start":4515,"end":4516},{"line":4383,"column":4507,"offset":4508},{"line":4383,"column":4517,"offset":4518},528,10661,{"start":4520,"end":4521},{"line":4383,"column":4507,"offset":4508},{"line":4383,"column":4517,"offset":4518},{"type":23,"value":4523,"position":4524}," (see ",{"start":4525,"end":4526},{"line":4383,"column":4517,"offset":4518},{"line":4383,"column":4527,"offset":4528},534,10667,{"type":14,"tagName":265,"properties":4530,"children":4532,"position":4541},{"href":4531},"#higher-timeframe-requests-fetch-their-own-depth",[4533],{"type":23,"value":1192,"position":4534},{"start":4535,"end":4538},{"line":4383,"column":4536,"offset":4537},535,10668,{"line":4383,"column":4539,"offset":4540},582,10715,{"start":4542,"end":4543},{"line":4383,"column":4527,"offset":4528},{"line":4383,"column":4544,"offset":4545},633,10766,{"type":23,"value":4547,"position":4548},"); a symbol's calendar requests collapse onto at most two shared backing sources. Heavy source types count for more than one (",{"start":4549,"end":4550},{"line":4383,"column":4544,"offset":4545},{"line":4383,"column":4551,"offset":4552},759,10892,{"type":14,"tagName":136,"properties":4554,"children":4555,"position":4563},{},[4556],{"type":23,"value":4557,"position":4558},"orderbook",{"start":4559,"end":4560},{"line":4383,"column":4551,"offset":4552},{"line":4383,"column":4561,"offset":4562},770,10903,{"start":4564,"end":4565},{"line":4383,"column":4551,"offset":4552},{"line":4383,"column":4561,"offset":4562},{"type":23,"value":4567,"position":4568}," counts as 3), so a handful of order books reaches the cap sooner. Twenty distinct streams is ample headroom for multi-venue aggregation.",{"start":4569,"end":4570},{"line":4383,"column":4561,"offset":4562},{"line":4383,"column":4571,"offset":4572},907,11040,{"start":4574,"end":4575},{"line":4383,"column":27,"offset":4384},{"line":4383,"column":4571,"offset":4572},{"type":23,"value":89},{"type":14,"tagName":210,"properties":4578,"children":4580,"position":4589},{"id":4579},"availability",[4581],{"type":23,"value":4582,"position":4583},"Availability",{"start":4584,"end":4587},{"line":4585,"column":56,"offset":4586},160,11045,{"line":4585,"column":221,"offset":4588},11057,{"start":4590,"end":4592},{"line":4585,"column":27,"offset":4591},11042,{"line":4585,"column":221,"offset":4588},{"type":23,"value":89},{"type":14,"tagName":107,"properties":4595,"children":4596,"position":4624},{},[4597,4606,4618],{"type":23,"value":4598,"position":4599},"The language accepts any registered ",{"start":4600,"end":4603},{"line":4601,"column":27,"offset":4602},162,11059,{"line":4601,"column":4604,"offset":4605},37,11095,{"type":14,"tagName":136,"properties":4607,"children":4608,"position":4615},{},[4609],{"type":23,"value":4610,"position":4611},"(type, symbol, exchange)",{"start":4612,"end":4613},{"line":4601,"column":4604,"offset":4605},{"line":4601,"column":635,"offset":4614},11121,{"start":4616,"end":4617},{"line":4601,"column":4604,"offset":4605},{"line":4601,"column":635,"offset":4614},{"type":23,"value":4619,"position":4620}," 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":4621,"end":4622},{"line":4601,"column":635,"offset":4614},{"line":4601,"column":1069,"offset":4623},11368,{"start":4625,"end":4626},{"line":4601,"column":27,"offset":4602},{"line":4601,"column":1069,"offset":4623},{"quirksMode":4628},false,{"start":4630,"end":4631},{"line":27,"column":27,"offset":97},{"line":4632,"column":27,"offset":4633},163,11369,1782471843637]