[{"data":1,"prerenderedAt":2636},["ShallowReactive",2],{"indicators:getting-started/why-indicators":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":11,"tree":12},"getting-started/why-indicators","getting-started/why-indicators.md",{"title":7,"description":8,"order":9,"section":10},"Why Indicators","An Indicator is one TypeScript file that compiles in your browser, publishes as a versioned package under your name, and runs on your own machine unchanged…",3,"getting-started","---\ntitle: \"Why Indicators\"\ndescription: \"An Indicator is one TypeScript file that compiles in your browser, publishes as a versioned package under your name, and runs on your own machine unchanged…\"\norder: 3\nsection: \"getting-started\"\n---\n\n\u003C!-- source: docs/indicators/getting-started/why-indicators.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# Why Indicators\n\nAn Indicator is one TypeScript file that compiles in your browser, publishes\nas a versioned package under your name, and runs on your own machine\nunchanged, where every output is a metric id that alerts, screens, series\nand backtests read. kScript (legacy) is a script the platform holds and its\nchart engine interprets. This page is the side-by-side, then each claim with\nthe place in the product that proves it.\n\n## The two engines side by side\n\nkScript (legacy) stays exactly where it is: published kScript scripts keep\ncharting on the pinned v3 engine, and nothing existing breaks. An Indicator\nis a different artifact, and this is what changes when you write one:\n\n```text\n        kScript (legacy) v3                     Indicator\n  -----------------------------------   ----------------------------------------\n  a script the platform holds           a TypeScript file you hold\n  interpreted on the chart's engine     compiled in your browser with the same\n                                          compiler the CLI uses, same bytes\n  runs on the chart and hosted alerts   runs on the chart, on YOUR machine, and\n                                          (candles only, today) on hosted alerts\n  plots read in the chart legend        outputs are metric ids: alerts, screens,\n                                          series, backtests\n  shared as a script listing            published as a versioned package\n                                          (@scope/name), installed anywhere\n  var / timeseries / persist            locals, module-level state, ring buffers\n  type Zone { } with methods            class Zone { } with typed fields\n  drawings created and deleted          shapes declared once per bar, or handles\n                                          you create, move and delete by id\n  htf() / request()                     bucket folds on the chart; interval and\n                                          market pins on your machine\n  10 weighted source slots              as many inputs as the file declares,\n                                          celled classes included\n  70+ TA builtins                       52 stateful classes in src/sdk/ta.ts,\n                                          one per builtin, bit-exact to the engine\n  strategy() on the platform            strategy() in the file: the engine's own\n                                          broker, and om backtest replays it\n```\n\n## What you gain\n\n| | |\n| --- | --- |\n| **It runs on your machine** | The daemon evaluates installed Indicator packages in a local worker pool, and `om metric series` reads any output on any market the platform serves, with `symbol`, `exchange` and `interval` pins honored ([Quick start](quick-start.md), [The CLI](cli.md)). |\n| **Alerts read it** | A watch condition names the output by metric id, as a level (`gt`, `lt`, ...) or an edge (`crosses_above`, `crosses_below`), and an edge can sit between two outputs of one package. The watch pins the exact version and module hash it was armed on ([Alerts](../functions/alerts.md)). |\n| **Screens, series and backtests read it** | `om metric screen` ranks a universe on an output, `om metric get` and `om metric series` return its values, and `om backtest` replays a package; a package that declares `strategy(...)` places its own orders through the engine's broker ([Strategies overview](../strategies/overview.md)). Screens and backtests refuse celled packages by name. |\n| **Charts mount the whole package** | One add by metric id mounts every renderable output of a published package as one overlay (`om chart indicator add --type wrun/@scope/name/output`); a draft draws through `om chart indicator preview` without publishing. |\n| **Deterministic** | The daemon's worker rows are bit-identical to the reference host, and a live session equals a full run ([Repainting](../core-concepts/repainting.md), [Execution model](../core-concepts/execution-model.md)). |\n| **TypeScript with real tooling** | The kit pins AssemblyScript 0.27.37, generated `src/gen` accessors attach your code to declared names, and a type error names its line and column before anything runs ([Type system](../core-concepts/type-system.md)). |\n| **One command to build** | `om indicator build` derives the sheet from your declarations, regenerates the accessors, runs `bun install` once and compiles; the editor's **Run** loads the same compiler version, so both hosts emit the same bytes ([The editor](the-editor.md)). |\n| **Publish once, install anywhere** | `om publish --dry-run` prints the files, size and sha256 without uploading; the release lands on the OpenMarket platform as a script beside your grants and versions, with the one source entry the manifest names; a published version is permanent, and `om install @scope/name` puts it on any machine ([Publishing](../functions/publishing.md)). |\n| **Sandboxed** | 4 MiB of module memory, no growth after `init()`, 8 MiB of text per run, no filesystem, network or clock, and a 30 s wall clock after which the worker is killed and replaced. The frozen first contract admits seven host imports plus `env.abort`; the later contracts add the cell, text, drawing, strategy and frame channels by name and nothing else ([Limits](../reference/limits.md)). |\n| **Drawings** | Boxes and segments declared once and evaluated per bar, text and label renderers, mutable handles for lines, boxes, labels and polylines (500 per kind, 1,500 in all, 256 points per polyline), `draw.card`, and frame snapshots for level profiles, panels and widgets (8 frames of 96 KiB each) ([Drawing objects](../functions/drawing-objects.md), [Drawing primitives](../functions/drawing-primitives.md)). |\n| **The TA library** | 52 stateful classes in `src/sdk/ta.ts`, one per kScript builtin, each checked bar for bar against the engine ([TA library](../functions/ta-library.md)). |\n| **Nine templates** | `sma-codefirst`, `sma-box`, `sma`, `vp-buy-share-codefirst`, `polymarket-odds`, `conviction-score`, `event-asset-divergence`, `escalation-risk` and `hud-terminal`, behind the editor's **New indicator** and `om indicator templates`. |\n| **Proven ports** | The parity program ported 177 eligible registry kScript indicators and proved 167 bit-exact against the engine over frozen holdout windows, 219 frozen families in all ([Release notes](../releases/changelog.md), v0.173.0). |\n| **Four contracts, the first frozen forever** | A sheet names `abi_version` `wrun-1` (frozen), `wrun-2` (cells, text, declared drawings), `wrun-3` (handles, strategies, the last-bar flag) or `wrun-4` (frames and series inputs); a module written under any of them keeps computing bit-identically ([Script definition](../functions/script-definition.md)). |\n\n## What stays honest\n\n- **Hosted alerts armed from the chart.** Where a site has Indicator alerts switched on (the chart says \"Indicator alerts are not enabled yet\" while it is off), an alert armed from the chart on a published Indicator runs on the hosted engine and reads the chart's own candles only; a package that needs another source, a pinned market or interval, or a celled class is refused there. The watch on your machine is the supported path ([Alerts](../functions/alerts.md)).\n- **The chart reads its own market and interval for every input.** `symbol`, `exchange` and `interval` pins are honored on your machine.\n- **Screens and backtests refuse celled packages** (`wrun_celled_metric_unsupported`); alerts, `om metric get` / `om metric series` and chart previews read them. Tape is live-only: a one-shot read or a backtest refuses `wrun_tape_unavailable`.\n- **A kScript stays a kScript until you port it.** The construct table and a worked RSI port are on [From kScript](../migrations/from-kscript.md); the original keeps charting by reference.\n\n## Where to start\n\n- [First steps](primer-first-steps.md): the editor, the template, a line on the chart.\n- [The editor](the-editor.md), [Author with an agent](with-an-agent.md), [The CLI](cli.md): the three ways to write one.\n- [Quick start](quick-start.md): the same file from a terminal, built, installed and read as a metric.\n",{"type":13,"children":14,"data":2630,"position":2632},"root",[15,25,28,29,47,48,67,68,84,85,306,307,324,326,2160,2161,2177,2178,2475,2476,2491,2492],{"type":16,"value":17,"position":18},"comment"," source: docs/indicators/getting-started/why-indicators.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit ",{"start":19,"end":22},{"line":20,"column":20,"offset":21},1,0,{"line":20,"column":23,"offset":24},137,136,{"type":26,"value":27},"text","\n",{"type":26,"value":27},{"type":30,"tagName":31,"properties":32,"children":33,"position":44},"element","p",{},[34],{"type":26,"value":35,"position":36},"An Indicator is one TypeScript file that compiles in your browser, publishes\nas a versioned package under your name, and runs on your own machine\nunchanged, where every output is a metric id that alerts, screens, series\nand backtests read. kScript (legacy) is a script the platform holds and its\nchart engine interprets. This page is the side-by-side, then each claim with\nthe place in the product that proves it.",{"start":37,"end":40},{"line":38,"column":20,"offset":39},5,156,{"line":41,"column":42,"offset":43},10,41,569,{"start":45,"end":46},{"line":38,"column":20,"offset":39},{"line":41,"column":42,"offset":43},{"type":26,"value":27},{"type":30,"tagName":49,"properties":50,"children":52,"position":63},"h2",{"id":51},"the-two-engines-side-by-side",[53],{"type":26,"value":54,"position":55},"The two engines side by side",{"start":56,"end":60},{"line":57,"column":58,"offset":59},12,4,574,{"line":57,"column":61,"offset":62},32,602,{"start":64,"end":66},{"line":57,"column":20,"offset":65},571,{"line":57,"column":61,"offset":62},{"type":26,"value":27},{"type":30,"tagName":31,"properties":69,"children":70,"position":81},{},[71],{"type":26,"value":72,"position":73},"kScript (legacy) stays exactly where it is: published kScript scripts keep\ncharting on the pinned v3 engine, and nothing existing breaks. An Indicator\nis a different artifact, and this is what changes when you write one:",{"start":74,"end":77},{"line":75,"column":20,"offset":76},14,604,{"line":78,"column":79,"offset":80},16,70,824,{"start":82,"end":83},{"line":75,"column":20,"offset":76},{"line":78,"column":79,"offset":80},{"type":26,"value":27},{"type":13,"children":86},[87],{"type":30,"tagName":88,"properties":89,"children":93,"data":-1},"pre",{"class":90,"style":91,"tabindex":92},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[94],{"type":30,"tagName":95,"properties":96,"children":97},"code",{},[98,108,109,117,118,126,127,135,136,144,145,153,154,162,163,171,172,180,181,189,190,198,199,207,208,216,217,225,226,234,235,243,244,252,253,261,262,270,271,279,280,288,289,297,298],{"type":30,"tagName":99,"properties":100,"children":102},"span",{"class":101},"line",[103],{"type":30,"tagName":99,"properties":104,"children":105},{},[106],{"type":26,"value":107},"        kScript (legacy) v3                     Indicator",{"type":26,"value":27},{"type":30,"tagName":99,"properties":110,"children":111},{"class":101},[112],{"type":30,"tagName":99,"properties":113,"children":114},{},[115],{"type":26,"value":116},"  -----------------------------------   ----------------------------------------",{"type":26,"value":27},{"type":30,"tagName":99,"properties":119,"children":120},{"class":101},[121],{"type":30,"tagName":99,"properties":122,"children":123},{},[124],{"type":26,"value":125},"  a script the platform holds           a TypeScript file you hold",{"type":26,"value":27},{"type":30,"tagName":99,"properties":128,"children":129},{"class":101},[130],{"type":30,"tagName":99,"properties":131,"children":132},{},[133],{"type":26,"value":134},"  interpreted on the chart's engine     compiled in your browser with the same",{"type":26,"value":27},{"type":30,"tagName":99,"properties":137,"children":138},{"class":101},[139],{"type":30,"tagName":99,"properties":140,"children":141},{},[142],{"type":26,"value":143},"                                          compiler the CLI uses, same bytes",{"type":26,"value":27},{"type":30,"tagName":99,"properties":146,"children":147},{"class":101},[148],{"type":30,"tagName":99,"properties":149,"children":150},{},[151],{"type":26,"value":152},"  runs on the chart and hosted alerts   runs on the chart, on YOUR machine, and",{"type":26,"value":27},{"type":30,"tagName":99,"properties":155,"children":156},{"class":101},[157],{"type":30,"tagName":99,"properties":158,"children":159},{},[160],{"type":26,"value":161},"                                          (candles only, today) on hosted alerts",{"type":26,"value":27},{"type":30,"tagName":99,"properties":164,"children":165},{"class":101},[166],{"type":30,"tagName":99,"properties":167,"children":168},{},[169],{"type":26,"value":170},"  plots read in the chart legend        outputs are metric ids: alerts, screens,",{"type":26,"value":27},{"type":30,"tagName":99,"properties":173,"children":174},{"class":101},[175],{"type":30,"tagName":99,"properties":176,"children":177},{},[178],{"type":26,"value":179},"                                          series, backtests",{"type":26,"value":27},{"type":30,"tagName":99,"properties":182,"children":183},{"class":101},[184],{"type":30,"tagName":99,"properties":185,"children":186},{},[187],{"type":26,"value":188},"  shared as a script listing            published as a versioned package",{"type":26,"value":27},{"type":30,"tagName":99,"properties":191,"children":192},{"class":101},[193],{"type":30,"tagName":99,"properties":194,"children":195},{},[196],{"type":26,"value":197},"                                          (@scope/name), installed anywhere",{"type":26,"value":27},{"type":30,"tagName":99,"properties":200,"children":201},{"class":101},[202],{"type":30,"tagName":99,"properties":203,"children":204},{},[205],{"type":26,"value":206},"  var / timeseries / persist            locals, module-level state, ring buffers",{"type":26,"value":27},{"type":30,"tagName":99,"properties":209,"children":210},{"class":101},[211],{"type":30,"tagName":99,"properties":212,"children":213},{},[214],{"type":26,"value":215},"  type Zone { } with methods            class Zone { } with typed fields",{"type":26,"value":27},{"type":30,"tagName":99,"properties":218,"children":219},{"class":101},[220],{"type":30,"tagName":99,"properties":221,"children":222},{},[223],{"type":26,"value":224},"  drawings created and deleted          shapes declared once per bar, or handles",{"type":26,"value":27},{"type":30,"tagName":99,"properties":227,"children":228},{"class":101},[229],{"type":30,"tagName":99,"properties":230,"children":231},{},[232],{"type":26,"value":233},"                                          you create, move and delete by id",{"type":26,"value":27},{"type":30,"tagName":99,"properties":236,"children":237},{"class":101},[238],{"type":30,"tagName":99,"properties":239,"children":240},{},[241],{"type":26,"value":242},"  htf() / request()                     bucket folds on the chart; interval and",{"type":26,"value":27},{"type":30,"tagName":99,"properties":245,"children":246},{"class":101},[247],{"type":30,"tagName":99,"properties":248,"children":249},{},[250],{"type":26,"value":251},"                                          market pins on your machine",{"type":26,"value":27},{"type":30,"tagName":99,"properties":254,"children":255},{"class":101},[256],{"type":30,"tagName":99,"properties":257,"children":258},{},[259],{"type":26,"value":260},"  10 weighted source slots              as many inputs as the file declares,",{"type":26,"value":27},{"type":30,"tagName":99,"properties":263,"children":264},{"class":101},[265],{"type":30,"tagName":99,"properties":266,"children":267},{},[268],{"type":26,"value":269},"                                          celled classes included",{"type":26,"value":27},{"type":30,"tagName":99,"properties":272,"children":273},{"class":101},[274],{"type":30,"tagName":99,"properties":275,"children":276},{},[277],{"type":26,"value":278},"  70+ TA builtins                       52 stateful classes in src/sdk/ta.ts,",{"type":26,"value":27},{"type":30,"tagName":99,"properties":281,"children":282},{"class":101},[283],{"type":30,"tagName":99,"properties":284,"children":285},{},[286],{"type":26,"value":287},"                                          one per builtin, bit-exact to the engine",{"type":26,"value":27},{"type":30,"tagName":99,"properties":290,"children":291},{"class":101},[292],{"type":30,"tagName":99,"properties":293,"children":294},{},[295],{"type":26,"value":296},"  strategy() on the platform            strategy() in the file: the engine's own",{"type":26,"value":27},{"type":30,"tagName":99,"properties":299,"children":300},{"class":101},[301],{"type":30,"tagName":99,"properties":302,"children":303},{},[304],{"type":26,"value":305},"                                          broker, and om backtest replays it",{"type":26,"value":27},{"type":30,"tagName":49,"properties":308,"children":310,"position":320},{"id":309},"what-you-gain",[311],{"type":26,"value":312,"position":313},"What you gain",{"start":314,"end":317},{"line":315,"column":58,"offset":316},44,2577,{"line":315,"column":318,"offset":319},17,2590,{"start":321,"end":323},{"line":315,"column":20,"offset":322},2574,{"line":315,"column":318,"offset":319},{"type":26,"value":325},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":30,"tagName":327,"properties":328,"children":329,"position":2157},"table",{},[330,362],{"type":30,"tagName":331,"properties":332,"children":333,"position":359},"thead",{},[334],{"type":30,"tagName":335,"properties":336,"children":337,"position":356},"tr",{},[338,348],{"type":30,"tagName":339,"properties":340,"children":341,"position":342},"th",{},[],{"start":343,"end":346},{"line":344,"column":20,"offset":345},46,2592,{"line":344,"column":9,"offset":347},2594,{"type":30,"tagName":339,"properties":349,"children":350,"position":351},{},[],{"start":352,"end":353},{"line":344,"column":9,"offset":347},{"line":344,"column":354,"offset":355},6,2597,{"start":357,"end":358},{"line":344,"column":20,"offset":345},{"line":344,"column":354,"offset":355},{"start":360,"end":361},{"line":344,"column":20,"offset":345},{"line":344,"column":354,"offset":355},{"type":30,"tagName":363,"properties":364,"children":365,"position":2154},"tbody",{},[366,548,699,863,952,1048,1137,1260,1363,1473,1589,1673,1916,1986],{"type":30,"tagName":335,"properties":367,"children":368,"position":545},{},[369,398],{"type":30,"tagName":370,"properties":371,"children":372,"position":392},"td",{},[373],{"type":30,"tagName":374,"properties":375,"children":376,"position":386},"strong",{},[377],{"type":26,"value":378,"position":379},"It runs on your machine",{"start":380,"end":383},{"line":381,"column":38,"offset":382},48,2616,{"line":381,"column":384,"offset":385},28,2639,{"start":387,"end":389},{"line":381,"column":9,"offset":388},2614,{"line":381,"column":390,"offset":391},30,2641,{"start":393,"end":395},{"line":381,"column":20,"offset":394},2612,{"line":381,"column":396,"offset":397},31,2642,{"type":30,"tagName":370,"properties":399,"children":400,"position":540},{},[401,410,423,430,443,450,463,470,483,490,509,515,533],{"type":26,"value":402,"position":403},"The daemon evaluates installed Indicator packages in a local worker pool, and ",{"start":404,"end":407},{"line":381,"column":405,"offset":406},33,2644,{"line":381,"column":408,"offset":409},111,2722,{"type":30,"tagName":95,"properties":411,"children":412,"position":420},{},[413],{"type":26,"value":414,"position":415},"om metric series",{"start":416,"end":417},{"line":381,"column":408,"offset":409},{"line":381,"column":418,"offset":419},129,2740,{"start":421,"end":422},{"line":381,"column":408,"offset":409},{"line":381,"column":418,"offset":419},{"type":26,"value":424,"position":425}," reads any output on any market the platform serves, with ",{"start":426,"end":427},{"line":381,"column":418,"offset":419},{"line":381,"column":428,"offset":429},187,2798,{"type":30,"tagName":95,"properties":431,"children":432,"position":440},{},[433],{"type":26,"value":434,"position":435},"symbol",{"start":436,"end":437},{"line":381,"column":428,"offset":429},{"line":381,"column":438,"offset":439},195,2806,{"start":441,"end":442},{"line":381,"column":428,"offset":429},{"line":381,"column":438,"offset":439},{"type":26,"value":444,"position":445},", ",{"start":446,"end":447},{"line":381,"column":438,"offset":439},{"line":381,"column":448,"offset":449},197,2808,{"type":30,"tagName":95,"properties":451,"children":452,"position":460},{},[453],{"type":26,"value":454,"position":455},"exchange",{"start":456,"end":457},{"line":381,"column":448,"offset":449},{"line":381,"column":458,"offset":459},207,2818,{"start":461,"end":462},{"line":381,"column":448,"offset":449},{"line":381,"column":458,"offset":459},{"type":26,"value":464,"position":465}," and ",{"start":466,"end":467},{"line":381,"column":458,"offset":459},{"line":381,"column":468,"offset":469},212,2823,{"type":30,"tagName":95,"properties":471,"children":472,"position":480},{},[473],{"type":26,"value":474,"position":475},"interval",{"start":476,"end":477},{"line":381,"column":468,"offset":469},{"line":381,"column":478,"offset":479},222,2833,{"start":481,"end":482},{"line":381,"column":468,"offset":469},{"line":381,"column":478,"offset":479},{"type":26,"value":484,"position":485}," pins honored (",{"start":486,"end":487},{"line":381,"column":478,"offset":479},{"line":381,"column":488,"offset":489},237,2848,{"type":30,"tagName":491,"properties":492,"children":494,"position":504},"a",{"href":493},"quick-start.md",[495],{"type":26,"value":496,"position":497},"Quick start",{"start":498,"end":501},{"line":381,"column":499,"offset":500},238,2849,{"line":381,"column":502,"offset":503},249,2860,{"start":505,"end":506},{"line":381,"column":488,"offset":489},{"line":381,"column":507,"offset":508},266,2877,{"type":26,"value":444,"position":510},{"start":511,"end":512},{"line":381,"column":507,"offset":508},{"line":381,"column":513,"offset":514},268,2879,{"type":30,"tagName":491,"properties":516,"children":518,"position":528},{"href":517},"cli.md",[519],{"type":26,"value":520,"position":521},"The CLI",{"start":522,"end":525},{"line":381,"column":523,"offset":524},269,2880,{"line":381,"column":526,"offset":527},276,2887,{"start":529,"end":530},{"line":381,"column":513,"offset":514},{"line":381,"column":531,"offset":532},285,2896,{"type":26,"value":534,"position":535},").",{"start":536,"end":537},{"line":381,"column":531,"offset":532},{"line":381,"column":538,"offset":539},287,2898,{"start":541,"end":542},{"line":381,"column":396,"offset":397},{"line":381,"column":543,"offset":544},289,2900,{"start":546,"end":547},{"line":381,"column":20,"offset":394},{"line":381,"column":543,"offset":544},{"type":30,"tagName":335,"properties":549,"children":550,"position":696},{},[551,578],{"type":30,"tagName":370,"properties":552,"children":553,"position":572},{},[554],{"type":30,"tagName":374,"properties":555,"children":556,"position":566},{},[557],{"type":26,"value":558,"position":559},"Alerts read it",{"start":560,"end":563},{"line":561,"column":38,"offset":562},49,2905,{"line":561,"column":564,"offset":565},19,2919,{"start":567,"end":569},{"line":561,"column":9,"offset":568},2903,{"line":561,"column":570,"offset":571},21,2921,{"start":573,"end":575},{"line":561,"column":20,"offset":574},2901,{"line":561,"column":576,"offset":577},22,2922,{"type":30,"tagName":370,"properties":579,"children":580,"position":691},{},[581,590,603,609,622,629,641,647,660,667,685],{"type":26,"value":582,"position":583},"A watch condition names the output by metric id, as a level (",{"start":584,"end":587},{"line":561,"column":585,"offset":586},24,2924,{"line":561,"column":588,"offset":589},85,2985,{"type":30,"tagName":95,"properties":591,"children":592,"position":600},{},[593],{"type":26,"value":594,"position":595},"gt",{"start":596,"end":597},{"line":561,"column":588,"offset":589},{"line":561,"column":598,"offset":599},89,2989,{"start":601,"end":602},{"line":561,"column":588,"offset":589},{"line":561,"column":598,"offset":599},{"type":26,"value":444,"position":604},{"start":605,"end":606},{"line":561,"column":598,"offset":599},{"line":561,"column":607,"offset":608},91,2991,{"type":30,"tagName":95,"properties":610,"children":611,"position":619},{},[612],{"type":26,"value":613,"position":614},"lt",{"start":615,"end":616},{"line":561,"column":607,"offset":608},{"line":561,"column":617,"offset":618},95,2995,{"start":620,"end":621},{"line":561,"column":607,"offset":608},{"line":561,"column":617,"offset":618},{"type":26,"value":623,"position":624},", ...) or an edge (",{"start":625,"end":626},{"line":561,"column":617,"offset":618},{"line":561,"column":627,"offset":628},114,3014,{"type":30,"tagName":95,"properties":630,"children":631,"position":638},{},[632],{"type":26,"value":633,"position":634},"crosses_above",{"start":635,"end":636},{"line":561,"column":627,"offset":628},{"line":561,"column":418,"offset":637},3029,{"start":639,"end":640},{"line":561,"column":627,"offset":628},{"line":561,"column":418,"offset":637},{"type":26,"value":444,"position":642},{"start":643,"end":644},{"line":561,"column":418,"offset":637},{"line":561,"column":645,"offset":646},131,3031,{"type":30,"tagName":95,"properties":648,"children":649,"position":657},{},[650],{"type":26,"value":651,"position":652},"crosses_below",{"start":653,"end":654},{"line":561,"column":645,"offset":646},{"line":561,"column":655,"offset":656},146,3046,{"start":658,"end":659},{"line":561,"column":645,"offset":646},{"line":561,"column":655,"offset":656},{"type":26,"value":661,"position":662},"), and an edge can sit between two outputs of one package. The watch pins the exact version and module hash it was armed on (",{"start":663,"end":664},{"line":561,"column":655,"offset":656},{"line":561,"column":665,"offset":666},271,3171,{"type":30,"tagName":491,"properties":668,"children":670,"position":680},{"href":669},"../functions/alerts.md",[671],{"type":26,"value":672,"position":673},"Alerts",{"start":674,"end":677},{"line":561,"column":675,"offset":676},272,3172,{"line":561,"column":678,"offset":679},278,3178,{"start":681,"end":682},{"line":561,"column":665,"offset":666},{"line":561,"column":683,"offset":684},303,3203,{"type":26,"value":534,"position":686},{"start":687,"end":688},{"line":561,"column":683,"offset":684},{"line":561,"column":689,"offset":690},305,3205,{"start":692,"end":693},{"line":561,"column":576,"offset":577},{"line":561,"column":694,"offset":695},307,3207,{"start":697,"end":698},{"line":561,"column":20,"offset":574},{"line":561,"column":694,"offset":695},{"type":30,"tagName":335,"properties":700,"children":701,"position":860},{},[702,728],{"type":30,"tagName":370,"properties":703,"children":704,"position":722},{},[705],{"type":30,"tagName":374,"properties":706,"children":707,"position":717},{},[708],{"type":26,"value":709,"position":710},"Screens, series and backtests read it",{"start":711,"end":714},{"line":712,"column":38,"offset":713},50,3212,{"line":712,"column":715,"offset":716},42,3249,{"start":718,"end":720},{"line":712,"column":9,"offset":719},3210,{"line":712,"column":315,"offset":721},3251,{"start":723,"end":725},{"line":712,"column":20,"offset":724},3208,{"line":712,"column":726,"offset":727},45,3252,{"type":30,"tagName":370,"properties":729,"children":730,"position":855},{},[731,746,753,766,772,784,791,804,811,824,831,848],{"type":30,"tagName":95,"properties":732,"children":733,"position":743},{},[734],{"type":26,"value":735,"position":736},"om metric screen",{"start":737,"end":740},{"line":712,"column":738,"offset":739},47,3254,{"line":712,"column":741,"offset":742},65,3272,{"start":744,"end":745},{"line":712,"column":738,"offset":739},{"line":712,"column":741,"offset":742},{"type":26,"value":747,"position":748}," ranks a universe on an output, ",{"start":749,"end":750},{"line":712,"column":741,"offset":742},{"line":712,"column":751,"offset":752},97,3304,{"type":30,"tagName":95,"properties":754,"children":755,"position":763},{},[756],{"type":26,"value":757,"position":758},"om metric get",{"start":759,"end":760},{"line":712,"column":751,"offset":752},{"line":712,"column":761,"offset":762},112,3319,{"start":764,"end":765},{"line":712,"column":751,"offset":752},{"line":712,"column":761,"offset":762},{"type":26,"value":464,"position":767},{"start":768,"end":769},{"line":712,"column":761,"offset":762},{"line":712,"column":770,"offset":771},117,3324,{"type":30,"tagName":95,"properties":773,"children":774,"position":781},{},[775],{"type":26,"value":414,"position":776},{"start":777,"end":778},{"line":712,"column":770,"offset":771},{"line":712,"column":779,"offset":780},135,3342,{"start":782,"end":783},{"line":712,"column":770,"offset":771},{"line":712,"column":779,"offset":780},{"type":26,"value":785,"position":786}," return its values, and ",{"start":787,"end":788},{"line":712,"column":779,"offset":780},{"line":712,"column":789,"offset":790},159,3366,{"type":30,"tagName":95,"properties":792,"children":793,"position":801},{},[794],{"type":26,"value":795,"position":796},"om backtest",{"start":797,"end":798},{"line":712,"column":789,"offset":790},{"line":712,"column":799,"offset":800},172,3379,{"start":802,"end":803},{"line":712,"column":789,"offset":790},{"line":712,"column":799,"offset":800},{"type":26,"value":805,"position":806}," replays a package; a package that declares ",{"start":807,"end":808},{"line":712,"column":799,"offset":800},{"line":712,"column":809,"offset":810},216,3423,{"type":30,"tagName":95,"properties":812,"children":813,"position":821},{},[814],{"type":26,"value":815,"position":816},"strategy(...)",{"start":817,"end":818},{"line":712,"column":809,"offset":810},{"line":712,"column":819,"offset":820},231,3438,{"start":822,"end":823},{"line":712,"column":809,"offset":810},{"line":712,"column":819,"offset":820},{"type":26,"value":825,"position":826}," places its own orders through the engine's broker (",{"start":827,"end":828},{"line":712,"column":819,"offset":820},{"line":712,"column":829,"offset":830},283,3490,{"type":30,"tagName":491,"properties":832,"children":834,"position":843},{"href":833},"../strategies/overview.md",[835],{"type":26,"value":836,"position":837},"Strategies overview",{"start":838,"end":841},{"line":712,"column":839,"offset":840},284,3491,{"line":712,"column":683,"offset":842},3510,{"start":844,"end":845},{"line":712,"column":829,"offset":830},{"line":712,"column":846,"offset":847},331,3538,{"type":26,"value":849,"position":850},"). Screens and backtests refuse celled packages by name.",{"start":851,"end":852},{"line":712,"column":846,"offset":847},{"line":712,"column":853,"offset":854},387,3594,{"start":856,"end":857},{"line":712,"column":726,"offset":727},{"line":712,"column":858,"offset":859},389,3596,{"start":861,"end":862},{"line":712,"column":20,"offset":724},{"line":712,"column":858,"offset":859},{"type":30,"tagName":335,"properties":864,"children":865,"position":949},{},[866,893],{"type":30,"tagName":370,"properties":867,"children":868,"position":887},{},[869],{"type":30,"tagName":374,"properties":870,"children":871,"position":881},{},[872],{"type":26,"value":873,"position":874},"Charts mount the whole package",{"start":875,"end":878},{"line":876,"column":38,"offset":877},51,3601,{"line":876,"column":879,"offset":880},35,3631,{"start":882,"end":884},{"line":876,"column":9,"offset":883},3599,{"line":876,"column":885,"offset":886},37,3633,{"start":888,"end":890},{"line":876,"column":20,"offset":889},3597,{"line":876,"column":891,"offset":892},38,3634,{"type":30,"tagName":370,"properties":894,"children":895,"position":944},{},[896,904,917,924,937],{"type":26,"value":897,"position":898},"One add by metric id mounts every renderable output of a published package as one overlay (",{"start":899,"end":902},{"line":876,"column":900,"offset":901},40,3636,{"line":876,"column":645,"offset":903},3727,{"type":30,"tagName":95,"properties":905,"children":906,"position":914},{},[907],{"type":26,"value":908,"position":909},"om chart indicator add --type wrun/@scope/name/output",{"start":910,"end":911},{"line":876,"column":645,"offset":903},{"line":876,"column":912,"offset":913},186,3782,{"start":915,"end":916},{"line":876,"column":645,"offset":903},{"line":876,"column":912,"offset":913},{"type":26,"value":918,"position":919},"); a draft draws through ",{"start":920,"end":921},{"line":876,"column":912,"offset":913},{"line":876,"column":922,"offset":923},211,3807,{"type":30,"tagName":95,"properties":925,"children":926,"position":934},{},[927],{"type":26,"value":928,"position":929},"om chart indicator preview",{"start":930,"end":931},{"line":876,"column":922,"offset":923},{"line":876,"column":932,"offset":933},239,3835,{"start":935,"end":936},{"line":876,"column":922,"offset":923},{"line":876,"column":932,"offset":933},{"type":26,"value":938,"position":939}," without publishing.",{"start":940,"end":941},{"line":876,"column":932,"offset":933},{"line":876,"column":942,"offset":943},259,3855,{"start":945,"end":946},{"line":876,"column":891,"offset":892},{"line":876,"column":947,"offset":948},261,3857,{"start":950,"end":951},{"line":876,"column":20,"offset":889},{"line":876,"column":947,"offset":948},{"type":30,"tagName":335,"properties":953,"children":954,"position":1045},{},[955,981],{"type":30,"tagName":370,"properties":956,"children":957,"position":976},{},[958],{"type":30,"tagName":374,"properties":959,"children":960,"position":970},{},[961],{"type":26,"value":962,"position":963},"Deterministic",{"start":964,"end":967},{"line":965,"column":38,"offset":966},52,3862,{"line":965,"column":968,"offset":969},18,3875,{"start":971,"end":973},{"line":965,"column":9,"offset":972},3860,{"line":965,"column":974,"offset":975},20,3877,{"start":977,"end":979},{"line":965,"column":20,"offset":978},3858,{"line":965,"column":570,"offset":980},3878,{"type":30,"tagName":370,"properties":982,"children":983,"position":1041},{},[984,993,1011,1017,1035],{"type":26,"value":985,"position":986},"The daemon's worker rows are bit-identical to the reference host, and a live session equals a full run (",{"start":987,"end":990},{"line":965,"column":988,"offset":989},23,3880,{"line":965,"column":991,"offset":992},127,3984,{"type":30,"tagName":491,"properties":994,"children":996,"position":1006},{"href":995},"../core-concepts/repainting.md",[997],{"type":26,"value":998,"position":999},"Repainting",{"start":1000,"end":1003},{"line":965,"column":1001,"offset":1002},128,3985,{"line":965,"column":1004,"offset":1005},138,3995,{"start":1007,"end":1008},{"line":965,"column":991,"offset":992},{"line":965,"column":1009,"offset":1010},171,4028,{"type":26,"value":444,"position":1012},{"start":1013,"end":1014},{"line":965,"column":1009,"offset":1010},{"line":965,"column":1015,"offset":1016},173,4030,{"type":30,"tagName":491,"properties":1018,"children":1020,"position":1030},{"href":1019},"../core-concepts/execution-model.md",[1021],{"type":26,"value":1022,"position":1023},"Execution model",{"start":1024,"end":1027},{"line":965,"column":1025,"offset":1026},174,4031,{"line":965,"column":1028,"offset":1029},189,4046,{"start":1031,"end":1032},{"line":965,"column":1015,"offset":1016},{"line":965,"column":1033,"offset":1034},227,4084,{"type":26,"value":534,"position":1036},{"start":1037,"end":1038},{"line":965,"column":1033,"offset":1034},{"line":965,"column":1039,"offset":1040},229,4086,{"start":1042,"end":1043},{"line":965,"column":570,"offset":980},{"line":965,"column":819,"offset":1044},4088,{"start":1046,"end":1047},{"line":965,"column":20,"offset":978},{"line":965,"column":819,"offset":1044},{"type":30,"tagName":335,"properties":1049,"children":1050,"position":1134},{},[1051,1076],{"type":30,"tagName":370,"properties":1052,"children":1053,"position":1070},{},[1054],{"type":30,"tagName":374,"properties":1055,"children":1056,"position":1065},{},[1057],{"type":26,"value":1058,"position":1059},"TypeScript with real tooling",{"start":1060,"end":1063},{"line":1061,"column":38,"offset":1062},53,4093,{"line":1061,"column":405,"offset":1064},4121,{"start":1066,"end":1068},{"line":1061,"column":9,"offset":1067},4091,{"line":1061,"column":879,"offset":1069},4123,{"start":1071,"end":1073},{"line":1061,"column":20,"offset":1072},4089,{"line":1061,"column":1074,"offset":1075},36,4124,{"type":30,"tagName":370,"properties":1077,"children":1078,"position":1129},{},[1079,1086,1099,1106,1123],{"type":26,"value":1080,"position":1081},"The kit pins AssemblyScript 0.27.37, generated ",{"start":1082,"end":1084},{"line":1061,"column":891,"offset":1083},4126,{"line":1061,"column":588,"offset":1085},4173,{"type":30,"tagName":95,"properties":1087,"children":1088,"position":1096},{},[1089],{"type":26,"value":1090,"position":1091},"src/gen",{"start":1092,"end":1093},{"line":1061,"column":588,"offset":1085},{"line":1061,"column":1094,"offset":1095},94,4182,{"start":1097,"end":1098},{"line":1061,"column":588,"offset":1085},{"line":1061,"column":1094,"offset":1095},{"type":26,"value":1100,"position":1101}," accessors attach your code to declared names, and a type error names its line and column before anything runs (",{"start":1102,"end":1103},{"line":1061,"column":1094,"offset":1095},{"line":1061,"column":1104,"offset":1105},206,4294,{"type":30,"tagName":491,"properties":1107,"children":1109,"position":1118},{"href":1108},"../core-concepts/type-system.md",[1110],{"type":26,"value":1111,"position":1112},"Type system",{"start":1113,"end":1115},{"line":1061,"column":458,"offset":1114},4295,{"line":1061,"column":1116,"offset":1117},218,4306,{"start":1119,"end":1120},{"line":1061,"column":1104,"offset":1105},{"line":1061,"column":1121,"offset":1122},252,4340,{"type":26,"value":534,"position":1124},{"start":1125,"end":1126},{"line":1061,"column":1121,"offset":1122},{"line":1061,"column":1127,"offset":1128},254,4342,{"start":1130,"end":1131},{"line":1061,"column":1074,"offset":1075},{"line":1061,"column":1132,"offset":1133},256,4344,{"start":1135,"end":1136},{"line":1061,"column":20,"offset":1072},{"line":1061,"column":1132,"offset":1133},{"type":30,"tagName":335,"properties":1138,"children":1139,"position":1257},{},[1140,1166],{"type":30,"tagName":370,"properties":1141,"children":1142,"position":1161},{},[1143],{"type":30,"tagName":374,"properties":1144,"children":1145,"position":1155},{},[1146],{"type":26,"value":1147,"position":1148},"One command to build",{"start":1149,"end":1152},{"line":1150,"column":38,"offset":1151},54,4349,{"line":1150,"column":1153,"offset":1154},25,4369,{"start":1156,"end":1158},{"line":1150,"column":9,"offset":1157},4347,{"line":1150,"column":1159,"offset":1160},27,4371,{"start":1162,"end":1164},{"line":1150,"column":20,"offset":1163},4345,{"line":1150,"column":384,"offset":1165},4372,{"type":30,"tagName":370,"properties":1167,"children":1168,"position":1253},{},[1169,1182,1189,1201,1207,1223,1230,1248],{"type":30,"tagName":95,"properties":1170,"children":1171,"position":1179},{},[1172],{"type":26,"value":1173,"position":1174},"om indicator build",{"start":1175,"end":1177},{"line":1150,"column":390,"offset":1176},4374,{"line":1150,"column":712,"offset":1178},4394,{"start":1180,"end":1181},{"line":1150,"column":390,"offset":1176},{"line":1150,"column":712,"offset":1178},{"type":26,"value":1183,"position":1184}," derives the sheet from your declarations, regenerates the accessors, runs ",{"start":1185,"end":1186},{"line":1150,"column":712,"offset":1178},{"line":1150,"column":1187,"offset":1188},125,4469,{"type":30,"tagName":95,"properties":1190,"children":1191,"position":1198},{},[1192],{"type":26,"value":1193,"position":1194},"bun install",{"start":1195,"end":1196},{"line":1150,"column":1187,"offset":1188},{"line":1150,"column":1004,"offset":1197},4482,{"start":1199,"end":1200},{"line":1150,"column":1187,"offset":1188},{"line":1150,"column":1004,"offset":1197},{"type":26,"value":1202,"position":1203}," once and compiles; the editor's ",{"start":1204,"end":1205},{"line":1150,"column":1004,"offset":1197},{"line":1150,"column":1009,"offset":1206},4515,{"type":30,"tagName":374,"properties":1208,"children":1209,"position":1218},{},[1210],{"type":26,"value":1211,"position":1212},"Run",{"start":1213,"end":1215},{"line":1150,"column":1015,"offset":1214},4517,{"line":1150,"column":1216,"offset":1217},176,4520,{"start":1219,"end":1220},{"line":1150,"column":1009,"offset":1206},{"line":1150,"column":1221,"offset":1222},178,4522,{"type":26,"value":1224,"position":1225}," loads the same compiler version, so both hosts emit the same bytes (",{"start":1226,"end":1227},{"line":1150,"column":1221,"offset":1222},{"line":1150,"column":1228,"offset":1229},247,4591,{"type":30,"tagName":491,"properties":1231,"children":1233,"position":1243},{"href":1232},"the-editor.md",[1234],{"type":26,"value":1235,"position":1236},"The editor",{"start":1237,"end":1240},{"line":1150,"column":1238,"offset":1239},248,4592,{"line":1150,"column":1241,"offset":1242},258,4602,{"start":1244,"end":1245},{"line":1150,"column":1228,"offset":1229},{"line":1150,"column":1246,"offset":1247},274,4618,{"type":26,"value":534,"position":1249},{"start":1250,"end":1251},{"line":1150,"column":1246,"offset":1247},{"line":1150,"column":526,"offset":1252},4620,{"start":1254,"end":1255},{"line":1150,"column":384,"offset":1165},{"line":1150,"column":678,"offset":1256},4622,{"start":1258,"end":1259},{"line":1150,"column":20,"offset":1163},{"line":1150,"column":678,"offset":1256},{"type":30,"tagName":335,"properties":1261,"children":1262,"position":1360},{},[1263,1287],{"type":30,"tagName":370,"properties":1264,"children":1265,"position":1282},{},[1266],{"type":30,"tagName":374,"properties":1267,"children":1268,"position":1277},{},[1269],{"type":26,"value":1270,"position":1271},"Publish once, install anywhere",{"start":1272,"end":1275},{"line":1273,"column":38,"offset":1274},55,4627,{"line":1273,"column":879,"offset":1276},4657,{"start":1278,"end":1280},{"line":1273,"column":9,"offset":1279},4625,{"line":1273,"column":885,"offset":1281},4659,{"start":1283,"end":1285},{"line":1273,"column":20,"offset":1284},4623,{"line":1273,"column":891,"offset":1286},4660,{"type":30,"tagName":370,"properties":1288,"children":1289,"position":1355},{},[1290,1304,1311,1324,1331,1349],{"type":30,"tagName":95,"properties":1291,"children":1292,"position":1301},{},[1293],{"type":26,"value":1294,"position":1295},"om publish --dry-run",{"start":1296,"end":1298},{"line":1273,"column":900,"offset":1297},4662,{"line":1273,"column":1299,"offset":1300},62,4684,{"start":1302,"end":1303},{"line":1273,"column":900,"offset":1297},{"line":1273,"column":1299,"offset":1300},{"type":26,"value":1305,"position":1306}," prints the files, size and sha256 without uploading; the release lands on the OpenMarket platform as a script beside your grants and versions, with the one source entry the manifest names; a published version is permanent, and ",{"start":1307,"end":1308},{"line":1273,"column":1299,"offset":1300},{"line":1273,"column":1309,"offset":1310},290,4912,{"type":30,"tagName":95,"properties":1312,"children":1313,"position":1321},{},[1314],{"type":26,"value":1315,"position":1316},"om install @scope/name",{"start":1317,"end":1318},{"line":1273,"column":1309,"offset":1310},{"line":1273,"column":1319,"offset":1320},314,4936,{"start":1322,"end":1323},{"line":1273,"column":1309,"offset":1310},{"line":1273,"column":1319,"offset":1320},{"type":26,"value":1325,"position":1326}," puts it on any machine (",{"start":1327,"end":1328},{"line":1273,"column":1319,"offset":1320},{"line":1273,"column":1329,"offset":1330},339,4961,{"type":30,"tagName":491,"properties":1332,"children":1334,"position":1344},{"href":1333},"../functions/publishing.md",[1335],{"type":26,"value":1336,"position":1337},"Publishing",{"start":1338,"end":1341},{"line":1273,"column":1339,"offset":1340},340,4962,{"line":1273,"column":1342,"offset":1343},350,4972,{"start":1345,"end":1346},{"line":1273,"column":1329,"offset":1330},{"line":1273,"column":1347,"offset":1348},379,5001,{"type":26,"value":534,"position":1350},{"start":1351,"end":1352},{"line":1273,"column":1347,"offset":1348},{"line":1273,"column":1353,"offset":1354},381,5003,{"start":1356,"end":1357},{"line":1273,"column":891,"offset":1286},{"line":1273,"column":1358,"offset":1359},383,5005,{"start":1361,"end":1362},{"line":1273,"column":20,"offset":1284},{"line":1273,"column":1358,"offset":1359},{"type":30,"tagName":335,"properties":1364,"children":1365,"position":1470},{},[1366,1390],{"type":30,"tagName":370,"properties":1367,"children":1368,"position":1385},{},[1369],{"type":30,"tagName":374,"properties":1370,"children":1371,"position":1380},{},[1372],{"type":26,"value":1373,"position":1374},"Sandboxed",{"start":1375,"end":1378},{"line":1376,"column":38,"offset":1377},56,5010,{"line":1376,"column":75,"offset":1379},5019,{"start":1381,"end":1383},{"line":1376,"column":9,"offset":1382},5008,{"line":1376,"column":78,"offset":1384},5021,{"start":1386,"end":1388},{"line":1376,"column":20,"offset":1387},5006,{"line":1376,"column":318,"offset":1389},5022,{"type":30,"tagName":370,"properties":1391,"children":1392,"position":1465},{},[1393,1401,1414,1421,1434,1441,1459],{"type":26,"value":1394,"position":1395},"4 MiB of module memory, no growth after ",{"start":1396,"end":1398},{"line":1376,"column":564,"offset":1397},5024,{"line":1376,"column":1399,"offset":1400},59,5064,{"type":30,"tagName":95,"properties":1402,"children":1403,"position":1411},{},[1404],{"type":26,"value":1405,"position":1406},"init()",{"start":1407,"end":1408},{"line":1376,"column":1399,"offset":1400},{"line":1376,"column":1409,"offset":1410},67,5072,{"start":1412,"end":1413},{"line":1376,"column":1399,"offset":1400},{"line":1376,"column":1409,"offset":1410},{"type":26,"value":1415,"position":1416},", 8 MiB of text per run, no filesystem, network or clock, and a 30 s wall clock after which the worker is killed and replaced. The frozen first contract admits seven host imports plus ",{"start":1417,"end":1418},{"line":1376,"column":1409,"offset":1410},{"line":1376,"column":1419,"offset":1420},251,5256,{"type":30,"tagName":95,"properties":1422,"children":1423,"position":1431},{},[1424],{"type":26,"value":1425,"position":1426},"env.abort",{"start":1427,"end":1428},{"line":1376,"column":1419,"offset":1420},{"line":1376,"column":1429,"offset":1430},262,5267,{"start":1432,"end":1433},{"line":1376,"column":1419,"offset":1420},{"line":1376,"column":1429,"offset":1430},{"type":26,"value":1435,"position":1436},"; the later contracts add the cell, text, drawing, strategy and frame channels by name and nothing else (",{"start":1437,"end":1438},{"line":1376,"column":1429,"offset":1430},{"line":1376,"column":1439,"offset":1440},367,5372,{"type":30,"tagName":491,"properties":1442,"children":1444,"position":1454},{"href":1443},"../reference/limits.md",[1445],{"type":26,"value":1446,"position":1447},"Limits",{"start":1448,"end":1451},{"line":1376,"column":1449,"offset":1450},368,5373,{"line":1376,"column":1452,"offset":1453},374,5379,{"start":1455,"end":1456},{"line":1376,"column":1439,"offset":1440},{"line":1376,"column":1457,"offset":1458},399,5404,{"type":26,"value":534,"position":1460},{"start":1461,"end":1462},{"line":1376,"column":1457,"offset":1458},{"line":1376,"column":1463,"offset":1464},401,5406,{"start":1466,"end":1467},{"line":1376,"column":318,"offset":1389},{"line":1376,"column":1468,"offset":1469},403,5408,{"start":1471,"end":1472},{"line":1376,"column":20,"offset":1387},{"line":1376,"column":1468,"offset":1469},{"type":30,"tagName":335,"properties":1474,"children":1475,"position":1586},{},[1476,1502],{"type":30,"tagName":370,"properties":1477,"children":1478,"position":1497},{},[1479],{"type":30,"tagName":374,"properties":1480,"children":1481,"position":1491},{},[1482],{"type":26,"value":1483,"position":1484},"Drawings",{"start":1485,"end":1488},{"line":1486,"column":38,"offset":1487},57,5413,{"line":1486,"column":1489,"offset":1490},13,5421,{"start":1492,"end":1494},{"line":1486,"column":9,"offset":1493},5411,{"line":1486,"column":1495,"offset":1496},15,5423,{"start":1498,"end":1500},{"line":1486,"column":20,"offset":1499},5409,{"line":1486,"column":78,"offset":1501},5424,{"type":30,"tagName":370,"properties":1503,"children":1504,"position":1581},{},[1505,1513,1526,1533,1551,1557,1575],{"type":26,"value":1506,"position":1507},"Boxes and segments declared once and evaluated per bar, text and label renderers, mutable handles for lines, boxes, labels and polylines (500 per kind, 1,500 in all, 256 points per polyline), ",{"start":1508,"end":1510},{"line":1486,"column":968,"offset":1509},5426,{"line":1486,"column":1511,"offset":1512},210,5618,{"type":30,"tagName":95,"properties":1514,"children":1515,"position":1523},{},[1516],{"type":26,"value":1517,"position":1518},"draw.card",{"start":1519,"end":1520},{"line":1486,"column":1511,"offset":1512},{"line":1486,"column":1521,"offset":1522},221,5629,{"start":1524,"end":1525},{"line":1486,"column":1511,"offset":1512},{"line":1486,"column":1521,"offset":1522},{"type":26,"value":1527,"position":1528},", and frame snapshots for level profiles, panels and widgets (8 frames of 96 KiB each) (",{"start":1529,"end":1530},{"line":1486,"column":1521,"offset":1522},{"line":1486,"column":1531,"offset":1532},309,5717,{"type":30,"tagName":491,"properties":1534,"children":1536,"position":1546},{"href":1535},"../functions/drawing-objects.md",[1537],{"type":26,"value":1538,"position":1539},"Drawing objects",{"start":1540,"end":1543},{"line":1486,"column":1541,"offset":1542},310,5718,{"line":1486,"column":1544,"offset":1545},325,5733,{"start":1547,"end":1548},{"line":1486,"column":1531,"offset":1532},{"line":1486,"column":1549,"offset":1550},359,5767,{"type":26,"value":444,"position":1552},{"start":1553,"end":1554},{"line":1486,"column":1549,"offset":1550},{"line":1486,"column":1555,"offset":1556},361,5769,{"type":30,"tagName":491,"properties":1558,"children":1560,"position":1570},{"href":1559},"../functions/drawing-primitives.md",[1561],{"type":26,"value":1562,"position":1563},"Drawing primitives",{"start":1564,"end":1567},{"line":1486,"column":1565,"offset":1566},362,5770,{"line":1486,"column":1568,"offset":1569},380,5788,{"start":1571,"end":1572},{"line":1486,"column":1555,"offset":1556},{"line":1486,"column":1573,"offset":1574},417,5825,{"type":26,"value":534,"position":1576},{"start":1577,"end":1578},{"line":1486,"column":1573,"offset":1574},{"line":1486,"column":1579,"offset":1580},419,5827,{"start":1582,"end":1583},{"line":1486,"column":78,"offset":1501},{"line":1486,"column":1584,"offset":1585},421,5829,{"start":1587,"end":1588},{"line":1486,"column":20,"offset":1499},{"line":1486,"column":1584,"offset":1585},{"type":30,"tagName":335,"properties":1590,"children":1591,"position":1670},{},[1592,1616],{"type":30,"tagName":370,"properties":1593,"children":1594,"position":1611},{},[1595],{"type":30,"tagName":374,"properties":1596,"children":1597,"position":1606},{},[1598],{"type":26,"value":1599,"position":1600},"The TA library",{"start":1601,"end":1604},{"line":1602,"column":38,"offset":1603},58,5834,{"line":1602,"column":564,"offset":1605},5848,{"start":1607,"end":1609},{"line":1602,"column":9,"offset":1608},5832,{"line":1602,"column":570,"offset":1610},5850,{"start":1612,"end":1614},{"line":1602,"column":20,"offset":1613},5830,{"line":1602,"column":576,"offset":1615},5851,{"type":30,"tagName":370,"properties":1617,"children":1618,"position":1666},{},[1619,1626,1638,1645,1661],{"type":26,"value":1620,"position":1621},"52 stateful classes in ",{"start":1622,"end":1624},{"line":1602,"column":585,"offset":1623},5853,{"line":1602,"column":738,"offset":1625},5876,{"type":30,"tagName":95,"properties":1627,"children":1628,"position":1635},{},[1629],{"type":26,"value":1630,"position":1631},"src/sdk/ta.ts",{"start":1632,"end":1633},{"line":1602,"column":738,"offset":1625},{"line":1602,"column":1299,"offset":1634},5891,{"start":1636,"end":1637},{"line":1602,"column":738,"offset":1625},{"line":1602,"column":1299,"offset":1634},{"type":26,"value":1639,"position":1640},", one per kScript builtin, each checked bar for bar against the engine (",{"start":1641,"end":1642},{"line":1602,"column":1299,"offset":1634},{"line":1602,"column":1643,"offset":1644},134,5963,{"type":30,"tagName":491,"properties":1646,"children":1648,"position":1657},{"href":1647},"../functions/ta-library.md",[1649],{"type":26,"value":1650,"position":1651},"TA library",{"start":1652,"end":1654},{"line":1602,"column":779,"offset":1653},5964,{"line":1602,"column":1655,"offset":1656},145,5974,{"start":1658,"end":1659},{"line":1602,"column":1643,"offset":1644},{"line":1602,"column":1025,"offset":1660},6003,{"type":26,"value":534,"position":1662},{"start":1663,"end":1664},{"line":1602,"column":1025,"offset":1660},{"line":1602,"column":1216,"offset":1665},6005,{"start":1667,"end":1668},{"line":1602,"column":576,"offset":1615},{"line":1602,"column":1221,"offset":1669},6007,{"start":1671,"end":1672},{"line":1602,"column":20,"offset":1613},{"line":1602,"column":1221,"offset":1669},{"type":30,"tagName":335,"properties":1674,"children":1675,"position":1913},{},[1676,1699],{"type":30,"tagName":370,"properties":1677,"children":1678,"position":1694},{},[1679],{"type":30,"tagName":374,"properties":1680,"children":1681,"position":1689},{},[1682],{"type":26,"value":1683,"position":1684},"Nine templates",{"start":1685,"end":1687},{"line":1399,"column":38,"offset":1686},6012,{"line":1399,"column":564,"offset":1688},6026,{"start":1690,"end":1692},{"line":1399,"column":9,"offset":1691},6010,{"line":1399,"column":570,"offset":1693},6028,{"start":1695,"end":1697},{"line":1399,"column":20,"offset":1696},6008,{"line":1399,"column":576,"offset":1698},6029,{"type":30,"tagName":370,"properties":1700,"children":1701,"position":1908},{},[1702,1716,1721,1733,1738,1750,1755,1768,1773,1786,1792,1805,1811,1824,1830,1843,1848,1860,1867,1883,1889,1901],{"type":30,"tagName":95,"properties":1703,"children":1704,"position":1713},{},[1705],{"type":26,"value":1706,"position":1707},"sma-codefirst",{"start":1708,"end":1710},{"line":1399,"column":585,"offset":1709},6031,{"line":1399,"column":1711,"offset":1712},39,6046,{"start":1714,"end":1715},{"line":1399,"column":585,"offset":1709},{"line":1399,"column":1711,"offset":1712},{"type":26,"value":444,"position":1717},{"start":1718,"end":1719},{"line":1399,"column":1711,"offset":1712},{"line":1399,"column":42,"offset":1720},6048,{"type":30,"tagName":95,"properties":1722,"children":1723,"position":1730},{},[1724],{"type":26,"value":1725,"position":1726},"sma-box",{"start":1727,"end":1728},{"line":1399,"column":42,"offset":1720},{"line":1399,"column":712,"offset":1729},6057,{"start":1731,"end":1732},{"line":1399,"column":42,"offset":1720},{"line":1399,"column":712,"offset":1729},{"type":26,"value":444,"position":1734},{"start":1735,"end":1736},{"line":1399,"column":712,"offset":1729},{"line":1399,"column":965,"offset":1737},6059,{"type":30,"tagName":95,"properties":1739,"children":1740,"position":1747},{},[1741],{"type":26,"value":1742,"position":1743},"sma",{"start":1744,"end":1745},{"line":1399,"column":965,"offset":1737},{"line":1399,"column":1486,"offset":1746},6064,{"start":1748,"end":1749},{"line":1399,"column":965,"offset":1737},{"line":1399,"column":1486,"offset":1746},{"type":26,"value":444,"position":1751},{"start":1752,"end":1753},{"line":1399,"column":1486,"offset":1746},{"line":1399,"column":1399,"offset":1754},6066,{"type":30,"tagName":95,"properties":1756,"children":1757,"position":1765},{},[1758],{"type":26,"value":1759,"position":1760},"vp-buy-share-codefirst",{"start":1761,"end":1762},{"line":1399,"column":1399,"offset":1754},{"line":1399,"column":1763,"offset":1764},83,6090,{"start":1766,"end":1767},{"line":1399,"column":1399,"offset":1754},{"line":1399,"column":1763,"offset":1764},{"type":26,"value":444,"position":1769},{"start":1770,"end":1771},{"line":1399,"column":1763,"offset":1764},{"line":1399,"column":588,"offset":1772},6092,{"type":30,"tagName":95,"properties":1774,"children":1775,"position":1783},{},[1776],{"type":26,"value":1777,"position":1778},"polymarket-odds",{"start":1779,"end":1780},{"line":1399,"column":588,"offset":1772},{"line":1399,"column":1781,"offset":1782},102,6109,{"start":1784,"end":1785},{"line":1399,"column":588,"offset":1772},{"line":1399,"column":1781,"offset":1782},{"type":26,"value":444,"position":1787},{"start":1788,"end":1789},{"line":1399,"column":1781,"offset":1782},{"line":1399,"column":1790,"offset":1791},104,6111,{"type":30,"tagName":95,"properties":1793,"children":1794,"position":1802},{},[1795],{"type":26,"value":1796,"position":1797},"conviction-score",{"start":1798,"end":1799},{"line":1399,"column":1790,"offset":1791},{"line":1399,"column":1800,"offset":1801},122,6129,{"start":1803,"end":1804},{"line":1399,"column":1790,"offset":1791},{"line":1399,"column":1800,"offset":1801},{"type":26,"value":444,"position":1806},{"start":1807,"end":1808},{"line":1399,"column":1800,"offset":1801},{"line":1399,"column":1809,"offset":1810},124,6131,{"type":30,"tagName":95,"properties":1812,"children":1813,"position":1821},{},[1814],{"type":26,"value":1815,"position":1816},"event-asset-divergence",{"start":1817,"end":1818},{"line":1399,"column":1809,"offset":1810},{"line":1399,"column":1819,"offset":1820},148,6155,{"start":1822,"end":1823},{"line":1399,"column":1809,"offset":1810},{"line":1399,"column":1819,"offset":1820},{"type":26,"value":444,"position":1825},{"start":1826,"end":1827},{"line":1399,"column":1819,"offset":1820},{"line":1399,"column":1828,"offset":1829},150,6157,{"type":30,"tagName":95,"properties":1831,"children":1832,"position":1840},{},[1833],{"type":26,"value":1834,"position":1835},"escalation-risk",{"start":1836,"end":1837},{"line":1399,"column":1828,"offset":1829},{"line":1399,"column":1838,"offset":1839},167,6174,{"start":1841,"end":1842},{"line":1399,"column":1828,"offset":1829},{"line":1399,"column":1838,"offset":1839},{"type":26,"value":464,"position":1844},{"start":1845,"end":1846},{"line":1399,"column":1838,"offset":1839},{"line":1399,"column":799,"offset":1847},6179,{"type":30,"tagName":95,"properties":1849,"children":1850,"position":1857},{},[1851],{"type":26,"value":1852,"position":1853},"hud-terminal",{"start":1854,"end":1855},{"line":1399,"column":799,"offset":1847},{"line":1399,"column":912,"offset":1856},6193,{"start":1858,"end":1859},{"line":1399,"column":799,"offset":1847},{"line":1399,"column":912,"offset":1856},{"type":26,"value":1861,"position":1862},", behind the editor's ",{"start":1863,"end":1864},{"line":1399,"column":912,"offset":1856},{"line":1399,"column":1865,"offset":1866},208,6215,{"type":30,"tagName":374,"properties":1868,"children":1869,"position":1878},{},[1870],{"type":26,"value":1871,"position":1872},"New indicator",{"start":1873,"end":1875},{"line":1399,"column":1511,"offset":1874},6217,{"line":1399,"column":1876,"offset":1877},223,6230,{"start":1879,"end":1880},{"line":1399,"column":1865,"offset":1866},{"line":1399,"column":1881,"offset":1882},225,6232,{"type":26,"value":464,"position":1884},{"start":1885,"end":1886},{"line":1399,"column":1881,"offset":1882},{"line":1399,"column":1887,"offset":1888},230,6237,{"type":30,"tagName":95,"properties":1890,"children":1891,"position":1898},{},[1892],{"type":26,"value":1893,"position":1894},"om indicator templates",{"start":1895,"end":1896},{"line":1399,"column":1887,"offset":1888},{"line":1399,"column":1127,"offset":1897},6261,{"start":1899,"end":1900},{"line":1399,"column":1887,"offset":1888},{"line":1399,"column":1127,"offset":1897},{"type":26,"value":1902,"position":1903},".",{"start":1904,"end":1905},{"line":1399,"column":1127,"offset":1897},{"line":1399,"column":1906,"offset":1907},255,6262,{"start":1909,"end":1910},{"line":1399,"column":576,"offset":1698},{"line":1399,"column":1911,"offset":1912},257,6264,{"start":1914,"end":1915},{"line":1399,"column":20,"offset":1696},{"line":1399,"column":1911,"offset":1912},{"type":30,"tagName":335,"properties":1917,"children":1918,"position":1983},{},[1919,1943],{"type":30,"tagName":370,"properties":1920,"children":1921,"position":1938},{},[1922],{"type":30,"tagName":374,"properties":1923,"children":1924,"position":1933},{},[1925],{"type":26,"value":1926,"position":1927},"Proven ports",{"start":1928,"end":1931},{"line":1929,"column":38,"offset":1930},60,6269,{"line":1929,"column":318,"offset":1932},6281,{"start":1934,"end":1936},{"line":1929,"column":9,"offset":1935},6267,{"line":1929,"column":564,"offset":1937},6283,{"start":1939,"end":1941},{"line":1929,"column":20,"offset":1940},6265,{"line":1929,"column":974,"offset":1942},6284,{"type":30,"tagName":370,"properties":1944,"children":1945,"position":1978},{},[1946,1954,1971],{"type":26,"value":1947,"position":1948},"The parity program ported 177 eligible registry kScript indicators and proved 167 bit-exact against the engine over frozen holdout windows, 219 frozen families in all (",{"start":1949,"end":1951},{"line":1929,"column":576,"offset":1950},6286,{"line":1929,"column":1952,"offset":1953},190,6454,{"type":30,"tagName":491,"properties":1955,"children":1957,"position":1967},{"href":1956},"../releases/changelog.md",[1958],{"type":26,"value":1959,"position":1960},"Release notes",{"start":1961,"end":1964},{"line":1929,"column":1962,"offset":1963},191,6455,{"line":1929,"column":1965,"offset":1966},204,6468,{"start":1968,"end":1969},{"line":1929,"column":1952,"offset":1953},{"line":1929,"column":819,"offset":1970},6495,{"type":26,"value":1972,"position":1973},", v0.173.0).",{"start":1974,"end":1975},{"line":1929,"column":819,"offset":1970},{"line":1929,"column":1976,"offset":1977},243,6507,{"start":1979,"end":1980},{"line":1929,"column":974,"offset":1942},{"line":1929,"column":1981,"offset":1982},245,6509,{"start":1984,"end":1985},{"line":1929,"column":20,"offset":1940},{"line":1929,"column":1981,"offset":1982},{"type":30,"tagName":335,"properties":1987,"children":1988,"position":2151},{},[1989,2013],{"type":30,"tagName":370,"properties":1990,"children":1991,"position":2008},{},[1992],{"type":30,"tagName":374,"properties":1993,"children":1994,"position":2003},{},[1995],{"type":26,"value":1996,"position":1997},"Four contracts, the first frozen forever",{"start":1998,"end":2001},{"line":1999,"column":38,"offset":2000},61,6514,{"line":1999,"column":726,"offset":2002},6554,{"start":2004,"end":2006},{"line":1999,"column":9,"offset":2005},6512,{"line":1999,"column":738,"offset":2007},6556,{"start":2009,"end":2011},{"line":1999,"column":20,"offset":2010},6510,{"line":1999,"column":381,"offset":2012},6557,{"type":30,"tagName":370,"properties":2014,"children":2015,"position":2146},{},[2016,2024,2037,2044,2057,2063,2076,2083,2095,2102,2115,2122,2140],{"type":26,"value":2017,"position":2018},"A sheet names ",{"start":2019,"end":2021},{"line":1999,"column":712,"offset":2020},6559,{"line":1999,"column":2022,"offset":2023},64,6573,{"type":30,"tagName":95,"properties":2025,"children":2026,"position":2034},{},[2027],{"type":26,"value":2028,"position":2029},"abi_version",{"start":2030,"end":2031},{"line":1999,"column":2022,"offset":2023},{"line":1999,"column":2032,"offset":2033},77,6586,{"start":2035,"end":2036},{"line":1999,"column":2022,"offset":2023},{"line":1999,"column":2032,"offset":2033},{"type":26,"value":2038,"position":2039}," ",{"start":2040,"end":2041},{"line":1999,"column":2032,"offset":2033},{"line":1999,"column":2042,"offset":2043},78,6587,{"type":30,"tagName":95,"properties":2045,"children":2046,"position":2054},{},[2047],{"type":26,"value":2048,"position":2049},"wrun-1",{"start":2050,"end":2051},{"line":1999,"column":2042,"offset":2043},{"line":1999,"column":2052,"offset":2053},86,6595,{"start":2055,"end":2056},{"line":1999,"column":2042,"offset":2043},{"line":1999,"column":2052,"offset":2053},{"type":26,"value":2058,"position":2059}," (frozen), ",{"start":2060,"end":2061},{"line":1999,"column":2052,"offset":2053},{"line":1999,"column":751,"offset":2062},6606,{"type":30,"tagName":95,"properties":2064,"children":2065,"position":2073},{},[2066],{"type":26,"value":2067,"position":2068},"wrun-2",{"start":2069,"end":2070},{"line":1999,"column":751,"offset":2062},{"line":1999,"column":2071,"offset":2072},105,6614,{"start":2074,"end":2075},{"line":1999,"column":751,"offset":2062},{"line":1999,"column":2071,"offset":2072},{"type":26,"value":2077,"position":2078}," (cells, text, declared drawings), ",{"start":2079,"end":2080},{"line":1999,"column":2071,"offset":2072},{"line":1999,"column":2081,"offset":2082},140,6649,{"type":30,"tagName":95,"properties":2084,"children":2085,"position":2092},{},[2086],{"type":26,"value":2087,"position":2088},"wrun-3",{"start":2089,"end":2090},{"line":1999,"column":2081,"offset":2082},{"line":1999,"column":1819,"offset":2091},6657,{"start":2093,"end":2094},{"line":1999,"column":2081,"offset":2082},{"line":1999,"column":1819,"offset":2091},{"type":26,"value":2096,"position":2097}," (handles, strategies, the last-bar flag) or ",{"start":2098,"end":2099},{"line":1999,"column":1819,"offset":2091},{"line":1999,"column":2100,"offset":2101},193,6702,{"type":30,"tagName":95,"properties":2103,"children":2104,"position":2112},{},[2105],{"type":26,"value":2106,"position":2107},"wrun-4",{"start":2108,"end":2109},{"line":1999,"column":2100,"offset":2101},{"line":1999,"column":2110,"offset":2111},201,6710,{"start":2113,"end":2114},{"line":1999,"column":2100,"offset":2101},{"line":1999,"column":2110,"offset":2111},{"type":26,"value":2116,"position":2117}," (frames and series inputs); a module written under any of them keeps computing bit-identically (",{"start":2118,"end":2119},{"line":1999,"column":2110,"offset":2111},{"line":1999,"column":2120,"offset":2121},298,6807,{"type":30,"tagName":491,"properties":2123,"children":2125,"position":2135},{"href":2124},"../functions/script-definition.md",[2126],{"type":26,"value":2127,"position":2128},"Script definition",{"start":2129,"end":2132},{"line":1999,"column":2130,"offset":2131},299,6808,{"line":1999,"column":2133,"offset":2134},316,6825,{"start":2136,"end":2137},{"line":1999,"column":2120,"offset":2121},{"line":1999,"column":2138,"offset":2139},352,6861,{"type":26,"value":534,"position":2141},{"start":2142,"end":2143},{"line":1999,"column":2138,"offset":2139},{"line":1999,"column":2144,"offset":2145},354,6863,{"start":2147,"end":2148},{"line":1999,"column":381,"offset":2012},{"line":1999,"column":2149,"offset":2150},356,6865,{"start":2152,"end":2153},{"line":1999,"column":20,"offset":2010},{"line":1999,"column":2149,"offset":2150},{"start":2155,"end":2156},{"line":381,"column":20,"offset":394},{"line":1999,"column":2149,"offset":2150},{"start":2158,"end":2159},{"line":344,"column":20,"offset":345},{"line":1999,"column":2149,"offset":2150},{"type":26,"value":27},{"type":30,"tagName":49,"properties":2162,"children":2164,"position":2173},{"id":2163},"what-stays-honest",[2165],{"type":26,"value":2166,"position":2167},"What stays honest",{"start":2168,"end":2171},{"line":2169,"column":58,"offset":2170},63,6870,{"line":2169,"column":570,"offset":2172},6887,{"start":2174,"end":2176},{"line":2169,"column":20,"offset":2175},6867,{"line":2169,"column":570,"offset":2172},{"type":26,"value":27},{"type":30,"tagName":2179,"properties":2180,"children":2181,"position":2472},"ul",{},[2182,2183,2235,2236,2318,2319,2420,2421,2471],{"type":26,"value":27},{"type":30,"tagName":2184,"properties":2185,"children":2186,"position":2231},"li",{},[2187,2202,2209,2225],{"type":30,"tagName":374,"properties":2188,"children":2189,"position":2197},{},[2190],{"type":26,"value":2191,"position":2192},"Hosted alerts armed from the chart.",{"start":2193,"end":2195},{"line":741,"column":38,"offset":2194},6893,{"line":741,"column":900,"offset":2196},6928,{"start":2198,"end":2200},{"line":741,"column":9,"offset":2199},6891,{"line":741,"column":715,"offset":2201},6930,{"type":26,"value":2203,"position":2204}," Where a site has Indicator alerts switched on (the chart says \"Indicator alerts are not enabled yet\" while it is off), an alert armed from the chart on a published Indicator runs on the hosted engine and reads the chart's own candles only; a package that needs another source, a pinned market or interval, or a celled class is refused there. The watch on your machine is the supported path (",{"start":2205,"end":2206},{"line":741,"column":715,"offset":2201},{"line":741,"column":2207,"offset":2208},434,7322,{"type":30,"tagName":491,"properties":2210,"children":2211,"position":2220},{"href":669},[2212],{"type":26,"value":672,"position":2213},{"start":2214,"end":2217},{"line":741,"column":2215,"offset":2216},435,7323,{"line":741,"column":2218,"offset":2219},441,7329,{"start":2221,"end":2222},{"line":741,"column":2207,"offset":2208},{"line":741,"column":2223,"offset":2224},466,7354,{"type":26,"value":534,"position":2226},{"start":2227,"end":2228},{"line":741,"column":2223,"offset":2224},{"line":741,"column":2229,"offset":2230},468,7356,{"start":2232,"end":2234},{"line":741,"column":20,"offset":2233},6889,{"line":741,"column":2229,"offset":2230},{"type":26,"value":27},{"type":30,"tagName":2184,"properties":2237,"children":2238,"position":2314},{},[2239,2255,2261,2273,2278,2290,2296,2308],{"type":30,"tagName":374,"properties":2240,"children":2241,"position":2250},{},[2242],{"type":26,"value":2243,"position":2244},"The chart reads its own market and interval for every input.",{"start":2245,"end":2248},{"line":2246,"column":38,"offset":2247},66,7361,{"line":2246,"column":741,"offset":2249},7421,{"start":2251,"end":2253},{"line":2246,"column":9,"offset":2252},7359,{"line":2246,"column":1409,"offset":2254},7423,{"type":26,"value":2038,"position":2256},{"start":2257,"end":2258},{"line":2246,"column":1409,"offset":2254},{"line":2246,"column":2259,"offset":2260},68,7424,{"type":30,"tagName":95,"properties":2262,"children":2263,"position":2270},{},[2264],{"type":26,"value":434,"position":2265},{"start":2266,"end":2267},{"line":2246,"column":2259,"offset":2260},{"line":2246,"column":2268,"offset":2269},76,7432,{"start":2271,"end":2272},{"line":2246,"column":2259,"offset":2260},{"line":2246,"column":2268,"offset":2269},{"type":26,"value":444,"position":2274},{"start":2275,"end":2276},{"line":2246,"column":2268,"offset":2269},{"line":2246,"column":2042,"offset":2277},7434,{"type":30,"tagName":95,"properties":2279,"children":2280,"position":2287},{},[2281],{"type":26,"value":454,"position":2282},{"start":2283,"end":2284},{"line":2246,"column":2042,"offset":2277},{"line":2246,"column":2285,"offset":2286},88,7444,{"start":2288,"end":2289},{"line":2246,"column":2042,"offset":2277},{"line":2246,"column":2285,"offset":2286},{"type":26,"value":464,"position":2291},{"start":2292,"end":2293},{"line":2246,"column":2285,"offset":2286},{"line":2246,"column":2294,"offset":2295},93,7449,{"type":30,"tagName":95,"properties":2297,"children":2298,"position":2305},{},[2299],{"type":26,"value":474,"position":2300},{"start":2301,"end":2302},{"line":2246,"column":2294,"offset":2295},{"line":2246,"column":2303,"offset":2304},103,7459,{"start":2306,"end":2307},{"line":2246,"column":2294,"offset":2295},{"line":2246,"column":2303,"offset":2304},{"type":26,"value":2309,"position":2310}," pins are honored on your machine.",{"start":2311,"end":2312},{"line":2246,"column":2303,"offset":2304},{"line":2246,"column":23,"offset":2313},7493,{"start":2315,"end":2317},{"line":2246,"column":20,"offset":2316},7357,{"line":2246,"column":23,"offset":2313},{"type":26,"value":27},{"type":30,"tagName":2184,"properties":2320,"children":2321,"position":2416},{},[2322,2337,2343,2355,2362,2373,2379,2391,2398,2410],{"type":30,"tagName":374,"properties":2323,"children":2324,"position":2332},{},[2325],{"type":26,"value":2326,"position":2327},"Screens and backtests refuse celled packages",{"start":2328,"end":2330},{"line":1409,"column":38,"offset":2329},7498,{"line":1409,"column":561,"offset":2331},7542,{"start":2333,"end":2335},{"line":1409,"column":9,"offset":2334},7496,{"line":1409,"column":876,"offset":2336},7544,{"type":26,"value":2338,"position":2339}," (",{"start":2340,"end":2341},{"line":1409,"column":876,"offset":2336},{"line":1409,"column":1061,"offset":2342},7546,{"type":30,"tagName":95,"properties":2344,"children":2345,"position":2352},{},[2346],{"type":26,"value":2347,"position":2348},"wrun_celled_metric_unsupported",{"start":2349,"end":2350},{"line":1409,"column":1061,"offset":2342},{"line":1409,"column":588,"offset":2351},7578,{"start":2353,"end":2354},{"line":1409,"column":1061,"offset":2342},{"line":1409,"column":588,"offset":2351},{"type":26,"value":2356,"position":2357},"); alerts, ",{"start":2358,"end":2359},{"line":1409,"column":588,"offset":2351},{"line":1409,"column":2360,"offset":2361},96,7589,{"type":30,"tagName":95,"properties":2363,"children":2364,"position":2370},{},[2365],{"type":26,"value":757,"position":2366},{"start":2367,"end":2368},{"line":1409,"column":2360,"offset":2361},{"line":1409,"column":408,"offset":2369},7604,{"start":2371,"end":2372},{"line":1409,"column":2360,"offset":2361},{"line":1409,"column":408,"offset":2369},{"type":26,"value":2374,"position":2375}," / ",{"start":2376,"end":2377},{"line":1409,"column":408,"offset":2369},{"line":1409,"column":627,"offset":2378},7607,{"type":30,"tagName":95,"properties":2380,"children":2381,"position":2388},{},[2382],{"type":26,"value":414,"position":2383},{"start":2384,"end":2385},{"line":1409,"column":627,"offset":2378},{"line":1409,"column":2386,"offset":2387},132,7625,{"start":2389,"end":2390},{"line":1409,"column":627,"offset":2378},{"line":1409,"column":2386,"offset":2387},{"type":26,"value":2392,"position":2393}," and chart previews read them. Tape is live-only: a one-shot read or a backtest refuses ",{"start":2394,"end":2395},{"line":1409,"column":2386,"offset":2387},{"line":1409,"column":2396,"offset":2397},220,7713,{"type":30,"tagName":95,"properties":2399,"children":2400,"position":2407},{},[2401],{"type":26,"value":2402,"position":2403},"wrun_tape_unavailable",{"start":2404,"end":2405},{"line":1409,"column":2396,"offset":2397},{"line":1409,"column":1976,"offset":2406},7736,{"start":2408,"end":2409},{"line":1409,"column":2396,"offset":2397},{"line":1409,"column":1976,"offset":2406},{"type":26,"value":1902,"position":2411},{"start":2412,"end":2413},{"line":1409,"column":1976,"offset":2406},{"line":1409,"column":2414,"offset":2415},244,7737,{"start":2417,"end":2419},{"line":1409,"column":20,"offset":2418},7494,{"line":1409,"column":2414,"offset":2415},{"type":26,"value":27},{"type":30,"tagName":2184,"properties":2422,"children":2423,"position":2467},{},[2424,2439,2446,2461],{"type":30,"tagName":374,"properties":2425,"children":2426,"position":2434},{},[2427],{"type":26,"value":2428,"position":2429},"A kScript stays a kScript until you port it.",{"start":2430,"end":2432},{"line":2259,"column":38,"offset":2431},7742,{"line":2259,"column":561,"offset":2433},7786,{"start":2435,"end":2437},{"line":2259,"column":9,"offset":2436},7740,{"line":2259,"column":876,"offset":2438},7788,{"type":26,"value":2440,"position":2441}," The construct table and a worked RSI port are on ",{"start":2442,"end":2443},{"line":2259,"column":876,"offset":2438},{"line":2259,"column":2444,"offset":2445},101,7838,{"type":30,"tagName":491,"properties":2447,"children":2449,"position":2457},{"href":2448},"../migrations/from-kscript.md",[2450],{"type":26,"value":2451,"position":2452},"From kScript",{"start":2453,"end":2455},{"line":2259,"column":1781,"offset":2454},7839,{"line":2259,"column":627,"offset":2456},7851,{"start":2458,"end":2459},{"line":2259,"column":2444,"offset":2445},{"line":2259,"column":655,"offset":2460},7883,{"type":26,"value":2462,"position":2463},"; the original keeps charting by reference.",{"start":2464,"end":2465},{"line":2259,"column":655,"offset":2460},{"line":2259,"column":1028,"offset":2466},7926,{"start":2468,"end":2470},{"line":2259,"column":20,"offset":2469},7738,{"line":2259,"column":1028,"offset":2466},{"type":26,"value":27},{"start":2473,"end":2474},{"line":741,"column":20,"offset":2233},{"line":2259,"column":1028,"offset":2466},{"type":26,"value":27},{"type":30,"tagName":49,"properties":2477,"children":2479,"position":2487},{"id":2478},"where-to-start",[2480],{"type":26,"value":2481,"position":2482},"Where to start",{"start":2483,"end":2485},{"line":79,"column":58,"offset":2484},7931,{"line":79,"column":968,"offset":2486},7945,{"start":2488,"end":2490},{"line":79,"column":20,"offset":2489},7928,{"line":79,"column":968,"offset":2486},{"type":26,"value":27},{"type":30,"tagName":2179,"properties":2493,"children":2494,"position":2627},{},[2495,2496,2527,2528,2598,2599,2626],{"type":26,"value":27},{"type":30,"tagName":2184,"properties":2497,"children":2498,"position":2523},{},[2499,2516],{"type":30,"tagName":491,"properties":2500,"children":2502,"position":2511},{"href":2501},"primer-first-steps.md",[2503],{"type":26,"value":2504,"position":2505},"First steps",{"start":2506,"end":2509},{"line":2507,"column":58,"offset":2508},72,7950,{"line":2507,"column":1495,"offset":2510},7961,{"start":2512,"end":2514},{"line":2507,"column":9,"offset":2513},7949,{"line":2507,"column":1711,"offset":2515},7985,{"type":26,"value":2517,"position":2518},": the editor, the template, a line on the chart.",{"start":2519,"end":2520},{"line":2507,"column":1711,"offset":2515},{"line":2507,"column":2521,"offset":2522},87,8033,{"start":2524,"end":2526},{"line":2507,"column":20,"offset":2525},7947,{"line":2507,"column":2521,"offset":2522},{"type":26,"value":27},{"type":30,"tagName":2184,"properties":2529,"children":2530,"position":2594},{},[2531,2546,2551,2566,2572,2587],{"type":30,"tagName":491,"properties":2532,"children":2533,"position":2541},{"href":1232},[2534],{"type":26,"value":1235,"position":2535},{"start":2536,"end":2539},{"line":2537,"column":58,"offset":2538},73,8037,{"line":2537,"column":75,"offset":2540},8047,{"start":2542,"end":2544},{"line":2537,"column":9,"offset":2543},8036,{"line":2537,"column":390,"offset":2545},8063,{"type":26,"value":444,"position":2547},{"start":2548,"end":2549},{"line":2537,"column":390,"offset":2545},{"line":2537,"column":61,"offset":2550},8065,{"type":30,"tagName":491,"properties":2552,"children":2554,"position":2562},{"href":2553},"with-an-agent.md",[2555],{"type":26,"value":2556,"position":2557},"Author with an agent",{"start":2558,"end":2560},{"line":2537,"column":405,"offset":2559},8066,{"line":2537,"column":1061,"offset":2561},8086,{"start":2563,"end":2564},{"line":2537,"column":61,"offset":2550},{"line":2537,"column":2507,"offset":2565},8105,{"type":26,"value":444,"position":2567},{"start":2568,"end":2569},{"line":2537,"column":2507,"offset":2565},{"line":2537,"column":2570,"offset":2571},74,8107,{"type":30,"tagName":491,"properties":2573,"children":2574,"position":2583},{"href":517},[2575],{"type":26,"value":520,"position":2576},{"start":2577,"end":2580},{"line":2537,"column":2578,"offset":2579},75,8108,{"line":2537,"column":2581,"offset":2582},82,8115,{"start":2584,"end":2585},{"line":2537,"column":2570,"offset":2571},{"line":2537,"column":607,"offset":2586},8124,{"type":26,"value":2588,"position":2589},": the three ways to write one.",{"start":2590,"end":2591},{"line":2537,"column":607,"offset":2586},{"line":2537,"column":2592,"offset":2593},121,8154,{"start":2595,"end":2597},{"line":2537,"column":20,"offset":2596},8034,{"line":2537,"column":2592,"offset":2593},{"type":26,"value":27},{"type":30,"tagName":2184,"properties":2600,"children":2601,"position":2622},{},[2602,2616],{"type":30,"tagName":491,"properties":2603,"children":2604,"position":2611},{"href":493},[2605],{"type":26,"value":496,"position":2606},{"start":2607,"end":2609},{"line":2570,"column":58,"offset":2608},8158,{"line":2570,"column":1495,"offset":2610},8169,{"start":2612,"end":2614},{"line":2570,"column":9,"offset":2613},8157,{"line":2570,"column":61,"offset":2615},8186,{"type":26,"value":2617,"position":2618},": the same file from a terminal, built, installed and read as a metric.",{"start":2619,"end":2620},{"line":2570,"column":61,"offset":2615},{"line":2570,"column":2303,"offset":2621},8257,{"start":2623,"end":2625},{"line":2570,"column":20,"offset":2624},8155,{"line":2570,"column":2303,"offset":2621},{"type":26,"value":27},{"start":2628,"end":2629},{"line":2507,"column":20,"offset":2525},{"line":2570,"column":2303,"offset":2621},{"quirksMode":2631},false,{"start":2633,"end":2634},{"line":20,"column":20,"offset":21},{"line":2578,"column":20,"offset":2635},8258,1790157127165]