[{"data":1,"prerenderedAt":2446},["ShallowReactive",2],{"indicators:cookbook/overview":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":11,"tree":12},"cookbook/overview","cookbook/overview.md",{"title":7,"description":8,"order":9,"section":10},"Cookbook","Complete, working Indicators you can copy, run, and adapt: the kScript (legacy) cookbook's recipes, each shown as the kScript you know beside the Indicator it…",55,"cookbook","---\ntitle: \"Cookbook\"\ndescription: \"Complete, working Indicators you can copy, run, and adapt: the kScript (legacy) cookbook's recipes, each shown as the kScript you know beside the Indicator it…\"\norder: 55\nsection: \"cookbook\"\n---\n\n\u003C!-- source: docs/indicators/cookbook/overview.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# Cookbook\n\nComplete, working Indicators you can copy, run, and adapt: the kScript (legacy) cookbook's recipes, each shown as the kScript you know beside the Indicator it became, from a volume-spike detector to a four-venue cumulative volume delta.\n\nEvery recipe page is a full Indicator, not a snippet. Paste one into a New indicator tab under the language marker, press Run, and it works. Then read \"How it works\" for the moving parts, \"What changed in the port\" for the places where an Indicator is shaped differently from a kScript, and \"Customize it\" for the variations worth trying. Each recipe ends with the concept pages behind it, so you can go deeper wherever something catches your eye.\n\nThe recipes are in the kScript cookbook's order, easy to advanced. The first one is the cleanest introduction to the loop: load a series, compute a number, draw it. By the last one you are holding state across bars and drawing shapes that switch themselves off. Two of the kScript recipes lean on constructs an Indicator cannot express yet; their pages say what the nearest form is and what stays on the kScript engine.\n\n## Recipes\n\n| Recipe | What it does | What it teaches |\n| --- | --- | --- |\n| [Volume spike detector](volume-spike.md) | Flags bars whose volume blows past its trailing average, scored as a z-score | one input, a TA class, a gated mark |\n| [Anchored VWAP](anchored-vwap.md) | Weekly and daily VWAP that reset on UTC session boundaries, with a shaded band and a stretch readout | the `time` source, state that resets, a box as a channel |\n| [Regime filter](regime-filter.md) | A no-repaint 4h trend gate that tints a line by regime and marks entries only when the higher timeframe agrees | higher timeframes without lookahead, `color_by`, `shape_where` |\n| [Key levels](key-levels.md) | Prior-day and prior-week highs and lows plus the day open, as horizontal levels on any interval | segments as levels, a param as a gate |\n| [Aggregated CVD](aggregated-cvd.md) | Aggressive buying minus selling, accumulated, with volatility bands, sign coloring, and a four-venue variant | the `trades` source, accumulators, `missing` policies, venue pins |\n| [Zone tracker](zone-tracker.md) | Supply and demand zones drawn as boxes that switch off when price mitigates them | boxes with a `when` gate, ring-buffer windows |\n| [HUD terminal](hud-terminal.md) | A terminal-style readout the package draws itself: a title bar, a body box, and four left-aligned rows refreshed on the live bar | anchored box and label handles, the `align` word, `bar.isLast()`, one text slot for many labels |\n| [Market decision dashboard](market-dashboard.md) | A six-row decision table beside the chart, each factor with a reading and a colour-coded state refreshed on the live bar, with an EMA line on price and a bullish count as a metric | a frame feeding a side `panel.table`, rows built as one string, a count as a data-only output |\n| [Multi-timeframe terminal](multi-timeframe-terminal.md) | The chart's own trend on the price pane, a side window of the 4h context, and the last 4h swing levels docked on the price axis | inputs pinned to `4h`, a side `panel.line` on its own time axis, `plot.levels` docked on the price axis |\n| [Viewport-anchored market HUD](viewport-hud.md) | A regime readout pinned to the pane's top-left corner from the chart's own candles, plus an RSI meter at the top-right | anchored handles from indicator numbers alone, `draw.meter` over a data-only fraction, a regime line coloured by state |\n| [Large prints](large-prints.md) | The live trade tape filtered by size: a signed delta and a print count per bar, the live bar's biggest prints boxed at their price, the window's biggest listed in a feed | the `tape` celled input, box handles moved and deleted by id, a frame feeding `draw.feed` |\n| [Plots and panes](plots-and-panes.md) | Two averages on price, cumulative volume delta and the bar's delta together in the lower pane, and two histogram windows placed below the chart | outputs naming their pane, `area` and `histogram` plots, `panel.histogram` windows fed by frames |\n| [A series with an address](series-address.md) | A package that reads a series your own daemon published, plots it in the lower pane and keeps the latest reading in a status card | a `series` input by address, a metadata-first sheet, a card with value, average and clock rows |\n| [Live tape reader](tape-reader.md) | Signed flow and counts from live prints above a size threshold | four-value tape tuples; historical USD size buckets remain unavailable |\n| [Historical returns matrix](historical-returns.md) | Month-by-year returns as a grid | stays on kScript (legacy); the page names the nearest form |\n\n## How to use a recipe\n\n1. Open **Indicators**, then **Build**, then **New indicator**. Keep the `//@lang=wrun-ts` line and replace everything under it with the recipe's Indicator block.\n2. Run it on a liquid symbol. The order-flow recipe wants a major pair where the venue reports buy and sell volume.\n3. Open the overlay's settings. Every tunable value is a `param(...)`, so lookbacks and thresholds change without touching code.\n4. Read the notes. Colors are declared on the outputs, boxes, and segments; edit the hex strings and Run again.\n\nThe same file runs on your machine. Scaffold a workspace, replace `src/indicator.ts` with the recipe (the CLI does not need the `//@lang=wrun-ts` line), then build, install, and read a value:\n\n```bash\nom wrun create @you/volume-spike ./volume-spike --template sma-codefirst\nom wrun build ./volume-spike\nom wrun install ./volume-spike --replace\nom metric series --metric wrun/@you/volume-spike/z --symbol BTCUSDT --exchange BINANCE_FUTURES --bars 60\n```\n\nEvery input on the chart reads the chart's own market and interval ([Execution model](../core-concepts/execution-model.md)). The one recipe that pins other venues says so, and that variant is for your machine, where `symbol` and `exchange` pins are honored.\n\n## What the recipes share\n\nA few shapes come back in every recipe, and they are the shapes most kScript ports need:\n\n- **State lives in module-level variables.** A kScript `persist` is a module-level `let`; a kScript `timeseries` you index into is a `StaticArray\u003Cf64>` ring buffer; `reset()` puts every one of them back.\n- **Decisions are numbers.** A condition the chart should act on is a data-only `none` output written as `1` or `0`; the sheet turns it into a look through `shape_where`, `color_by`, or a box's `when` gate.\n- **Calendar math comes from the `time` source.** `time.bar_open_sec` is each bar's open in epoch seconds; dividing by 86400 gives the UTC day, and a boundary in that index is where sessions reset.\n- **Every output is a metric.** Once the package is on your machine, each output is an id a watch, a screen, or a series read can use, so a recipe's gate becomes an alert with one `om watch create` on the metric.\n\nThe port table that maps each kScript construct to its Indicator form is in [From kScript](../migrations/from-kscript.md); the recipes are that table applied to whole scripts.\n",{"type":13,"children":14,"data":2440,"position":2442},"root",[15,25,28,29,46,47,62,63,78,79,97,99,1510,1511,1526,1527,1699,1700,1751,1752,1912,1913,1988,1989,2004,2005,2019,2020,2402,2403],{"type":16,"value":17,"position":18},"comment"," source: docs/indicators/cookbook/overview.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},124,123,{"type":26,"value":27},"text","\n",{"type":26,"value":27},{"type":30,"tagName":31,"properties":32,"children":33,"position":43},"element","p",{},[34],{"type":26,"value":35,"position":36},"Complete, working Indicators you can copy, run, and adapt: the kScript (legacy) cookbook's recipes, each shown as the kScript you know beside the Indicator it became, from a volume-spike detector to a four-venue cumulative volume delta.",{"start":37,"end":40},{"line":38,"column":20,"offset":39},5,137,{"line":38,"column":41,"offset":42},237,373,{"start":44,"end":45},{"line":38,"column":20,"offset":39},{"line":38,"column":41,"offset":42},{"type":26,"value":27},{"type":30,"tagName":31,"properties":48,"children":49,"position":59},{},[50],{"type":26,"value":51,"position":52},"Every recipe page is a full Indicator, not a snippet. Paste one into a New indicator tab under the language marker, press Run, and it works. Then read \"How it works\" for the moving parts, \"What changed in the port\" for the places where an Indicator is shaped differently from a kScript, and \"Customize it\" for the variations worth trying. Each recipe ends with the concept pages behind it, so you can go deeper wherever something catches your eye.",{"start":53,"end":56},{"line":54,"column":20,"offset":55},7,375,{"line":54,"column":57,"offset":58},448,822,{"start":60,"end":61},{"line":54,"column":20,"offset":55},{"line":54,"column":57,"offset":58},{"type":26,"value":27},{"type":30,"tagName":31,"properties":64,"children":65,"position":75},{},[66],{"type":26,"value":67,"position":68},"The recipes are in the kScript cookbook's order, easy to advanced. The first one is the cleanest introduction to the loop: load a series, compute a number, draw it. By the last one you are holding state across bars and drawing shapes that switch themselves off. Two of the kScript recipes lean on constructs an Indicator cannot express yet; their pages say what the nearest form is and what stays on the kScript engine.",{"start":69,"end":72},{"line":70,"column":20,"offset":71},9,824,{"line":70,"column":73,"offset":74},420,1243,{"start":76,"end":77},{"line":70,"column":20,"offset":71},{"line":70,"column":73,"offset":74},{"type":26,"value":27},{"type":30,"tagName":80,"properties":81,"children":83,"position":93},"h2",{"id":82},"recipes",[84],{"type":26,"value":85,"position":86},"Recipes",{"start":87,"end":91},{"line":88,"column":89,"offset":90},11,4,1248,{"line":88,"column":88,"offset":92},1255,{"start":94,"end":96},{"line":88,"column":20,"offset":95},1245,{"line":88,"column":88,"offset":92},{"type":26,"value":98},"\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":30,"tagName":100,"properties":101,"children":102,"position":1507},"table",{},[103,170],{"type":30,"tagName":104,"properties":105,"children":106,"position":167},"thead",{},[107],{"type":30,"tagName":108,"properties":109,"children":110,"position":164},"tr",{},[111,130,147],{"type":30,"tagName":112,"properties":113,"children":114,"position":124},"th",{},[115],{"type":26,"value":116,"position":117},"Recipe",{"start":118,"end":122},{"line":119,"column":120,"offset":121},13,3,1259,{"line":119,"column":70,"offset":123},1265,{"start":125,"end":127},{"line":119,"column":20,"offset":126},1257,{"line":119,"column":128,"offset":129},10,1266,{"type":30,"tagName":112,"properties":131,"children":132,"position":142},{},[133],{"type":26,"value":134,"position":135},"What it does",{"start":136,"end":139},{"line":119,"column":137,"offset":138},12,1268,{"line":119,"column":140,"offset":141},24,1280,{"start":143,"end":144},{"line":119,"column":128,"offset":129},{"line":119,"column":145,"offset":146},25,1281,{"type":30,"tagName":112,"properties":148,"children":149,"position":159},{},[150],{"type":26,"value":151,"position":152},"What it teaches",{"start":153,"end":156},{"line":119,"column":154,"offset":155},27,1283,{"line":119,"column":157,"offset":158},42,1298,{"start":160,"end":161},{"line":119,"column":145,"offset":146},{"line":119,"column":162,"offset":163},44,1300,{"start":165,"end":166},{"line":119,"column":20,"offset":126},{"line":119,"column":162,"offset":163},{"start":168,"end":169},{"line":119,"column":20,"offset":126},{"line":119,"column":162,"offset":163},{"type":30,"tagName":171,"properties":172,"children":173,"position":1504},"tbody",{},[174,241,330,425,493,595,680,782,870,996,1079,1173,1293,1378,1441],{"type":30,"tagName":108,"properties":175,"children":176,"position":238},{},[177,205,221],{"type":30,"tagName":178,"properties":179,"children":180,"position":200},"td",{},[181],{"type":30,"tagName":182,"properties":183,"children":185,"position":194},"a",{"href":184},"volume-spike.md",[186],{"type":26,"value":187,"position":188},"Volume spike detector",{"start":189,"end":192},{"line":190,"column":89,"offset":191},15,1324,{"line":190,"column":145,"offset":193},1345,{"start":195,"end":197},{"line":190,"column":120,"offset":196},1323,{"line":190,"column":198,"offset":199},43,1363,{"start":201,"end":203},{"line":190,"column":20,"offset":202},1321,{"line":190,"column":162,"offset":204},1364,{"type":30,"tagName":178,"properties":206,"children":207,"position":217},{},[208],{"type":26,"value":209,"position":210},"Flags bars whose volume blows past its trailing average, scored as a z-score",{"start":211,"end":214},{"line":190,"column":212,"offset":213},46,1366,{"line":190,"column":215,"offset":216},122,1442,{"start":218,"end":219},{"line":190,"column":162,"offset":204},{"line":190,"column":24,"offset":220},1443,{"type":30,"tagName":178,"properties":222,"children":223,"position":233},{},[224],{"type":26,"value":225,"position":226},"one input, a TA class, a gated mark",{"start":227,"end":230},{"line":190,"column":228,"offset":229},125,1445,{"line":190,"column":231,"offset":232},160,1480,{"start":234,"end":235},{"line":190,"column":24,"offset":220},{"line":190,"column":236,"offset":237},162,1482,{"start":239,"end":240},{"line":190,"column":20,"offset":202},{"line":190,"column":236,"offset":237},{"type":30,"tagName":108,"properties":242,"children":243,"position":327},{},[244,272,289],{"type":30,"tagName":178,"properties":245,"children":246,"position":266},{},[247],{"type":30,"tagName":182,"properties":248,"children":250,"position":260},{"href":249},"anchored-vwap.md",[251],{"type":26,"value":252,"position":253},"Anchored VWAP",{"start":254,"end":257},{"line":255,"column":89,"offset":256},16,1486,{"line":255,"column":258,"offset":259},17,1499,{"start":261,"end":263},{"line":255,"column":120,"offset":262},1485,{"line":255,"column":264,"offset":265},36,1518,{"start":267,"end":269},{"line":255,"column":20,"offset":268},1483,{"line":255,"column":270,"offset":271},37,1519,{"type":30,"tagName":178,"properties":273,"children":274,"position":284},{},[275],{"type":26,"value":276,"position":277},"Weekly and daily VWAP that reset on UTC session boundaries, with a shaded band and a stretch readout",{"start":278,"end":281},{"line":255,"column":279,"offset":280},39,1521,{"line":255,"column":282,"offset":283},139,1621,{"start":285,"end":286},{"line":255,"column":270,"offset":271},{"line":255,"column":287,"offset":288},140,1622,{"type":30,"tagName":178,"properties":290,"children":291,"position":322},{},[292,301,315],{"type":26,"value":293,"position":294},"the ",{"start":295,"end":298},{"line":255,"column":296,"offset":297},142,1624,{"line":255,"column":299,"offset":300},146,1628,{"type":30,"tagName":302,"properties":303,"children":304,"position":312},"code",{},[305],{"type":26,"value":306,"position":307},"time",{"start":308,"end":309},{"line":255,"column":299,"offset":300},{"line":255,"column":310,"offset":311},152,1634,{"start":313,"end":314},{"line":255,"column":299,"offset":300},{"line":255,"column":310,"offset":311},{"type":26,"value":316,"position":317}," source, state that resets, a box as a channel",{"start":318,"end":319},{"line":255,"column":310,"offset":311},{"line":255,"column":320,"offset":321},198,1680,{"start":323,"end":324},{"line":255,"column":287,"offset":288},{"line":255,"column":325,"offset":326},200,1682,{"start":328,"end":329},{"line":255,"column":20,"offset":268},{"line":255,"column":325,"offset":326},{"type":30,"tagName":108,"properties":331,"children":332,"position":422},{},[333,357,373],{"type":30,"tagName":178,"properties":334,"children":335,"position":352},{},[336],{"type":30,"tagName":182,"properties":337,"children":339,"position":347},{"href":338},"regime-filter.md",[340],{"type":26,"value":341,"position":342},"Regime filter",{"start":343,"end":345},{"line":258,"column":89,"offset":344},1686,{"line":258,"column":258,"offset":346},1699,{"start":348,"end":350},{"line":258,"column":120,"offset":349},1685,{"line":258,"column":264,"offset":351},1718,{"start":353,"end":355},{"line":258,"column":20,"offset":354},1683,{"line":258,"column":270,"offset":356},1719,{"type":30,"tagName":178,"properties":358,"children":359,"position":368},{},[360],{"type":26,"value":361,"position":362},"A no-repaint 4h trend gate that tints a line by regime and marks entries only when the higher timeframe agrees",{"start":363,"end":365},{"line":258,"column":279,"offset":364},1721,{"line":258,"column":366,"offset":367},149,1831,{"start":369,"end":370},{"line":258,"column":270,"offset":356},{"line":258,"column":371,"offset":372},150,1832,{"type":30,"tagName":178,"properties":374,"children":375,"position":417},{},[376,384,397,404],{"type":26,"value":377,"position":378},"higher timeframes without lookahead, ",{"start":379,"end":381},{"line":258,"column":310,"offset":380},1834,{"line":258,"column":382,"offset":383},189,1871,{"type":30,"tagName":302,"properties":385,"children":386,"position":394},{},[387],{"type":26,"value":388,"position":389},"color_by",{"start":390,"end":391},{"line":258,"column":382,"offset":383},{"line":258,"column":392,"offset":393},199,1881,{"start":395,"end":396},{"line":258,"column":382,"offset":383},{"line":258,"column":392,"offset":393},{"type":26,"value":398,"position":399},", ",{"start":400,"end":401},{"line":258,"column":392,"offset":393},{"line":258,"column":402,"offset":403},201,1883,{"type":30,"tagName":302,"properties":405,"children":406,"position":414},{},[407],{"type":26,"value":408,"position":409},"shape_where",{"start":410,"end":411},{"line":258,"column":402,"offset":403},{"line":258,"column":412,"offset":413},214,1896,{"start":415,"end":416},{"line":258,"column":402,"offset":403},{"line":258,"column":412,"offset":413},{"start":418,"end":419},{"line":258,"column":371,"offset":372},{"line":258,"column":420,"offset":421},216,1898,{"start":423,"end":424},{"line":258,"column":20,"offset":354},{"line":258,"column":420,"offset":421},{"type":30,"tagName":108,"properties":426,"children":427,"position":490},{},[428,456,473],{"type":30,"tagName":178,"properties":429,"children":430,"position":450},{},[431],{"type":30,"tagName":182,"properties":432,"children":434,"position":444},{"href":433},"key-levels.md",[435],{"type":26,"value":436,"position":437},"Key levels",{"start":438,"end":441},{"line":439,"column":89,"offset":440},18,1902,{"line":439,"column":442,"offset":443},14,1912,{"start":445,"end":447},{"line":439,"column":120,"offset":446},1901,{"line":439,"column":448,"offset":449},30,1928,{"start":451,"end":453},{"line":439,"column":20,"offset":452},1899,{"line":439,"column":454,"offset":455},31,1929,{"type":30,"tagName":178,"properties":457,"children":458,"position":468},{},[459],{"type":26,"value":460,"position":461},"Prior-day and prior-week highs and lows plus the day open, as horizontal levels on any interval",{"start":462,"end":465},{"line":439,"column":463,"offset":464},33,1931,{"line":439,"column":466,"offset":467},128,2026,{"start":469,"end":470},{"line":439,"column":454,"offset":455},{"line":439,"column":471,"offset":472},129,2027,{"type":30,"tagName":178,"properties":474,"children":475,"position":485},{},[476],{"type":26,"value":477,"position":478},"segments as levels, a param as a gate",{"start":479,"end":482},{"line":439,"column":480,"offset":481},131,2029,{"line":439,"column":483,"offset":484},168,2066,{"start":486,"end":487},{"line":439,"column":471,"offset":472},{"line":439,"column":488,"offset":489},170,2068,{"start":491,"end":492},{"line":439,"column":20,"offset":452},{"line":439,"column":488,"offset":489},{"type":30,"tagName":108,"properties":494,"children":495,"position":592},{},[496,522,537],{"type":30,"tagName":178,"properties":497,"children":498,"position":517},{},[499],{"type":30,"tagName":182,"properties":500,"children":502,"position":511},{"href":501},"aggregated-cvd.md",[503],{"type":26,"value":504,"position":505},"Aggregated CVD",{"start":506,"end":509},{"line":507,"column":89,"offset":508},19,2072,{"line":507,"column":439,"offset":510},2086,{"start":512,"end":514},{"line":507,"column":120,"offset":513},2071,{"line":507,"column":515,"offset":516},38,2106,{"start":518,"end":520},{"line":507,"column":20,"offset":519},2069,{"line":507,"column":279,"offset":521},2107,{"type":30,"tagName":178,"properties":523,"children":524,"position":533},{},[525],{"type":26,"value":526,"position":527},"Aggressive buying minus selling, accumulated, with volatility bands, sign coloring, and a four-venue variant",{"start":528,"end":531},{"line":507,"column":529,"offset":530},41,2109,{"line":507,"column":366,"offset":532},2217,{"start":534,"end":535},{"line":507,"column":279,"offset":521},{"line":507,"column":371,"offset":536},2218,{"type":30,"tagName":178,"properties":538,"children":539,"position":587},{},[540,547,560,567,580],{"type":26,"value":293,"position":541},{"start":542,"end":544},{"line":507,"column":310,"offset":543},2220,{"line":507,"column":545,"offset":546},156,2224,{"type":30,"tagName":302,"properties":548,"children":549,"position":557},{},[550],{"type":26,"value":551,"position":552},"trades",{"start":553,"end":554},{"line":507,"column":545,"offset":546},{"line":507,"column":555,"offset":556},164,2232,{"start":558,"end":559},{"line":507,"column":545,"offset":546},{"line":507,"column":555,"offset":556},{"type":26,"value":561,"position":562}," source, accumulators, ",{"start":563,"end":564},{"line":507,"column":555,"offset":556},{"line":507,"column":565,"offset":566},187,2255,{"type":30,"tagName":302,"properties":568,"children":569,"position":577},{},[570],{"type":26,"value":571,"position":572},"missing",{"start":573,"end":574},{"line":507,"column":565,"offset":566},{"line":507,"column":575,"offset":576},196,2264,{"start":578,"end":579},{"line":507,"column":565,"offset":566},{"line":507,"column":575,"offset":576},{"type":26,"value":581,"position":582}," policies, venue pins",{"start":583,"end":584},{"line":507,"column":575,"offset":576},{"line":507,"column":585,"offset":586},217,2285,{"start":588,"end":589},{"line":507,"column":371,"offset":536},{"line":507,"column":590,"offset":591},219,2287,{"start":593,"end":594},{"line":507,"column":20,"offset":519},{"line":507,"column":590,"offset":591},{"type":30,"tagName":108,"properties":596,"children":597,"position":677},{},[598,625,641],{"type":30,"tagName":178,"properties":599,"children":600,"position":619},{},[601],{"type":30,"tagName":182,"properties":602,"children":604,"position":613},{"href":603},"zone-tracker.md",[605],{"type":26,"value":606,"position":607},"Zone tracker",{"start":608,"end":611},{"line":609,"column":89,"offset":610},20,2291,{"line":609,"column":255,"offset":612},2303,{"start":614,"end":616},{"line":609,"column":120,"offset":615},2290,{"line":609,"column":617,"offset":618},34,2321,{"start":620,"end":622},{"line":609,"column":20,"offset":621},2288,{"line":609,"column":623,"offset":624},35,2322,{"type":30,"tagName":178,"properties":626,"children":627,"position":636},{},[628],{"type":26,"value":629,"position":630},"Supply and demand zones drawn as boxes that switch off when price mitigates them",{"start":631,"end":633},{"line":609,"column":270,"offset":632},2324,{"line":609,"column":634,"offset":635},117,2404,{"start":637,"end":638},{"line":609,"column":623,"offset":624},{"line":609,"column":639,"offset":640},118,2405,{"type":30,"tagName":178,"properties":642,"children":643,"position":672},{},[644,653,665],{"type":26,"value":645,"position":646},"boxes with a ",{"start":647,"end":650},{"line":609,"column":648,"offset":649},120,2407,{"line":609,"column":651,"offset":652},133,2420,{"type":30,"tagName":302,"properties":654,"children":655,"position":662},{},[656],{"type":26,"value":657,"position":658},"when",{"start":659,"end":660},{"line":609,"column":651,"offset":652},{"line":609,"column":282,"offset":661},2426,{"start":663,"end":664},{"line":609,"column":651,"offset":652},{"line":609,"column":282,"offset":661},{"type":26,"value":666,"position":667}," gate, ring-buffer windows",{"start":668,"end":669},{"line":609,"column":282,"offset":661},{"line":609,"column":670,"offset":671},165,2452,{"start":673,"end":674},{"line":609,"column":639,"offset":640},{"line":609,"column":675,"offset":676},167,2454,{"start":678,"end":679},{"line":609,"column":20,"offset":621},{"line":609,"column":675,"offset":676},{"type":30,"tagName":108,"properties":681,"children":682,"position":779},{},[683,708,723],{"type":30,"tagName":178,"properties":684,"children":685,"position":703},{},[686],{"type":30,"tagName":182,"properties":687,"children":689,"position":698},{"href":688},"hud-terminal.md",[690],{"type":26,"value":691,"position":692},"HUD terminal",{"start":693,"end":696},{"line":694,"column":89,"offset":695},21,2458,{"line":694,"column":255,"offset":697},2470,{"start":699,"end":701},{"line":694,"column":120,"offset":700},2457,{"line":694,"column":617,"offset":702},2488,{"start":704,"end":706},{"line":694,"column":20,"offset":705},2455,{"line":694,"column":623,"offset":707},2489,{"type":30,"tagName":178,"properties":709,"children":710,"position":718},{},[711],{"type":26,"value":712,"position":713},"A terminal-style readout the package draws itself: a title bar, a body box, and four left-aligned rows refreshed on the live bar",{"start":714,"end":716},{"line":694,"column":270,"offset":715},2491,{"line":694,"column":670,"offset":717},2619,{"start":719,"end":720},{"line":694,"column":623,"offset":707},{"line":694,"column":721,"offset":722},166,2620,{"type":30,"tagName":178,"properties":724,"children":725,"position":774},{},[726,734,747,754,767],{"type":26,"value":727,"position":728},"anchored box and label handles, the ",{"start":729,"end":731},{"line":694,"column":483,"offset":730},2622,{"line":694,"column":732,"offset":733},204,2658,{"type":30,"tagName":302,"properties":735,"children":736,"position":744},{},[737],{"type":26,"value":738,"position":739},"align",{"start":740,"end":741},{"line":694,"column":732,"offset":733},{"line":694,"column":742,"offset":743},211,2665,{"start":745,"end":746},{"line":694,"column":732,"offset":733},{"line":694,"column":742,"offset":743},{"type":26,"value":748,"position":749}," word, ",{"start":750,"end":751},{"line":694,"column":742,"offset":743},{"line":694,"column":752,"offset":753},218,2672,{"type":30,"tagName":302,"properties":755,"children":756,"position":764},{},[757],{"type":26,"value":758,"position":759},"bar.isLast()",{"start":760,"end":761},{"line":694,"column":752,"offset":753},{"line":694,"column":762,"offset":763},232,2686,{"start":765,"end":766},{"line":694,"column":752,"offset":753},{"line":694,"column":762,"offset":763},{"type":26,"value":768,"position":769},", one text slot for many labels",{"start":770,"end":771},{"line":694,"column":762,"offset":763},{"line":694,"column":772,"offset":773},263,2717,{"start":775,"end":776},{"line":694,"column":721,"offset":722},{"line":694,"column":777,"offset":778},265,2719,{"start":780,"end":781},{"line":694,"column":20,"offset":705},{"line":694,"column":777,"offset":778},{"type":30,"tagName":108,"properties":783,"children":784,"position":867},{},[785,813,830],{"type":30,"tagName":178,"properties":786,"children":787,"position":807},{},[788],{"type":30,"tagName":182,"properties":789,"children":791,"position":801},{"href":790},"market-dashboard.md",[792],{"type":26,"value":793,"position":794},"Market decision dashboard",{"start":795,"end":798},{"line":796,"column":89,"offset":797},22,2723,{"line":796,"column":799,"offset":800},29,2748,{"start":802,"end":804},{"line":796,"column":120,"offset":803},2722,{"line":796,"column":805,"offset":806},51,2770,{"start":808,"end":810},{"line":796,"column":20,"offset":809},2720,{"line":796,"column":811,"offset":812},52,2771,{"type":30,"tagName":178,"properties":814,"children":815,"position":825},{},[816],{"type":26,"value":817,"position":818},"A six-row decision table beside the chart, each factor with a reading and a colour-coded state refreshed on the live bar, with an EMA line on price and a bullish count as a metric",{"start":819,"end":822},{"line":796,"column":820,"offset":821},54,2773,{"line":796,"column":823,"offset":824},233,2952,{"start":826,"end":827},{"line":796,"column":811,"offset":812},{"line":796,"column":828,"offset":829},234,2953,{"type":30,"tagName":178,"properties":831,"children":832,"position":862},{},[833,842,855],{"type":26,"value":834,"position":835},"a frame feeding a side ",{"start":836,"end":839},{"line":796,"column":837,"offset":838},236,2955,{"line":796,"column":840,"offset":841},259,2978,{"type":30,"tagName":302,"properties":843,"children":844,"position":852},{},[845],{"type":26,"value":846,"position":847},"panel.table",{"start":848,"end":849},{"line":796,"column":840,"offset":841},{"line":796,"column":850,"offset":851},272,2991,{"start":853,"end":854},{"line":796,"column":840,"offset":841},{"line":796,"column":850,"offset":851},{"type":26,"value":856,"position":857},", rows built as one string, a count as a data-only output",{"start":858,"end":859},{"line":796,"column":850,"offset":851},{"line":796,"column":860,"offset":861},329,3048,{"start":863,"end":864},{"line":796,"column":828,"offset":829},{"line":796,"column":865,"offset":866},331,3050,{"start":868,"end":869},{"line":796,"column":20,"offset":809},{"line":796,"column":865,"offset":866},{"type":30,"tagName":108,"properties":871,"children":872,"position":993},{},[873,901,917],{"type":30,"tagName":178,"properties":874,"children":875,"position":895},{},[876],{"type":30,"tagName":182,"properties":877,"children":879,"position":889},{"href":878},"multi-timeframe-terminal.md",[880],{"type":26,"value":881,"position":882},"Multi-timeframe terminal",{"start":883,"end":886},{"line":884,"column":89,"offset":885},23,3054,{"line":884,"column":887,"offset":888},28,3078,{"start":890,"end":892},{"line":884,"column":120,"offset":891},3053,{"line":884,"column":893,"offset":894},58,3108,{"start":896,"end":898},{"line":884,"column":20,"offset":897},3051,{"line":884,"column":899,"offset":900},59,3109,{"type":30,"tagName":178,"properties":902,"children":903,"position":913},{},[904],{"type":26,"value":905,"position":906},"The chart's own trend on the price pane, a side window of the 4h context, and the last 4h swing levels docked on the price axis",{"start":907,"end":910},{"line":884,"column":908,"offset":909},61,3111,{"line":884,"column":911,"offset":912},188,3238,{"start":914,"end":915},{"line":884,"column":899,"offset":900},{"line":884,"column":382,"offset":916},3239,{"type":30,"tagName":178,"properties":918,"children":919,"position":988},{},[920,929,942,949,961,968,981],{"type":26,"value":921,"position":922},"inputs pinned to ",{"start":923,"end":926},{"line":884,"column":924,"offset":925},191,3241,{"line":884,"column":927,"offset":928},208,3258,{"type":30,"tagName":302,"properties":930,"children":931,"position":939},{},[932],{"type":26,"value":933,"position":934},"4h",{"start":935,"end":936},{"line":884,"column":927,"offset":928},{"line":884,"column":937,"offset":938},212,3262,{"start":940,"end":941},{"line":884,"column":927,"offset":928},{"line":884,"column":937,"offset":938},{"type":26,"value":943,"position":944},", a side ",{"start":945,"end":946},{"line":884,"column":937,"offset":938},{"line":884,"column":947,"offset":948},221,3271,{"type":30,"tagName":302,"properties":950,"children":951,"position":958},{},[952],{"type":26,"value":953,"position":954},"panel.line",{"start":955,"end":956},{"line":884,"column":947,"offset":948},{"line":884,"column":823,"offset":957},3283,{"start":959,"end":960},{"line":884,"column":947,"offset":948},{"line":884,"column":823,"offset":957},{"type":26,"value":962,"position":963}," on its own time axis, ",{"start":964,"end":965},{"line":884,"column":823,"offset":957},{"line":884,"column":966,"offset":967},256,3306,{"type":30,"tagName":302,"properties":969,"children":970,"position":978},{},[971],{"type":26,"value":972,"position":973},"plot.levels",{"start":974,"end":975},{"line":884,"column":966,"offset":967},{"line":884,"column":976,"offset":977},269,3319,{"start":979,"end":980},{"line":884,"column":966,"offset":967},{"line":884,"column":976,"offset":977},{"type":26,"value":982,"position":983}," docked on the price axis",{"start":984,"end":985},{"line":884,"column":976,"offset":977},{"line":884,"column":986,"offset":987},294,3344,{"start":989,"end":990},{"line":884,"column":382,"offset":916},{"line":884,"column":991,"offset":992},296,3346,{"start":994,"end":995},{"line":884,"column":20,"offset":897},{"line":884,"column":991,"offset":992},{"type":30,"tagName":108,"properties":997,"children":998,"position":1076},{},[999,1025,1042],{"type":30,"tagName":178,"properties":1000,"children":1001,"position":1020},{},[1002],{"type":30,"tagName":182,"properties":1003,"children":1005,"position":1014},{"href":1004},"viewport-hud.md",[1006],{"type":26,"value":1007,"position":1008},"Viewport-anchored market HUD",{"start":1009,"end":1011},{"line":140,"column":89,"offset":1010},3350,{"line":140,"column":1012,"offset":1013},32,3378,{"start":1015,"end":1017},{"line":140,"column":120,"offset":1016},3349,{"line":140,"column":1018,"offset":1019},50,3396,{"start":1021,"end":1023},{"line":140,"column":20,"offset":1022},3347,{"line":140,"column":805,"offset":1024},3397,{"type":30,"tagName":178,"properties":1026,"children":1027,"position":1037},{},[1028],{"type":26,"value":1029,"position":1030},"A regime readout pinned to the pane's top-left corner from the chart's own candles, plus an RSI meter at the top-right",{"start":1031,"end":1034},{"line":140,"column":1032,"offset":1033},53,3399,{"line":140,"column":1035,"offset":1036},171,3517,{"start":1038,"end":1039},{"line":140,"column":805,"offset":1024},{"line":140,"column":1040,"offset":1041},172,3518,{"type":30,"tagName":178,"properties":1043,"children":1044,"position":1072},{},[1045,1053,1065],{"type":26,"value":1046,"position":1047},"anchored handles from indicator numbers alone, ",{"start":1048,"end":1051},{"line":140,"column":1049,"offset":1050},174,3520,{"line":140,"column":947,"offset":1052},3567,{"type":30,"tagName":302,"properties":1054,"children":1055,"position":1062},{},[1056],{"type":26,"value":1057,"position":1058},"draw.meter",{"start":1059,"end":1060},{"line":140,"column":947,"offset":1052},{"line":140,"column":823,"offset":1061},3579,{"start":1063,"end":1064},{"line":140,"column":947,"offset":1052},{"line":140,"column":823,"offset":1061},{"type":26,"value":1066,"position":1067}," over a data-only fraction, a regime line coloured by state",{"start":1068,"end":1069},{"line":140,"column":823,"offset":1061},{"line":140,"column":1070,"offset":1071},292,3638,{"start":1073,"end":1074},{"line":140,"column":1040,"offset":1041},{"line":140,"column":986,"offset":1075},3640,{"start":1077,"end":1078},{"line":140,"column":20,"offset":1022},{"line":140,"column":986,"offset":1075},{"type":30,"tagName":108,"properties":1080,"children":1081,"position":1170},{},[1082,1106,1122],{"type":30,"tagName":178,"properties":1083,"children":1084,"position":1101},{},[1085],{"type":30,"tagName":182,"properties":1086,"children":1088,"position":1096},{"href":1087},"large-prints.md",[1089],{"type":26,"value":1090,"position":1091},"Large prints",{"start":1092,"end":1094},{"line":145,"column":89,"offset":1093},3644,{"line":145,"column":255,"offset":1095},3656,{"start":1097,"end":1099},{"line":145,"column":120,"offset":1098},3643,{"line":145,"column":617,"offset":1100},3674,{"start":1102,"end":1104},{"line":145,"column":20,"offset":1103},3641,{"line":145,"column":623,"offset":1105},3675,{"type":30,"tagName":178,"properties":1107,"children":1108,"position":1117},{},[1109],{"type":26,"value":1110,"position":1111},"The live trade tape filtered by size: a signed delta and a print count per bar, the live bar's biggest prints boxed at their price, the window's biggest listed in a feed",{"start":1112,"end":1114},{"line":145,"column":270,"offset":1113},3677,{"line":145,"column":1115,"offset":1116},206,3846,{"start":1118,"end":1119},{"line":145,"column":623,"offset":1105},{"line":145,"column":1120,"offset":1121},207,3847,{"type":30,"tagName":178,"properties":1123,"children":1124,"position":1165},{},[1125,1133,1145,1152],{"type":26,"value":293,"position":1126},{"start":1127,"end":1130},{"line":145,"column":1128,"offset":1129},209,3849,{"line":145,"column":1131,"offset":1132},213,3853,{"type":30,"tagName":302,"properties":1134,"children":1135,"position":1142},{},[1136],{"type":26,"value":1137,"position":1138},"tape",{"start":1139,"end":1140},{"line":145,"column":1131,"offset":1132},{"line":145,"column":590,"offset":1141},3859,{"start":1143,"end":1144},{"line":145,"column":1131,"offset":1132},{"line":145,"column":590,"offset":1141},{"type":26,"value":1146,"position":1147}," celled input, box handles moved and deleted by id, a frame feeding ",{"start":1148,"end":1149},{"line":145,"column":590,"offset":1141},{"line":145,"column":1150,"offset":1151},287,3927,{"type":30,"tagName":302,"properties":1153,"children":1154,"position":1162},{},[1155],{"type":26,"value":1156,"position":1157},"draw.feed",{"start":1158,"end":1159},{"line":145,"column":1150,"offset":1151},{"line":145,"column":1160,"offset":1161},298,3938,{"start":1163,"end":1164},{"line":145,"column":1150,"offset":1151},{"line":145,"column":1160,"offset":1161},{"start":1166,"end":1167},{"line":145,"column":1120,"offset":1121},{"line":145,"column":1168,"offset":1169},300,3940,{"start":1171,"end":1172},{"line":145,"column":20,"offset":1103},{"line":145,"column":1168,"offset":1169},{"type":30,"tagName":108,"properties":1174,"children":1175,"position":1290},{},[1176,1202,1217],{"type":30,"tagName":178,"properties":1177,"children":1178,"position":1197},{},[1179],{"type":30,"tagName":182,"properties":1180,"children":1182,"position":1191},{"href":1181},"plots-and-panes.md",[1183],{"type":26,"value":1184,"position":1185},"Plots and panes",{"start":1186,"end":1189},{"line":1187,"column":89,"offset":1188},26,3944,{"line":1187,"column":507,"offset":1190},3959,{"start":1192,"end":1194},{"line":1187,"column":120,"offset":1193},3943,{"line":1187,"column":1195,"offset":1196},40,3980,{"start":1198,"end":1200},{"line":1187,"column":20,"offset":1199},3941,{"line":1187,"column":529,"offset":1201},3981,{"type":30,"tagName":178,"properties":1203,"children":1204,"position":1213},{},[1205],{"type":26,"value":1206,"position":1207},"Two averages on price, cumulative volume delta and the bar's delta together in the lower pane, and two histogram windows placed below the chart",{"start":1208,"end":1210},{"line":1187,"column":198,"offset":1209},3983,{"line":1187,"column":1211,"offset":1212},186,4126,{"start":1214,"end":1215},{"line":1187,"column":529,"offset":1201},{"line":1187,"column":565,"offset":1216},4127,{"type":30,"tagName":178,"properties":1218,"children":1219,"position":1286},{},[1220,1227,1240,1247,1260,1267,1279],{"type":26,"value":1221,"position":1222},"outputs naming their pane, ",{"start":1223,"end":1225},{"line":1187,"column":382,"offset":1224},4129,{"line":1187,"column":420,"offset":1226},4156,{"type":30,"tagName":302,"properties":1228,"children":1229,"position":1237},{},[1230],{"type":26,"value":1231,"position":1232},"area",{"start":1233,"end":1234},{"line":1187,"column":420,"offset":1226},{"line":1187,"column":1235,"offset":1236},222,4162,{"start":1238,"end":1239},{"line":1187,"column":420,"offset":1226},{"line":1187,"column":1235,"offset":1236},{"type":26,"value":1241,"position":1242}," and ",{"start":1243,"end":1244},{"line":1187,"column":1235,"offset":1236},{"line":1187,"column":1245,"offset":1246},227,4167,{"type":30,"tagName":302,"properties":1248,"children":1249,"position":1257},{},[1250],{"type":26,"value":1251,"position":1252},"histogram",{"start":1253,"end":1254},{"line":1187,"column":1245,"offset":1246},{"line":1187,"column":1255,"offset":1256},238,4178,{"start":1258,"end":1259},{"line":1187,"column":1245,"offset":1246},{"line":1187,"column":1255,"offset":1256},{"type":26,"value":1261,"position":1262}," plots, ",{"start":1263,"end":1264},{"line":1187,"column":1255,"offset":1256},{"line":1187,"column":1265,"offset":1266},246,4186,{"type":30,"tagName":302,"properties":1268,"children":1269,"position":1276},{},[1270],{"type":26,"value":1271,"position":1272},"panel.histogram",{"start":1273,"end":1274},{"line":1187,"column":1265,"offset":1266},{"line":1187,"column":772,"offset":1275},4203,{"start":1277,"end":1278},{"line":1187,"column":1265,"offset":1266},{"line":1187,"column":772,"offset":1275},{"type":26,"value":1280,"position":1281}," windows fed by frames",{"start":1282,"end":1283},{"line":1187,"column":772,"offset":1275},{"line":1187,"column":1284,"offset":1285},285,4225,{"start":1287,"end":1288},{"line":1187,"column":565,"offset":1216},{"line":1187,"column":1150,"offset":1289},4227,{"start":1291,"end":1292},{"line":1187,"column":20,"offset":1199},{"line":1187,"column":1150,"offset":1289},{"type":30,"tagName":108,"properties":1294,"children":1295,"position":1375},{},[1296,1322,1338],{"type":30,"tagName":178,"properties":1297,"children":1298,"position":1316},{},[1299],{"type":30,"tagName":182,"properties":1300,"children":1302,"position":1310},{"href":1301},"series-address.md",[1303],{"type":26,"value":1304,"position":1305},"A series with an address",{"start":1306,"end":1308},{"line":154,"column":89,"offset":1307},4231,{"line":154,"column":887,"offset":1309},4255,{"start":1311,"end":1313},{"line":154,"column":120,"offset":1312},4230,{"line":154,"column":1314,"offset":1315},48,4275,{"start":1317,"end":1319},{"line":154,"column":20,"offset":1318},4228,{"line":154,"column":1320,"offset":1321},49,4276,{"type":30,"tagName":178,"properties":1323,"children":1324,"position":1333},{},[1325],{"type":26,"value":1326,"position":1327},"A package that reads a series your own daemon published, plots it in the lower pane and keeps the latest reading in a status card",{"start":1328,"end":1330},{"line":154,"column":805,"offset":1329},4278,{"line":154,"column":1331,"offset":1332},180,4407,{"start":1334,"end":1335},{"line":154,"column":1320,"offset":1321},{"line":154,"column":1336,"offset":1337},181,4408,{"type":30,"tagName":178,"properties":1339,"children":1340,"position":1370},{},[1341,1350,1363],{"type":26,"value":1342,"position":1343},"a ",{"start":1344,"end":1347},{"line":154,"column":1345,"offset":1346},183,4410,{"line":154,"column":1348,"offset":1349},185,4412,{"type":30,"tagName":302,"properties":1351,"children":1352,"position":1360},{},[1353],{"type":26,"value":1354,"position":1355},"series",{"start":1356,"end":1357},{"line":154,"column":1348,"offset":1349},{"line":154,"column":1358,"offset":1359},193,4420,{"start":1361,"end":1362},{"line":154,"column":1348,"offset":1349},{"line":154,"column":1358,"offset":1359},{"type":26,"value":1364,"position":1365}," input by address, a metadata-first sheet, a card with value, average and clock rows",{"start":1366,"end":1367},{"line":154,"column":1358,"offset":1359},{"line":154,"column":1368,"offset":1369},277,4504,{"start":1371,"end":1372},{"line":154,"column":1336,"offset":1337},{"line":154,"column":1373,"offset":1374},279,4506,{"start":1376,"end":1377},{"line":154,"column":20,"offset":1318},{"line":154,"column":1373,"offset":1374},{"type":30,"tagName":108,"properties":1379,"children":1380,"position":1438},{},[1381,1405,1421],{"type":30,"tagName":178,"properties":1382,"children":1383,"position":1400},{},[1384],{"type":30,"tagName":182,"properties":1385,"children":1387,"position":1395},{"href":1386},"tape-reader.md",[1388],{"type":26,"value":1389,"position":1390},"Live tape reader",{"start":1391,"end":1393},{"line":887,"column":89,"offset":1392},4510,{"line":887,"column":609,"offset":1394},4526,{"start":1396,"end":1398},{"line":887,"column":120,"offset":1397},4509,{"line":887,"column":270,"offset":1399},4543,{"start":1401,"end":1403},{"line":887,"column":20,"offset":1402},4507,{"line":887,"column":515,"offset":1404},4544,{"type":30,"tagName":178,"properties":1406,"children":1407,"position":1416},{},[1408],{"type":26,"value":1409,"position":1410},"Signed flow and counts from live prints above a size threshold",{"start":1411,"end":1413},{"line":887,"column":1195,"offset":1412},4546,{"line":887,"column":1414,"offset":1415},102,4608,{"start":1417,"end":1418},{"line":887,"column":515,"offset":1404},{"line":887,"column":1419,"offset":1420},103,4609,{"type":30,"tagName":178,"properties":1422,"children":1423,"position":1433},{},[1424],{"type":26,"value":1425,"position":1426},"four-value tape tuples; historical USD size buckets remain unavailable",{"start":1427,"end":1430},{"line":887,"column":1428,"offset":1429},105,4611,{"line":887,"column":1431,"offset":1432},175,4681,{"start":1434,"end":1435},{"line":887,"column":1419,"offset":1420},{"line":887,"column":1436,"offset":1437},177,4683,{"start":1439,"end":1440},{"line":887,"column":20,"offset":1402},{"line":887,"column":1436,"offset":1437},{"type":30,"tagName":108,"properties":1442,"children":1443,"position":1501},{},[1444,1468,1485],{"type":30,"tagName":178,"properties":1445,"children":1446,"position":1463},{},[1447],{"type":30,"tagName":182,"properties":1448,"children":1450,"position":1458},{"href":1449},"historical-returns.md",[1451],{"type":26,"value":1452,"position":1453},"Historical returns matrix",{"start":1454,"end":1456},{"line":799,"column":89,"offset":1455},4687,{"line":799,"column":799,"offset":1457},4712,{"start":1459,"end":1461},{"line":799,"column":120,"offset":1460},4686,{"line":799,"column":1032,"offset":1462},4736,{"start":1464,"end":1466},{"line":799,"column":20,"offset":1465},4684,{"line":799,"column":820,"offset":1467},4737,{"type":30,"tagName":178,"properties":1469,"children":1470,"position":1480},{},[1471],{"type":26,"value":1472,"position":1473},"Month-by-year returns as a grid",{"start":1474,"end":1477},{"line":799,"column":1475,"offset":1476},56,4739,{"line":799,"column":1478,"offset":1479},87,4770,{"start":1481,"end":1482},{"line":799,"column":820,"offset":1467},{"line":799,"column":1483,"offset":1484},88,4771,{"type":30,"tagName":178,"properties":1486,"children":1487,"position":1497},{},[1488],{"type":26,"value":1489,"position":1490},"stays on kScript (legacy); the page names the nearest form",{"start":1491,"end":1494},{"line":799,"column":1492,"offset":1493},90,4773,{"line":799,"column":1495,"offset":1496},148,4831,{"start":1498,"end":1499},{"line":799,"column":1483,"offset":1484},{"line":799,"column":371,"offset":1500},4833,{"start":1502,"end":1503},{"line":799,"column":20,"offset":1465},{"line":799,"column":371,"offset":1500},{"start":1505,"end":1506},{"line":190,"column":20,"offset":202},{"line":799,"column":371,"offset":1500},{"start":1508,"end":1509},{"line":119,"column":20,"offset":126},{"line":799,"column":371,"offset":1500},{"type":26,"value":27},{"type":30,"tagName":80,"properties":1512,"children":1514,"position":1522},{"id":1513},"how-to-use-a-recipe",[1515],{"type":26,"value":1516,"position":1517},"How to use a recipe",{"start":1518,"end":1520},{"line":454,"column":89,"offset":1519},4838,{"line":454,"column":884,"offset":1521},4857,{"start":1523,"end":1525},{"line":454,"column":20,"offset":1524},4835,{"line":454,"column":884,"offset":1521},{"type":26,"value":27},{"type":30,"tagName":1528,"properties":1529,"children":1530,"position":1696},"ol",{},[1531,1532,1629,1630,1645,1646,1679,1680,1695],{"type":26,"value":27},{"type":30,"tagName":1533,"properties":1534,"children":1535,"position":1625},"li",{},[1536,1543,1558,1564,1578,1583,1598,1605,1618],{"type":26,"value":1537,"position":1538},"Open ",{"start":1539,"end":1541},{"line":463,"column":89,"offset":1540},4862,{"line":463,"column":70,"offset":1542},4867,{"type":30,"tagName":1544,"properties":1545,"children":1546,"position":1554},"strong",{},[1547],{"type":26,"value":1548,"position":1549},"Indicators",{"start":1550,"end":1552},{"line":463,"column":88,"offset":1551},4869,{"line":463,"column":694,"offset":1553},4879,{"start":1555,"end":1556},{"line":463,"column":70,"offset":1542},{"line":463,"column":884,"offset":1557},4881,{"type":26,"value":1559,"position":1560},", then ",{"start":1561,"end":1562},{"line":463,"column":884,"offset":1557},{"line":463,"column":448,"offset":1563},4888,{"type":30,"tagName":1544,"properties":1565,"children":1566,"position":1574},{},[1567],{"type":26,"value":1568,"position":1569},"Build",{"start":1570,"end":1572},{"line":463,"column":1012,"offset":1571},4890,{"line":463,"column":270,"offset":1573},4895,{"start":1575,"end":1576},{"line":463,"column":448,"offset":1563},{"line":463,"column":279,"offset":1577},4897,{"type":26,"value":1559,"position":1579},{"start":1580,"end":1581},{"line":463,"column":279,"offset":1577},{"line":463,"column":212,"offset":1582},4904,{"type":30,"tagName":1544,"properties":1584,"children":1585,"position":1593},{},[1586],{"type":26,"value":1587,"position":1588},"New indicator",{"start":1589,"end":1591},{"line":463,"column":1314,"offset":1590},4906,{"line":463,"column":908,"offset":1592},4919,{"start":1594,"end":1595},{"line":463,"column":212,"offset":1582},{"line":463,"column":1596,"offset":1597},63,4921,{"type":26,"value":1599,"position":1600},". Keep the ",{"start":1601,"end":1602},{"line":463,"column":1596,"offset":1597},{"line":463,"column":1603,"offset":1604},74,4932,{"type":30,"tagName":302,"properties":1606,"children":1607,"position":1615},{},[1608],{"type":26,"value":1609,"position":1610},"//@lang=wrun-ts",{"start":1611,"end":1612},{"line":463,"column":1603,"offset":1604},{"line":463,"column":1613,"offset":1614},91,4949,{"start":1616,"end":1617},{"line":463,"column":1603,"offset":1604},{"line":463,"column":1613,"offset":1614},{"type":26,"value":1619,"position":1620}," line and replace everything under it with the recipe's Indicator block.",{"start":1621,"end":1622},{"line":463,"column":1613,"offset":1614},{"line":463,"column":1623,"offset":1624},163,5021,{"start":1626,"end":1628},{"line":463,"column":20,"offset":1627},4859,{"line":463,"column":1623,"offset":1624},{"type":26,"value":27},{"type":30,"tagName":1533,"properties":1631,"children":1632,"position":1641},{},[1633],{"type":26,"value":1634,"position":1635},"Run it on a liquid symbol. The order-flow recipe wants a major pair where the venue reports buy and sell volume.",{"start":1636,"end":1638},{"line":617,"column":89,"offset":1637},5025,{"line":617,"column":1639,"offset":1640},116,5137,{"start":1642,"end":1644},{"line":617,"column":20,"offset":1643},5022,{"line":617,"column":1639,"offset":1640},{"type":26,"value":27},{"type":30,"tagName":1533,"properties":1647,"children":1648,"position":1675},{},[1649,1656,1669],{"type":26,"value":1650,"position":1651},"Open the overlay's settings. Every tunable value is a ",{"start":1652,"end":1654},{"line":623,"column":89,"offset":1653},5141,{"line":623,"column":893,"offset":1655},5195,{"type":30,"tagName":302,"properties":1657,"children":1658,"position":1666},{},[1659],{"type":26,"value":1660,"position":1661},"param(...)",{"start":1662,"end":1663},{"line":623,"column":893,"offset":1655},{"line":623,"column":1664,"offset":1665},70,5207,{"start":1667,"end":1668},{"line":623,"column":893,"offset":1655},{"line":623,"column":1664,"offset":1665},{"type":26,"value":1670,"position":1671},", so lookbacks and thresholds change without touching code.",{"start":1672,"end":1673},{"line":623,"column":1664,"offset":1665},{"line":623,"column":471,"offset":1674},5266,{"start":1676,"end":1678},{"line":623,"column":20,"offset":1677},5138,{"line":623,"column":471,"offset":1674},{"type":26,"value":27},{"type":30,"tagName":1533,"properties":1681,"children":1682,"position":1691},{},[1683],{"type":26,"value":1684,"position":1685},"Read the notes. Colors are declared on the outputs, boxes, and segments; edit the hex strings and Run again.",{"start":1686,"end":1688},{"line":264,"column":89,"offset":1687},5270,{"line":264,"column":1689,"offset":1690},112,5378,{"start":1692,"end":1694},{"line":264,"column":20,"offset":1693},5267,{"line":264,"column":1689,"offset":1690},{"type":26,"value":27},{"start":1697,"end":1698},{"line":463,"column":20,"offset":1627},{"line":264,"column":1689,"offset":1690},{"type":26,"value":27},{"type":30,"tagName":31,"properties":1701,"children":1702,"position":1748},{},[1703,1711,1724,1730,1741],{"type":26,"value":1704,"position":1705},"The same file runs on your machine. Scaffold a workspace, replace ",{"start":1706,"end":1708},{"line":515,"column":20,"offset":1707},5380,{"line":515,"column":1709,"offset":1710},67,5446,{"type":30,"tagName":302,"properties":1712,"children":1713,"position":1721},{},[1714],{"type":26,"value":1715,"position":1716},"src/indicator.ts",{"start":1717,"end":1718},{"line":515,"column":1709,"offset":1710},{"line":515,"column":1719,"offset":1720},85,5464,{"start":1722,"end":1723},{"line":515,"column":1709,"offset":1710},{"line":515,"column":1719,"offset":1720},{"type":26,"value":1725,"position":1726}," with the recipe (the CLI does not need the ",{"start":1727,"end":1728},{"line":515,"column":1719,"offset":1720},{"line":515,"column":471,"offset":1729},5508,{"type":30,"tagName":302,"properties":1731,"children":1732,"position":1738},{},[1733],{"type":26,"value":1609,"position":1734},{"start":1735,"end":1736},{"line":515,"column":471,"offset":1729},{"line":515,"column":299,"offset":1737},5525,{"start":1739,"end":1740},{"line":515,"column":471,"offset":1729},{"line":515,"column":299,"offset":1737},{"type":26,"value":1742,"position":1743}," line), then build, install, and read a value:",{"start":1744,"end":1745},{"line":515,"column":299,"offset":1737},{"line":515,"column":1746,"offset":1747},192,5571,{"start":1749,"end":1750},{"line":515,"column":20,"offset":1707},{"line":515,"column":1746,"offset":1747},{"type":26,"value":27},{"type":13,"children":1753},[1754],{"type":30,"tagName":1755,"properties":1756,"children":1760,"data":-1},"pre",{"class":1757,"style":1758,"tabindex":1759},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[1761],{"type":30,"tagName":302,"properties":1762,"children":1763},{},[1764,1807,1808,1828,1829,1854,1855],{"type":30,"tagName":1765,"properties":1766,"children":1768},"span",{"class":1767},"line",[1769,1775,1781,1786,1791,1796,1802],{"type":30,"tagName":1765,"properties":1770,"children":1772},{"style":1771},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[1773],{"type":26,"value":1774},"om",{"type":30,"tagName":1765,"properties":1776,"children":1778},{"style":1777},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[1779],{"type":26,"value":1780}," wrun",{"type":30,"tagName":1765,"properties":1782,"children":1783},{"style":1777},[1784],{"type":26,"value":1785}," create",{"type":30,"tagName":1765,"properties":1787,"children":1788},{"style":1777},[1789],{"type":26,"value":1790}," @you/volume-spike",{"type":30,"tagName":1765,"properties":1792,"children":1793},{"style":1777},[1794],{"type":26,"value":1795}," ./volume-spike",{"type":30,"tagName":1765,"properties":1797,"children":1799},{"style":1798},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[1800],{"type":26,"value":1801}," --template",{"type":30,"tagName":1765,"properties":1803,"children":1804},{"style":1777},[1805],{"type":26,"value":1806}," sma-codefirst",{"type":26,"value":27},{"type":30,"tagName":1765,"properties":1809,"children":1810},{"class":1767},[1811,1815,1819,1824],{"type":30,"tagName":1765,"properties":1812,"children":1813},{"style":1771},[1814],{"type":26,"value":1774},{"type":30,"tagName":1765,"properties":1816,"children":1817},{"style":1777},[1818],{"type":26,"value":1780},{"type":30,"tagName":1765,"properties":1820,"children":1821},{"style":1777},[1822],{"type":26,"value":1823}," build",{"type":30,"tagName":1765,"properties":1825,"children":1826},{"style":1777},[1827],{"type":26,"value":1795},{"type":26,"value":27},{"type":30,"tagName":1765,"properties":1830,"children":1831},{"class":1767},[1832,1836,1840,1845,1849],{"type":30,"tagName":1765,"properties":1833,"children":1834},{"style":1771},[1835],{"type":26,"value":1774},{"type":30,"tagName":1765,"properties":1837,"children":1838},{"style":1777},[1839],{"type":26,"value":1780},{"type":30,"tagName":1765,"properties":1841,"children":1842},{"style":1777},[1843],{"type":26,"value":1844}," install",{"type":30,"tagName":1765,"properties":1846,"children":1847},{"style":1777},[1848],{"type":26,"value":1795},{"type":30,"tagName":1765,"properties":1850,"children":1851},{"style":1798},[1852],{"type":26,"value":1853}," --replace",{"type":26,"value":27},{"type":30,"tagName":1765,"properties":1856,"children":1857},{"class":1767},[1858,1862,1867,1872,1877,1882,1887,1892,1897,1902,1907],{"type":30,"tagName":1765,"properties":1859,"children":1860},{"style":1771},[1861],{"type":26,"value":1774},{"type":30,"tagName":1765,"properties":1863,"children":1864},{"style":1777},[1865],{"type":26,"value":1866}," metric",{"type":30,"tagName":1765,"properties":1868,"children":1869},{"style":1777},[1870],{"type":26,"value":1871}," series",{"type":30,"tagName":1765,"properties":1873,"children":1874},{"style":1798},[1875],{"type":26,"value":1876}," --metric",{"type":30,"tagName":1765,"properties":1878,"children":1879},{"style":1777},[1880],{"type":26,"value":1881}," wrun/@you/volume-spike/z",{"type":30,"tagName":1765,"properties":1883,"children":1884},{"style":1798},[1885],{"type":26,"value":1886}," --symbol",{"type":30,"tagName":1765,"properties":1888,"children":1889},{"style":1777},[1890],{"type":26,"value":1891}," BTCUSDT",{"type":30,"tagName":1765,"properties":1893,"children":1894},{"style":1798},[1895],{"type":26,"value":1896}," --exchange",{"type":30,"tagName":1765,"properties":1898,"children":1899},{"style":1777},[1900],{"type":26,"value":1901}," BINANCE_FUTURES",{"type":30,"tagName":1765,"properties":1903,"children":1904},{"style":1798},[1905],{"type":26,"value":1906}," --bars",{"type":30,"tagName":1765,"properties":1908,"children":1909},{"style":1798},[1910],{"type":26,"value":1911}," 60",{"type":26,"value":27},{"type":30,"tagName":31,"properties":1914,"children":1915,"position":1985},{},[1916,1925,1940,1946,1959,1965,1978],{"type":26,"value":1917,"position":1918},"Every input on the chart reads the chart's own market and interval (",{"start":1919,"end":1922},{"line":1920,"column":20,"offset":1921},47,5834,{"line":1920,"column":1923,"offset":1924},69,5902,{"type":30,"tagName":182,"properties":1926,"children":1928,"position":1936},{"href":1927},"../core-concepts/execution-model.md",[1929],{"type":26,"value":1930,"position":1931},"Execution model",{"start":1932,"end":1934},{"line":1920,"column":1664,"offset":1933},5903,{"line":1920,"column":1719,"offset":1935},5918,{"start":1937,"end":1938},{"line":1920,"column":1923,"offset":1924},{"line":1920,"column":24,"offset":1939},5956,{"type":26,"value":1941,"position":1942},"). The one recipe that pins other venues says so, and that variant is for your machine, where ",{"start":1943,"end":1944},{"line":1920,"column":24,"offset":1939},{"line":1920,"column":585,"offset":1945},6050,{"type":30,"tagName":302,"properties":1947,"children":1948,"position":1956},{},[1949],{"type":26,"value":1950,"position":1951},"symbol",{"start":1952,"end":1953},{"line":1920,"column":585,"offset":1945},{"line":1920,"column":1954,"offset":1955},225,6058,{"start":1957,"end":1958},{"line":1920,"column":585,"offset":1945},{"line":1920,"column":1954,"offset":1955},{"type":26,"value":1241,"position":1960},{"start":1961,"end":1962},{"line":1920,"column":1954,"offset":1955},{"line":1920,"column":1963,"offset":1964},230,6063,{"type":30,"tagName":302,"properties":1966,"children":1967,"position":1975},{},[1968],{"type":26,"value":1969,"position":1970},"exchange",{"start":1971,"end":1972},{"line":1920,"column":1963,"offset":1964},{"line":1920,"column":1973,"offset":1974},240,6073,{"start":1976,"end":1977},{"line":1920,"column":1963,"offset":1964},{"line":1920,"column":1973,"offset":1974},{"type":26,"value":1979,"position":1980}," pins are honored.",{"start":1981,"end":1982},{"line":1920,"column":1973,"offset":1974},{"line":1920,"column":1983,"offset":1984},258,6091,{"start":1986,"end":1987},{"line":1920,"column":20,"offset":1921},{"line":1920,"column":1983,"offset":1984},{"type":26,"value":27},{"type":30,"tagName":80,"properties":1990,"children":1992,"position":2000},{"id":1991},"what-the-recipes-share",[1993],{"type":26,"value":1994,"position":1995},"What the recipes share",{"start":1996,"end":1998},{"line":1320,"column":89,"offset":1997},6096,{"line":1320,"column":1187,"offset":1999},6118,{"start":2001,"end":2003},{"line":1320,"column":20,"offset":2002},6093,{"line":1320,"column":1187,"offset":1999},{"type":26,"value":27},{"type":30,"tagName":31,"properties":2006,"children":2007,"position":2016},{},[2008],{"type":26,"value":2009,"position":2010},"A few shapes come back in every recipe, and they are the shapes most kScript ports need:",{"start":2011,"end":2013},{"line":805,"column":20,"offset":2012},6120,{"line":805,"column":2014,"offset":2015},89,6208,{"start":2017,"end":2018},{"line":805,"column":20,"offset":2012},{"line":805,"column":2014,"offset":2015},{"type":26,"value":27},{"type":30,"tagName":2021,"properties":2022,"children":2023,"position":2399},"ul",{},[2024,2025,2149,2150,2287,2288,2351,2352,2398],{"type":26,"value":27},{"type":30,"tagName":1533,"properties":2026,"children":2027,"position":2145},{},[2028,2044,2050,2063,2070,2082,2089,2102,2109,2121,2127,2139],{"type":30,"tagName":1544,"properties":2029,"children":2030,"position":2038},{},[2031],{"type":26,"value":2032,"position":2033},"State lives in module-level variables.",{"start":2034,"end":2036},{"line":1032,"column":38,"offset":2035},6214,{"line":1032,"column":198,"offset":2037},6252,{"start":2039,"end":2041},{"line":1032,"column":120,"offset":2040},6212,{"line":1032,"column":2042,"offset":2043},45,6254,{"type":26,"value":2045,"position":2046}," A kScript ",{"start":2047,"end":2048},{"line":1032,"column":2042,"offset":2043},{"line":1032,"column":1475,"offset":2049},6265,{"type":30,"tagName":302,"properties":2051,"children":2052,"position":2060},{},[2053],{"type":26,"value":2054,"position":2055},"persist",{"start":2056,"end":2057},{"line":1032,"column":1475,"offset":2049},{"line":1032,"column":2058,"offset":2059},65,6274,{"start":2061,"end":2062},{"line":1032,"column":1475,"offset":2049},{"line":1032,"column":2058,"offset":2059},{"type":26,"value":2064,"position":2065}," is a module-level ",{"start":2066,"end":2067},{"line":1032,"column":2058,"offset":2059},{"line":1032,"column":2068,"offset":2069},84,6293,{"type":30,"tagName":302,"properties":2071,"children":2072,"position":2079},{},[2073],{"type":26,"value":2074,"position":2075},"let",{"start":2076,"end":2077},{"line":1032,"column":2068,"offset":2069},{"line":1032,"column":2014,"offset":2078},6298,{"start":2080,"end":2081},{"line":1032,"column":2068,"offset":2069},{"line":1032,"column":2014,"offset":2078},{"type":26,"value":2083,"position":2084},"; a kScript ",{"start":2085,"end":2086},{"line":1032,"column":2014,"offset":2078},{"line":1032,"column":2087,"offset":2088},101,6310,{"type":30,"tagName":302,"properties":2090,"children":2091,"position":2099},{},[2092],{"type":26,"value":2093,"position":2094},"timeseries",{"start":2095,"end":2096},{"line":1032,"column":2087,"offset":2088},{"line":1032,"column":2097,"offset":2098},113,6322,{"start":2100,"end":2101},{"line":1032,"column":2087,"offset":2088},{"line":1032,"column":2097,"offset":2098},{"type":26,"value":2103,"position":2104}," you index into is a ",{"start":2105,"end":2106},{"line":1032,"column":2097,"offset":2098},{"line":1032,"column":2107,"offset":2108},134,6343,{"type":30,"tagName":302,"properties":2110,"children":2111,"position":2118},{},[2112],{"type":26,"value":2113,"position":2114},"StaticArray\u003Cf64>",{"start":2115,"end":2116},{"line":1032,"column":2107,"offset":2108},{"line":1032,"column":310,"offset":2117},6361,{"start":2119,"end":2120},{"line":1032,"column":2107,"offset":2108},{"line":1032,"column":310,"offset":2117},{"type":26,"value":2122,"position":2123}," ring buffer; ",{"start":2124,"end":2125},{"line":1032,"column":310,"offset":2117},{"line":1032,"column":721,"offset":2126},6375,{"type":30,"tagName":302,"properties":2128,"children":2129,"position":2136},{},[2130],{"type":26,"value":2131,"position":2132},"reset()",{"start":2133,"end":2134},{"line":1032,"column":721,"offset":2126},{"line":1032,"column":1431,"offset":2135},6384,{"start":2137,"end":2138},{"line":1032,"column":721,"offset":2126},{"line":1032,"column":1431,"offset":2135},{"type":26,"value":2140,"position":2141}," puts every one of them back.",{"start":2142,"end":2143},{"line":1032,"column":1431,"offset":2135},{"line":1032,"column":732,"offset":2144},6413,{"start":2146,"end":2148},{"line":1032,"column":20,"offset":2147},6210,{"line":1032,"column":732,"offset":2144},{"type":26,"value":27},{"type":30,"tagName":1533,"properties":2151,"children":2152,"position":2283},{},[2153,2168,2175,2187,2194,2207,2213,2224,2231,2242,2247,2259,2266,2277],{"type":30,"tagName":1544,"properties":2154,"children":2155,"position":2163},{},[2156],{"type":26,"value":2157,"position":2158},"Decisions are numbers.",{"start":2159,"end":2161},{"line":820,"column":38,"offset":2160},6418,{"line":820,"column":154,"offset":2162},6440,{"start":2164,"end":2166},{"line":820,"column":120,"offset":2165},6416,{"line":820,"column":799,"offset":2167},6442,{"type":26,"value":2169,"position":2170}," A condition the chart should act on is a data-only ",{"start":2171,"end":2172},{"line":820,"column":799,"offset":2167},{"line":820,"column":2173,"offset":2174},81,6494,{"type":30,"tagName":302,"properties":2176,"children":2177,"position":2184},{},[2178],{"type":26,"value":2179,"position":2180},"none",{"start":2181,"end":2182},{"line":820,"column":2173,"offset":2174},{"line":820,"column":1478,"offset":2183},6500,{"start":2185,"end":2186},{"line":820,"column":2173,"offset":2174},{"line":820,"column":1478,"offset":2183},{"type":26,"value":2188,"position":2189}," output written as ",{"start":2190,"end":2191},{"line":820,"column":1478,"offset":2183},{"line":820,"column":2192,"offset":2193},106,6519,{"type":30,"tagName":302,"properties":2195,"children":2196,"position":2204},{},[2197],{"type":26,"value":2198,"position":2199},"1",{"start":2200,"end":2201},{"line":820,"column":2192,"offset":2193},{"line":820,"column":2202,"offset":2203},109,6522,{"start":2205,"end":2206},{"line":820,"column":2192,"offset":2193},{"line":820,"column":2202,"offset":2203},{"type":26,"value":2208,"position":2209}," or ",{"start":2210,"end":2211},{"line":820,"column":2202,"offset":2203},{"line":820,"column":2097,"offset":2212},6526,{"type":30,"tagName":302,"properties":2214,"children":2215,"position":2221},{},[2216],{"type":26,"value":1759,"position":2217},{"start":2218,"end":2219},{"line":820,"column":2097,"offset":2212},{"line":820,"column":1639,"offset":2220},6529,{"start":2222,"end":2223},{"line":820,"column":2097,"offset":2212},{"line":820,"column":1639,"offset":2220},{"type":26,"value":2225,"position":2226},"; the sheet turns it into a look through ",{"start":2227,"end":2228},{"line":820,"column":1639,"offset":2220},{"line":820,"column":2229,"offset":2230},157,6570,{"type":30,"tagName":302,"properties":2232,"children":2233,"position":2239},{},[2234],{"type":26,"value":408,"position":2235},{"start":2236,"end":2237},{"line":820,"column":2229,"offset":2230},{"line":820,"column":488,"offset":2238},6583,{"start":2240,"end":2241},{"line":820,"column":2229,"offset":2230},{"line":820,"column":488,"offset":2238},{"type":26,"value":398,"position":2243},{"start":2244,"end":2245},{"line":820,"column":488,"offset":2238},{"line":820,"column":1040,"offset":2246},6585,{"type":30,"tagName":302,"properties":2248,"children":2249,"position":2256},{},[2250],{"type":26,"value":388,"position":2251},{"start":2252,"end":2253},{"line":820,"column":1040,"offset":2246},{"line":820,"column":2254,"offset":2255},182,6595,{"start":2257,"end":2258},{"line":820,"column":1040,"offset":2246},{"line":820,"column":2254,"offset":2255},{"type":26,"value":2260,"position":2261},", or a box's ",{"start":2262,"end":2263},{"line":820,"column":2254,"offset":2255},{"line":820,"column":2264,"offset":2265},195,6608,{"type":30,"tagName":302,"properties":2267,"children":2268,"position":2274},{},[2269],{"type":26,"value":657,"position":2270},{"start":2271,"end":2272},{"line":820,"column":2264,"offset":2265},{"line":820,"column":402,"offset":2273},6614,{"start":2275,"end":2276},{"line":820,"column":2264,"offset":2265},{"line":820,"column":402,"offset":2273},{"type":26,"value":2278,"position":2279}," gate.",{"start":2280,"end":2281},{"line":820,"column":402,"offset":2273},{"line":820,"column":1120,"offset":2282},6620,{"start":2284,"end":2286},{"line":820,"column":20,"offset":2285},6414,{"line":820,"column":1120,"offset":2282},{"type":26,"value":27},{"type":30,"tagName":1533,"properties":2289,"children":2290,"position":2347},{},[2291,2323,2329,2341],{"type":30,"tagName":1544,"properties":2292,"children":2293,"position":2318},{},[2294,2301,2312],{"type":26,"value":2295,"position":2296},"Calendar math comes from the ",{"start":2297,"end":2299},{"line":9,"column":38,"offset":2298},6625,{"line":9,"column":617,"offset":2300},6654,{"type":30,"tagName":302,"properties":2302,"children":2303,"position":2309},{},[2304],{"type":26,"value":306,"position":2305},{"start":2306,"end":2307},{"line":9,"column":617,"offset":2300},{"line":9,"column":1195,"offset":2308},6660,{"start":2310,"end":2311},{"line":9,"column":617,"offset":2300},{"line":9,"column":1195,"offset":2308},{"type":26,"value":2313,"position":2314}," source.",{"start":2315,"end":2316},{"line":9,"column":1195,"offset":2308},{"line":9,"column":1314,"offset":2317},6668,{"start":2319,"end":2321},{"line":9,"column":120,"offset":2320},6623,{"line":9,"column":1018,"offset":2322},6670,{"type":26,"value":2324,"position":2325}," ",{"start":2326,"end":2327},{"line":9,"column":1018,"offset":2322},{"line":9,"column":805,"offset":2328},6671,{"type":30,"tagName":302,"properties":2330,"children":2331,"position":2338},{},[2332],{"type":26,"value":2333,"position":2334},"time.bar_open_sec",{"start":2335,"end":2336},{"line":9,"column":805,"offset":2328},{"line":9,"column":1664,"offset":2337},6690,{"start":2339,"end":2340},{"line":9,"column":805,"offset":2328},{"line":9,"column":1664,"offset":2337},{"type":26,"value":2342,"position":2343}," is each bar's open in epoch seconds; dividing by 86400 gives the UTC day, and a boundary in that index is where sessions reset.",{"start":2344,"end":2345},{"line":9,"column":1664,"offset":2337},{"line":9,"column":320,"offset":2346},6818,{"start":2348,"end":2350},{"line":9,"column":20,"offset":2349},6621,{"line":9,"column":320,"offset":2346},{"type":26,"value":27},{"type":30,"tagName":1533,"properties":2353,"children":2354,"position":2394},{},[2355,2370,2376,2388],{"type":30,"tagName":1544,"properties":2356,"children":2357,"position":2365},{},[2358],{"type":26,"value":2359,"position":2360},"Every output is a metric.",{"start":2361,"end":2363},{"line":1475,"column":38,"offset":2362},6823,{"line":1475,"column":448,"offset":2364},6848,{"start":2366,"end":2368},{"line":1475,"column":120,"offset":2367},6821,{"line":1475,"column":1012,"offset":2369},6850,{"type":26,"value":2371,"position":2372}," Once the package is on your machine, each output is an id a watch, a screen, or a series read can use, so a recipe's gate becomes an alert with one ",{"start":2373,"end":2374},{"line":1475,"column":1012,"offset":2369},{"line":1475,"column":1336,"offset":2375},6999,{"type":30,"tagName":302,"properties":2377,"children":2378,"position":2385},{},[2379],{"type":26,"value":2380,"position":2381},"om watch create",{"start":2382,"end":2383},{"line":1475,"column":1336,"offset":2375},{"line":1475,"column":320,"offset":2384},7016,{"start":2386,"end":2387},{"line":1475,"column":1336,"offset":2375},{"line":1475,"column":320,"offset":2384},{"type":26,"value":2389,"position":2390}," on the metric.",{"start":2391,"end":2392},{"line":1475,"column":320,"offset":2384},{"line":1475,"column":1131,"offset":2393},7031,{"start":2395,"end":2397},{"line":1475,"column":20,"offset":2396},6819,{"line":1475,"column":1131,"offset":2393},{"type":26,"value":27},{"start":2400,"end":2401},{"line":1032,"column":20,"offset":2147},{"line":1475,"column":1131,"offset":2393},{"type":26,"value":27},{"type":30,"tagName":31,"properties":2404,"children":2405,"position":2437},{},[2406,2414,2430],{"type":26,"value":2407,"position":2408},"The port table that maps each kScript construct to its Indicator form is in ",{"start":2409,"end":2411},{"line":893,"column":20,"offset":2410},7033,{"line":893,"column":2412,"offset":2413},77,7109,{"type":30,"tagName":182,"properties":2415,"children":2417,"position":2426},{"href":2416},"../migrations/from-kscript.md",[2418],{"type":26,"value":2419,"position":2420},"From kScript",{"start":2421,"end":2424},{"line":893,"column":2422,"offset":2423},78,7110,{"line":893,"column":1492,"offset":2425},7122,{"start":2427,"end":2428},{"line":893,"column":2412,"offset":2413},{"line":893,"column":215,"offset":2429},7154,{"type":26,"value":2431,"position":2432},"; the recipes are that table applied to whole scripts.",{"start":2433,"end":2434},{"line":893,"column":215,"offset":2429},{"line":893,"column":2435,"offset":2436},176,7208,{"start":2438,"end":2439},{"line":893,"column":20,"offset":2410},{"line":893,"column":2435,"offset":2436},{"quirksMode":2441},false,{"start":2443,"end":2444},{"line":20,"column":20,"offset":21},{"line":899,"column":20,"offset":2445},7209,1790157161776]