[{"data":1,"prerenderedAt":3526},["ShallowReactive",2],{"kscript:getting-started/whats-new-v3":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":9,"tree":10},"getting-started/whats-new-v3","getting-started/whats-new-v3.md",{"title":7,"description":8},"What's New in v3","kScript v3 turns the language from plot-an-indicator into model-and-backtest-a-trading-idea: strategy backtesting with honest fills, typed structs, persistent collections, self-managing drawings, no-repaint multi-timeframe, multi-venue aggregation, and a reference-validated TA library. Every capability here is verified against the live engine.","---\ntitle: \"What's New in v3\"\ndescription: \"kScript v3 turns the language from plot-an-indicator into model-and-backtest-a-trading-idea: strategy backtesting with honest fills, typed structs, persistent collections, self-managing drawings, no-repaint multi-timeframe, multi-venue aggregation, and a reference-validated TA library. Every capability here is verified against the live engine.\"\n---\n\n# What's New in v3\n\nkScript v3 is the largest release since the language launched. v2 let you compute\na series and plot it. v3 lets you **model a trading idea and then backtest it**:\ndeclare a `strategy()`, place orders against a broker emulator with honest,\nlookahead-free fills, and read the equity curve and trade stats it earns. Under\nthat sits the language upgrade that makes real strategies writable: state in\ntyped structures across bars, drawings you can retire, higher and lower\ntimeframes without repaint risk, symbols and venues combined under one budget,\nand a technical-analysis library whose every function is validated against an\nindependent reference.\n\nIt is **additive**. Every v2 script keeps running, with its `//@version=2` line\nuntouched; new scripts start with `//@version=3` (see\n[The version marker](#the-version-marker) below — the engine treats the two\nmarkers identically).\n\n```\n            v2                              v3\n  ----------------------------    ------------------------------------\n  numbers, strings, booleans      + arrays & maps with lambdas/reducers\n  fire-and-forget plotting        + type Zone { ... } structs with methods\n  one symbol, one timeframe        + na & color as real types\n  ~15 ad-hoc TA helpers           + drawings: line/box/label/polyline/\n                                    linefill/table handles with .delete()\n                                  + htf()/ltf()/request(): no-repaint MTF,\n                                    multi-symbol, multi-venue aggregation\n                                  + 70+ reference-validated TA functions,\n                                    named streams (bb.upper, macd.signal)\n                                  + vwap(anchor=\"day\"|\"week\"|\"month\")\n                                  + strategy(): backtesting with orders,\n                                    brackets, equity, and honest fills\n                                    (spot and leveraged perps)\n                                  + foreign-domain panes: plotMatrix /\n                                    plotCurve / plotTiles dashboards\n                                  + tape by order size: buy/sell volume\n                                    bucketed into real USD size bands\n                                  + libraries: import \"@owner/name@1.0.0\"\n                                    shares functions and types\n                                  + a named limits manifest; every error\n                                    carries a line and column\n```\n\n## The headline capabilities\n\n### Strategy backtesting\n\nThe headline of the tier: a script can now declare `strategy(...)` instead of\n`define(...)`, place orders with `strategy.*` methods, and get a full backtest:\na trades list, an equity curve, and performance stats, rendered in the Strategy\nTester panel under the chart. Fills are deterministic and lookahead-free, and\nwhere a single bar cannot say which level traded first, the engine resolves the\nquestion with finer-interval data or discloses the assumption it made. Slippage\ncan even be priced from recorded order-book depth for your order size\n(`slippageModel=\"bookEstimate\"`).\n\n```javascript title=\"MA cross strategy\" lines wrap\n//@version=3\nstrategy(title=\"MA Cross Strategy\", initialCapital=10000, qtyType=\"percentOfEquity\", qtyValue=50, commissionPercent=0.05, slippageBps=2)\n\ntimeseries bars = ohlcv(symbol=currentSymbol, exchange=currentExchange)\ntimeseries fast = ema(source=bars.close, period=9)\ntimeseries slow = ema(source=bars.close, period=21)\n\nif (crossover(fast, slow)) {\n  strategy.entry(\"L\", \"long\")\n}\nif (crossunder(fast, slow)) {\n  strategy.closeAll()\n}\n\nplotLine(value=fast, width=1, colors=[\"#4f8cff\"], label=[\"Fast EMA\"], desc=[\"9-period EMA of close\"])\nplotLine(value=slow, width=1, colors=[\"#f59e0b\"], label=[\"Slow EMA\"], desc=[\"21-period EMA of close\"])\n```\n\nStart with [Build Your First Strategy](../strategies/first-strategy.md), then\nthe [Strategies section](../strategies/overview.md) for fill semantics, slippage\nmodels, and the stats reference.\n\n### Typed structs with methods\n\nDeclare a `type` with fields and behavior, construct instances with named fields,\nand carry them across bars. State now has the shape of the problem instead of a\npile of parallel arrays.\n\n```javascript title=\"Struct with a method\" lines wrap\n//@version=3\ndefine(title=\"Struct Methods\", position=\"offchart\", axis=true)\n\ntype Band {\n  top: number,\n  bottom: number,\n\n  func width() {\n    return this.top - this.bottom\n  }\n}\n\ntimeseries d = ohlcv(symbol=currentSymbol, exchange=currentExchange)\nvar band = Band.new(top=d.high[0], bottom=d.low[0])\nplotLine(value=band.width(), colors=[\"#2563eb\"], width=2, label=[\"Band width\"], desc=[\"high minus low via a struct method\"])\n```\n\nSee [User-Defined Types](/kscript/core-concepts/user-defined-types).\n\n### Self-managing drawings\n\nLines, boxes, labels, polylines, linefills, and tables are now **handles** you can\ncreate and `.delete()`. Build supply/demand zones that remove themselves when price\nmitigates them, or a live dashboard table that updates on the last bar.\n\nSee [Drawing Objects](/kscript/functions/drawing-objects).\n\n### No-repaint multi-timeframe\n\n`htf()` reads a **confirmed** higher timeframe with no look-ahead: the 4h value at\nany bar uses only data that closed before that bar. The repaint trap that\n`security()` invites in other languages is impossible by default. `ltf()` attaches\nfiner bars, and `request()` is one-line shorthand for loading another symbol.\n\nSee [Multi-Timeframe](/kscript/core-concepts/multi-timeframe).\n\n### Multi-venue aggregation\n\nA single script has **10 weighted source slots** to load from. Sum real buy/sell flow\nacross four exchanges into one cumulative delta, or aggregate open interest across\nvenues — the kind of cross-market view that took one source per script in v2.\n\nSee [Multi-Source & Aggregation](/kscript/core-concepts/multi-source) and\n[Data Sources](/kscript/core-concepts/data-sources) for all 18 source types.\n\n### A reference-validated TA library\n\n70+ canonical indicators, each matching an independent reference implementation.\nMulti-output indicators expose **named streams**: `bb.upper`, `macd.signal`,\n`stoch.k`, `supertrend.direction` — no more positional guesswork.\n\nSee the [TA Library](/kscript/functions/ta-library) and\n[Named Streams](/kscript/core-concepts/named-streams).\n\n### Session-anchored VWAP\n\n`vwap(anchor=\"day\" | \"week\" | \"month\")` resets on real UTC session boundaries\ninstead of drifting with however much history happened to load. The no-argument\nform is the familiar cumulative VWAP.\n\nSee [Special Indicators](/kscript/functions/special-indicators).\n\n### Foreign-domain panes\n\nA script can now emit a whole offchart pane that ignores the time axis:\n`plotMatrix()` renders a categorical grid (rows × columns, like a month-by-year\nreturns table), `plotCurve()` renders series over a numeric X domain (strikes,\nspot levels, distribution buckets), and `plotTiles()` renders a KPI card\ndashboard, including computed text tiles. The pane keeps its own X domain, so\ntime pan and zoom leave it untouched, and every cap is enforced as a named\ncompile error rather than silent truncation.\n\nSee [Foreign-Domain Panes](/kscript/functions/foreign-panes) for the full\nreference and the [Historical Returns Matrix](/kscript/cookbook/historical-returns)\ncookbook recipe for a complete worked example.\n\n### Tape by order size\n\nThe array-celled `trade_volume_by_size` source delivers buy/sell volume\nbucketed by real USD order size, so whale flow comes from actual trade sizes\ninstead of candle-geometry proxies, with per-bar trade counts included.\n`buy_sell_volume` also gains a `currency=\"USD\"` option for quote-notional CVD.\n\nSee [Data Sources](/kscript/core-concepts/data-sources) and the\n[Whale vs Retail CVD](/kscript/cookbook/tape-reader) recipe.\n\n### Perps backtesting\n\n`strategy(...)` accepts `instrument=\"perps\"`: leveraged sizing on isolated\nmargin, maker/taker fees, funding from recorded data, a liquidation model with\nan `onLiquidation` policy, and a set of perps-specific stats alongside the\nspot metrics.\n\nSee [Perps: Margin, Liquidation, and Funding](/kscript/strategies/perps).\n\n### Script libraries\n\nShared code is now a first-class concept: write your normalization math, risk\nmodel, or zone structs once as a `library(\"name\")` of functions and types,\nand import it from any script with `import \"@owner/name\"`, an exact version\npin (`@owner/name@1.0.0`), or an alias (`as norm`). Libraries are authored in\nthe editor's Libraries panel, run under exactly the same sandbox as the\nimporting script, and are **frozen into the script at save**, so a chart\nnever depends on a registry at runtime and a published library update never\nsilently changes a script that pinned its version.\n\nSee [Libraries](/kscript/functions/libraries).\n\n### Quality-of-life across the line\n\nLanded in the same release train: `plotHistogram()` for baseline-grown columns\n(MACD-style deltas), a comparator for `array.sort()`\n(`.sort((a, b) => b - a)`), `requestBars(..., anchor: \"latest\")` for datasets\npinned to the newest bars regardless of where the chart is panned, and\n`plotStatRow()` for the per-bar statistics strip under the price pane. The\n[release notes](/kscript/releases/changelog) carry the full list with exact\nerror texts.\n\n## Compatibility\n\n- **Every v2 script keeps running.** v3 is additive.\n- **Eight TA builtins were corrected to their textbook forms** (`ema` seeding,\n  `rsi` Wilder smoothing, `macd`, `psar`, `adx`, `highest`/`lowest`, strict `sma`\n  warmup). Early-bar values change for those functions; this is a correction, not\n  a regression, since each now matches an independent reference.\n- A few v2 conveniences were tightened or renamed; the\n  [v2 vs v3 migration guide](/kscript/migrations/v2-vs-v3) lists them.\n\n## The version marker\n\nA v3 script starts with `//@version=3` on its first line. `//@version=2` works\nexactly the same — the engine routes both markers to the same modern engine, and\nevery v3 capability above compiles and runs under either. `//@version=3` is the\ncanonical form (all of the platform's built-in scripts ship with it); existing\n`//@version=2` scripts need no change.\n\nWhat actually matters is that the marker is present and on the first line:\n**no marker at all, or `//@version=1`, routes the script to the deprecated\nlegacy v1 engine**, where none of the v3 features exist. Unrecognized numbers\n(`//@version=4` and up) are not valid markers; the engine logs a console warning\n(\"Version 4 not supported, using v2\") and treats them as modern, but do not rely\non that coercion.\n\n```javascript title=\"v3 marker\" lines wrap\n//@version=3\ndefine(title=\"v3 marker\", position=\"offchart\", axis=true)\n\ntimeseries d = ohlcv(symbol=currentSymbol, exchange=currentExchange)\ntimeseries sma20 = sma(source=d.close, period=20)\nplotLine(value=sma20, colors=[\"#2563eb\"], width=2, label=[\"SMA 20\"], desc=[\"v3 features under the v3 marker\"])\n```\n\nIf something does not behave as documented, the\n[Common Errors](/kscript/faq/common-errors) page maps every real engine error\nmessage to its cause and fix.\n",{"type":11,"children":12,"data":3518,"position":3520},"root",[13,16,81,82,187,188,206,207,225,226,244,245,336,337,897,898,961,962,978,979,1012,1013,1391,1392,1429,1430,1447,1448,1505,1506,1542,1543,1559,1560,1666,1667,1702,1703,1719,1720,1756,1757,1814,1815,1831,1832,1939,1940,1995,1996,2013,2014,2042,2043,2077,2078,2094,2095,2169,2170,2227,2228,2244,2245,2315,2316,2372,2373,2389,2390,2453,2454,2487,2488,2504,2505,2618,2619,2651,2652,2668,2669,2800,2801,2816,2817,3071,3072,3087,3088,3172,3173,3247,3248,3480,3481],{"type":14,"value":15},"text","\n",{"type":17,"tagName":18,"properties":19,"children":20,"position":78},"element","p",{},[21,32,50,58,72],{"type":14,"value":22,"position":23},"kScript v3 is the largest release since the language launched. v2 let you compute\na series and plot it. v3 lets you ",{"start":24,"end":28},{"line":25,"column":26,"offset":27},3,1,20,{"line":29,"column":30,"offset":31},4,35,136,{"type":17,"tagName":33,"properties":34,"children":35,"position":45},"strong",{},[36],{"type":14,"value":37,"position":38},"model a trading idea and then backtest it",{"start":39,"end":42},{"line":29,"column":40,"offset":41},37,138,{"line":29,"column":43,"offset":44},78,179,{"start":46,"end":47},{"line":29,"column":30,"offset":31},{"line":29,"column":48,"offset":49},80,181,{"type":14,"value":51,"position":52},":\ndeclare a ",{"start":53,"end":54},{"line":29,"column":48,"offset":49},{"line":55,"column":56,"offset":57},5,11,193,{"type":17,"tagName":59,"properties":60,"children":61,"position":69},"code",{},[62],{"type":14,"value":63,"position":64},"strategy()",{"start":65,"end":66},{"line":55,"column":56,"offset":57},{"line":55,"column":67,"offset":68},23,205,{"start":70,"end":71},{"line":55,"column":56,"offset":57},{"line":55,"column":67,"offset":68},{"type":14,"value":73,"position":74},", place orders against a broker emulator with honest,\nlookahead-free fills, and read the equity curve and trade stats it earns. Under\nthat sits the language upgrade that makes real strategies writable: state in\ntyped structures across bars, drawings you can retire, higher and lower\ntimeframes without repaint risk, symbols and venues combined under one budget,\nand a technical-analysis library whose every function is validated against an\nindependent reference.",{"start":75,"end":76},{"line":55,"column":67,"offset":68},{"line":56,"column":67,"offset":77},667,{"start":79,"end":80},{"line":25,"column":26,"offset":27},{"line":56,"column":67,"offset":77},{"type":14,"value":15},{"type":17,"tagName":18,"properties":83,"children":84,"position":184},{},[85,94,111,118,131,138,151,158,176],{"type":14,"value":86,"position":87},"It is ",{"start":88,"end":91},{"line":89,"column":26,"offset":90},13,669,{"line":89,"column":92,"offset":93},7,675,{"type":17,"tagName":33,"properties":95,"children":96,"position":106},{},[97],{"type":14,"value":98,"position":99},"additive",{"start":100,"end":103},{"line":89,"column":101,"offset":102},9,677,{"line":89,"column":104,"offset":105},17,685,{"start":107,"end":108},{"line":89,"column":92,"offset":93},{"line":89,"column":109,"offset":110},19,687,{"type":14,"value":112,"position":113},". Every v2 script keeps running, with its ",{"start":114,"end":115},{"line":89,"column":109,"offset":110},{"line":89,"column":116,"offset":117},61,729,{"type":17,"tagName":59,"properties":119,"children":120,"position":128},{},[121],{"type":14,"value":122,"position":123},"//@version=2",{"start":124,"end":125},{"line":89,"column":116,"offset":117},{"line":89,"column":126,"offset":127},75,743,{"start":129,"end":130},{"line":89,"column":116,"offset":117},{"line":89,"column":126,"offset":127},{"type":14,"value":132,"position":133}," line\nuntouched; new scripts start with ",{"start":134,"end":135},{"line":89,"column":126,"offset":127},{"line":136,"column":30,"offset":137},14,783,{"type":17,"tagName":59,"properties":139,"children":140,"position":148},{},[141],{"type":14,"value":142,"position":143},"//@version=3",{"start":144,"end":145},{"line":136,"column":30,"offset":137},{"line":136,"column":146,"offset":147},49,797,{"start":149,"end":150},{"line":136,"column":30,"offset":137},{"line":136,"column":146,"offset":147},{"type":14,"value":152,"position":153}," (see\n",{"start":154,"end":155},{"line":136,"column":146,"offset":147},{"line":156,"column":26,"offset":157},15,803,{"type":17,"tagName":159,"properties":160,"children":162,"position":171},"a",{"href":161},"#the-version-marker",[163],{"type":14,"value":164,"position":165},"The version marker",{"start":166,"end":169},{"line":156,"column":167,"offset":168},2,804,{"line":156,"column":27,"offset":170},822,{"start":172,"end":173},{"line":156,"column":26,"offset":157},{"line":156,"column":174,"offset":175},42,844,{"type":14,"value":177,"position":178}," below — the engine treats the two\nmarkers identically).",{"start":179,"end":180},{"line":156,"column":174,"offset":175},{"line":181,"column":182,"offset":183},16,22,900,{"start":185,"end":186},{"line":89,"column":26,"offset":90},{"line":181,"column":182,"offset":183},{"type":14,"value":15},{"type":17,"tagName":189,"properties":190,"children":191,"position":203},"pre",{},[192],{"type":17,"tagName":59,"properties":193,"children":194,"position":197},{},[195],{"type":14,"value":196},"            v2                              v3\n  ----------------------------    ------------------------------------\n  numbers, strings, booleans      + arrays & maps with lambdas/reducers\n  fire-and-forget plotting        + type Zone { ... } structs with methods\n  one symbol, one timeframe        + na & color as real types\n  ~15 ad-hoc TA helpers           + drawings: line/box/label/polyline/\n                                    linefill/table handles with .delete()\n                                  + htf()/ltf()/request(): no-repaint MTF,\n                                    multi-symbol, multi-venue aggregation\n                                  + 70+ reference-validated TA functions,\n                                    named streams (bb.upper, macd.signal)\n                                  + vwap(anchor=\"day\"|\"week\"|\"month\")\n                                  + strategy(): backtesting with orders,\n                                    brackets, equity, and honest fills\n                                    (spot and leveraged perps)\n                                  + foreign-domain panes: plotMatrix /\n                                    plotCurve / plotTiles dashboards\n                                  + tape by order size: buy/sell volume\n                                    bucketed into real USD size bands\n                                  + libraries: import \"@owner/name@1.0.0\"\n                                    shares functions and types\n                                  + a named limits manifest; every error\n                                    carries a line and column\n",{"start":198,"end":201},{"line":199,"column":26,"offset":200},18,902,{"line":174,"column":29,"offset":202},2509,{"start":204,"end":205},{"line":199,"column":26,"offset":200},{"line":174,"column":29,"offset":202},{"type":14,"value":15},{"type":17,"tagName":208,"properties":209,"children":211,"position":221},"h2",{"id":210},"the-headline-capabilities",[212],{"type":14,"value":213,"position":214},"The headline capabilities",{"start":215,"end":218},{"line":216,"column":29,"offset":217},44,2514,{"line":216,"column":219,"offset":220},29,2539,{"start":222,"end":224},{"line":216,"column":26,"offset":223},2511,{"line":216,"column":219,"offset":220},{"type":14,"value":15},{"type":17,"tagName":227,"properties":228,"children":230,"position":240},"h3",{"id":229},"strategy-backtesting",[231],{"type":14,"value":232,"position":233},"Strategy backtesting",{"start":234,"end":237},{"line":235,"column":55,"offset":236},46,2545,{"line":235,"column":238,"offset":239},25,2565,{"start":241,"end":243},{"line":235,"column":26,"offset":242},2541,{"line":235,"column":238,"offset":239},{"type":14,"value":15},{"type":17,"tagName":18,"properties":246,"children":247,"position":333},{},[248,257,270,276,288,295,307,314,327],{"type":14,"value":249,"position":250},"The headline of the tier: a script can now declare ",{"start":251,"end":254},{"line":252,"column":26,"offset":253},48,2567,{"line":252,"column":255,"offset":256},52,2618,{"type":17,"tagName":59,"properties":258,"children":259,"position":267},{},[260],{"type":14,"value":261,"position":262},"strategy(...)",{"start":263,"end":264},{"line":252,"column":255,"offset":256},{"line":252,"column":265,"offset":266},67,2633,{"start":268,"end":269},{"line":252,"column":255,"offset":256},{"line":252,"column":265,"offset":266},{"type":14,"value":271,"position":272}," instead of\n",{"start":273,"end":274},{"line":252,"column":265,"offset":266},{"line":146,"column":26,"offset":275},2645,{"type":17,"tagName":59,"properties":277,"children":278,"position":285},{},[279],{"type":14,"value":280,"position":281},"define(...)",{"start":282,"end":283},{"line":146,"column":26,"offset":275},{"line":146,"column":136,"offset":284},2658,{"start":286,"end":287},{"line":146,"column":26,"offset":275},{"line":146,"column":136,"offset":284},{"type":14,"value":289,"position":290},", place orders with ",{"start":291,"end":292},{"line":146,"column":136,"offset":284},{"line":146,"column":293,"offset":294},34,2678,{"type":17,"tagName":59,"properties":296,"children":297,"position":304},{},[298],{"type":14,"value":299,"position":300},"strategy.*",{"start":301,"end":302},{"line":146,"column":293,"offset":294},{"line":146,"column":235,"offset":303},2690,{"start":305,"end":306},{"line":146,"column":293,"offset":294},{"line":146,"column":235,"offset":303},{"type":14,"value":308,"position":309}," methods, and get a full backtest:\na trades list, an equity curve, and performance stats, rendered in the Strategy\nTester panel under the chart. Fills are deterministic and lookahead-free, and\nwhere a single bar cannot say which level traded first, the engine resolves the\nquestion with finer-interval data or discloses the assumption it made. Slippage\ncan even be priced from recorded order-book depth for your order size\n(",{"start":310,"end":311},{"line":146,"column":235,"offset":303},{"line":312,"column":167,"offset":313},55,3114,{"type":17,"tagName":59,"properties":315,"children":316,"position":324},{},[317],{"type":14,"value":318,"position":319},"slippageModel=\"bookEstimate\"",{"start":320,"end":321},{"line":312,"column":167,"offset":313},{"line":312,"column":322,"offset":323},32,3144,{"start":325,"end":326},{"line":312,"column":167,"offset":313},{"line":312,"column":322,"offset":323},{"type":14,"value":328,"position":329},").",{"start":330,"end":331},{"line":312,"column":322,"offset":323},{"line":312,"column":293,"offset":332},3146,{"start":334,"end":335},{"line":252,"column":26,"offset":253},{"line":312,"column":293,"offset":332},{"type":14,"value":15},{"type":11,"children":338},[339],{"type":17,"tagName":189,"properties":340,"children":345,"data":-1},{"class":341,"style":342,"tabindex":343,"title":344},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0","MA cross strategy",[346],{"type":17,"tagName":59,"properties":347,"children":348},{},[349,359,360,463,464,467,468,508,509,553,554,595,596,599,600,623,624,661,662,670,671,691,692,709,710,717,718,721,722,813,814],{"type":17,"tagName":350,"properties":351,"children":353},"span",{"class":352},"line",[354],{"type":17,"tagName":350,"properties":355,"children":357},{"style":356},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[358],{"type":14,"value":142},{"type":14,"value":15},{"type":17,"tagName":350,"properties":361,"children":362},{"class":352},[363,369,375,381,387,392,396,402,407,411,416,421,425,430,435,439,444,449,453,458],{"type":17,"tagName":350,"properties":364,"children":366},{"style":365},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[367],{"type":14,"value":368},"strategy",{"type":17,"tagName":350,"properties":370,"children":372},{"style":371},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[373],{"type":14,"value":374},"(title",{"type":17,"tagName":350,"properties":376,"children":378},{"style":377},"--shiki-dark:#F97583;--shiki-light:#D73A49",[379],{"type":14,"value":380},"=",{"type":17,"tagName":350,"properties":382,"children":384},{"style":383},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[385],{"type":14,"value":386},"\"MA Cross Strategy\"",{"type":17,"tagName":350,"properties":388,"children":389},{"style":371},[390],{"type":14,"value":391},", initialCapital",{"type":17,"tagName":350,"properties":393,"children":394},{"style":377},[395],{"type":14,"value":380},{"type":17,"tagName":350,"properties":397,"children":399},{"style":398},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[400],{"type":14,"value":401},"10000",{"type":17,"tagName":350,"properties":403,"children":404},{"style":371},[405],{"type":14,"value":406},", qtyType",{"type":17,"tagName":350,"properties":408,"children":409},{"style":377},[410],{"type":14,"value":380},{"type":17,"tagName":350,"properties":412,"children":413},{"style":383},[414],{"type":14,"value":415},"\"percentOfEquity\"",{"type":17,"tagName":350,"properties":417,"children":418},{"style":371},[419],{"type":14,"value":420},", qtyValue",{"type":17,"tagName":350,"properties":422,"children":423},{"style":377},[424],{"type":14,"value":380},{"type":17,"tagName":350,"properties":426,"children":427},{"style":398},[428],{"type":14,"value":429},"50",{"type":17,"tagName":350,"properties":431,"children":432},{"style":371},[433],{"type":14,"value":434},", commissionPercent",{"type":17,"tagName":350,"properties":436,"children":437},{"style":377},[438],{"type":14,"value":380},{"type":17,"tagName":350,"properties":440,"children":441},{"style":398},[442],{"type":14,"value":443},"0.05",{"type":17,"tagName":350,"properties":445,"children":446},{"style":371},[447],{"type":14,"value":448},", slippageBps",{"type":17,"tagName":350,"properties":450,"children":451},{"style":377},[452],{"type":14,"value":380},{"type":17,"tagName":350,"properties":454,"children":455},{"style":398},[456],{"type":14,"value":457},"2",{"type":17,"tagName":350,"properties":459,"children":460},{"style":371},[461],{"type":14,"value":462},")",{"type":14,"value":15},{"type":17,"tagName":350,"properties":465,"children":466},{"class":352},[],{"type":14,"value":15},{"type":17,"tagName":350,"properties":469,"children":470},{"class":352},[471,476,480,485,490,494,499,503],{"type":17,"tagName":350,"properties":472,"children":473},{"style":371},[474],{"type":14,"value":475},"timeseries bars ",{"type":17,"tagName":350,"properties":477,"children":478},{"style":377},[479],{"type":14,"value":380},{"type":17,"tagName":350,"properties":481,"children":482},{"style":365},[483],{"type":14,"value":484}," ohlcv",{"type":17,"tagName":350,"properties":486,"children":487},{"style":371},[488],{"type":14,"value":489},"(symbol",{"type":17,"tagName":350,"properties":491,"children":492},{"style":377},[493],{"type":14,"value":380},{"type":17,"tagName":350,"properties":495,"children":496},{"style":371},[497],{"type":14,"value":498},"currentSymbol, exchange",{"type":17,"tagName":350,"properties":500,"children":501},{"style":377},[502],{"type":14,"value":380},{"type":17,"tagName":350,"properties":504,"children":505},{"style":371},[506],{"type":14,"value":507},"currentExchange)",{"type":14,"value":15},{"type":17,"tagName":350,"properties":510,"children":511},{"class":352},[512,517,521,526,531,535,540,544,549],{"type":17,"tagName":350,"properties":513,"children":514},{"style":371},[515],{"type":14,"value":516},"timeseries fast ",{"type":17,"tagName":350,"properties":518,"children":519},{"style":377},[520],{"type":14,"value":380},{"type":17,"tagName":350,"properties":522,"children":523},{"style":365},[524],{"type":14,"value":525}," ema",{"type":17,"tagName":350,"properties":527,"children":528},{"style":371},[529],{"type":14,"value":530},"(source",{"type":17,"tagName":350,"properties":532,"children":533},{"style":377},[534],{"type":14,"value":380},{"type":17,"tagName":350,"properties":536,"children":537},{"style":371},[538],{"type":14,"value":539},"bars.close, period",{"type":17,"tagName":350,"properties":541,"children":542},{"style":377},[543],{"type":14,"value":380},{"type":17,"tagName":350,"properties":545,"children":546},{"style":398},[547],{"type":14,"value":548},"9",{"type":17,"tagName":350,"properties":550,"children":551},{"style":371},[552],{"type":14,"value":462},{"type":14,"value":15},{"type":17,"tagName":350,"properties":555,"children":556},{"class":352},[557,562,566,570,574,578,582,586,591],{"type":17,"tagName":350,"properties":558,"children":559},{"style":371},[560],{"type":14,"value":561},"timeseries slow ",{"type":17,"tagName":350,"properties":563,"children":564},{"style":377},[565],{"type":14,"value":380},{"type":17,"tagName":350,"properties":567,"children":568},{"style":365},[569],{"type":14,"value":525},{"type":17,"tagName":350,"properties":571,"children":572},{"style":371},[573],{"type":14,"value":530},{"type":17,"tagName":350,"properties":575,"children":576},{"style":377},[577],{"type":14,"value":380},{"type":17,"tagName":350,"properties":579,"children":580},{"style":371},[581],{"type":14,"value":539},{"type":17,"tagName":350,"properties":583,"children":584},{"style":377},[585],{"type":14,"value":380},{"type":17,"tagName":350,"properties":587,"children":588},{"style":398},[589],{"type":14,"value":590},"21",{"type":17,"tagName":350,"properties":592,"children":593},{"style":371},[594],{"type":14,"value":462},{"type":14,"value":15},{"type":17,"tagName":350,"properties":597,"children":598},{"class":352},[],{"type":14,"value":15},{"type":17,"tagName":350,"properties":601,"children":602},{"class":352},[603,608,613,618],{"type":17,"tagName":350,"properties":604,"children":605},{"style":377},[606],{"type":14,"value":607},"if",{"type":17,"tagName":350,"properties":609,"children":610},{"style":371},[611],{"type":14,"value":612}," (",{"type":17,"tagName":350,"properties":614,"children":615},{"style":365},[616],{"type":14,"value":617},"crossover",{"type":17,"tagName":350,"properties":619,"children":620},{"style":371},[621],{"type":14,"value":622},"(fast, slow)) {",{"type":14,"value":15},{"type":17,"tagName":350,"properties":625,"children":626},{"class":352},[627,632,637,642,647,652,657],{"type":17,"tagName":350,"properties":628,"children":629},{"style":371},[630],{"type":14,"value":631},"  strategy.",{"type":17,"tagName":350,"properties":633,"children":634},{"style":365},[635],{"type":14,"value":636},"entry",{"type":17,"tagName":350,"properties":638,"children":639},{"style":371},[640],{"type":14,"value":641},"(",{"type":17,"tagName":350,"properties":643,"children":644},{"style":383},[645],{"type":14,"value":646},"\"L\"",{"type":17,"tagName":350,"properties":648,"children":649},{"style":371},[650],{"type":14,"value":651},", ",{"type":17,"tagName":350,"properties":653,"children":654},{"style":383},[655],{"type":14,"value":656},"\"long\"",{"type":17,"tagName":350,"properties":658,"children":659},{"style":371},[660],{"type":14,"value":462},{"type":14,"value":15},{"type":17,"tagName":350,"properties":663,"children":664},{"class":352},[665],{"type":17,"tagName":350,"properties":666,"children":667},{"style":371},[668],{"type":14,"value":669},"}",{"type":14,"value":15},{"type":17,"tagName":350,"properties":672,"children":673},{"class":352},[674,678,682,687],{"type":17,"tagName":350,"properties":675,"children":676},{"style":377},[677],{"type":14,"value":607},{"type":17,"tagName":350,"properties":679,"children":680},{"style":371},[681],{"type":14,"value":612},{"type":17,"tagName":350,"properties":683,"children":684},{"style":365},[685],{"type":14,"value":686},"crossunder",{"type":17,"tagName":350,"properties":688,"children":689},{"style":371},[690],{"type":14,"value":622},{"type":14,"value":15},{"type":17,"tagName":350,"properties":693,"children":694},{"class":352},[695,699,704],{"type":17,"tagName":350,"properties":696,"children":697},{"style":371},[698],{"type":14,"value":631},{"type":17,"tagName":350,"properties":700,"children":701},{"style":365},[702],{"type":14,"value":703},"closeAll",{"type":17,"tagName":350,"properties":705,"children":706},{"style":371},[707],{"type":14,"value":708},"()",{"type":14,"value":15},{"type":17,"tagName":350,"properties":711,"children":712},{"class":352},[713],{"type":17,"tagName":350,"properties":714,"children":715},{"style":371},[716],{"type":14,"value":669},{"type":14,"value":15},{"type":17,"tagName":350,"properties":719,"children":720},{"class":352},[],{"type":14,"value":15},{"type":17,"tagName":350,"properties":723,"children":724},{"class":352},[725,730,735,739,744,748,753,758,762,767,772,777,781,785,790,795,799,803,808],{"type":17,"tagName":350,"properties":726,"children":727},{"style":365},[728],{"type":14,"value":729},"plotLine",{"type":17,"tagName":350,"properties":731,"children":732},{"style":371},[733],{"type":14,"value":734},"(value",{"type":17,"tagName":350,"properties":736,"children":737},{"style":377},[738],{"type":14,"value":380},{"type":17,"tagName":350,"properties":740,"children":741},{"style":371},[742],{"type":14,"value":743},"fast, width",{"type":17,"tagName":350,"properties":745,"children":746},{"style":377},[747],{"type":14,"value":380},{"type":17,"tagName":350,"properties":749,"children":750},{"style":398},[751],{"type":14,"value":752},"1",{"type":17,"tagName":350,"properties":754,"children":755},{"style":371},[756],{"type":14,"value":757},", colors",{"type":17,"tagName":350,"properties":759,"children":760},{"style":377},[761],{"type":14,"value":380},{"type":17,"tagName":350,"properties":763,"children":764},{"style":371},[765],{"type":14,"value":766},"[",{"type":17,"tagName":350,"properties":768,"children":769},{"style":383},[770],{"type":14,"value":771},"\"#4f8cff\"",{"type":17,"tagName":350,"properties":773,"children":774},{"style":371},[775],{"type":14,"value":776},"], label",{"type":17,"tagName":350,"properties":778,"children":779},{"style":377},[780],{"type":14,"value":380},{"type":17,"tagName":350,"properties":782,"children":783},{"style":371},[784],{"type":14,"value":766},{"type":17,"tagName":350,"properties":786,"children":787},{"style":383},[788],{"type":14,"value":789},"\"Fast EMA\"",{"type":17,"tagName":350,"properties":791,"children":792},{"style":371},[793],{"type":14,"value":794},"], desc",{"type":17,"tagName":350,"properties":796,"children":797},{"style":377},[798],{"type":14,"value":380},{"type":17,"tagName":350,"properties":800,"children":801},{"style":371},[802],{"type":14,"value":766},{"type":17,"tagName":350,"properties":804,"children":805},{"style":383},[806],{"type":14,"value":807},"\"9-period EMA of close\"",{"type":17,"tagName":350,"properties":809,"children":810},{"style":371},[811],{"type":14,"value":812},"])",{"type":14,"value":15},{"type":17,"tagName":350,"properties":815,"children":816},{"class":352},[817,821,825,829,834,838,842,846,850,854,859,863,867,871,876,880,884,888,893],{"type":17,"tagName":350,"properties":818,"children":819},{"style":365},[820],{"type":14,"value":729},{"type":17,"tagName":350,"properties":822,"children":823},{"style":371},[824],{"type":14,"value":734},{"type":17,"tagName":350,"properties":826,"children":827},{"style":377},[828],{"type":14,"value":380},{"type":17,"tagName":350,"properties":830,"children":831},{"style":371},[832],{"type":14,"value":833},"slow, width",{"type":17,"tagName":350,"properties":835,"children":836},{"style":377},[837],{"type":14,"value":380},{"type":17,"tagName":350,"properties":839,"children":840},{"style":398},[841],{"type":14,"value":752},{"type":17,"tagName":350,"properties":843,"children":844},{"style":371},[845],{"type":14,"value":757},{"type":17,"tagName":350,"properties":847,"children":848},{"style":377},[849],{"type":14,"value":380},{"type":17,"tagName":350,"properties":851,"children":852},{"style":371},[853],{"type":14,"value":766},{"type":17,"tagName":350,"properties":855,"children":856},{"style":383},[857],{"type":14,"value":858},"\"#f59e0b\"",{"type":17,"tagName":350,"properties":860,"children":861},{"style":371},[862],{"type":14,"value":776},{"type":17,"tagName":350,"properties":864,"children":865},{"style":377},[866],{"type":14,"value":380},{"type":17,"tagName":350,"properties":868,"children":869},{"style":371},[870],{"type":14,"value":766},{"type":17,"tagName":350,"properties":872,"children":873},{"style":383},[874],{"type":14,"value":875},"\"Slow EMA\"",{"type":17,"tagName":350,"properties":877,"children":878},{"style":371},[879],{"type":14,"value":794},{"type":17,"tagName":350,"properties":881,"children":882},{"style":377},[883],{"type":14,"value":380},{"type":17,"tagName":350,"properties":885,"children":886},{"style":371},[887],{"type":14,"value":766},{"type":17,"tagName":350,"properties":889,"children":890},{"style":383},[891],{"type":14,"value":892},"\"21-period EMA of close\"",{"type":17,"tagName":350,"properties":894,"children":895},{"style":371},[896],{"type":14,"value":812},{"type":14,"value":15},{"type":17,"tagName":18,"properties":899,"children":900,"position":958},{},[901,910,927,934,951],{"type":14,"value":902,"position":903},"Start with ",{"start":904,"end":907},{"line":905,"column":26,"offset":906},76,3852,{"line":905,"column":908,"offset":909},12,3863,{"type":17,"tagName":159,"properties":911,"children":913,"position":922},{"href":912},"../strategies/first-strategy.md",[914],{"type":14,"value":915,"position":916},"Build Your First Strategy",{"start":917,"end":919},{"line":905,"column":89,"offset":918},3864,{"line":905,"column":920,"offset":921},38,3889,{"start":923,"end":924},{"line":905,"column":908,"offset":909},{"line":905,"column":925,"offset":926},72,3923,{"type":14,"value":928,"position":929},", then\nthe ",{"start":930,"end":931},{"line":905,"column":925,"offset":926},{"line":932,"column":55,"offset":933},77,3934,{"type":17,"tagName":159,"properties":935,"children":937,"position":947},{"href":936},"../strategies/overview.md",[938],{"type":14,"value":939,"position":940},"Strategies section",{"start":941,"end":944},{"line":932,"column":942,"offset":943},6,3935,{"line":932,"column":945,"offset":946},24,3953,{"start":948,"end":949},{"line":932,"column":55,"offset":933},{"line":932,"column":255,"offset":950},3981,{"type":14,"value":952,"position":953}," for fill semantics, slippage\nmodels, and the stats reference.",{"start":954,"end":955},{"line":932,"column":255,"offset":950},{"line":43,"column":956,"offset":957},33,4043,{"start":959,"end":960},{"line":905,"column":26,"offset":906},{"line":43,"column":956,"offset":957},{"type":14,"value":15},{"type":17,"tagName":227,"properties":963,"children":965,"position":974},{"id":964},"typed-structs-with-methods",[966],{"type":14,"value":967,"position":968},"Typed structs with methods",{"start":969,"end":971},{"line":48,"column":55,"offset":970},4049,{"line":48,"column":972,"offset":973},31,4075,{"start":975,"end":977},{"line":48,"column":26,"offset":976},4045,{"line":48,"column":972,"offset":973},{"type":14,"value":15},{"type":17,"tagName":18,"properties":980,"children":981,"position":1009},{},[982,990,1002],{"type":14,"value":983,"position":984},"Declare a ",{"start":985,"end":988},{"line":986,"column":26,"offset":987},82,4077,{"line":986,"column":56,"offset":989},4087,{"type":17,"tagName":59,"properties":991,"children":992,"position":999},{},[993],{"type":14,"value":994,"position":995},"type",{"start":996,"end":997},{"line":986,"column":56,"offset":989},{"line":986,"column":104,"offset":998},4093,{"start":1000,"end":1001},{"line":986,"column":56,"offset":989},{"line":986,"column":104,"offset":998},{"type":14,"value":1003,"position":1004}," with fields and behavior, construct instances with named fields,\nand carry them across bars. State now has the shape of the problem instead of a\npile of parallel arrays.",{"start":1005,"end":1006},{"line":986,"column":104,"offset":998},{"line":1007,"column":238,"offset":1008},84,4263,{"start":1010,"end":1011},{"line":986,"column":26,"offset":987},{"line":1007,"column":238,"offset":1008},{"type":14,"value":15},{"type":11,"children":1014},[1015],{"type":17,"tagName":189,"properties":1016,"children":1018,"data":-1},{"class":341,"style":342,"tabindex":343,"title":1017},"Struct with a method",[1019],{"type":17,"tagName":59,"properties":1020,"children":1021},{},[1022,1029,1030,1083,1084,1087,1088,1105,1106,1114,1115,1123,1124,1127,1128,1136,1137,1169,1170,1178,1179,1186,1187,1190,1191,1227,1228,1295,1296],{"type":17,"tagName":350,"properties":1023,"children":1024},{"class":352},[1025],{"type":17,"tagName":350,"properties":1026,"children":1027},{"style":356},[1028],{"type":14,"value":142},{"type":14,"value":15},{"type":17,"tagName":350,"properties":1031,"children":1032},{"class":352},[1033,1038,1042,1046,1051,1056,1060,1065,1070,1074,1079],{"type":17,"tagName":350,"properties":1034,"children":1035},{"style":365},[1036],{"type":14,"value":1037},"define",{"type":17,"tagName":350,"properties":1039,"children":1040},{"style":371},[1041],{"type":14,"value":374},{"type":17,"tagName":350,"properties":1043,"children":1044},{"style":377},[1045],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1047,"children":1048},{"style":383},[1049],{"type":14,"value":1050},"\"Struct Methods\"",{"type":17,"tagName":350,"properties":1052,"children":1053},{"style":371},[1054],{"type":14,"value":1055},", position",{"type":17,"tagName":350,"properties":1057,"children":1058},{"style":377},[1059],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1061,"children":1062},{"style":383},[1063],{"type":14,"value":1064},"\"offchart\"",{"type":17,"tagName":350,"properties":1066,"children":1067},{"style":371},[1068],{"type":14,"value":1069},", axis",{"type":17,"tagName":350,"properties":1071,"children":1072},{"style":377},[1073],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1075,"children":1076},{"style":398},[1077],{"type":14,"value":1078},"true",{"type":17,"tagName":350,"properties":1080,"children":1081},{"style":371},[1082],{"type":14,"value":462},{"type":14,"value":15},{"type":17,"tagName":350,"properties":1085,"children":1086},{"class":352},[],{"type":14,"value":15},{"type":17,"tagName":350,"properties":1089,"children":1090},{"class":352},[1091,1095,1100],{"type":17,"tagName":350,"properties":1092,"children":1093},{"style":377},[1094],{"type":14,"value":994},{"type":17,"tagName":350,"properties":1096,"children":1097},{"style":365},[1098],{"type":14,"value":1099}," Band",{"type":17,"tagName":350,"properties":1101,"children":1102},{"style":371},[1103],{"type":14,"value":1104}," {",{"type":14,"value":15},{"type":17,"tagName":350,"properties":1107,"children":1108},{"class":352},[1109],{"type":17,"tagName":350,"properties":1110,"children":1111},{"style":371},[1112],{"type":14,"value":1113},"  top: number,",{"type":14,"value":15},{"type":17,"tagName":350,"properties":1116,"children":1117},{"class":352},[1118],{"type":17,"tagName":350,"properties":1119,"children":1120},{"style":371},[1121],{"type":14,"value":1122},"  bottom: number,",{"type":14,"value":15},{"type":17,"tagName":350,"properties":1125,"children":1126},{"class":352},[],{"type":14,"value":15},{"type":17,"tagName":350,"properties":1129,"children":1130},{"class":352},[1131],{"type":17,"tagName":350,"properties":1132,"children":1133},{"style":371},[1134],{"type":14,"value":1135},"  func width() {",{"type":14,"value":15},{"type":17,"tagName":350,"properties":1138,"children":1139},{"class":352},[1140,1145,1150,1155,1160,1164],{"type":17,"tagName":350,"properties":1141,"children":1142},{"style":377},[1143],{"type":14,"value":1144},"    return",{"type":17,"tagName":350,"properties":1146,"children":1147},{"style":398},[1148],{"type":14,"value":1149}," this",{"type":17,"tagName":350,"properties":1151,"children":1152},{"style":371},[1153],{"type":14,"value":1154},".top ",{"type":17,"tagName":350,"properties":1156,"children":1157},{"style":377},[1158],{"type":14,"value":1159},"-",{"type":17,"tagName":350,"properties":1161,"children":1162},{"style":398},[1163],{"type":14,"value":1149},{"type":17,"tagName":350,"properties":1165,"children":1166},{"style":371},[1167],{"type":14,"value":1168},".bottom",{"type":14,"value":15},{"type":17,"tagName":350,"properties":1171,"children":1172},{"class":352},[1173],{"type":17,"tagName":350,"properties":1174,"children":1175},{"style":371},[1176],{"type":14,"value":1177},"  }",{"type":14,"value":15},{"type":17,"tagName":350,"properties":1180,"children":1181},{"class":352},[1182],{"type":17,"tagName":350,"properties":1183,"children":1184},{"style":371},[1185],{"type":14,"value":669},{"type":14,"value":15},{"type":17,"tagName":350,"properties":1188,"children":1189},{"class":352},[],{"type":14,"value":15},{"type":17,"tagName":350,"properties":1192,"children":1193},{"class":352},[1194,1199,1203,1207,1211,1215,1219,1223],{"type":17,"tagName":350,"properties":1195,"children":1196},{"style":371},[1197],{"type":14,"value":1198},"timeseries d ",{"type":17,"tagName":350,"properties":1200,"children":1201},{"style":377},[1202],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1204,"children":1205},{"style":365},[1206],{"type":14,"value":484},{"type":17,"tagName":350,"properties":1208,"children":1209},{"style":371},[1210],{"type":14,"value":489},{"type":17,"tagName":350,"properties":1212,"children":1213},{"style":377},[1214],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1216,"children":1217},{"style":371},[1218],{"type":14,"value":498},{"type":17,"tagName":350,"properties":1220,"children":1221},{"style":377},[1222],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1224,"children":1225},{"style":371},[1226],{"type":14,"value":507},{"type":14,"value":15},{"type":17,"tagName":350,"properties":1229,"children":1230},{"class":352},[1231,1236,1241,1245,1250,1255,1260,1264,1269,1273,1278,1282,1287,1291],{"type":17,"tagName":350,"properties":1232,"children":1233},{"style":377},[1234],{"type":14,"value":1235},"var",{"type":17,"tagName":350,"properties":1237,"children":1238},{"style":371},[1239],{"type":14,"value":1240}," band ",{"type":17,"tagName":350,"properties":1242,"children":1243},{"style":377},[1244],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1246,"children":1247},{"style":371},[1248],{"type":14,"value":1249}," Band.",{"type":17,"tagName":350,"properties":1251,"children":1252},{"style":365},[1253],{"type":14,"value":1254},"new",{"type":17,"tagName":350,"properties":1256,"children":1257},{"style":371},[1258],{"type":14,"value":1259},"(top",{"type":17,"tagName":350,"properties":1261,"children":1262},{"style":377},[1263],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1265,"children":1266},{"style":371},[1267],{"type":14,"value":1268},"d.high[",{"type":17,"tagName":350,"properties":1270,"children":1271},{"style":398},[1272],{"type":14,"value":343},{"type":17,"tagName":350,"properties":1274,"children":1275},{"style":371},[1276],{"type":14,"value":1277},"], bottom",{"type":17,"tagName":350,"properties":1279,"children":1280},{"style":377},[1281],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1283,"children":1284},{"style":371},[1285],{"type":14,"value":1286},"d.low[",{"type":17,"tagName":350,"properties":1288,"children":1289},{"style":398},[1290],{"type":14,"value":343},{"type":17,"tagName":350,"properties":1292,"children":1293},{"style":371},[1294],{"type":14,"value":812},{"type":14,"value":15},{"type":17,"tagName":350,"properties":1297,"children":1298},{"class":352},[1299,1303,1307,1311,1316,1321,1326,1330,1334,1339,1344,1348,1352,1357,1361,1365,1370,1374,1378,1382,1387],{"type":17,"tagName":350,"properties":1300,"children":1301},{"style":365},[1302],{"type":14,"value":729},{"type":17,"tagName":350,"properties":1304,"children":1305},{"style":371},[1306],{"type":14,"value":734},{"type":17,"tagName":350,"properties":1308,"children":1309},{"style":377},[1310],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1312,"children":1313},{"style":371},[1314],{"type":14,"value":1315},"band.",{"type":17,"tagName":350,"properties":1317,"children":1318},{"style":365},[1319],{"type":14,"value":1320},"width",{"type":17,"tagName":350,"properties":1322,"children":1323},{"style":371},[1324],{"type":14,"value":1325},"(), colors",{"type":17,"tagName":350,"properties":1327,"children":1328},{"style":377},[1329],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1331,"children":1332},{"style":371},[1333],{"type":14,"value":766},{"type":17,"tagName":350,"properties":1335,"children":1336},{"style":383},[1337],{"type":14,"value":1338},"\"#2563eb\"",{"type":17,"tagName":350,"properties":1340,"children":1341},{"style":371},[1342],{"type":14,"value":1343},"], width",{"type":17,"tagName":350,"properties":1345,"children":1346},{"style":377},[1347],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1349,"children":1350},{"style":398},[1351],{"type":14,"value":457},{"type":17,"tagName":350,"properties":1353,"children":1354},{"style":371},[1355],{"type":14,"value":1356},", label",{"type":17,"tagName":350,"properties":1358,"children":1359},{"style":377},[1360],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1362,"children":1363},{"style":371},[1364],{"type":14,"value":766},{"type":17,"tagName":350,"properties":1366,"children":1367},{"style":383},[1368],{"type":14,"value":1369},"\"Band width\"",{"type":17,"tagName":350,"properties":1371,"children":1372},{"style":371},[1373],{"type":14,"value":794},{"type":17,"tagName":350,"properties":1375,"children":1376},{"style":377},[1377],{"type":14,"value":380},{"type":17,"tagName":350,"properties":1379,"children":1380},{"style":371},[1381],{"type":14,"value":766},{"type":17,"tagName":350,"properties":1383,"children":1384},{"style":383},[1385],{"type":14,"value":1386},"\"high minus low via a struct method\"",{"type":17,"tagName":350,"properties":1388,"children":1389},{"style":371},[1390],{"type":14,"value":812},{"type":14,"value":15},{"type":17,"tagName":18,"properties":1393,"children":1394,"position":1426},{},[1395,1403,1419],{"type":14,"value":1396,"position":1397},"See ",{"start":1398,"end":1401},{"line":1399,"column":26,"offset":1400},104,4751,{"line":1399,"column":55,"offset":1402},4755,{"type":17,"tagName":159,"properties":1404,"children":1406,"position":1414},{"href":1405},"/kscript/core-concepts/user-defined-types",[1407],{"type":14,"value":1408,"position":1409},"User-Defined Types",{"start":1410,"end":1412},{"line":1399,"column":942,"offset":1411},4756,{"line":1399,"column":945,"offset":1413},4774,{"start":1415,"end":1416},{"line":1399,"column":55,"offset":1402},{"line":1399,"column":1417,"offset":1418},68,4818,{"type":14,"value":1420,"position":1421},".",{"start":1422,"end":1423},{"line":1399,"column":1417,"offset":1418},{"line":1399,"column":1424,"offset":1425},69,4819,{"start":1427,"end":1428},{"line":1399,"column":26,"offset":1400},{"line":1399,"column":1424,"offset":1425},{"type":14,"value":15},{"type":17,"tagName":227,"properties":1431,"children":1433,"position":1443},{"id":1432},"self-managing-drawings",[1434],{"type":14,"value":1435,"position":1436},"Self-managing drawings",{"start":1437,"end":1440},{"line":1438,"column":55,"offset":1439},106,4825,{"line":1438,"column":1441,"offset":1442},27,4847,{"start":1444,"end":1446},{"line":1438,"column":26,"offset":1445},4821,{"line":1438,"column":1441,"offset":1442},{"type":14,"value":15},{"type":17,"tagName":18,"properties":1449,"children":1450,"position":1502},{},[1451,1460,1476,1483,1495],{"type":14,"value":1452,"position":1453},"Lines, boxes, labels, polylines, linefills, and tables are now ",{"start":1454,"end":1457},{"line":1455,"column":26,"offset":1456},108,4849,{"line":1455,"column":1458,"offset":1459},64,4912,{"type":17,"tagName":33,"properties":1461,"children":1462,"position":1472},{},[1463],{"type":14,"value":1464,"position":1465},"handles",{"start":1466,"end":1469},{"line":1455,"column":1467,"offset":1468},66,4914,{"line":1455,"column":1470,"offset":1471},73,4921,{"start":1473,"end":1474},{"line":1455,"column":1458,"offset":1459},{"line":1455,"column":126,"offset":1475},4923,{"type":14,"value":1477,"position":1478}," you can\ncreate and ",{"start":1479,"end":1480},{"line":1455,"column":126,"offset":1475},{"line":1481,"column":908,"offset":1482},109,4943,{"type":17,"tagName":59,"properties":1484,"children":1485,"position":1492},{},[1486],{"type":14,"value":1487,"position":1488},".delete()",{"start":1489,"end":1490},{"line":1481,"column":908,"offset":1482},{"line":1481,"column":67,"offset":1491},4954,{"start":1493,"end":1494},{"line":1481,"column":908,"offset":1482},{"line":1481,"column":67,"offset":1491},{"type":14,"value":1496,"position":1497},". Build supply/demand zones that remove themselves when price\nmitigates them, or a live dashboard table that updates on the last bar.",{"start":1498,"end":1499},{"line":1481,"column":67,"offset":1491},{"line":1500,"column":925,"offset":1501},110,5087,{"start":1503,"end":1504},{"line":1455,"column":26,"offset":1456},{"line":1500,"column":925,"offset":1501},{"type":14,"value":15},{"type":17,"tagName":18,"properties":1507,"children":1508,"position":1539},{},[1509,1516,1533],{"type":14,"value":1396,"position":1510},{"start":1511,"end":1514},{"line":1512,"column":26,"offset":1513},112,5089,{"line":1512,"column":55,"offset":1515},5093,{"type":17,"tagName":159,"properties":1517,"children":1519,"position":1528},{"href":1518},"/kscript/functions/drawing-objects",[1520],{"type":14,"value":1521,"position":1522},"Drawing Objects",{"start":1523,"end":1525},{"line":1512,"column":942,"offset":1524},5094,{"line":1512,"column":1526,"offset":1527},21,5109,{"start":1529,"end":1530},{"line":1512,"column":55,"offset":1515},{"line":1512,"column":1531,"offset":1532},58,5146,{"type":14,"value":1420,"position":1534},{"start":1535,"end":1536},{"line":1512,"column":1531,"offset":1532},{"line":1512,"column":1537,"offset":1538},59,5147,{"start":1540,"end":1541},{"line":1512,"column":26,"offset":1513},{"line":1512,"column":1537,"offset":1538},{"type":14,"value":15},{"type":17,"tagName":227,"properties":1544,"children":1546,"position":1555},{"id":1545},"no-repaint-multi-timeframe",[1547],{"type":14,"value":1548,"position":1549},"No-repaint multi-timeframe",{"start":1550,"end":1553},{"line":1551,"column":55,"offset":1552},114,5153,{"line":1551,"column":972,"offset":1554},5179,{"start":1556,"end":1558},{"line":1551,"column":26,"offset":1557},5149,{"line":1551,"column":972,"offset":1554},{"type":14,"value":15},{"type":17,"tagName":18,"properties":1561,"children":1562,"position":1663},{},[1563,1578,1584,1600,1607,1619,1625,1638,1645,1657],{"type":17,"tagName":59,"properties":1564,"children":1565,"position":1575},{},[1566],{"type":14,"value":1567,"position":1568},"htf()",{"start":1569,"end":1572},{"line":1570,"column":26,"offset":1571},116,5181,{"line":1570,"column":1573,"offset":1574},8,5188,{"start":1576,"end":1577},{"line":1570,"column":26,"offset":1571},{"line":1570,"column":1573,"offset":1574},{"type":14,"value":1579,"position":1580}," reads a ",{"start":1581,"end":1582},{"line":1570,"column":1573,"offset":1574},{"line":1570,"column":104,"offset":1583},5197,{"type":17,"tagName":33,"properties":1585,"children":1586,"position":1595},{},[1587],{"type":14,"value":1588,"position":1589},"confirmed",{"start":1590,"end":1592},{"line":1570,"column":109,"offset":1591},5199,{"line":1570,"column":1593,"offset":1594},28,5208,{"start":1596,"end":1597},{"line":1570,"column":104,"offset":1583},{"line":1570,"column":1598,"offset":1599},30,5210,{"type":14,"value":1601,"position":1602}," higher timeframe with no look-ahead: the 4h value at\nany bar uses only data that closed before that bar. The repaint trap that\n",{"start":1603,"end":1604},{"line":1570,"column":1598,"offset":1599},{"line":1605,"column":26,"offset":1606},118,5338,{"type":17,"tagName":59,"properties":1608,"children":1609,"position":1616},{},[1610],{"type":14,"value":1611,"position":1612},"security()",{"start":1613,"end":1614},{"line":1605,"column":26,"offset":1606},{"line":1605,"column":89,"offset":1615},5350,{"start":1617,"end":1618},{"line":1605,"column":26,"offset":1606},{"line":1605,"column":89,"offset":1615},{"type":14,"value":1620,"position":1621}," invites in other languages is impossible by default. ",{"start":1622,"end":1623},{"line":1605,"column":89,"offset":1615},{"line":1605,"column":265,"offset":1624},5404,{"type":17,"tagName":59,"properties":1626,"children":1627,"position":1635},{},[1628],{"type":14,"value":1629,"position":1630},"ltf()",{"start":1631,"end":1632},{"line":1605,"column":265,"offset":1624},{"line":1605,"column":1633,"offset":1634},74,5411,{"start":1636,"end":1637},{"line":1605,"column":265,"offset":1624},{"line":1605,"column":1633,"offset":1634},{"type":14,"value":1639,"position":1640}," attaches\nfiner bars, and ",{"start":1641,"end":1642},{"line":1605,"column":1633,"offset":1634},{"line":1643,"column":104,"offset":1644},119,5437,{"type":17,"tagName":59,"properties":1646,"children":1647,"position":1654},{},[1648],{"type":14,"value":1649,"position":1650},"request()",{"start":1651,"end":1652},{"line":1643,"column":104,"offset":1644},{"line":1643,"column":1593,"offset":1653},5448,{"start":1655,"end":1656},{"line":1643,"column":104,"offset":1644},{"line":1643,"column":1593,"offset":1653},{"type":14,"value":1658,"position":1659}," is one-line shorthand for loading another symbol.",{"start":1660,"end":1661},{"line":1643,"column":1593,"offset":1653},{"line":1643,"column":43,"offset":1662},5498,{"start":1664,"end":1665},{"line":1570,"column":26,"offset":1571},{"line":1643,"column":43,"offset":1662},{"type":14,"value":15},{"type":17,"tagName":18,"properties":1668,"children":1669,"position":1699},{},[1670,1677,1693],{"type":14,"value":1396,"position":1671},{"start":1672,"end":1675},{"line":1673,"column":26,"offset":1674},121,5500,{"line":1673,"column":55,"offset":1676},5504,{"type":17,"tagName":159,"properties":1678,"children":1680,"position":1688},{"href":1679},"/kscript/core-concepts/multi-timeframe",[1681],{"type":14,"value":1682,"position":1683},"Multi-Timeframe",{"start":1684,"end":1686},{"line":1673,"column":942,"offset":1685},5505,{"line":1673,"column":1526,"offset":1687},5520,{"start":1689,"end":1690},{"line":1673,"column":55,"offset":1676},{"line":1673,"column":1691,"offset":1692},62,5561,{"type":14,"value":1420,"position":1694},{"start":1695,"end":1696},{"line":1673,"column":1691,"offset":1692},{"line":1673,"column":1697,"offset":1698},63,5562,{"start":1700,"end":1701},{"line":1673,"column":26,"offset":1674},{"line":1673,"column":1697,"offset":1698},{"type":14,"value":15},{"type":17,"tagName":227,"properties":1704,"children":1706,"position":1715},{"id":1705},"multi-venue-aggregation",[1707],{"type":14,"value":1708,"position":1709},"Multi-venue aggregation",{"start":1710,"end":1713},{"line":1711,"column":55,"offset":1712},123,5568,{"line":1711,"column":1593,"offset":1714},5591,{"start":1716,"end":1718},{"line":1711,"column":26,"offset":1717},5564,{"line":1711,"column":1593,"offset":1714},{"type":14,"value":15},{"type":17,"tagName":18,"properties":1721,"children":1722,"position":1753},{},[1723,1731,1746],{"type":14,"value":1724,"position":1725},"A single script has ",{"start":1726,"end":1729},{"line":1727,"column":26,"offset":1728},125,5593,{"line":1727,"column":1526,"offset":1730},5613,{"type":17,"tagName":33,"properties":1732,"children":1733,"position":1742},{},[1734],{"type":14,"value":1735,"position":1736},"10 weighted source slots",{"start":1737,"end":1739},{"line":1727,"column":67,"offset":1738},5615,{"line":1727,"column":1740,"offset":1741},47,5639,{"start":1743,"end":1744},{"line":1727,"column":1526,"offset":1730},{"line":1727,"column":146,"offset":1745},5641,{"type":14,"value":1747,"position":1748}," to load from. Sum real buy/sell flow\nacross four exchanges into one cumulative delta, or aggregate open interest across\nvenues — the kind of cross-market view that took one source per script in v2.",{"start":1749,"end":1750},{"line":1727,"column":146,"offset":1745},{"line":1751,"column":43,"offset":1752},127,5839,{"start":1754,"end":1755},{"line":1727,"column":26,"offset":1728},{"line":1751,"column":43,"offset":1752},{"type":14,"value":15},{"type":17,"tagName":18,"properties":1758,"children":1759,"position":1811},{},[1760,1767,1783,1790,1805],{"type":14,"value":1396,"position":1761},{"start":1762,"end":1765},{"line":1763,"column":26,"offset":1764},129,5841,{"line":1763,"column":55,"offset":1766},5845,{"type":17,"tagName":159,"properties":1768,"children":1770,"position":1778},{"href":1769},"/kscript/core-concepts/multi-source",[1771],{"type":14,"value":1772,"position":1773},"Multi-Source & Aggregation",{"start":1774,"end":1776},{"line":1763,"column":942,"offset":1775},5846,{"line":1763,"column":322,"offset":1777},5872,{"start":1779,"end":1780},{"line":1763,"column":55,"offset":1766},{"line":1763,"column":1781,"offset":1782},70,5910,{"type":14,"value":1784,"position":1785}," and\n",{"start":1786,"end":1787},{"line":1763,"column":1781,"offset":1782},{"line":1788,"column":26,"offset":1789},130,5915,{"type":17,"tagName":159,"properties":1791,"children":1793,"position":1801},{"href":1792},"/kscript/core-concepts/data-sources",[1794],{"type":14,"value":1795,"position":1796},"Data Sources",{"start":1797,"end":1799},{"line":1788,"column":167,"offset":1798},5916,{"line":1788,"column":136,"offset":1800},5928,{"start":1802,"end":1803},{"line":1788,"column":26,"offset":1789},{"line":1788,"column":255,"offset":1804},5966,{"type":14,"value":1806,"position":1807}," for all 18 source types.",{"start":1808,"end":1809},{"line":1788,"column":255,"offset":1804},{"line":1788,"column":932,"offset":1810},5991,{"start":1812,"end":1813},{"line":1763,"column":26,"offset":1764},{"line":1788,"column":932,"offset":1810},{"type":14,"value":15},{"type":17,"tagName":227,"properties":1816,"children":1818,"position":1827},{"id":1817},"a-reference-validated-ta-library",[1819],{"type":14,"value":1820,"position":1821},"A reference-validated TA library",{"start":1822,"end":1825},{"line":1823,"column":55,"offset":1824},132,5997,{"line":1823,"column":40,"offset":1826},6029,{"start":1828,"end":1830},{"line":1823,"column":26,"offset":1829},5993,{"line":1823,"column":40,"offset":1826},{"type":14,"value":15},{"type":17,"tagName":18,"properties":1833,"children":1834,"position":1936},{},[1835,1844,1858,1865,1877,1882,1894,1900,1913,1918,1930],{"type":14,"value":1836,"position":1837},"70+ canonical indicators, each matching an independent reference implementation.\nMulti-output indicators expose ",{"start":1838,"end":1841},{"line":1839,"column":26,"offset":1840},134,6031,{"line":1842,"column":322,"offset":1843},135,6143,{"type":17,"tagName":33,"properties":1845,"children":1846,"position":1854},{},[1847],{"type":14,"value":1848,"position":1849},"named streams",{"start":1850,"end":1852},{"line":1842,"column":293,"offset":1851},6145,{"line":1842,"column":1740,"offset":1853},6158,{"start":1855,"end":1856},{"line":1842,"column":322,"offset":1843},{"line":1842,"column":146,"offset":1857},6160,{"type":14,"value":1859,"position":1860},": ",{"start":1861,"end":1862},{"line":1842,"column":146,"offset":1857},{"line":1842,"column":1863,"offset":1864},51,6162,{"type":17,"tagName":59,"properties":1866,"children":1867,"position":1874},{},[1868],{"type":14,"value":1869,"position":1870},"bb.upper",{"start":1871,"end":1872},{"line":1842,"column":1863,"offset":1864},{"line":1842,"column":116,"offset":1873},6172,{"start":1875,"end":1876},{"line":1842,"column":1863,"offset":1864},{"line":1842,"column":116,"offset":1873},{"type":14,"value":651,"position":1878},{"start":1879,"end":1880},{"line":1842,"column":116,"offset":1873},{"line":1842,"column":1697,"offset":1881},6174,{"type":17,"tagName":59,"properties":1883,"children":1884,"position":1891},{},[1885],{"type":14,"value":1886,"position":1887},"macd.signal",{"start":1888,"end":1889},{"line":1842,"column":1697,"offset":1881},{"line":1842,"column":905,"offset":1890},6187,{"start":1892,"end":1893},{"line":1842,"column":1697,"offset":1881},{"line":1842,"column":905,"offset":1890},{"type":14,"value":1895,"position":1896},",\n",{"start":1897,"end":1898},{"line":1842,"column":905,"offset":1890},{"line":31,"column":26,"offset":1899},6189,{"type":17,"tagName":59,"properties":1901,"children":1902,"position":1910},{},[1903],{"type":14,"value":1904,"position":1905},"stoch.k",{"start":1906,"end":1907},{"line":31,"column":26,"offset":1899},{"line":31,"column":1908,"offset":1909},10,6198,{"start":1911,"end":1912},{"line":31,"column":26,"offset":1899},{"line":31,"column":1908,"offset":1909},{"type":14,"value":651,"position":1914},{"start":1915,"end":1916},{"line":31,"column":1908,"offset":1909},{"line":31,"column":908,"offset":1917},6200,{"type":17,"tagName":59,"properties":1919,"children":1920,"position":1927},{},[1921],{"type":14,"value":1922,"position":1923},"supertrend.direction",{"start":1924,"end":1925},{"line":31,"column":908,"offset":1917},{"line":31,"column":293,"offset":1926},6222,{"start":1928,"end":1929},{"line":31,"column":908,"offset":1917},{"line":31,"column":293,"offset":1926},{"type":14,"value":1931,"position":1932}," — no more positional guesswork.",{"start":1933,"end":1934},{"line":31,"column":293,"offset":1926},{"line":31,"column":1467,"offset":1935},6254,{"start":1937,"end":1938},{"line":1839,"column":26,"offset":1840},{"line":31,"column":1467,"offset":1935},{"type":14,"value":15},{"type":17,"tagName":18,"properties":1941,"children":1942,"position":1992},{},[1943,1950,1965,1971,1987],{"type":14,"value":1944,"position":1945},"See the ",{"start":1946,"end":1948},{"line":41,"column":26,"offset":1947},6256,{"line":41,"column":101,"offset":1949},6264,{"type":17,"tagName":159,"properties":1951,"children":1953,"position":1961},{"href":1952},"/kscript/functions/ta-library",[1954],{"type":14,"value":1955,"position":1956},"TA Library",{"start":1957,"end":1959},{"line":41,"column":1908,"offset":1958},6265,{"line":41,"column":27,"offset":1960},6275,{"start":1962,"end":1963},{"line":41,"column":101,"offset":1949},{"line":41,"column":255,"offset":1964},6307,{"type":14,"value":1784,"position":1966},{"start":1967,"end":1968},{"line":41,"column":255,"offset":1964},{"line":1969,"column":26,"offset":1970},139,6312,{"type":17,"tagName":159,"properties":1972,"children":1974,"position":1982},{"href":1973},"/kscript/core-concepts/named-streams",[1975],{"type":14,"value":1976,"position":1977},"Named Streams",{"start":1978,"end":1980},{"line":1969,"column":167,"offset":1979},6313,{"line":1969,"column":156,"offset":1981},6326,{"start":1983,"end":1984},{"line":1969,"column":26,"offset":1970},{"line":1969,"column":1985,"offset":1986},54,6365,{"type":14,"value":1420,"position":1988},{"start":1989,"end":1990},{"line":1969,"column":1985,"offset":1986},{"line":1969,"column":312,"offset":1991},6366,{"start":1993,"end":1994},{"line":41,"column":26,"offset":1947},{"line":1969,"column":312,"offset":1991},{"type":14,"value":15},{"type":17,"tagName":227,"properties":1997,"children":1999,"position":2009},{"id":1998},"session-anchored-vwap",[2000],{"type":14,"value":2001,"position":2002},"Session-anchored VWAP",{"start":2003,"end":2006},{"line":2004,"column":55,"offset":2005},141,6372,{"line":2004,"column":2007,"offset":2008},26,6393,{"start":2010,"end":2012},{"line":2004,"column":26,"offset":2011},6368,{"line":2004,"column":2007,"offset":2008},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2015,"children":2016,"position":2039},{},[2017,2032],{"type":17,"tagName":59,"properties":2018,"children":2019,"position":2029},{},[2020],{"type":14,"value":2021,"position":2022},"vwap(anchor=\"day\" | \"week\" | \"month\")",{"start":2023,"end":2026},{"line":2024,"column":26,"offset":2025},143,6395,{"line":2024,"column":2027,"offset":2028},40,6434,{"start":2030,"end":2031},{"line":2024,"column":26,"offset":2025},{"line":2024,"column":2027,"offset":2028},{"type":14,"value":2033,"position":2034}," resets on real UTC session boundaries\ninstead of drifting with however much history happened to load. The no-argument\nform is the familiar cumulative VWAP.",{"start":2035,"end":2036},{"line":2024,"column":2027,"offset":2028},{"line":2037,"column":920,"offset":2038},145,6590,{"start":2040,"end":2041},{"line":2024,"column":26,"offset":2025},{"line":2037,"column":920,"offset":2038},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2044,"children":2045,"position":2074},{},[2046,2053,2068],{"type":14,"value":1396,"position":2047},{"start":2048,"end":2051},{"line":2049,"column":26,"offset":2050},147,6592,{"line":2049,"column":55,"offset":2052},6596,{"type":17,"tagName":159,"properties":2054,"children":2056,"position":2064},{"href":2055},"/kscript/functions/special-indicators",[2057],{"type":14,"value":2058,"position":2059},"Special Indicators",{"start":2060,"end":2062},{"line":2049,"column":942,"offset":2061},6597,{"line":2049,"column":945,"offset":2063},6615,{"start":2065,"end":2066},{"line":2049,"column":55,"offset":2052},{"line":2049,"column":1458,"offset":2067},6655,{"type":14,"value":1420,"position":2069},{"start":2070,"end":2071},{"line":2049,"column":1458,"offset":2067},{"line":2049,"column":2072,"offset":2073},65,6656,{"start":2075,"end":2076},{"line":2049,"column":26,"offset":2050},{"line":2049,"column":2072,"offset":2073},{"type":14,"value":15},{"type":17,"tagName":227,"properties":2079,"children":2081,"position":2090},{"id":2080},"foreign-domain-panes",[2082],{"type":14,"value":2083,"position":2084},"Foreign-domain panes",{"start":2085,"end":2088},{"line":2086,"column":55,"offset":2087},149,6662,{"line":2086,"column":238,"offset":2089},6682,{"start":2091,"end":2093},{"line":2086,"column":26,"offset":2092},6658,{"line":2086,"column":238,"offset":2089},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2096,"children":2097,"position":2166},{},[2098,2107,2119,2126,2138,2146,2158],{"type":14,"value":2099,"position":2100},"A script can now emit a whole offchart pane that ignores the time axis:\n",{"start":2101,"end":2104},{"line":2102,"column":26,"offset":2103},151,6684,{"line":2105,"column":26,"offset":2106},152,6756,{"type":17,"tagName":59,"properties":2108,"children":2109,"position":2116},{},[2110],{"type":14,"value":2111,"position":2112},"plotMatrix()",{"start":2113,"end":2114},{"line":2105,"column":26,"offset":2106},{"line":2105,"column":156,"offset":2115},6770,{"start":2117,"end":2118},{"line":2105,"column":26,"offset":2106},{"line":2105,"column":156,"offset":2115},{"type":14,"value":2120,"position":2121}," renders a categorical grid (rows × columns, like a month-by-year\nreturns table), ",{"start":2122,"end":2123},{"line":2105,"column":156,"offset":2115},{"line":2124,"column":104,"offset":2125},153,6852,{"type":17,"tagName":59,"properties":2127,"children":2128,"position":2135},{},[2129],{"type":14,"value":2130,"position":2131},"plotCurve()",{"start":2132,"end":2133},{"line":2124,"column":104,"offset":2125},{"line":2124,"column":1598,"offset":2134},6865,{"start":2136,"end":2137},{"line":2124,"column":104,"offset":2125},{"line":2124,"column":1598,"offset":2134},{"type":14,"value":2139,"position":2140}," renders series over a numeric X domain (strikes,\nspot levels, distribution buckets), and ",{"start":2141,"end":2142},{"line":2124,"column":1598,"offset":2134},{"line":2143,"column":2144,"offset":2145},154,41,6955,{"type":17,"tagName":59,"properties":2147,"children":2148,"position":2155},{},[2149],{"type":14,"value":2150,"position":2151},"plotTiles()",{"start":2152,"end":2153},{"line":2143,"column":2144,"offset":2145},{"line":2143,"column":1985,"offset":2154},6968,{"start":2156,"end":2157},{"line":2143,"column":2144,"offset":2145},{"line":2143,"column":1985,"offset":2154},{"type":14,"value":2159,"position":2160}," renders a KPI card\ndashboard, including computed text tiles. The pane keeps its own X domain, so\ntime pan and zoom leave it untouched, and every cap is enforced as a named\ncompile error rather than silent truncation.",{"start":2161,"end":2162},{"line":2143,"column":1985,"offset":2154},{"line":2163,"column":2164,"offset":2165},157,45,7185,{"start":2167,"end":2168},{"line":2102,"column":26,"offset":2103},{"line":2163,"column":2164,"offset":2165},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2171,"children":2172,"position":2224},{},[2173,2180,2195,2202,2217],{"type":14,"value":1396,"position":2174},{"start":2175,"end":2178},{"line":2176,"column":26,"offset":2177},159,7187,{"line":2176,"column":55,"offset":2179},7191,{"type":17,"tagName":159,"properties":2181,"children":2183,"position":2191},{"href":2182},"/kscript/functions/foreign-panes",[2184],{"type":14,"value":2185,"position":2186},"Foreign-Domain Panes",{"start":2187,"end":2189},{"line":2176,"column":942,"offset":2188},7192,{"line":2176,"column":2007,"offset":2190},7212,{"start":2192,"end":2193},{"line":2176,"column":55,"offset":2179},{"line":2176,"column":116,"offset":2194},7247,{"type":14,"value":2196,"position":2197}," for the full\nreference and the ",{"start":2198,"end":2199},{"line":2176,"column":116,"offset":2194},{"line":2200,"column":109,"offset":2201},160,7279,{"type":17,"tagName":159,"properties":2203,"children":2205,"position":2213},{"href":2204},"/kscript/cookbook/historical-returns",[2206],{"type":14,"value":2207,"position":2208},"Historical Returns Matrix",{"start":2209,"end":2211},{"line":2200,"column":27,"offset":2210},7280,{"line":2200,"column":2164,"offset":2212},7305,{"start":2214,"end":2215},{"line":2200,"column":109,"offset":2201},{"line":2200,"column":1007,"offset":2216},7344,{"type":14,"value":2218,"position":2219},"\ncookbook recipe for a complete worked example.",{"start":2220,"end":2221},{"line":2200,"column":1007,"offset":2216},{"line":2222,"column":1740,"offset":2223},161,7391,{"start":2225,"end":2226},{"line":2176,"column":26,"offset":2177},{"line":2222,"column":1740,"offset":2223},{"type":14,"value":15},{"type":17,"tagName":227,"properties":2229,"children":2231,"position":2240},{"id":2230},"tape-by-order-size",[2232],{"type":14,"value":2233,"position":2234},"Tape by order size",{"start":2235,"end":2238},{"line":2236,"column":55,"offset":2237},163,7397,{"line":2236,"column":67,"offset":2239},7415,{"start":2241,"end":2243},{"line":2236,"column":26,"offset":2242},7393,{"line":2236,"column":67,"offset":2239},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2246,"children":2247,"position":2312},{},[2248,2256,2268,2275,2287,2293,2305],{"type":14,"value":2249,"position":2250},"The array-celled ",{"start":2251,"end":2254},{"line":2252,"column":26,"offset":2253},165,7417,{"line":2252,"column":199,"offset":2255},7434,{"type":17,"tagName":59,"properties":2257,"children":2258,"position":2265},{},[2259],{"type":14,"value":2260,"position":2261},"trade_volume_by_size",{"start":2262,"end":2263},{"line":2252,"column":199,"offset":2255},{"line":2252,"column":2027,"offset":2264},7456,{"start":2266,"end":2267},{"line":2252,"column":199,"offset":2255},{"line":2252,"column":2027,"offset":2264},{"type":14,"value":2269,"position":2270}," source delivers buy/sell volume\nbucketed by real USD order size, so whale flow comes from actual trade sizes\ninstead of candle-geometry proxies, with per-bar trade counts included.\n",{"start":2271,"end":2272},{"line":2252,"column":2027,"offset":2264},{"line":2273,"column":26,"offset":2274},168,7638,{"type":17,"tagName":59,"properties":2276,"children":2277,"position":2284},{},[2278],{"type":14,"value":2279,"position":2280},"buy_sell_volume",{"start":2281,"end":2282},{"line":2273,"column":26,"offset":2274},{"line":2273,"column":199,"offset":2283},7655,{"start":2285,"end":2286},{"line":2273,"column":26,"offset":2274},{"line":2273,"column":199,"offset":2283},{"type":14,"value":2288,"position":2289}," also gains a ",{"start":2290,"end":2291},{"line":2273,"column":199,"offset":2283},{"line":2273,"column":322,"offset":2292},7669,{"type":17,"tagName":59,"properties":2294,"children":2295,"position":2302},{},[2296],{"type":14,"value":2297,"position":2298},"currency=\"USD\"",{"start":2299,"end":2300},{"line":2273,"column":322,"offset":2292},{"line":2273,"column":252,"offset":2301},7685,{"start":2303,"end":2304},{"line":2273,"column":322,"offset":2292},{"line":2273,"column":252,"offset":2301},{"type":14,"value":2306,"position":2307}," option for quote-notional CVD.",{"start":2308,"end":2309},{"line":2273,"column":252,"offset":2301},{"line":2273,"column":2310,"offset":2311},79,7716,{"start":2313,"end":2314},{"line":2252,"column":26,"offset":2253},{"line":2273,"column":2310,"offset":2311},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2317,"children":2318,"position":2369},{},[2319,2326,2340,2347,2363],{"type":14,"value":1396,"position":2320},{"start":2321,"end":2324},{"line":2322,"column":26,"offset":2323},170,7718,{"line":2322,"column":55,"offset":2325},7722,{"type":17,"tagName":159,"properties":2327,"children":2328,"position":2335},{"href":1792},[2329],{"type":14,"value":1795,"position":2330},{"start":2331,"end":2333},{"line":2322,"column":942,"offset":2332},7723,{"line":2322,"column":199,"offset":2334},7735,{"start":2336,"end":2337},{"line":2322,"column":55,"offset":2325},{"line":2322,"column":2338,"offset":2339},56,7773,{"type":14,"value":2341,"position":2342}," and the\n",{"start":2343,"end":2344},{"line":2322,"column":2338,"offset":2339},{"line":2345,"column":26,"offset":2346},171,7782,{"type":17,"tagName":159,"properties":2348,"children":2350,"position":2358},{"href":2349},"/kscript/cookbook/tape-reader",[2351],{"type":14,"value":2352,"position":2353},"Whale vs Retail CVD",{"start":2354,"end":2356},{"line":2345,"column":167,"offset":2355},7783,{"line":2345,"column":1526,"offset":2357},7802,{"start":2359,"end":2360},{"line":2345,"column":26,"offset":2346},{"line":2345,"column":2361,"offset":2362},53,7834,{"type":14,"value":2364,"position":2365}," recipe.",{"start":2366,"end":2367},{"line":2345,"column":2361,"offset":2362},{"line":2345,"column":116,"offset":2368},7842,{"start":2370,"end":2371},{"line":2322,"column":26,"offset":2323},{"line":2345,"column":116,"offset":2368},{"type":14,"value":15},{"type":17,"tagName":227,"properties":2374,"children":2376,"position":2385},{"id":2375},"perps-backtesting",[2377],{"type":14,"value":2378,"position":2379},"Perps backtesting",{"start":2380,"end":2383},{"line":2381,"column":55,"offset":2382},173,7848,{"line":2381,"column":182,"offset":2384},7865,{"start":2386,"end":2388},{"line":2381,"column":26,"offset":2387},7844,{"line":2381,"column":182,"offset":2384},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2391,"children":2392,"position":2450},{},[2393,2406,2412,2424,2431,2443],{"type":17,"tagName":59,"properties":2394,"children":2395,"position":2403},{},[2396],{"type":14,"value":261,"position":2397},{"start":2398,"end":2401},{"line":2399,"column":26,"offset":2400},175,7867,{"line":2399,"column":181,"offset":2402},7882,{"start":2404,"end":2405},{"line":2399,"column":26,"offset":2400},{"line":2399,"column":181,"offset":2402},{"type":14,"value":2407,"position":2408}," accepts ",{"start":2409,"end":2410},{"line":2399,"column":181,"offset":2402},{"line":2399,"column":238,"offset":2411},7891,{"type":17,"tagName":59,"properties":2413,"children":2414,"position":2421},{},[2415],{"type":14,"value":2416,"position":2417},"instrument=\"perps\"",{"start":2418,"end":2419},{"line":2399,"column":238,"offset":2411},{"line":2399,"column":2164,"offset":2420},7911,{"start":2422,"end":2423},{"line":2399,"column":238,"offset":2411},{"line":2399,"column":2164,"offset":2420},{"type":14,"value":2425,"position":2426},": leveraged sizing on isolated\nmargin, maker/taker fees, funding from recorded data, a liquidation model with\nan ",{"start":2427,"end":2428},{"line":2399,"column":2164,"offset":2420},{"line":2429,"column":29,"offset":2430},177,8024,{"type":17,"tagName":59,"properties":2432,"children":2433,"position":2440},{},[2434],{"type":14,"value":2435,"position":2436},"onLiquidation",{"start":2437,"end":2438},{"line":2429,"column":29,"offset":2430},{"line":2429,"column":109,"offset":2439},8039,{"start":2441,"end":2442},{"line":2429,"column":29,"offset":2430},{"line":2429,"column":109,"offset":2439},{"type":14,"value":2444,"position":2445}," policy, and a set of perps-specific stats alongside the\nspot metrics.",{"start":2446,"end":2447},{"line":2429,"column":109,"offset":2439},{"line":2448,"column":136,"offset":2449},178,8109,{"start":2451,"end":2452},{"line":2399,"column":26,"offset":2400},{"line":2448,"column":136,"offset":2449},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2455,"children":2456,"position":2484},{},[2457,2464,2479],{"type":14,"value":1396,"position":2458},{"start":2459,"end":2462},{"line":2460,"column":26,"offset":2461},180,8111,{"line":2460,"column":55,"offset":2463},8115,{"type":17,"tagName":159,"properties":2465,"children":2467,"position":2475},{"href":2466},"/kscript/strategies/perps",[2468],{"type":14,"value":2469,"position":2470},"Perps: Margin, Liquidation, and Funding",{"start":2471,"end":2473},{"line":2460,"column":942,"offset":2472},8116,{"line":2460,"column":2164,"offset":2474},8155,{"start":2476,"end":2477},{"line":2460,"column":55,"offset":2463},{"line":2460,"column":1470,"offset":2478},8183,{"type":14,"value":1420,"position":2480},{"start":2481,"end":2482},{"line":2460,"column":1470,"offset":2478},{"line":2460,"column":1633,"offset":2483},8184,{"start":2485,"end":2486},{"line":2460,"column":26,"offset":2461},{"line":2460,"column":1633,"offset":2483},{"type":14,"value":15},{"type":17,"tagName":227,"properties":2489,"children":2491,"position":2500},{"id":2490},"script-libraries",[2492],{"type":14,"value":2493,"position":2494},"Script libraries",{"start":2495,"end":2498},{"line":2496,"column":55,"offset":2497},182,8190,{"line":2496,"column":1526,"offset":2499},8206,{"start":2501,"end":2503},{"line":2496,"column":26,"offset":2502},8186,{"line":2496,"column":1526,"offset":2499},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2506,"children":2507,"position":2615},{},[2508,2517,2529,2537,2549,2556,2568,2574,2587,2594,2608],{"type":14,"value":2509,"position":2510},"Shared code is now a first-class concept: write your normalization math, risk\nmodel, or zone structs once as a ",{"start":2511,"end":2514},{"line":2512,"column":26,"offset":2513},184,8208,{"line":2515,"column":293,"offset":2516},185,8319,{"type":17,"tagName":59,"properties":2518,"children":2519,"position":2526},{},[2520],{"type":14,"value":2521,"position":2522},"library(\"name\")",{"start":2523,"end":2524},{"line":2515,"column":293,"offset":2516},{"line":2515,"column":1863,"offset":2525},8336,{"start":2527,"end":2528},{"line":2515,"column":293,"offset":2516},{"line":2515,"column":1863,"offset":2525},{"type":14,"value":2530,"position":2531}," of functions and types,\nand import it from any script with ",{"start":2532,"end":2533},{"line":2515,"column":1863,"offset":2525},{"line":2534,"column":2535,"offset":2536},186,36,8396,{"type":17,"tagName":59,"properties":2538,"children":2539,"position":2546},{},[2540],{"type":14,"value":2541,"position":2542},"import \"@owner/name\"",{"start":2543,"end":2544},{"line":2534,"column":2535,"offset":2536},{"line":2534,"column":1531,"offset":2545},8418,{"start":2547,"end":2548},{"line":2534,"column":2535,"offset":2536},{"line":2534,"column":1531,"offset":2545},{"type":14,"value":2550,"position":2551},", an exact version\npin (",{"start":2552,"end":2553},{"line":2534,"column":1531,"offset":2545},{"line":2554,"column":942,"offset":2555},187,8442,{"type":17,"tagName":59,"properties":2557,"children":2558,"position":2565},{},[2559],{"type":14,"value":2560,"position":2561},"@owner/name@1.0.0",{"start":2562,"end":2563},{"line":2554,"column":942,"offset":2555},{"line":2554,"column":238,"offset":2564},8461,{"start":2566,"end":2567},{"line":2554,"column":942,"offset":2555},{"line":2554,"column":238,"offset":2564},{"type":14,"value":2569,"position":2570},"), or an alias (",{"start":2571,"end":2572},{"line":2554,"column":238,"offset":2564},{"line":2554,"column":2144,"offset":2573},8477,{"type":17,"tagName":59,"properties":2575,"children":2576,"position":2584},{},[2577],{"type":14,"value":2578,"position":2579},"as norm",{"start":2580,"end":2581},{"line":2554,"column":2144,"offset":2573},{"line":2554,"column":2582,"offset":2583},50,8486,{"start":2585,"end":2586},{"line":2554,"column":2144,"offset":2573},{"line":2554,"column":2582,"offset":2583},{"type":14,"value":2588,"position":2589},"). Libraries are authored in\nthe editor's Libraries panel, run under exactly the same sandbox as the\nimporting script, and are ",{"start":2590,"end":2591},{"line":2554,"column":2582,"offset":2583},{"line":2592,"column":1441,"offset":2593},189,8613,{"type":17,"tagName":33,"properties":2595,"children":2596,"position":2604},{},[2597],{"type":14,"value":2598,"position":2599},"frozen into the script at save",{"start":2600,"end":2602},{"line":2592,"column":219,"offset":2601},8615,{"line":2592,"column":1537,"offset":2603},8645,{"start":2605,"end":2606},{"line":2592,"column":1441,"offset":2593},{"line":2592,"column":116,"offset":2607},8647,{"type":14,"value":2609,"position":2610},", so a chart\nnever depends on a registry at runtime and a published library update never\nsilently changes a script that pinned its version.",{"start":2611,"end":2612},{"line":2592,"column":116,"offset":2607},{"line":2613,"column":1863,"offset":2614},191,8786,{"start":2616,"end":2617},{"line":2512,"column":26,"offset":2513},{"line":2613,"column":1863,"offset":2614},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2620,"children":2621,"position":2648},{},[2622,2628,2643],{"type":14,"value":1396,"position":2623},{"start":2624,"end":2626},{"line":57,"column":26,"offset":2625},8788,{"line":57,"column":55,"offset":2627},8792,{"type":17,"tagName":159,"properties":2629,"children":2631,"position":2639},{"href":2630},"/kscript/functions/libraries",[2632],{"type":14,"value":2633,"position":2634},"Libraries",{"start":2635,"end":2637},{"line":57,"column":942,"offset":2636},8793,{"line":57,"column":156,"offset":2638},8802,{"start":2640,"end":2641},{"line":57,"column":55,"offset":2627},{"line":57,"column":235,"offset":2642},8833,{"type":14,"value":1420,"position":2644},{"start":2645,"end":2646},{"line":57,"column":235,"offset":2642},{"line":57,"column":1740,"offset":2647},8834,{"start":2649,"end":2650},{"line":57,"column":26,"offset":2625},{"line":57,"column":1740,"offset":2647},{"type":14,"value":15},{"type":17,"tagName":227,"properties":2653,"children":2655,"position":2664},{"id":2654},"quality-of-life-across-the-line",[2656],{"type":14,"value":2657,"position":2658},"Quality-of-life across the line",{"start":2659,"end":2662},{"line":2660,"column":55,"offset":2661},195,8840,{"line":2660,"column":2535,"offset":2663},8871,{"start":2665,"end":2667},{"line":2660,"column":26,"offset":2666},8836,{"line":2660,"column":2535,"offset":2663},{"type":14,"value":15},{"type":17,"tagName":18,"properties":2670,"children":2671,"position":2797},{},[2672,2680,2692,2700,2712,2719,2731,2737,2749,2756,2768,2775,2790],{"type":14,"value":2673,"position":2674},"Landed in the same release train: ",{"start":2675,"end":2678},{"line":2676,"column":26,"offset":2677},197,8873,{"line":2676,"column":30,"offset":2679},8907,{"type":17,"tagName":59,"properties":2681,"children":2682,"position":2689},{},[2683],{"type":14,"value":2684,"position":2685},"plotHistogram()",{"start":2686,"end":2687},{"line":2676,"column":30,"offset":2679},{"line":2676,"column":255,"offset":2688},8924,{"start":2690,"end":2691},{"line":2676,"column":30,"offset":2679},{"line":2676,"column":255,"offset":2688},{"type":14,"value":2693,"position":2694}," for baseline-grown columns\n(MACD-style deltas), a comparator for ",{"start":2695,"end":2696},{"line":2676,"column":255,"offset":2688},{"line":2697,"column":2698,"offset":2699},198,39,8990,{"type":17,"tagName":59,"properties":2701,"children":2702,"position":2709},{},[2703],{"type":14,"value":2704,"position":2705},"array.sort()",{"start":2706,"end":2707},{"line":2697,"column":2698,"offset":2699},{"line":2697,"column":2361,"offset":2708},9004,{"start":2710,"end":2711},{"line":2697,"column":2698,"offset":2699},{"line":2697,"column":2361,"offset":2708},{"type":14,"value":2713,"position":2714},"\n(",{"start":2715,"end":2716},{"line":2697,"column":2361,"offset":2708},{"line":2717,"column":167,"offset":2718},199,9006,{"type":17,"tagName":59,"properties":2720,"children":2721,"position":2728},{},[2722],{"type":14,"value":2723,"position":2724},".sort((a, b) => b - a)",{"start":2725,"end":2726},{"line":2717,"column":167,"offset":2718},{"line":2717,"column":2007,"offset":2727},9030,{"start":2729,"end":2730},{"line":2717,"column":167,"offset":2718},{"line":2717,"column":2007,"offset":2727},{"type":14,"value":2732,"position":2733},"), ",{"start":2734,"end":2735},{"line":2717,"column":2007,"offset":2727},{"line":2717,"column":219,"offset":2736},9033,{"type":17,"tagName":59,"properties":2738,"children":2739,"position":2746},{},[2740],{"type":14,"value":2741,"position":2742},"requestBars(..., anchor: \"latest\")",{"start":2743,"end":2744},{"line":2717,"column":219,"offset":2736},{"line":2717,"column":2072,"offset":2745},9069,{"start":2747,"end":2748},{"line":2717,"column":219,"offset":2736},{"line":2717,"column":2072,"offset":2745},{"type":14,"value":2750,"position":2751}," for datasets\npinned to the newest bars regardless of where the chart is panned, and\n",{"start":2752,"end":2753},{"line":2717,"column":2072,"offset":2745},{"line":2754,"column":26,"offset":2755},201,9154,{"type":17,"tagName":59,"properties":2757,"children":2758,"position":2765},{},[2759],{"type":14,"value":2760,"position":2761},"plotStatRow()",{"start":2762,"end":2763},{"line":2754,"column":26,"offset":2755},{"line":2754,"column":181,"offset":2764},9169,{"start":2766,"end":2767},{"line":2754,"column":26,"offset":2755},{"line":2754,"column":181,"offset":2764},{"type":14,"value":2769,"position":2770}," for the per-bar statistics strip under the price pane. The\n",{"start":2771,"end":2772},{"line":2754,"column":181,"offset":2764},{"line":2773,"column":26,"offset":2774},202,9229,{"type":17,"tagName":159,"properties":2776,"children":2778,"position":2786},{"href":2777},"/kscript/releases/changelog",[2779],{"type":14,"value":2780,"position":2781},"release notes",{"start":2782,"end":2784},{"line":2773,"column":167,"offset":2783},9230,{"line":2773,"column":156,"offset":2785},9243,{"start":2787,"end":2788},{"line":2773,"column":26,"offset":2774},{"line":2773,"column":2164,"offset":2789},9273,{"type":14,"value":2791,"position":2792}," carry the full list with exact\nerror texts.",{"start":2793,"end":2794},{"line":2773,"column":2164,"offset":2789},{"line":2795,"column":89,"offset":2796},203,9317,{"start":2798,"end":2799},{"line":2676,"column":26,"offset":2677},{"line":2795,"column":89,"offset":2796},{"type":14,"value":15},{"type":17,"tagName":208,"properties":2802,"children":2804,"position":2812},{"id":2803},"compatibility",[2805],{"type":14,"value":2806,"position":2807},"Compatibility",{"start":2808,"end":2810},{"line":68,"column":29,"offset":2809},9322,{"line":68,"column":104,"offset":2811},9335,{"start":2813,"end":2815},{"line":68,"column":26,"offset":2814},9319,{"line":68,"column":104,"offset":2811},{"type":14,"value":15},{"type":17,"tagName":2818,"properties":2819,"children":2820,"position":3068},"ul",{},[2821,2822,2852,2853,3027,3028,3067],{"type":14,"value":15},{"type":17,"tagName":2823,"properties":2824,"children":2825,"position":2848},"li",{},[2826,2842],{"type":17,"tagName":33,"properties":2827,"children":2828,"position":2837},{},[2829],{"type":14,"value":2830,"position":2831},"Every v2 script keeps running.",{"start":2832,"end":2835},{"line":2833,"column":55,"offset":2834},207,9341,{"line":2833,"column":30,"offset":2836},9371,{"start":2838,"end":2840},{"line":2833,"column":25,"offset":2839},9339,{"line":2833,"column":40,"offset":2841},9373,{"type":14,"value":2843,"position":2844}," v3 is additive.",{"start":2845,"end":2846},{"line":2833,"column":40,"offset":2841},{"line":2833,"column":2361,"offset":2847},9389,{"start":2849,"end":2851},{"line":2833,"column":26,"offset":2850},9337,{"line":2833,"column":2361,"offset":2847},{"type":14,"value":15},{"type":17,"tagName":2823,"properties":2854,"children":2855,"position":3023},{},[2856,2872,2877,2889,2896,2909,2915,2927,2932,2944,2950,2962,2967,2979,2986,2998,3004,3016],{"type":17,"tagName":33,"properties":2857,"children":2858,"position":2867},{},[2859],{"type":14,"value":2860,"position":2861},"Eight TA builtins were corrected to their textbook forms",{"start":2862,"end":2865},{"line":2863,"column":55,"offset":2864},208,9394,{"line":2863,"column":116,"offset":2866},9450,{"start":2868,"end":2870},{"line":2863,"column":25,"offset":2869},9392,{"line":2863,"column":1697,"offset":2871},9452,{"type":14,"value":612,"position":2873},{"start":2874,"end":2875},{"line":2863,"column":1697,"offset":2871},{"line":2863,"column":2072,"offset":2876},9454,{"type":17,"tagName":59,"properties":2878,"children":2879,"position":2886},{},[2880],{"type":14,"value":2881,"position":2882},"ema",{"start":2883,"end":2884},{"line":2863,"column":2072,"offset":2876},{"line":2863,"column":1781,"offset":2885},9459,{"start":2887,"end":2888},{"line":2863,"column":2072,"offset":2876},{"line":2863,"column":1781,"offset":2885},{"type":14,"value":2890,"position":2891}," seeding,\n",{"start":2892,"end":2893},{"line":2863,"column":1781,"offset":2885},{"line":2894,"column":26,"offset":2895},209,9469,{"type":17,"tagName":59,"properties":2897,"children":2898,"position":2906},{},[2899],{"type":14,"value":2900,"position":2901},"rsi",{"start":2902,"end":2904},{"line":2894,"column":25,"offset":2903},9471,{"line":2894,"column":1573,"offset":2905},9476,{"start":2907,"end":2908},{"line":2894,"column":25,"offset":2903},{"line":2894,"column":1573,"offset":2905},{"type":14,"value":2910,"position":2911}," Wilder smoothing, ",{"start":2912,"end":2913},{"line":2894,"column":1573,"offset":2905},{"line":2894,"column":1441,"offset":2914},9495,{"type":17,"tagName":59,"properties":2916,"children":2917,"position":2924},{},[2918],{"type":14,"value":2919,"position":2920},"macd",{"start":2921,"end":2922},{"line":2894,"column":1441,"offset":2914},{"line":2894,"column":956,"offset":2923},9501,{"start":2925,"end":2926},{"line":2894,"column":1441,"offset":2914},{"line":2894,"column":956,"offset":2923},{"type":14,"value":651,"position":2928},{"start":2929,"end":2930},{"line":2894,"column":956,"offset":2923},{"line":2894,"column":30,"offset":2931},9503,{"type":17,"tagName":59,"properties":2933,"children":2934,"position":2941},{},[2935],{"type":14,"value":2936,"position":2937},"psar",{"start":2938,"end":2939},{"line":2894,"column":30,"offset":2931},{"line":2894,"column":2144,"offset":2940},9509,{"start":2942,"end":2943},{"line":2894,"column":30,"offset":2931},{"line":2894,"column":2144,"offset":2940},{"type":14,"value":651,"position":2945},{"start":2946,"end":2947},{"line":2894,"column":2144,"offset":2940},{"line":2894,"column":2948,"offset":2949},43,9511,{"type":17,"tagName":59,"properties":2951,"children":2952,"position":2959},{},[2953],{"type":14,"value":2954,"position":2955},"adx",{"start":2956,"end":2957},{"line":2894,"column":2948,"offset":2949},{"line":2894,"column":252,"offset":2958},9516,{"start":2960,"end":2961},{"line":2894,"column":2948,"offset":2949},{"line":2894,"column":252,"offset":2958},{"type":14,"value":651,"position":2963},{"start":2964,"end":2965},{"line":2894,"column":252,"offset":2958},{"line":2894,"column":2582,"offset":2966},9518,{"type":17,"tagName":59,"properties":2968,"children":2969,"position":2976},{},[2970],{"type":14,"value":2971,"position":2972},"highest",{"start":2973,"end":2974},{"line":2894,"column":2582,"offset":2966},{"line":2894,"column":1537,"offset":2975},9527,{"start":2977,"end":2978},{"line":2894,"column":2582,"offset":2966},{"line":2894,"column":1537,"offset":2975},{"type":14,"value":2980,"position":2981},"/",{"start":2982,"end":2983},{"line":2894,"column":1537,"offset":2975},{"line":2894,"column":2984,"offset":2985},60,9528,{"type":17,"tagName":59,"properties":2987,"children":2988,"position":2995},{},[2989],{"type":14,"value":2990,"position":2991},"lowest",{"start":2992,"end":2993},{"line":2894,"column":2984,"offset":2985},{"line":2894,"column":1417,"offset":2994},9536,{"start":2996,"end":2997},{"line":2894,"column":2984,"offset":2985},{"line":2894,"column":1417,"offset":2994},{"type":14,"value":2999,"position":3000},", strict ",{"start":3001,"end":3002},{"line":2894,"column":1417,"offset":2994},{"line":2894,"column":932,"offset":3003},9545,{"type":17,"tagName":59,"properties":3005,"children":3006,"position":3013},{},[3007],{"type":14,"value":3008,"position":3009},"sma",{"start":3010,"end":3011},{"line":2894,"column":932,"offset":3003},{"line":2894,"column":986,"offset":3012},9550,{"start":3014,"end":3015},{"line":2894,"column":932,"offset":3003},{"line":2894,"column":986,"offset":3012},{"type":14,"value":3017,"position":3018},"\nwarmup). Early-bar values change for those functions; this is a correction, not\na regression, since each now matches an independent reference.",{"start":3019,"end":3020},{"line":2894,"column":986,"offset":3012},{"line":3021,"column":2072,"offset":3022},211,9697,{"start":3024,"end":3026},{"line":2863,"column":26,"offset":3025},9390,{"line":3021,"column":2072,"offset":3022},{"type":14,"value":15},{"type":17,"tagName":2823,"properties":3029,"children":3030,"position":3063},{},[3031,3040,3056],{"type":14,"value":3032,"position":3033},"A few v2 conveniences were tightened or renamed; the\n",{"start":3034,"end":3037},{"line":3035,"column":25,"offset":3036},212,9700,{"line":3038,"column":26,"offset":3039},213,9753,{"type":17,"tagName":159,"properties":3041,"children":3043,"position":3051},{"href":3042},"/kscript/migrations/v2-vs-v3",[3044],{"type":14,"value":3045,"position":3046},"v2 vs v3 migration guide",{"start":3047,"end":3049},{"line":3038,"column":29,"offset":3048},9756,{"line":3038,"column":1593,"offset":3050},9780,{"start":3052,"end":3054},{"line":3038,"column":25,"offset":3053},9755,{"line":3038,"column":1537,"offset":3055},9811,{"type":14,"value":3057,"position":3058}," lists them.",{"start":3059,"end":3060},{"line":3038,"column":1537,"offset":3055},{"line":3038,"column":3061,"offset":3062},71,9823,{"start":3064,"end":3066},{"line":3035,"column":26,"offset":3065},9698,{"line":3038,"column":3061,"offset":3062},{"type":14,"value":15},{"start":3069,"end":3070},{"line":2833,"column":26,"offset":2850},{"line":3038,"column":3061,"offset":3062},{"type":14,"value":15},{"type":17,"tagName":208,"properties":3073,"children":3075,"position":3083},{"id":3074},"the-version-marker",[3076],{"type":14,"value":164,"position":3077},{"start":3078,"end":3081},{"line":3079,"column":29,"offset":3080},215,9828,{"line":3079,"column":182,"offset":3082},9846,{"start":3084,"end":3086},{"line":3079,"column":26,"offset":3085},9825,{"line":3079,"column":182,"offset":3082},{"type":14,"value":15},{"type":17,"tagName":18,"properties":3089,"children":3090,"position":3169},{},[3091,3099,3110,3116,3127,3134,3145,3152,3163],{"type":14,"value":3092,"position":3093},"A v3 script starts with ",{"start":3094,"end":3097},{"line":3095,"column":26,"offset":3096},217,9848,{"line":3095,"column":238,"offset":3098},9872,{"type":17,"tagName":59,"properties":3100,"children":3101,"position":3107},{},[3102],{"type":14,"value":142,"position":3103},{"start":3104,"end":3105},{"line":3095,"column":238,"offset":3098},{"line":3095,"column":2698,"offset":3106},9886,{"start":3108,"end":3109},{"line":3095,"column":238,"offset":3098},{"line":3095,"column":2698,"offset":3106},{"type":14,"value":3111,"position":3112}," on its first line. ",{"start":3113,"end":3114},{"line":3095,"column":2698,"offset":3106},{"line":3095,"column":1537,"offset":3115},9906,{"type":17,"tagName":59,"properties":3117,"children":3118,"position":3124},{},[3119],{"type":14,"value":122,"position":3120},{"start":3121,"end":3122},{"line":3095,"column":1537,"offset":3115},{"line":3095,"column":1470,"offset":3123},9920,{"start":3125,"end":3126},{"line":3095,"column":1537,"offset":3115},{"line":3095,"column":1470,"offset":3123},{"type":14,"value":3128,"position":3129}," works\nexactly the same — the engine routes both markers to the same modern engine, and\nevery v3 capability above compiles and runs under either. ",{"start":3130,"end":3131},{"line":3095,"column":1470,"offset":3123},{"line":3132,"column":1537,"offset":3133},219,10066,{"type":17,"tagName":59,"properties":3135,"children":3136,"position":3142},{},[3137],{"type":14,"value":142,"position":3138},{"start":3139,"end":3140},{"line":3132,"column":1537,"offset":3133},{"line":3132,"column":1470,"offset":3141},10080,{"start":3143,"end":3144},{"line":3132,"column":1537,"offset":3133},{"line":3132,"column":1470,"offset":3141},{"type":14,"value":3146,"position":3147}," is the\ncanonical form (all of the platform's built-in scripts ship with it); existing\n",{"start":3148,"end":3149},{"line":3132,"column":1470,"offset":3141},{"line":3150,"column":26,"offset":3151},221,10167,{"type":17,"tagName":59,"properties":3153,"children":3154,"position":3160},{},[3155],{"type":14,"value":122,"position":3156},{"start":3157,"end":3158},{"line":3150,"column":26,"offset":3151},{"line":3150,"column":156,"offset":3159},10181,{"start":3161,"end":3162},{"line":3150,"column":26,"offset":3151},{"line":3150,"column":156,"offset":3159},{"type":14,"value":3164,"position":3165}," scripts need no change.",{"start":3166,"end":3167},{"line":3150,"column":156,"offset":3159},{"line":3150,"column":2698,"offset":3168},10205,{"start":3170,"end":3171},{"line":3095,"column":26,"offset":3096},{"line":3150,"column":2698,"offset":3168},{"type":14,"value":15},{"type":17,"tagName":18,"properties":3174,"children":3175,"position":3244},{},[3176,3185,3218,3225,3237],{"type":14,"value":3177,"position":3178},"What actually matters is that the marker is present and on the first line:\n",{"start":3179,"end":3182},{"line":3180,"column":26,"offset":3181},223,10207,{"line":3183,"column":26,"offset":3184},224,10282,{"type":17,"tagName":33,"properties":3186,"children":3187,"position":3214},{},[3188,3195,3207],{"type":14,"value":3189,"position":3190},"no marker at all, or ",{"start":3191,"end":3193},{"line":3183,"column":25,"offset":3192},10284,{"line":3183,"column":945,"offset":3194},10305,{"type":17,"tagName":59,"properties":3196,"children":3197,"position":3204},{},[3198],{"type":14,"value":3199,"position":3200},"//@version=1",{"start":3201,"end":3202},{"line":3183,"column":945,"offset":3194},{"line":3183,"column":920,"offset":3203},10319,{"start":3205,"end":3206},{"line":3183,"column":945,"offset":3194},{"line":3183,"column":920,"offset":3203},{"type":14,"value":3208,"position":3209},", routes the script to the deprecated\nlegacy v1 engine",{"start":3210,"end":3211},{"line":3183,"column":920,"offset":3203},{"line":3212,"column":104,"offset":3213},225,10373,{"start":3215,"end":3216},{"line":3183,"column":26,"offset":3184},{"line":3212,"column":109,"offset":3217},10375,{"type":14,"value":3219,"position":3220},", where none of the v3 features exist. Unrecognized numbers\n(",{"start":3221,"end":3222},{"line":3212,"column":109,"offset":3217},{"line":3223,"column":167,"offset":3224},226,10436,{"type":17,"tagName":59,"properties":3226,"children":3227,"position":3234},{},[3228],{"type":14,"value":3229,"position":3230},"//@version=4",{"start":3231,"end":3232},{"line":3223,"column":167,"offset":3224},{"line":3223,"column":181,"offset":3233},10450,{"start":3235,"end":3236},{"line":3223,"column":167,"offset":3224},{"line":3223,"column":181,"offset":3233},{"type":14,"value":3238,"position":3239}," and up) are not valid markers; the engine logs a console warning\n(\"Version 4 not supported, using v2\") and treats them as modern, but do not rely\non that coercion.",{"start":3240,"end":3241},{"line":3223,"column":181,"offset":3233},{"line":3242,"column":199,"offset":3243},228,10614,{"start":3245,"end":3246},{"line":3180,"column":26,"offset":3181},{"line":3242,"column":199,"offset":3243},{"type":14,"value":15},{"type":11,"children":3249},[3250],{"type":17,"tagName":189,"properties":3251,"children":3253,"data":-1},{"class":341,"style":342,"tabindex":343,"title":3252},"v3 marker",[3254],{"type":17,"tagName":59,"properties":3255,"children":3256},{},[3257,3264,3265,3313,3314,3317,3318,3353,3354,3397,3398],{"type":17,"tagName":350,"properties":3258,"children":3259},{"class":352},[3260],{"type":17,"tagName":350,"properties":3261,"children":3262},{"style":356},[3263],{"type":14,"value":142},{"type":14,"value":15},{"type":17,"tagName":350,"properties":3266,"children":3267},{"class":352},[3268,3272,3276,3280,3285,3289,3293,3297,3301,3305,3309],{"type":17,"tagName":350,"properties":3269,"children":3270},{"style":365},[3271],{"type":14,"value":1037},{"type":17,"tagName":350,"properties":3273,"children":3274},{"style":371},[3275],{"type":14,"value":374},{"type":17,"tagName":350,"properties":3277,"children":3278},{"style":377},[3279],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3281,"children":3282},{"style":383},[3283],{"type":14,"value":3284},"\"v3 marker\"",{"type":17,"tagName":350,"properties":3286,"children":3287},{"style":371},[3288],{"type":14,"value":1055},{"type":17,"tagName":350,"properties":3290,"children":3291},{"style":377},[3292],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3294,"children":3295},{"style":383},[3296],{"type":14,"value":1064},{"type":17,"tagName":350,"properties":3298,"children":3299},{"style":371},[3300],{"type":14,"value":1069},{"type":17,"tagName":350,"properties":3302,"children":3303},{"style":377},[3304],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3306,"children":3307},{"style":398},[3308],{"type":14,"value":1078},{"type":17,"tagName":350,"properties":3310,"children":3311},{"style":371},[3312],{"type":14,"value":462},{"type":14,"value":15},{"type":17,"tagName":350,"properties":3315,"children":3316},{"class":352},[],{"type":14,"value":15},{"type":17,"tagName":350,"properties":3319,"children":3320},{"class":352},[3321,3325,3329,3333,3337,3341,3345,3349],{"type":17,"tagName":350,"properties":3322,"children":3323},{"style":371},[3324],{"type":14,"value":1198},{"type":17,"tagName":350,"properties":3326,"children":3327},{"style":377},[3328],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3330,"children":3331},{"style":365},[3332],{"type":14,"value":484},{"type":17,"tagName":350,"properties":3334,"children":3335},{"style":371},[3336],{"type":14,"value":489},{"type":17,"tagName":350,"properties":3338,"children":3339},{"style":377},[3340],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3342,"children":3343},{"style":371},[3344],{"type":14,"value":498},{"type":17,"tagName":350,"properties":3346,"children":3347},{"style":377},[3348],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3350,"children":3351},{"style":371},[3352],{"type":14,"value":507},{"type":14,"value":15},{"type":17,"tagName":350,"properties":3355,"children":3356},{"class":352},[3357,3362,3366,3371,3375,3379,3384,3388,3393],{"type":17,"tagName":350,"properties":3358,"children":3359},{"style":371},[3360],{"type":14,"value":3361},"timeseries sma20 ",{"type":17,"tagName":350,"properties":3363,"children":3364},{"style":377},[3365],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3367,"children":3368},{"style":365},[3369],{"type":14,"value":3370}," sma",{"type":17,"tagName":350,"properties":3372,"children":3373},{"style":371},[3374],{"type":14,"value":530},{"type":17,"tagName":350,"properties":3376,"children":3377},{"style":377},[3378],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3380,"children":3381},{"style":371},[3382],{"type":14,"value":3383},"d.close, period",{"type":17,"tagName":350,"properties":3385,"children":3386},{"style":377},[3387],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3389,"children":3390},{"style":398},[3391],{"type":14,"value":3392},"20",{"type":17,"tagName":350,"properties":3394,"children":3395},{"style":371},[3396],{"type":14,"value":462},{"type":14,"value":15},{"type":17,"tagName":350,"properties":3399,"children":3400},{"class":352},[3401,3405,3409,3413,3418,3422,3426,3430,3434,3438,3442,3446,3450,3454,3459,3463,3467,3471,3476],{"type":17,"tagName":350,"properties":3402,"children":3403},{"style":365},[3404],{"type":14,"value":729},{"type":17,"tagName":350,"properties":3406,"children":3407},{"style":371},[3408],{"type":14,"value":734},{"type":17,"tagName":350,"properties":3410,"children":3411},{"style":377},[3412],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3414,"children":3415},{"style":371},[3416],{"type":14,"value":3417},"sma20, colors",{"type":17,"tagName":350,"properties":3419,"children":3420},{"style":377},[3421],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3423,"children":3424},{"style":371},[3425],{"type":14,"value":766},{"type":17,"tagName":350,"properties":3427,"children":3428},{"style":383},[3429],{"type":14,"value":1338},{"type":17,"tagName":350,"properties":3431,"children":3432},{"style":371},[3433],{"type":14,"value":1343},{"type":17,"tagName":350,"properties":3435,"children":3436},{"style":377},[3437],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3439,"children":3440},{"style":398},[3441],{"type":14,"value":457},{"type":17,"tagName":350,"properties":3443,"children":3444},{"style":371},[3445],{"type":14,"value":1356},{"type":17,"tagName":350,"properties":3447,"children":3448},{"style":377},[3449],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3451,"children":3452},{"style":371},[3453],{"type":14,"value":766},{"type":17,"tagName":350,"properties":3455,"children":3456},{"style":383},[3457],{"type":14,"value":3458},"\"SMA 20\"",{"type":17,"tagName":350,"properties":3460,"children":3461},{"style":371},[3462],{"type":14,"value":794},{"type":17,"tagName":350,"properties":3464,"children":3465},{"style":377},[3466],{"type":14,"value":380},{"type":17,"tagName":350,"properties":3468,"children":3469},{"style":371},[3470],{"type":14,"value":766},{"type":17,"tagName":350,"properties":3472,"children":3473},{"style":383},[3474],{"type":14,"value":3475},"\"v3 features under the v3 marker\"",{"type":17,"tagName":350,"properties":3477,"children":3478},{"style":371},[3479],{"type":14,"value":812},{"type":14,"value":15},{"type":17,"tagName":18,"properties":3482,"children":3483,"position":3515},{},[3484,3493,3508],{"type":14,"value":3485,"position":3486},"If something does not behave as documented, the\n",{"start":3487,"end":3490},{"line":3488,"column":26,"offset":3489},239,10966,{"line":3491,"column":26,"offset":3492},240,11014,{"type":17,"tagName":159,"properties":3494,"children":3496,"position":3504},{"href":3495},"/kscript/faq/common-errors",[3497],{"type":14,"value":3498,"position":3499},"Common Errors",{"start":3500,"end":3502},{"line":3491,"column":167,"offset":3501},11015,{"line":3491,"column":156,"offset":3503},11028,{"start":3505,"end":3506},{"line":3491,"column":26,"offset":3492},{"line":3491,"column":216,"offset":3507},11057,{"type":14,"value":3509,"position":3510}," page maps every real engine error\nmessage to its cause and fix.",{"start":3511,"end":3512},{"line":3491,"column":216,"offset":3507},{"line":3513,"column":1598,"offset":3514},241,11121,{"start":3516,"end":3517},{"line":3488,"column":26,"offset":3489},{"line":3513,"column":1598,"offset":3514},{"quirksMode":3519},false,{"start":3521,"end":3523},{"line":26,"column":26,"offset":3522},0,{"line":3524,"column":26,"offset":3525},242,11122,1784888027590]