[{"data":1,"prerenderedAt":3654},["ShallowReactive",2],{"kscript:cookbook/aggregated-cvd":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":9,"tree":10},"cookbook/aggregated-cvd","cookbook/aggregated-cvd.md",{"title":7,"description":8},"Aggregated CVD","One cumulative volume-delta line summed across four exchanges, with volatility bands and a live venue count. The multi-source recipe Pine can't easily write.","---\ntitle: Aggregated CVD\ndescription: >-\n  One cumulative volume-delta line summed across four exchanges, with\n  volatility bands and a live venue count. The multi-source recipe Pine can't\n  easily write.\n---\n\n\u003Cdiv class=\"flex gap-3 mb-6\">\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-purple-50 text-purple-600 text-sm font-medium\">\n    Advanced\n  \u003C/span>\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-gray-100 text-gray-600 text-sm font-medium\">\n    8 min read\n  \u003C/span>\n\u003C/div>\n\nCumulative Volume Delta tracks the running difference between aggressive buying and aggressive selling. On a single venue it tells a partial story, because flow splits across exchanges. This recipe sums the buy/sell delta from four venues at once (Binance spot, Binance futures, Bybit perps, OKX swaps) into one cumulative line, then frames it with volatility bands and a live table that shows how many venues are actually reporting. This is the kind of script kScript makes natural and most charting languages make painful: every venue is just another source in the same script.\n\n```javascript title=\"scripts/probes/cookbook/aggregated_cvd.ks\" lines wrap\n//@version=2\n// ============================================================================\n//  AGGREGATED CVD\n//  kScript 3.0.10 source declarations require literal symbols or input-backed\n//  symbol strings. Keep venue symbols as inputs so the engine can fetch them.\n// ============================================================================\ndefine(title=\"Aggregated CVD (4 venues)\", position=\"offchart\", axis=true);\n\nvar bandLen = input(name=\"bandLen\", type=\"number\", defaultValue=60, label=\"Band Lookback\", constraints={min: 10, max: 500, step: 10});\nvar posCol  = input(name=\"posCol\", type=\"color\", defaultValue=\"#22d3a5\", label=\"Positive\");\nvar negCol  = input(name=\"negCol\", type=\"color\", defaultValue=\"#ff5b7f\", label=\"Negative\");\nvar spotBSymbol = input(name=\"spotBSymbol\", type=\"string\", defaultValue=\"BTCUSDT\", label=\"Binance Spot Symbol\");\nvar perpBSymbol = input(name=\"perpBSymbol\", type=\"string\", defaultValue=\"BTCUSDT\", label=\"Binance Futures Symbol\");\nvar perpYSymbol = input(name=\"perpYSymbol\", type=\"string\", defaultValue=\"BTCUSDT\", label=\"Bybit Perp Symbol\");\nvar perpOSymbol = input(name=\"perpOSymbol\", type=\"string\", defaultValue=\"BTC-USDT-SWAP\", label=\"OKX Swap Symbol\");\n\n// The chart's own series is the timeline spine. Aggregation scripts MUST load\n// the main series: without it the bar timeline depends entirely on the venue\n// sources resolving, and if any chart/coin lacks them the runtime gets zero\n// bars to compute.\ntimeseries chart = ohlcv(symbol=currentSymbol, exchange=currentExchange);\n\ntimeseries spotB = source(type=\"buy_sell_volume\", symbol=spotBSymbol, exchange=\"BINANCE\");\ntimeseries perpB = source(type=\"buy_sell_volume\", symbol=perpBSymbol, exchange=\"BINANCE_FUTURES\");\ntimeseries perpY = source(type=\"buy_sell_volume\", symbol=perpYSymbol, exchange=\"BYBIT\");\ntimeseries perpO = source(type=\"buy_sell_volume\", symbol=perpOSymbol, exchange=\"OKEX_SWAP\");\n\n// Per-venue na-guard: a venue with no data contributes zero instead of\n// poisoning the sum (and the table below shows how many venues are live).\nfunc pairDelta(b, s) {\n  if (isnum(b) && isnum(s)) { return b - s; }\n  return 0;\n}\nfunc pairLive(b, s) {\n  return (isnum(b) && isnum(s)) ? 1 : 0;\n}\n\nvar delta = pairDelta(spotB.buy[0], spotB.sell[0]) + pairDelta(perpB.buy[0], perpB.sell[0])\n          + pairDelta(perpY.buy[0], perpY.sell[0]) + pairDelta(perpO.buy[0], perpO.sell[0]);\nvar live  = pairLive(spotB.buy[0], spotB.sell[0]) + pairLive(perpB.buy[0], perpB.sell[0])\n          + pairLive(perpY.buy[0], perpY.sell[0]) + pairLive(perpO.buy[0], perpO.sell[0]);\n\npersist cvd = 0;\ncvd = cvd + delta;\n\ntimeseries cvdLine = cvd;\nvar vol = stddev(cvdLine, bandLen);\ntimeseries upper = cvd + (isnum(vol) ? vol : 0);\ntimeseries lower = cvd - (isnum(vol) ? vol : 0);\n\nplotLine(cvdLine, colors=[posCol, negCol], colorIndex=cvd >= 0 ? 0 : 1, width=2, label=[\"Aggregated CVD\"], desc=[\"Cumulative volume delta summed across four venues\"]);\nplotLine(upper, colors=[opacity(posCol, 35)], width=1, label=[\"Upper Band\"], desc=[\"CVD plus one standard deviation\"]);\nplotLine(lower, colors=[opacity(negCol, 35)], width=1, label=[\"Lower Band\"], desc=[\"CVD minus one standard deviation\"]);\nfillBetween(upper, lower, cvd >= 0 ? posCol : negCol, 12);\n\n// Live diagnostics: if venues drop out you SEE it instead of a silent flat line.\nif (isLastBar) {\n  plotTable(\n    data=[[\"Agg CVD\", \"\"], [\"Venues live\", \"\".concat(live, \" / 4\")], [\"CVD\", \"\".concat(math.round(cvd))]],\n    position=\"top_right\", headerRow=true, backgroundColor=\"#0d1117\", textColor=\"#e6edf3\", fontSize=11\n  );\n}\n```\n\n\n## How it works\n\n**The timeline spine.** The first source is the chart's own `ohlcv`. It looks redundant since the script never plots it, but it defines the bar sequence every other source aligns to. Without it, the timeline would depend entirely on the venue feeds resolving, and on a symbol where one is missing the script would have no bars to compute. Load the chart series first, always.\n\n**Four venues, one script.** Each `source(type=\"buy_sell_volume\", ...)` subscribes to a different exchange's aggressive buy and sell volume. Binance spot, Binance futures, Bybit, and OKX each become an ordinary series with `.buy` and `.sell` members. There is no special \"aggregate\" primitive here, just four sources and addition. That is the multi-source superpower: combining venues is the same as combining any two series.\n\n**Each venue's symbol is an input.** The engine resolves source symbols at compile time, so they have to be literals or input-backed strings. Exposing them as inputs (`spotBSymbol` and friends) is what lets you point the whole aggregate at a different coin from the settings panel without editing code. The OKX default uses that venue's dash-style symbol (`BTC-USDT-SWAP`), a reminder that venues name the same market differently.\n\n**Missing venues contribute zero, not chaos.** A venue can be late to list a coin or briefly drop out. `pairDelta` returns `0` when either side is `na` instead of poisoning the sum, and `pairLive` returns `1` only when a venue is actually reporting. So the aggregate degrades gracefully: three live venues still produce a clean line, and the table tells you it is three, not four.\n\n**Cumulative means persistent.** `persist cvd = 0` declares one accumulator that survives across bars, and `cvd = cvd + delta` adds each bar's net flow to the running total. That persistence is what turns a per-bar delta into a cumulative line. The line is colored green when the running total is positive and red when negative via `colorIndex`.\n\n**The bands and the diagnostics.** `stddev` over the cumulative line gives a one-sigma envelope, plotted faint above and below and shaded with `fillBetween`, so you can read momentum against its own recent volatility. On the last bar a small `plotTable` reports how many venues are live and the rounded CVD. If a feed drops, you see \"3 / 4\" instead of silently trusting a line that lost a quarter of its input.\n\n## Customize it\n\n- **Swap the coin.** Change all four `*Symbol` inputs from the settings panel to aggregate a different market. Mind each venue's naming: OKX swaps use the `BASE-QUOTE-SWAP` form while Binance and Bybit use the joined form. See [symbol format](/kscript/faq/symbol-format).\n- **Add or drop venues.** More venues is just more `source(...)` lines plus more `pairDelta(...)` / `pairLive(...)` terms in the two sums, and bumping the `/ 4` in the table. To trade spot-only flow, delete the perp sources and keep the spot one.\n- **Band width.** `bandLen` sets the volatility lookback. Shorten it for a reactive envelope that hugs the line, lengthen it for a smoother, slower band.\n- **Spot vs perp split.** Instead of one combined line, keep two accumulators (spot delta and perp delta) and plot both. Divergence between them, perps buying while spot sells, is often the interesting signal.\n- **Colors.** `posCol` and `negCol` drive the line, the bands, and the fill. The band and fill tints derive from them through `opacity()`, so recoloring stays consistent.\n\n## Concepts used\n\n- [Multi-source and aggregation](/kscript/core-concepts/multi-source) for combining venues in one script\n- [Data sources](/kscript/core-concepts/data-sources) for the `buy_sell_volume` feed and its `.buy` / `.sell` members\n- [User functions](/kscript/core-concepts/user-functions) for the `pairDelta` and `pairLive` na guards\n- [Execution model](/kscript/core-concepts/execution-model) for `persist` state that accumulates across bars\n- [Plotting](/kscript/functions/plotting) for the colored line, bands, fill, and table\n",{"type":11,"children":12,"data":3647,"position":3649},"root",[13,100,101,116,117,2412,2413,2431,2432,2484,2485,2575,2576,2646,2647,2773,2774,2863,2864,2951,2952,2968,2969,3352,3353,3370,3371],{"type":14,"tagName":15,"properties":16,"children":21,"position":95},"element","div",{"className":17},[18,19,20],"flex","gap-3","mb-6",[22,34,63,69,88],{"type":23,"value":24,"position":25},"text","\n  ",{"start":26,"end":30},{"line":27,"column":28,"offset":29},1,30,29,{"line":31,"column":32,"offset":33},2,3,32,{"type":14,"tagName":35,"properties":36,"children":48,"position":58},"span",{"className":37},[38,39,40,41,42,43,44,45,46,47],"inline-flex","items-center","gap-1.5","px-3","py-1","rounded-full","bg-purple-50","text-purple-600","text-sm","font-medium",[49],{"type":23,"value":50,"position":51},"\n    Advanced\n  ",{"start":52,"end":55},{"line":31,"column":53,"offset":54},122,151,{"line":56,"column":32,"offset":57},4,167,{"start":59,"end":60},{"line":31,"column":32,"offset":33},{"line":56,"column":61,"offset":62},10,174,{"type":23,"value":24,"position":64},{"start":65,"end":66},{"line":56,"column":61,"offset":62},{"line":67,"column":32,"offset":68},5,177,{"type":14,"tagName":35,"properties":70,"children":74,"position":84},{"className":71},[38,39,40,41,42,43,72,73,46,47],"bg-gray-100","text-gray-600",[75],{"type":23,"value":76,"position":77},"\n    8 min read\n  ",{"start":78,"end":81},{"line":67,"column":79,"offset":80},119,293,{"line":82,"column":32,"offset":83},7,311,{"start":85,"end":86},{"line":67,"column":32,"offset":68},{"line":82,"column":61,"offset":87},318,{"type":23,"value":89,"position":90},"\n",{"start":91,"end":92},{"line":82,"column":61,"offset":87},{"line":93,"column":27,"offset":94},8,319,{"start":96,"end":98},{"line":27,"column":27,"offset":97},0,{"line":93,"column":82,"offset":99},325,{"type":23,"value":89},{"type":14,"tagName":102,"properties":103,"children":104,"position":113},"p",{},[105],{"type":23,"value":106,"position":107},"Cumulative Volume Delta tracks the running difference between aggressive buying and aggressive selling. On a single venue it tells a partial story, because flow splits across exchanges. This recipe sums the buy/sell delta from four venues at once (Binance spot, Binance futures, Bybit perps, OKX swaps) into one cumulative line, then frames it with volatility bands and a live table that shows how many venues are actually reporting. This is the kind of script kScript makes natural and most charting languages make painful: every venue is just another source in the same script.",{"start":108,"end":110},{"line":61,"column":27,"offset":109},327,{"line":61,"column":111,"offset":112},580,906,{"start":114,"end":115},{"line":61,"column":27,"offset":109},{"line":61,"column":111,"offset":112},{"type":23,"value":89},{"type":11,"children":118},[119],{"type":14,"tagName":120,"properties":121,"children":126,"data":-1},"pre",{"class":122,"style":123,"tabindex":124,"title":125},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0","scripts/probes/cookbook/aggregated_cvd.ks",[127],{"type":14,"tagName":128,"properties":129,"children":130},"code",{},[131,141,142,150,151,159,160,168,169,177,178,185,186,247,248,251,252,373,374,450,451,526,527,603,604,678,679,753,754,829,830,833,834,842,843,851,852,860,861,869,870,910,911,914,915,973,974,1028,1029,1083,1084,1138,1139,1142,1143,1151,1152,1160,1161,1179,1180,1238,1239,1257,1258,1266,1267,1283,1284,1339,1340,1347,1348,1351,1352,1428,1429,1494,1495,1564,1565,1624,1625,1628,1629,1649,1650,1676,1677,1680,1681,1698,1699,1725,1726,1780,1781,1833,1834,1837,1838,1948,1949,2036,2037,2120,2121,2169,2170,2173,2174,2182,2183,2196,2197,2210,2211,2322,2323,2395,2396,2404,2405],{"type":14,"tagName":35,"properties":132,"children":134},{"class":133},"line",[135],{"type":14,"tagName":35,"properties":136,"children":138},{"style":137},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[139],{"type":23,"value":140},"//@version=2",{"type":23,"value":89},{"type":14,"tagName":35,"properties":143,"children":144},{"class":133},[145],{"type":14,"tagName":35,"properties":146,"children":147},{"style":137},[148],{"type":23,"value":149},"// ============================================================================",{"type":23,"value":89},{"type":14,"tagName":35,"properties":152,"children":153},{"class":133},[154],{"type":14,"tagName":35,"properties":155,"children":156},{"style":137},[157],{"type":23,"value":158},"//  AGGREGATED CVD",{"type":23,"value":89},{"type":14,"tagName":35,"properties":161,"children":162},{"class":133},[163],{"type":14,"tagName":35,"properties":164,"children":165},{"style":137},[166],{"type":23,"value":167},"//  kScript 3.0.10 source declarations require literal symbols or input-backed",{"type":23,"value":89},{"type":14,"tagName":35,"properties":170,"children":171},{"class":133},[172],{"type":14,"tagName":35,"properties":173,"children":174},{"style":137},[175],{"type":23,"value":176},"//  symbol strings. Keep venue symbols as inputs so the engine can fetch them.",{"type":23,"value":89},{"type":14,"tagName":35,"properties":179,"children":180},{"class":133},[181],{"type":14,"tagName":35,"properties":182,"children":183},{"style":137},[184],{"type":23,"value":149},{"type":23,"value":89},{"type":14,"tagName":35,"properties":187,"children":188},{"class":133},[189,195,201,207,213,218,222,227,232,236,242],{"type":14,"tagName":35,"properties":190,"children":192},{"style":191},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[193],{"type":23,"value":194},"define",{"type":14,"tagName":35,"properties":196,"children":198},{"style":197},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[199],{"type":23,"value":200},"(title",{"type":14,"tagName":35,"properties":202,"children":204},{"style":203},"--shiki-dark:#F97583;--shiki-light:#D73A49",[205],{"type":23,"value":206},"=",{"type":14,"tagName":35,"properties":208,"children":210},{"style":209},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[211],{"type":23,"value":212},"\"Aggregated CVD (4 venues)\"",{"type":14,"tagName":35,"properties":214,"children":215},{"style":197},[216],{"type":23,"value":217},", position",{"type":14,"tagName":35,"properties":219,"children":220},{"style":203},[221],{"type":23,"value":206},{"type":14,"tagName":35,"properties":223,"children":224},{"style":209},[225],{"type":23,"value":226},"\"offchart\"",{"type":14,"tagName":35,"properties":228,"children":229},{"style":197},[230],{"type":23,"value":231},", axis",{"type":14,"tagName":35,"properties":233,"children":234},{"style":203},[235],{"type":23,"value":206},{"type":14,"tagName":35,"properties":237,"children":239},{"style":238},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[240],{"type":23,"value":241},"true",{"type":14,"tagName":35,"properties":243,"children":244},{"style":197},[245],{"type":23,"value":246},");",{"type":23,"value":89},{"type":14,"tagName":35,"properties":249,"children":250},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":253,"children":254},{"class":133},[255,260,265,269,274,279,283,288,293,297,302,307,311,316,321,325,330,335,339,344,349,354,359,364,368],{"type":14,"tagName":35,"properties":256,"children":257},{"style":203},[258],{"type":23,"value":259},"var",{"type":14,"tagName":35,"properties":261,"children":262},{"style":197},[263],{"type":23,"value":264}," bandLen ",{"type":14,"tagName":35,"properties":266,"children":267},{"style":203},[268],{"type":23,"value":206},{"type":14,"tagName":35,"properties":270,"children":271},{"style":191},[272],{"type":23,"value":273}," input",{"type":14,"tagName":35,"properties":275,"children":276},{"style":197},[277],{"type":23,"value":278},"(name",{"type":14,"tagName":35,"properties":280,"children":281},{"style":203},[282],{"type":23,"value":206},{"type":14,"tagName":35,"properties":284,"children":285},{"style":209},[286],{"type":23,"value":287},"\"bandLen\"",{"type":14,"tagName":35,"properties":289,"children":290},{"style":197},[291],{"type":23,"value":292},", type",{"type":14,"tagName":35,"properties":294,"children":295},{"style":203},[296],{"type":23,"value":206},{"type":14,"tagName":35,"properties":298,"children":299},{"style":209},[300],{"type":23,"value":301},"\"number\"",{"type":14,"tagName":35,"properties":303,"children":304},{"style":197},[305],{"type":23,"value":306},", defaultValue",{"type":14,"tagName":35,"properties":308,"children":309},{"style":203},[310],{"type":23,"value":206},{"type":14,"tagName":35,"properties":312,"children":313},{"style":238},[314],{"type":23,"value":315},"60",{"type":14,"tagName":35,"properties":317,"children":318},{"style":197},[319],{"type":23,"value":320},", label",{"type":14,"tagName":35,"properties":322,"children":323},{"style":203},[324],{"type":23,"value":206},{"type":14,"tagName":35,"properties":326,"children":327},{"style":209},[328],{"type":23,"value":329},"\"Band Lookback\"",{"type":14,"tagName":35,"properties":331,"children":332},{"style":197},[333],{"type":23,"value":334},", constraints",{"type":14,"tagName":35,"properties":336,"children":337},{"style":203},[338],{"type":23,"value":206},{"type":14,"tagName":35,"properties":340,"children":341},{"style":197},[342],{"type":23,"value":343},"{min: ",{"type":14,"tagName":35,"properties":345,"children":346},{"style":238},[347],{"type":23,"value":348},"10",{"type":14,"tagName":35,"properties":350,"children":351},{"style":197},[352],{"type":23,"value":353},", max: ",{"type":14,"tagName":35,"properties":355,"children":356},{"style":238},[357],{"type":23,"value":358},"500",{"type":14,"tagName":35,"properties":360,"children":361},{"style":197},[362],{"type":23,"value":363},", step: ",{"type":14,"tagName":35,"properties":365,"children":366},{"style":238},[367],{"type":23,"value":348},{"type":14,"tagName":35,"properties":369,"children":370},{"style":197},[371],{"type":23,"value":372},"});",{"type":23,"value":89},{"type":14,"tagName":35,"properties":375,"children":376},{"class":133},[377,381,386,390,394,398,402,407,411,415,420,424,428,433,437,441,446],{"type":14,"tagName":35,"properties":378,"children":379},{"style":203},[380],{"type":23,"value":259},{"type":14,"tagName":35,"properties":382,"children":383},{"style":197},[384],{"type":23,"value":385}," posCol  ",{"type":14,"tagName":35,"properties":387,"children":388},{"style":203},[389],{"type":23,"value":206},{"type":14,"tagName":35,"properties":391,"children":392},{"style":191},[393],{"type":23,"value":273},{"type":14,"tagName":35,"properties":395,"children":396},{"style":197},[397],{"type":23,"value":278},{"type":14,"tagName":35,"properties":399,"children":400},{"style":203},[401],{"type":23,"value":206},{"type":14,"tagName":35,"properties":403,"children":404},{"style":209},[405],{"type":23,"value":406},"\"posCol\"",{"type":14,"tagName":35,"properties":408,"children":409},{"style":197},[410],{"type":23,"value":292},{"type":14,"tagName":35,"properties":412,"children":413},{"style":203},[414],{"type":23,"value":206},{"type":14,"tagName":35,"properties":416,"children":417},{"style":209},[418],{"type":23,"value":419},"\"color\"",{"type":14,"tagName":35,"properties":421,"children":422},{"style":197},[423],{"type":23,"value":306},{"type":14,"tagName":35,"properties":425,"children":426},{"style":203},[427],{"type":23,"value":206},{"type":14,"tagName":35,"properties":429,"children":430},{"style":209},[431],{"type":23,"value":432},"\"#22d3a5\"",{"type":14,"tagName":35,"properties":434,"children":435},{"style":197},[436],{"type":23,"value":320},{"type":14,"tagName":35,"properties":438,"children":439},{"style":203},[440],{"type":23,"value":206},{"type":14,"tagName":35,"properties":442,"children":443},{"style":209},[444],{"type":23,"value":445},"\"Positive\"",{"type":14,"tagName":35,"properties":447,"children":448},{"style":197},[449],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":452,"children":453},{"class":133},[454,458,463,467,471,475,479,484,488,492,496,500,504,509,513,517,522],{"type":14,"tagName":35,"properties":455,"children":456},{"style":203},[457],{"type":23,"value":259},{"type":14,"tagName":35,"properties":459,"children":460},{"style":197},[461],{"type":23,"value":462}," negCol  ",{"type":14,"tagName":35,"properties":464,"children":465},{"style":203},[466],{"type":23,"value":206},{"type":14,"tagName":35,"properties":468,"children":469},{"style":191},[470],{"type":23,"value":273},{"type":14,"tagName":35,"properties":472,"children":473},{"style":197},[474],{"type":23,"value":278},{"type":14,"tagName":35,"properties":476,"children":477},{"style":203},[478],{"type":23,"value":206},{"type":14,"tagName":35,"properties":480,"children":481},{"style":209},[482],{"type":23,"value":483},"\"negCol\"",{"type":14,"tagName":35,"properties":485,"children":486},{"style":197},[487],{"type":23,"value":292},{"type":14,"tagName":35,"properties":489,"children":490},{"style":203},[491],{"type":23,"value":206},{"type":14,"tagName":35,"properties":493,"children":494},{"style":209},[495],{"type":23,"value":419},{"type":14,"tagName":35,"properties":497,"children":498},{"style":197},[499],{"type":23,"value":306},{"type":14,"tagName":35,"properties":501,"children":502},{"style":203},[503],{"type":23,"value":206},{"type":14,"tagName":35,"properties":505,"children":506},{"style":209},[507],{"type":23,"value":508},"\"#ff5b7f\"",{"type":14,"tagName":35,"properties":510,"children":511},{"style":197},[512],{"type":23,"value":320},{"type":14,"tagName":35,"properties":514,"children":515},{"style":203},[516],{"type":23,"value":206},{"type":14,"tagName":35,"properties":518,"children":519},{"style":209},[520],{"type":23,"value":521},"\"Negative\"",{"type":14,"tagName":35,"properties":523,"children":524},{"style":197},[525],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":528,"children":529},{"class":133},[530,534,539,543,547,551,555,560,564,568,573,577,581,586,590,594,599],{"type":14,"tagName":35,"properties":531,"children":532},{"style":203},[533],{"type":23,"value":259},{"type":14,"tagName":35,"properties":535,"children":536},{"style":197},[537],{"type":23,"value":538}," spotBSymbol ",{"type":14,"tagName":35,"properties":540,"children":541},{"style":203},[542],{"type":23,"value":206},{"type":14,"tagName":35,"properties":544,"children":545},{"style":191},[546],{"type":23,"value":273},{"type":14,"tagName":35,"properties":548,"children":549},{"style":197},[550],{"type":23,"value":278},{"type":14,"tagName":35,"properties":552,"children":553},{"style":203},[554],{"type":23,"value":206},{"type":14,"tagName":35,"properties":556,"children":557},{"style":209},[558],{"type":23,"value":559},"\"spotBSymbol\"",{"type":14,"tagName":35,"properties":561,"children":562},{"style":197},[563],{"type":23,"value":292},{"type":14,"tagName":35,"properties":565,"children":566},{"style":203},[567],{"type":23,"value":206},{"type":14,"tagName":35,"properties":569,"children":570},{"style":209},[571],{"type":23,"value":572},"\"string\"",{"type":14,"tagName":35,"properties":574,"children":575},{"style":197},[576],{"type":23,"value":306},{"type":14,"tagName":35,"properties":578,"children":579},{"style":203},[580],{"type":23,"value":206},{"type":14,"tagName":35,"properties":582,"children":583},{"style":209},[584],{"type":23,"value":585},"\"BTCUSDT\"",{"type":14,"tagName":35,"properties":587,"children":588},{"style":197},[589],{"type":23,"value":320},{"type":14,"tagName":35,"properties":591,"children":592},{"style":203},[593],{"type":23,"value":206},{"type":14,"tagName":35,"properties":595,"children":596},{"style":209},[597],{"type":23,"value":598},"\"Binance Spot Symbol\"",{"type":14,"tagName":35,"properties":600,"children":601},{"style":197},[602],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":605,"children":606},{"class":133},[607,611,616,620,624,628,632,637,641,645,649,653,657,661,665,669,674],{"type":14,"tagName":35,"properties":608,"children":609},{"style":203},[610],{"type":23,"value":259},{"type":14,"tagName":35,"properties":612,"children":613},{"style":197},[614],{"type":23,"value":615}," perpBSymbol ",{"type":14,"tagName":35,"properties":617,"children":618},{"style":203},[619],{"type":23,"value":206},{"type":14,"tagName":35,"properties":621,"children":622},{"style":191},[623],{"type":23,"value":273},{"type":14,"tagName":35,"properties":625,"children":626},{"style":197},[627],{"type":23,"value":278},{"type":14,"tagName":35,"properties":629,"children":630},{"style":203},[631],{"type":23,"value":206},{"type":14,"tagName":35,"properties":633,"children":634},{"style":209},[635],{"type":23,"value":636},"\"perpBSymbol\"",{"type":14,"tagName":35,"properties":638,"children":639},{"style":197},[640],{"type":23,"value":292},{"type":14,"tagName":35,"properties":642,"children":643},{"style":203},[644],{"type":23,"value":206},{"type":14,"tagName":35,"properties":646,"children":647},{"style":209},[648],{"type":23,"value":572},{"type":14,"tagName":35,"properties":650,"children":651},{"style":197},[652],{"type":23,"value":306},{"type":14,"tagName":35,"properties":654,"children":655},{"style":203},[656],{"type":23,"value":206},{"type":14,"tagName":35,"properties":658,"children":659},{"style":209},[660],{"type":23,"value":585},{"type":14,"tagName":35,"properties":662,"children":663},{"style":197},[664],{"type":23,"value":320},{"type":14,"tagName":35,"properties":666,"children":667},{"style":203},[668],{"type":23,"value":206},{"type":14,"tagName":35,"properties":670,"children":671},{"style":209},[672],{"type":23,"value":673},"\"Binance Futures Symbol\"",{"type":14,"tagName":35,"properties":675,"children":676},{"style":197},[677],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":680,"children":681},{"class":133},[682,686,691,695,699,703,707,712,716,720,724,728,732,736,740,744,749],{"type":14,"tagName":35,"properties":683,"children":684},{"style":203},[685],{"type":23,"value":259},{"type":14,"tagName":35,"properties":687,"children":688},{"style":197},[689],{"type":23,"value":690}," perpYSymbol ",{"type":14,"tagName":35,"properties":692,"children":693},{"style":203},[694],{"type":23,"value":206},{"type":14,"tagName":35,"properties":696,"children":697},{"style":191},[698],{"type":23,"value":273},{"type":14,"tagName":35,"properties":700,"children":701},{"style":197},[702],{"type":23,"value":278},{"type":14,"tagName":35,"properties":704,"children":705},{"style":203},[706],{"type":23,"value":206},{"type":14,"tagName":35,"properties":708,"children":709},{"style":209},[710],{"type":23,"value":711},"\"perpYSymbol\"",{"type":14,"tagName":35,"properties":713,"children":714},{"style":197},[715],{"type":23,"value":292},{"type":14,"tagName":35,"properties":717,"children":718},{"style":203},[719],{"type":23,"value":206},{"type":14,"tagName":35,"properties":721,"children":722},{"style":209},[723],{"type":23,"value":572},{"type":14,"tagName":35,"properties":725,"children":726},{"style":197},[727],{"type":23,"value":306},{"type":14,"tagName":35,"properties":729,"children":730},{"style":203},[731],{"type":23,"value":206},{"type":14,"tagName":35,"properties":733,"children":734},{"style":209},[735],{"type":23,"value":585},{"type":14,"tagName":35,"properties":737,"children":738},{"style":197},[739],{"type":23,"value":320},{"type":14,"tagName":35,"properties":741,"children":742},{"style":203},[743],{"type":23,"value":206},{"type":14,"tagName":35,"properties":745,"children":746},{"style":209},[747],{"type":23,"value":748},"\"Bybit Perp Symbol\"",{"type":14,"tagName":35,"properties":750,"children":751},{"style":197},[752],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":755,"children":756},{"class":133},[757,761,766,770,774,778,782,787,791,795,799,803,807,812,816,820,825],{"type":14,"tagName":35,"properties":758,"children":759},{"style":203},[760],{"type":23,"value":259},{"type":14,"tagName":35,"properties":762,"children":763},{"style":197},[764],{"type":23,"value":765}," perpOSymbol ",{"type":14,"tagName":35,"properties":767,"children":768},{"style":203},[769],{"type":23,"value":206},{"type":14,"tagName":35,"properties":771,"children":772},{"style":191},[773],{"type":23,"value":273},{"type":14,"tagName":35,"properties":775,"children":776},{"style":197},[777],{"type":23,"value":278},{"type":14,"tagName":35,"properties":779,"children":780},{"style":203},[781],{"type":23,"value":206},{"type":14,"tagName":35,"properties":783,"children":784},{"style":209},[785],{"type":23,"value":786},"\"perpOSymbol\"",{"type":14,"tagName":35,"properties":788,"children":789},{"style":197},[790],{"type":23,"value":292},{"type":14,"tagName":35,"properties":792,"children":793},{"style":203},[794],{"type":23,"value":206},{"type":14,"tagName":35,"properties":796,"children":797},{"style":209},[798],{"type":23,"value":572},{"type":14,"tagName":35,"properties":800,"children":801},{"style":197},[802],{"type":23,"value":306},{"type":14,"tagName":35,"properties":804,"children":805},{"style":203},[806],{"type":23,"value":206},{"type":14,"tagName":35,"properties":808,"children":809},{"style":209},[810],{"type":23,"value":811},"\"BTC-USDT-SWAP\"",{"type":14,"tagName":35,"properties":813,"children":814},{"style":197},[815],{"type":23,"value":320},{"type":14,"tagName":35,"properties":817,"children":818},{"style":203},[819],{"type":23,"value":206},{"type":14,"tagName":35,"properties":821,"children":822},{"style":209},[823],{"type":23,"value":824},"\"OKX Swap Symbol\"",{"type":14,"tagName":35,"properties":826,"children":827},{"style":197},[828],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":831,"children":832},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":835,"children":836},{"class":133},[837],{"type":14,"tagName":35,"properties":838,"children":839},{"style":137},[840],{"type":23,"value":841},"// The chart's own series is the timeline spine. Aggregation scripts MUST load",{"type":23,"value":89},{"type":14,"tagName":35,"properties":844,"children":845},{"class":133},[846],{"type":14,"tagName":35,"properties":847,"children":848},{"style":137},[849],{"type":23,"value":850},"// the main series: without it the bar timeline depends entirely on the venue",{"type":23,"value":89},{"type":14,"tagName":35,"properties":853,"children":854},{"class":133},[855],{"type":14,"tagName":35,"properties":856,"children":857},{"style":137},[858],{"type":23,"value":859},"// sources resolving, and if any chart/coin lacks them the runtime gets zero",{"type":23,"value":89},{"type":14,"tagName":35,"properties":862,"children":863},{"class":133},[864],{"type":14,"tagName":35,"properties":865,"children":866},{"style":137},[867],{"type":23,"value":868},"// bars to compute.",{"type":23,"value":89},{"type":14,"tagName":35,"properties":871,"children":872},{"class":133},[873,878,882,887,892,896,901,905],{"type":14,"tagName":35,"properties":874,"children":875},{"style":197},[876],{"type":23,"value":877},"timeseries chart ",{"type":14,"tagName":35,"properties":879,"children":880},{"style":203},[881],{"type":23,"value":206},{"type":14,"tagName":35,"properties":883,"children":884},{"style":191},[885],{"type":23,"value":886}," ohlcv",{"type":14,"tagName":35,"properties":888,"children":889},{"style":197},[890],{"type":23,"value":891},"(symbol",{"type":14,"tagName":35,"properties":893,"children":894},{"style":203},[895],{"type":23,"value":206},{"type":14,"tagName":35,"properties":897,"children":898},{"style":197},[899],{"type":23,"value":900},"currentSymbol, exchange",{"type":14,"tagName":35,"properties":902,"children":903},{"style":203},[904],{"type":23,"value":206},{"type":14,"tagName":35,"properties":906,"children":907},{"style":197},[908],{"type":23,"value":909},"currentExchange);",{"type":23,"value":89},{"type":14,"tagName":35,"properties":912,"children":913},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":916,"children":917},{"class":133},[918,923,927,932,937,941,946,951,955,960,964,969],{"type":14,"tagName":35,"properties":919,"children":920},{"style":197},[921],{"type":23,"value":922},"timeseries spotB ",{"type":14,"tagName":35,"properties":924,"children":925},{"style":203},[926],{"type":23,"value":206},{"type":14,"tagName":35,"properties":928,"children":929},{"style":191},[930],{"type":23,"value":931}," source",{"type":14,"tagName":35,"properties":933,"children":934},{"style":197},[935],{"type":23,"value":936},"(type",{"type":14,"tagName":35,"properties":938,"children":939},{"style":203},[940],{"type":23,"value":206},{"type":14,"tagName":35,"properties":942,"children":943},{"style":209},[944],{"type":23,"value":945},"\"buy_sell_volume\"",{"type":14,"tagName":35,"properties":947,"children":948},{"style":197},[949],{"type":23,"value":950},", symbol",{"type":14,"tagName":35,"properties":952,"children":953},{"style":203},[954],{"type":23,"value":206},{"type":14,"tagName":35,"properties":956,"children":957},{"style":197},[958],{"type":23,"value":959},"spotBSymbol, exchange",{"type":14,"tagName":35,"properties":961,"children":962},{"style":203},[963],{"type":23,"value":206},{"type":14,"tagName":35,"properties":965,"children":966},{"style":209},[967],{"type":23,"value":968},"\"BINANCE\"",{"type":14,"tagName":35,"properties":970,"children":971},{"style":197},[972],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":975,"children":976},{"class":133},[977,982,986,990,994,998,1002,1006,1010,1015,1019,1024],{"type":14,"tagName":35,"properties":978,"children":979},{"style":197},[980],{"type":23,"value":981},"timeseries perpB ",{"type":14,"tagName":35,"properties":983,"children":984},{"style":203},[985],{"type":23,"value":206},{"type":14,"tagName":35,"properties":987,"children":988},{"style":191},[989],{"type":23,"value":931},{"type":14,"tagName":35,"properties":991,"children":992},{"style":197},[993],{"type":23,"value":936},{"type":14,"tagName":35,"properties":995,"children":996},{"style":203},[997],{"type":23,"value":206},{"type":14,"tagName":35,"properties":999,"children":1000},{"style":209},[1001],{"type":23,"value":945},{"type":14,"tagName":35,"properties":1003,"children":1004},{"style":197},[1005],{"type":23,"value":950},{"type":14,"tagName":35,"properties":1007,"children":1008},{"style":203},[1009],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1011,"children":1012},{"style":197},[1013],{"type":23,"value":1014},"perpBSymbol, exchange",{"type":14,"tagName":35,"properties":1016,"children":1017},{"style":203},[1018],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1020,"children":1021},{"style":209},[1022],{"type":23,"value":1023},"\"BINANCE_FUTURES\"",{"type":14,"tagName":35,"properties":1025,"children":1026},{"style":197},[1027],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1030,"children":1031},{"class":133},[1032,1037,1041,1045,1049,1053,1057,1061,1065,1070,1074,1079],{"type":14,"tagName":35,"properties":1033,"children":1034},{"style":197},[1035],{"type":23,"value":1036},"timeseries perpY ",{"type":14,"tagName":35,"properties":1038,"children":1039},{"style":203},[1040],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1042,"children":1043},{"style":191},[1044],{"type":23,"value":931},{"type":14,"tagName":35,"properties":1046,"children":1047},{"style":197},[1048],{"type":23,"value":936},{"type":14,"tagName":35,"properties":1050,"children":1051},{"style":203},[1052],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1054,"children":1055},{"style":209},[1056],{"type":23,"value":945},{"type":14,"tagName":35,"properties":1058,"children":1059},{"style":197},[1060],{"type":23,"value":950},{"type":14,"tagName":35,"properties":1062,"children":1063},{"style":203},[1064],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1066,"children":1067},{"style":197},[1068],{"type":23,"value":1069},"perpYSymbol, exchange",{"type":14,"tagName":35,"properties":1071,"children":1072},{"style":203},[1073],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1075,"children":1076},{"style":209},[1077],{"type":23,"value":1078},"\"BYBIT\"",{"type":14,"tagName":35,"properties":1080,"children":1081},{"style":197},[1082],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1085,"children":1086},{"class":133},[1087,1092,1096,1100,1104,1108,1112,1116,1120,1125,1129,1134],{"type":14,"tagName":35,"properties":1088,"children":1089},{"style":197},[1090],{"type":23,"value":1091},"timeseries perpO ",{"type":14,"tagName":35,"properties":1093,"children":1094},{"style":203},[1095],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1097,"children":1098},{"style":191},[1099],{"type":23,"value":931},{"type":14,"tagName":35,"properties":1101,"children":1102},{"style":197},[1103],{"type":23,"value":936},{"type":14,"tagName":35,"properties":1105,"children":1106},{"style":203},[1107],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1109,"children":1110},{"style":209},[1111],{"type":23,"value":945},{"type":14,"tagName":35,"properties":1113,"children":1114},{"style":197},[1115],{"type":23,"value":950},{"type":14,"tagName":35,"properties":1117,"children":1118},{"style":203},[1119],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1121,"children":1122},{"style":197},[1123],{"type":23,"value":1124},"perpOSymbol, exchange",{"type":14,"tagName":35,"properties":1126,"children":1127},{"style":203},[1128],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1130,"children":1131},{"style":209},[1132],{"type":23,"value":1133},"\"OKEX_SWAP\"",{"type":14,"tagName":35,"properties":1135,"children":1136},{"style":197},[1137],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1140,"children":1141},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1144,"children":1145},{"class":133},[1146],{"type":14,"tagName":35,"properties":1147,"children":1148},{"style":137},[1149],{"type":23,"value":1150},"// Per-venue na-guard: a venue with no data contributes zero instead of",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1153,"children":1154},{"class":133},[1155],{"type":14,"tagName":35,"properties":1156,"children":1157},{"style":137},[1158],{"type":23,"value":1159},"// poisoning the sum (and the table below shows how many venues are live).",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1162,"children":1163},{"class":133},[1164,1169,1174],{"type":14,"tagName":35,"properties":1165,"children":1166},{"style":197},[1167],{"type":23,"value":1168},"func ",{"type":14,"tagName":35,"properties":1170,"children":1171},{"style":191},[1172],{"type":23,"value":1173},"pairDelta",{"type":14,"tagName":35,"properties":1175,"children":1176},{"style":197},[1177],{"type":23,"value":1178},"(b, s) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1181,"children":1182},{"class":133},[1183,1188,1193,1198,1203,1208,1213,1218,1223,1228,1233],{"type":14,"tagName":35,"properties":1184,"children":1185},{"style":203},[1186],{"type":23,"value":1187},"  if",{"type":14,"tagName":35,"properties":1189,"children":1190},{"style":197},[1191],{"type":23,"value":1192}," (",{"type":14,"tagName":35,"properties":1194,"children":1195},{"style":191},[1196],{"type":23,"value":1197},"isnum",{"type":14,"tagName":35,"properties":1199,"children":1200},{"style":197},[1201],{"type":23,"value":1202},"(b) ",{"type":14,"tagName":35,"properties":1204,"children":1205},{"style":203},[1206],{"type":23,"value":1207},"&&",{"type":14,"tagName":35,"properties":1209,"children":1210},{"style":191},[1211],{"type":23,"value":1212}," isnum",{"type":14,"tagName":35,"properties":1214,"children":1215},{"style":197},[1216],{"type":23,"value":1217},"(s)) { ",{"type":14,"tagName":35,"properties":1219,"children":1220},{"style":203},[1221],{"type":23,"value":1222},"return",{"type":14,"tagName":35,"properties":1224,"children":1225},{"style":197},[1226],{"type":23,"value":1227}," b ",{"type":14,"tagName":35,"properties":1229,"children":1230},{"style":203},[1231],{"type":23,"value":1232},"-",{"type":14,"tagName":35,"properties":1234,"children":1235},{"style":197},[1236],{"type":23,"value":1237}," s; }",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1240,"children":1241},{"class":133},[1242,1247,1252],{"type":14,"tagName":35,"properties":1243,"children":1244},{"style":203},[1245],{"type":23,"value":1246},"  return",{"type":14,"tagName":35,"properties":1248,"children":1249},{"style":238},[1250],{"type":23,"value":1251}," 0",{"type":14,"tagName":35,"properties":1253,"children":1254},{"style":197},[1255],{"type":23,"value":1256},";",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1259,"children":1260},{"class":133},[1261],{"type":14,"tagName":35,"properties":1262,"children":1263},{"style":197},[1264],{"type":23,"value":1265},"}",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1268,"children":1269},{"class":133},[1270,1274,1279],{"type":14,"tagName":35,"properties":1271,"children":1272},{"style":197},[1273],{"type":23,"value":1168},{"type":14,"tagName":35,"properties":1275,"children":1276},{"style":191},[1277],{"type":23,"value":1278},"pairLive",{"type":14,"tagName":35,"properties":1280,"children":1281},{"style":197},[1282],{"type":23,"value":1178},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1285,"children":1286},{"class":133},[1287,1291,1295,1299,1303,1307,1311,1316,1321,1326,1331,1335],{"type":14,"tagName":35,"properties":1288,"children":1289},{"style":203},[1290],{"type":23,"value":1246},{"type":14,"tagName":35,"properties":1292,"children":1293},{"style":197},[1294],{"type":23,"value":1192},{"type":14,"tagName":35,"properties":1296,"children":1297},{"style":191},[1298],{"type":23,"value":1197},{"type":14,"tagName":35,"properties":1300,"children":1301},{"style":197},[1302],{"type":23,"value":1202},{"type":14,"tagName":35,"properties":1304,"children":1305},{"style":203},[1306],{"type":23,"value":1207},{"type":14,"tagName":35,"properties":1308,"children":1309},{"style":191},[1310],{"type":23,"value":1212},{"type":14,"tagName":35,"properties":1312,"children":1313},{"style":197},[1314],{"type":23,"value":1315},"(s)) ",{"type":14,"tagName":35,"properties":1317,"children":1318},{"style":203},[1319],{"type":23,"value":1320},"?",{"type":14,"tagName":35,"properties":1322,"children":1323},{"style":238},[1324],{"type":23,"value":1325}," 1",{"type":14,"tagName":35,"properties":1327,"children":1328},{"style":203},[1329],{"type":23,"value":1330}," :",{"type":14,"tagName":35,"properties":1332,"children":1333},{"style":238},[1334],{"type":23,"value":1251},{"type":14,"tagName":35,"properties":1336,"children":1337},{"style":197},[1338],{"type":23,"value":1256},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1341,"children":1342},{"class":133},[1343],{"type":14,"tagName":35,"properties":1344,"children":1345},{"style":197},[1346],{"type":23,"value":1265},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1349,"children":1350},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1353,"children":1354},{"class":133},[1355,1359,1364,1368,1373,1378,1382,1387,1391,1396,1401,1405,1410,1414,1419,1423],{"type":14,"tagName":35,"properties":1356,"children":1357},{"style":203},[1358],{"type":23,"value":259},{"type":14,"tagName":35,"properties":1360,"children":1361},{"style":197},[1362],{"type":23,"value":1363}," delta ",{"type":14,"tagName":35,"properties":1365,"children":1366},{"style":203},[1367],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1369,"children":1370},{"style":191},[1371],{"type":23,"value":1372}," pairDelta",{"type":14,"tagName":35,"properties":1374,"children":1375},{"style":197},[1376],{"type":23,"value":1377},"(spotB.buy[",{"type":14,"tagName":35,"properties":1379,"children":1380},{"style":238},[1381],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1383,"children":1384},{"style":197},[1385],{"type":23,"value":1386},"], spotB.sell[",{"type":14,"tagName":35,"properties":1388,"children":1389},{"style":238},[1390],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1392,"children":1393},{"style":197},[1394],{"type":23,"value":1395},"]) ",{"type":14,"tagName":35,"properties":1397,"children":1398},{"style":203},[1399],{"type":23,"value":1400},"+",{"type":14,"tagName":35,"properties":1402,"children":1403},{"style":191},[1404],{"type":23,"value":1372},{"type":14,"tagName":35,"properties":1406,"children":1407},{"style":197},[1408],{"type":23,"value":1409},"(perpB.buy[",{"type":14,"tagName":35,"properties":1411,"children":1412},{"style":238},[1413],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1415,"children":1416},{"style":197},[1417],{"type":23,"value":1418},"], perpB.sell[",{"type":14,"tagName":35,"properties":1420,"children":1421},{"style":238},[1422],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1424,"children":1425},{"style":197},[1426],{"type":23,"value":1427},"])",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1430,"children":1431},{"class":133},[1432,1437,1441,1446,1450,1455,1459,1463,1467,1471,1476,1480,1485,1489],{"type":14,"tagName":35,"properties":1433,"children":1434},{"style":203},[1435],{"type":23,"value":1436},"          +",{"type":14,"tagName":35,"properties":1438,"children":1439},{"style":191},[1440],{"type":23,"value":1372},{"type":14,"tagName":35,"properties":1442,"children":1443},{"style":197},[1444],{"type":23,"value":1445},"(perpY.buy[",{"type":14,"tagName":35,"properties":1447,"children":1448},{"style":238},[1449],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1451,"children":1452},{"style":197},[1453],{"type":23,"value":1454},"], perpY.sell[",{"type":14,"tagName":35,"properties":1456,"children":1457},{"style":238},[1458],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1460,"children":1461},{"style":197},[1462],{"type":23,"value":1395},{"type":14,"tagName":35,"properties":1464,"children":1465},{"style":203},[1466],{"type":23,"value":1400},{"type":14,"tagName":35,"properties":1468,"children":1469},{"style":191},[1470],{"type":23,"value":1372},{"type":14,"tagName":35,"properties":1472,"children":1473},{"style":197},[1474],{"type":23,"value":1475},"(perpO.buy[",{"type":14,"tagName":35,"properties":1477,"children":1478},{"style":238},[1479],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1481,"children":1482},{"style":197},[1483],{"type":23,"value":1484},"], perpO.sell[",{"type":14,"tagName":35,"properties":1486,"children":1487},{"style":238},[1488],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1490,"children":1491},{"style":197},[1492],{"type":23,"value":1493},"]);",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1496,"children":1497},{"class":133},[1498,1502,1507,1511,1516,1520,1524,1528,1532,1536,1540,1544,1548,1552,1556,1560],{"type":14,"tagName":35,"properties":1499,"children":1500},{"style":203},[1501],{"type":23,"value":259},{"type":14,"tagName":35,"properties":1503,"children":1504},{"style":197},[1505],{"type":23,"value":1506}," live  ",{"type":14,"tagName":35,"properties":1508,"children":1509},{"style":203},[1510],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1512,"children":1513},{"style":191},[1514],{"type":23,"value":1515}," pairLive",{"type":14,"tagName":35,"properties":1517,"children":1518},{"style":197},[1519],{"type":23,"value":1377},{"type":14,"tagName":35,"properties":1521,"children":1522},{"style":238},[1523],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1525,"children":1526},{"style":197},[1527],{"type":23,"value":1386},{"type":14,"tagName":35,"properties":1529,"children":1530},{"style":238},[1531],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1533,"children":1534},{"style":197},[1535],{"type":23,"value":1395},{"type":14,"tagName":35,"properties":1537,"children":1538},{"style":203},[1539],{"type":23,"value":1400},{"type":14,"tagName":35,"properties":1541,"children":1542},{"style":191},[1543],{"type":23,"value":1515},{"type":14,"tagName":35,"properties":1545,"children":1546},{"style":197},[1547],{"type":23,"value":1409},{"type":14,"tagName":35,"properties":1549,"children":1550},{"style":238},[1551],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1553,"children":1554},{"style":197},[1555],{"type":23,"value":1418},{"type":14,"tagName":35,"properties":1557,"children":1558},{"style":238},[1559],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1561,"children":1562},{"style":197},[1563],{"type":23,"value":1427},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1566,"children":1567},{"class":133},[1568,1572,1576,1580,1584,1588,1592,1596,1600,1604,1608,1612,1616,1620],{"type":14,"tagName":35,"properties":1569,"children":1570},{"style":203},[1571],{"type":23,"value":1436},{"type":14,"tagName":35,"properties":1573,"children":1574},{"style":191},[1575],{"type":23,"value":1515},{"type":14,"tagName":35,"properties":1577,"children":1578},{"style":197},[1579],{"type":23,"value":1445},{"type":14,"tagName":35,"properties":1581,"children":1582},{"style":238},[1583],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1585,"children":1586},{"style":197},[1587],{"type":23,"value":1454},{"type":14,"tagName":35,"properties":1589,"children":1590},{"style":238},[1591],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1593,"children":1594},{"style":197},[1595],{"type":23,"value":1395},{"type":14,"tagName":35,"properties":1597,"children":1598},{"style":203},[1599],{"type":23,"value":1400},{"type":14,"tagName":35,"properties":1601,"children":1602},{"style":191},[1603],{"type":23,"value":1515},{"type":14,"tagName":35,"properties":1605,"children":1606},{"style":197},[1607],{"type":23,"value":1475},{"type":14,"tagName":35,"properties":1609,"children":1610},{"style":238},[1611],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1613,"children":1614},{"style":197},[1615],{"type":23,"value":1484},{"type":14,"tagName":35,"properties":1617,"children":1618},{"style":238},[1619],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1621,"children":1622},{"style":197},[1623],{"type":23,"value":1493},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1626,"children":1627},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1630,"children":1631},{"class":133},[1632,1637,1641,1645],{"type":14,"tagName":35,"properties":1633,"children":1634},{"style":197},[1635],{"type":23,"value":1636},"persist cvd ",{"type":14,"tagName":35,"properties":1638,"children":1639},{"style":203},[1640],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1642,"children":1643},{"style":238},[1644],{"type":23,"value":1251},{"type":14,"tagName":35,"properties":1646,"children":1647},{"style":197},[1648],{"type":23,"value":1256},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1651,"children":1652},{"class":133},[1653,1658,1662,1667,1671],{"type":14,"tagName":35,"properties":1654,"children":1655},{"style":197},[1656],{"type":23,"value":1657},"cvd ",{"type":14,"tagName":35,"properties":1659,"children":1660},{"style":203},[1661],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1663,"children":1664},{"style":197},[1665],{"type":23,"value":1666}," cvd ",{"type":14,"tagName":35,"properties":1668,"children":1669},{"style":203},[1670],{"type":23,"value":1400},{"type":14,"tagName":35,"properties":1672,"children":1673},{"style":197},[1674],{"type":23,"value":1675}," delta;",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1678,"children":1679},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1682,"children":1683},{"class":133},[1684,1689,1693],{"type":14,"tagName":35,"properties":1685,"children":1686},{"style":197},[1687],{"type":23,"value":1688},"timeseries cvdLine ",{"type":14,"tagName":35,"properties":1690,"children":1691},{"style":203},[1692],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1694,"children":1695},{"style":197},[1696],{"type":23,"value":1697}," cvd;",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1700,"children":1701},{"class":133},[1702,1706,1711,1715,1720],{"type":14,"tagName":35,"properties":1703,"children":1704},{"style":203},[1705],{"type":23,"value":259},{"type":14,"tagName":35,"properties":1707,"children":1708},{"style":197},[1709],{"type":23,"value":1710}," vol ",{"type":14,"tagName":35,"properties":1712,"children":1713},{"style":203},[1714],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1716,"children":1717},{"style":191},[1718],{"type":23,"value":1719}," stddev",{"type":14,"tagName":35,"properties":1721,"children":1722},{"style":197},[1723],{"type":23,"value":1724},"(cvdLine, bandLen);",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1727,"children":1728},{"class":133},[1729,1734,1738,1742,1746,1750,1754,1759,1763,1767,1772,1776],{"type":14,"tagName":35,"properties":1730,"children":1731},{"style":197},[1732],{"type":23,"value":1733},"timeseries upper ",{"type":14,"tagName":35,"properties":1735,"children":1736},{"style":203},[1737],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1739,"children":1740},{"style":197},[1741],{"type":23,"value":1666},{"type":14,"tagName":35,"properties":1743,"children":1744},{"style":203},[1745],{"type":23,"value":1400},{"type":14,"tagName":35,"properties":1747,"children":1748},{"style":197},[1749],{"type":23,"value":1192},{"type":14,"tagName":35,"properties":1751,"children":1752},{"style":191},[1753],{"type":23,"value":1197},{"type":14,"tagName":35,"properties":1755,"children":1756},{"style":197},[1757],{"type":23,"value":1758},"(vol) ",{"type":14,"tagName":35,"properties":1760,"children":1761},{"style":203},[1762],{"type":23,"value":1320},{"type":14,"tagName":35,"properties":1764,"children":1765},{"style":197},[1766],{"type":23,"value":1710},{"type":14,"tagName":35,"properties":1768,"children":1769},{"style":203},[1770],{"type":23,"value":1771},":",{"type":14,"tagName":35,"properties":1773,"children":1774},{"style":238},[1775],{"type":23,"value":1251},{"type":14,"tagName":35,"properties":1777,"children":1778},{"style":197},[1779],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1782,"children":1783},{"class":133},[1784,1789,1793,1797,1801,1805,1809,1813,1817,1821,1825,1829],{"type":14,"tagName":35,"properties":1785,"children":1786},{"style":197},[1787],{"type":23,"value":1788},"timeseries lower ",{"type":14,"tagName":35,"properties":1790,"children":1791},{"style":203},[1792],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1794,"children":1795},{"style":197},[1796],{"type":23,"value":1666},{"type":14,"tagName":35,"properties":1798,"children":1799},{"style":203},[1800],{"type":23,"value":1232},{"type":14,"tagName":35,"properties":1802,"children":1803},{"style":197},[1804],{"type":23,"value":1192},{"type":14,"tagName":35,"properties":1806,"children":1807},{"style":191},[1808],{"type":23,"value":1197},{"type":14,"tagName":35,"properties":1810,"children":1811},{"style":197},[1812],{"type":23,"value":1758},{"type":14,"tagName":35,"properties":1814,"children":1815},{"style":203},[1816],{"type":23,"value":1320},{"type":14,"tagName":35,"properties":1818,"children":1819},{"style":197},[1820],{"type":23,"value":1710},{"type":14,"tagName":35,"properties":1822,"children":1823},{"style":203},[1824],{"type":23,"value":1771},{"type":14,"tagName":35,"properties":1826,"children":1827},{"style":238},[1828],{"type":23,"value":1251},{"type":14,"tagName":35,"properties":1830,"children":1831},{"style":197},[1832],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1835,"children":1836},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1839,"children":1840},{"class":133},[1841,1846,1851,1855,1860,1864,1868,1873,1877,1882,1886,1890,1894,1899,1903,1908,1912,1916,1921,1926,1931,1935,1939,1944],{"type":14,"tagName":35,"properties":1842,"children":1843},{"style":191},[1844],{"type":23,"value":1845},"plotLine",{"type":14,"tagName":35,"properties":1847,"children":1848},{"style":197},[1849],{"type":23,"value":1850},"(cvdLine, colors",{"type":14,"tagName":35,"properties":1852,"children":1853},{"style":203},[1854],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1856,"children":1857},{"style":197},[1858],{"type":23,"value":1859},"[posCol, negCol], colorIndex",{"type":14,"tagName":35,"properties":1861,"children":1862},{"style":203},[1863],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1865,"children":1866},{"style":197},[1867],{"type":23,"value":1657},{"type":14,"tagName":35,"properties":1869,"children":1870},{"style":203},[1871],{"type":23,"value":1872},">=",{"type":14,"tagName":35,"properties":1874,"children":1875},{"style":238},[1876],{"type":23,"value":1251},{"type":14,"tagName":35,"properties":1878,"children":1879},{"style":203},[1880],{"type":23,"value":1881}," ?",{"type":14,"tagName":35,"properties":1883,"children":1884},{"style":238},[1885],{"type":23,"value":1251},{"type":14,"tagName":35,"properties":1887,"children":1888},{"style":203},[1889],{"type":23,"value":1330},{"type":14,"tagName":35,"properties":1891,"children":1892},{"style":238},[1893],{"type":23,"value":1325},{"type":14,"tagName":35,"properties":1895,"children":1896},{"style":197},[1897],{"type":23,"value":1898},", width",{"type":14,"tagName":35,"properties":1900,"children":1901},{"style":203},[1902],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1904,"children":1905},{"style":238},[1906],{"type":23,"value":1907},"2",{"type":14,"tagName":35,"properties":1909,"children":1910},{"style":197},[1911],{"type":23,"value":320},{"type":14,"tagName":35,"properties":1913,"children":1914},{"style":203},[1915],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1917,"children":1918},{"style":197},[1919],{"type":23,"value":1920},"[",{"type":14,"tagName":35,"properties":1922,"children":1923},{"style":209},[1924],{"type":23,"value":1925},"\"Aggregated CVD\"",{"type":14,"tagName":35,"properties":1927,"children":1928},{"style":197},[1929],{"type":23,"value":1930},"], desc",{"type":14,"tagName":35,"properties":1932,"children":1933},{"style":203},[1934],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1936,"children":1937},{"style":197},[1938],{"type":23,"value":1920},{"type":14,"tagName":35,"properties":1940,"children":1941},{"style":209},[1942],{"type":23,"value":1943},"\"Cumulative volume delta summed across four venues\"",{"type":14,"tagName":35,"properties":1945,"children":1946},{"style":197},[1947],{"type":23,"value":1493},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1950,"children":1951},{"class":133},[1952,1956,1961,1965,1969,1974,1979,1984,1989,1993,1998,2002,2006,2010,2015,2019,2023,2027,2032],{"type":14,"tagName":35,"properties":1953,"children":1954},{"style":191},[1955],{"type":23,"value":1845},{"type":14,"tagName":35,"properties":1957,"children":1958},{"style":197},[1959],{"type":23,"value":1960},"(upper, colors",{"type":14,"tagName":35,"properties":1962,"children":1963},{"style":203},[1964],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1966,"children":1967},{"style":197},[1968],{"type":23,"value":1920},{"type":14,"tagName":35,"properties":1970,"children":1971},{"style":191},[1972],{"type":23,"value":1973},"opacity",{"type":14,"tagName":35,"properties":1975,"children":1976},{"style":197},[1977],{"type":23,"value":1978},"(posCol, ",{"type":14,"tagName":35,"properties":1980,"children":1981},{"style":238},[1982],{"type":23,"value":1983},"35",{"type":14,"tagName":35,"properties":1985,"children":1986},{"style":197},[1987],{"type":23,"value":1988},")], width",{"type":14,"tagName":35,"properties":1990,"children":1991},{"style":203},[1992],{"type":23,"value":206},{"type":14,"tagName":35,"properties":1994,"children":1995},{"style":238},[1996],{"type":23,"value":1997},"1",{"type":14,"tagName":35,"properties":1999,"children":2000},{"style":197},[2001],{"type":23,"value":320},{"type":14,"tagName":35,"properties":2003,"children":2004},{"style":203},[2005],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2007,"children":2008},{"style":197},[2009],{"type":23,"value":1920},{"type":14,"tagName":35,"properties":2011,"children":2012},{"style":209},[2013],{"type":23,"value":2014},"\"Upper Band\"",{"type":14,"tagName":35,"properties":2016,"children":2017},{"style":197},[2018],{"type":23,"value":1930},{"type":14,"tagName":35,"properties":2020,"children":2021},{"style":203},[2022],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2024,"children":2025},{"style":197},[2026],{"type":23,"value":1920},{"type":14,"tagName":35,"properties":2028,"children":2029},{"style":209},[2030],{"type":23,"value":2031},"\"CVD plus one standard deviation\"",{"type":14,"tagName":35,"properties":2033,"children":2034},{"style":197},[2035],{"type":23,"value":1493},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2038,"children":2039},{"class":133},[2040,2044,2049,2053,2057,2061,2066,2070,2074,2078,2082,2086,2090,2094,2099,2103,2107,2111,2116],{"type":14,"tagName":35,"properties":2041,"children":2042},{"style":191},[2043],{"type":23,"value":1845},{"type":14,"tagName":35,"properties":2045,"children":2046},{"style":197},[2047],{"type":23,"value":2048},"(lower, colors",{"type":14,"tagName":35,"properties":2050,"children":2051},{"style":203},[2052],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2054,"children":2055},{"style":197},[2056],{"type":23,"value":1920},{"type":14,"tagName":35,"properties":2058,"children":2059},{"style":191},[2060],{"type":23,"value":1973},{"type":14,"tagName":35,"properties":2062,"children":2063},{"style":197},[2064],{"type":23,"value":2065},"(negCol, ",{"type":14,"tagName":35,"properties":2067,"children":2068},{"style":238},[2069],{"type":23,"value":1983},{"type":14,"tagName":35,"properties":2071,"children":2072},{"style":197},[2073],{"type":23,"value":1988},{"type":14,"tagName":35,"properties":2075,"children":2076},{"style":203},[2077],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2079,"children":2080},{"style":238},[2081],{"type":23,"value":1997},{"type":14,"tagName":35,"properties":2083,"children":2084},{"style":197},[2085],{"type":23,"value":320},{"type":14,"tagName":35,"properties":2087,"children":2088},{"style":203},[2089],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2091,"children":2092},{"style":197},[2093],{"type":23,"value":1920},{"type":14,"tagName":35,"properties":2095,"children":2096},{"style":209},[2097],{"type":23,"value":2098},"\"Lower Band\"",{"type":14,"tagName":35,"properties":2100,"children":2101},{"style":197},[2102],{"type":23,"value":1930},{"type":14,"tagName":35,"properties":2104,"children":2105},{"style":203},[2106],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2108,"children":2109},{"style":197},[2110],{"type":23,"value":1920},{"type":14,"tagName":35,"properties":2112,"children":2113},{"style":209},[2114],{"type":23,"value":2115},"\"CVD minus one standard deviation\"",{"type":14,"tagName":35,"properties":2117,"children":2118},{"style":197},[2119],{"type":23,"value":1493},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2122,"children":2123},{"class":133},[2124,2129,2134,2138,2142,2146,2151,2155,2160,2165],{"type":14,"tagName":35,"properties":2125,"children":2126},{"style":191},[2127],{"type":23,"value":2128},"fillBetween",{"type":14,"tagName":35,"properties":2130,"children":2131},{"style":197},[2132],{"type":23,"value":2133},"(upper, lower, cvd ",{"type":14,"tagName":35,"properties":2135,"children":2136},{"style":203},[2137],{"type":23,"value":1872},{"type":14,"tagName":35,"properties":2139,"children":2140},{"style":238},[2141],{"type":23,"value":1251},{"type":14,"tagName":35,"properties":2143,"children":2144},{"style":203},[2145],{"type":23,"value":1881},{"type":14,"tagName":35,"properties":2147,"children":2148},{"style":197},[2149],{"type":23,"value":2150}," posCol ",{"type":14,"tagName":35,"properties":2152,"children":2153},{"style":203},[2154],{"type":23,"value":1771},{"type":14,"tagName":35,"properties":2156,"children":2157},{"style":197},[2158],{"type":23,"value":2159}," negCol, ",{"type":14,"tagName":35,"properties":2161,"children":2162},{"style":238},[2163],{"type":23,"value":2164},"12",{"type":14,"tagName":35,"properties":2166,"children":2167},{"style":197},[2168],{"type":23,"value":246},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2171,"children":2172},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2175,"children":2176},{"class":133},[2177],{"type":14,"tagName":35,"properties":2178,"children":2179},{"style":137},[2180],{"type":23,"value":2181},"// Live diagnostics: if venues drop out you SEE it instead of a silent flat line.",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2184,"children":2185},{"class":133},[2186,2191],{"type":14,"tagName":35,"properties":2187,"children":2188},{"style":203},[2189],{"type":23,"value":2190},"if",{"type":14,"tagName":35,"properties":2192,"children":2193},{"style":197},[2194],{"type":23,"value":2195}," (isLastBar) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2198,"children":2199},{"class":133},[2200,2205],{"type":14,"tagName":35,"properties":2201,"children":2202},{"style":191},[2203],{"type":23,"value":2204},"  plotTable",{"type":14,"tagName":35,"properties":2206,"children":2207},{"style":197},[2208],{"type":23,"value":2209},"(",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2212,"children":2213},{"class":133},[2214,2219,2223,2228,2233,2238,2243,2248,2253,2257,2261,2266,2271,2276,2281,2286,2291,2295,2299,2303,2307,2312,2317],{"type":14,"tagName":35,"properties":2215,"children":2216},{"style":197},[2217],{"type":23,"value":2218},"    data",{"type":14,"tagName":35,"properties":2220,"children":2221},{"style":203},[2222],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2224,"children":2225},{"style":197},[2226],{"type":23,"value":2227},"[[",{"type":14,"tagName":35,"properties":2229,"children":2230},{"style":209},[2231],{"type":23,"value":2232},"\"Agg CVD\"",{"type":14,"tagName":35,"properties":2234,"children":2235},{"style":197},[2236],{"type":23,"value":2237},", ",{"type":14,"tagName":35,"properties":2239,"children":2240},{"style":209},[2241],{"type":23,"value":2242},"\"\"",{"type":14,"tagName":35,"properties":2244,"children":2245},{"style":197},[2246],{"type":23,"value":2247},"], [",{"type":14,"tagName":35,"properties":2249,"children":2250},{"style":209},[2251],{"type":23,"value":2252},"\"Venues live\"",{"type":14,"tagName":35,"properties":2254,"children":2255},{"style":197},[2256],{"type":23,"value":2237},{"type":14,"tagName":35,"properties":2258,"children":2259},{"style":209},[2260],{"type":23,"value":2242},{"type":14,"tagName":35,"properties":2262,"children":2263},{"style":197},[2264],{"type":23,"value":2265},".",{"type":14,"tagName":35,"properties":2267,"children":2268},{"style":191},[2269],{"type":23,"value":2270},"concat",{"type":14,"tagName":35,"properties":2272,"children":2273},{"style":197},[2274],{"type":23,"value":2275},"(live, ",{"type":14,"tagName":35,"properties":2277,"children":2278},{"style":209},[2279],{"type":23,"value":2280},"\" / 4\"",{"type":14,"tagName":35,"properties":2282,"children":2283},{"style":197},[2284],{"type":23,"value":2285},")], [",{"type":14,"tagName":35,"properties":2287,"children":2288},{"style":209},[2289],{"type":23,"value":2290},"\"CVD\"",{"type":14,"tagName":35,"properties":2292,"children":2293},{"style":197},[2294],{"type":23,"value":2237},{"type":14,"tagName":35,"properties":2296,"children":2297},{"style":209},[2298],{"type":23,"value":2242},{"type":14,"tagName":35,"properties":2300,"children":2301},{"style":197},[2302],{"type":23,"value":2265},{"type":14,"tagName":35,"properties":2304,"children":2305},{"style":191},[2306],{"type":23,"value":2270},{"type":14,"tagName":35,"properties":2308,"children":2309},{"style":197},[2310],{"type":23,"value":2311},"(math.",{"type":14,"tagName":35,"properties":2313,"children":2314},{"style":191},[2315],{"type":23,"value":2316},"round",{"type":14,"tagName":35,"properties":2318,"children":2319},{"style":197},[2320],{"type":23,"value":2321},"(cvd))]],",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2324,"children":2325},{"class":133},[2326,2331,2335,2340,2345,2349,2353,2358,2362,2367,2372,2376,2381,2386,2390],{"type":14,"tagName":35,"properties":2327,"children":2328},{"style":197},[2329],{"type":23,"value":2330},"    position",{"type":14,"tagName":35,"properties":2332,"children":2333},{"style":203},[2334],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2336,"children":2337},{"style":209},[2338],{"type":23,"value":2339},"\"top_right\"",{"type":14,"tagName":35,"properties":2341,"children":2342},{"style":197},[2343],{"type":23,"value":2344},", headerRow",{"type":14,"tagName":35,"properties":2346,"children":2347},{"style":203},[2348],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2350,"children":2351},{"style":238},[2352],{"type":23,"value":241},{"type":14,"tagName":35,"properties":2354,"children":2355},{"style":197},[2356],{"type":23,"value":2357},", backgroundColor",{"type":14,"tagName":35,"properties":2359,"children":2360},{"style":203},[2361],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2363,"children":2364},{"style":209},[2365],{"type":23,"value":2366},"\"#0d1117\"",{"type":14,"tagName":35,"properties":2368,"children":2369},{"style":197},[2370],{"type":23,"value":2371},", textColor",{"type":14,"tagName":35,"properties":2373,"children":2374},{"style":203},[2375],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2377,"children":2378},{"style":209},[2379],{"type":23,"value":2380},"\"#e6edf3\"",{"type":14,"tagName":35,"properties":2382,"children":2383},{"style":197},[2384],{"type":23,"value":2385},", fontSize",{"type":14,"tagName":35,"properties":2387,"children":2388},{"style":203},[2389],{"type":23,"value":206},{"type":14,"tagName":35,"properties":2391,"children":2392},{"style":238},[2393],{"type":23,"value":2394},"11",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2397,"children":2398},{"class":133},[2399],{"type":14,"tagName":35,"properties":2400,"children":2401},{"style":197},[2402],{"type":23,"value":2403},"  );",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2406,"children":2407},{"class":133},[2408],{"type":14,"tagName":35,"properties":2409,"children":2410},{"style":197},[2411],{"type":23,"value":1265},{"type":23,"value":89},{"type":14,"tagName":2414,"properties":2415,"children":2417,"position":2427},"h2",{"id":2416},"how-it-works",[2418],{"type":23,"value":2419,"position":2420},"How it works",{"start":2421,"end":2424},{"line":2422,"column":56,"offset":2423},78,4553,{"line":2422,"column":2425,"offset":2426},16,4565,{"start":2428,"end":2430},{"line":2422,"column":27,"offset":2429},4550,{"line":2422,"column":2425,"offset":2426},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2433,"children":2434,"position":2481},{},[2435,2454,2461,2474],{"type":14,"tagName":2436,"properties":2437,"children":2438,"position":2448},"strong",{},[2439],{"type":23,"value":2440,"position":2441},"The timeline spine.",{"start":2442,"end":2445},{"line":2443,"column":32,"offset":2444},80,4569,{"line":2443,"column":2446,"offset":2447},22,4588,{"start":2449,"end":2451},{"line":2443,"column":27,"offset":2450},4567,{"line":2443,"column":2452,"offset":2453},24,4590,{"type":23,"value":2455,"position":2456}," The first source is the chart's own ",{"start":2457,"end":2458},{"line":2443,"column":2452,"offset":2453},{"line":2443,"column":2459,"offset":2460},61,4627,{"type":14,"tagName":128,"properties":2462,"children":2463,"position":2471},{},[2464],{"type":23,"value":2465,"position":2466},"ohlcv",{"start":2467,"end":2468},{"line":2443,"column":2459,"offset":2460},{"line":2443,"column":2469,"offset":2470},68,4634,{"start":2472,"end":2473},{"line":2443,"column":2459,"offset":2460},{"line":2443,"column":2469,"offset":2470},{"type":23,"value":2475,"position":2476},". It looks redundant since the script never plots it, but it defines the bar sequence every other source aligns to. Without it, the timeline would depend entirely on the venue feeds resolving, and on a symbol where one is missing the script would have no bars to compute. Load the chart series first, always.",{"start":2477,"end":2478},{"line":2443,"column":2469,"offset":2470},{"line":2443,"column":2479,"offset":2480},376,4942,{"start":2482,"end":2483},{"line":2443,"column":27,"offset":2450},{"line":2443,"column":2479,"offset":2480},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2486,"children":2487,"position":2572},{},[2488,2505,2512,2525,2532,2545,2552,2565],{"type":14,"tagName":2436,"properties":2489,"children":2490,"position":2500},{},[2491],{"type":23,"value":2492,"position":2493},"Four venues, one script.",{"start":2494,"end":2497},{"line":2495,"column":32,"offset":2496},82,4946,{"line":2495,"column":2498,"offset":2499},27,4970,{"start":2501,"end":2503},{"line":2495,"column":27,"offset":2502},4944,{"line":2495,"column":29,"offset":2504},4972,{"type":23,"value":2506,"position":2507}," Each ",{"start":2508,"end":2509},{"line":2495,"column":29,"offset":2504},{"line":2495,"column":2510,"offset":2511},35,4978,{"type":14,"tagName":128,"properties":2513,"children":2514,"position":2522},{},[2515],{"type":23,"value":2516,"position":2517},"source(type=\"buy_sell_volume\", ...)",{"start":2518,"end":2519},{"line":2495,"column":2510,"offset":2511},{"line":2495,"column":2520,"offset":2521},72,5015,{"start":2523,"end":2524},{"line":2495,"column":2510,"offset":2511},{"line":2495,"column":2520,"offset":2521},{"type":23,"value":2526,"position":2527}," subscribes to a different exchange's aggressive buy and sell volume. Binance spot, Binance futures, Bybit, and OKX each become an ordinary series with ",{"start":2528,"end":2529},{"line":2495,"column":2520,"offset":2521},{"line":2495,"column":2530,"offset":2531},224,5167,{"type":14,"tagName":128,"properties":2533,"children":2534,"position":2542},{},[2535],{"type":23,"value":2536,"position":2537},".buy",{"start":2538,"end":2539},{"line":2495,"column":2530,"offset":2531},{"line":2495,"column":2540,"offset":2541},230,5173,{"start":2543,"end":2544},{"line":2495,"column":2530,"offset":2531},{"line":2495,"column":2540,"offset":2541},{"type":23,"value":2546,"position":2547}," and ",{"start":2548,"end":2549},{"line":2495,"column":2540,"offset":2541},{"line":2495,"column":2550,"offset":2551},235,5178,{"type":14,"tagName":128,"properties":2553,"children":2554,"position":2562},{},[2555],{"type":23,"value":2556,"position":2557},".sell",{"start":2558,"end":2559},{"line":2495,"column":2550,"offset":2551},{"line":2495,"column":2560,"offset":2561},242,5185,{"start":2563,"end":2564},{"line":2495,"column":2550,"offset":2551},{"line":2495,"column":2560,"offset":2561},{"type":23,"value":2566,"position":2567}," members. There is no special \"aggregate\" primitive here, just four sources and addition. That is the multi-source superpower: combining venues is the same as combining any two series.",{"start":2568,"end":2569},{"line":2495,"column":2560,"offset":2561},{"line":2495,"column":2570,"offset":2571},426,5369,{"start":2573,"end":2574},{"line":2495,"column":27,"offset":2502},{"line":2495,"column":2570,"offset":2571},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2577,"children":2578,"position":2643},{},[2579,2596,2603,2616,2623,2636],{"type":14,"tagName":2436,"properties":2580,"children":2581,"position":2590},{},[2582],{"type":23,"value":2583,"position":2584},"Each venue's symbol is an input.",{"start":2585,"end":2588},{"line":2586,"column":32,"offset":2587},84,5373,{"line":2586,"column":2510,"offset":2589},5405,{"start":2591,"end":2593},{"line":2586,"column":27,"offset":2592},5371,{"line":2586,"column":2594,"offset":2595},37,5407,{"type":23,"value":2597,"position":2598}," The engine resolves source symbols at compile time, so they have to be literals or input-backed strings. Exposing them as inputs (",{"start":2599,"end":2600},{"line":2586,"column":2594,"offset":2595},{"line":2586,"column":2601,"offset":2602},168,5538,{"type":14,"tagName":128,"properties":2604,"children":2605,"position":2613},{},[2606],{"type":23,"value":2607,"position":2608},"spotBSymbol",{"start":2609,"end":2610},{"line":2586,"column":2601,"offset":2602},{"line":2586,"column":2611,"offset":2612},181,5551,{"start":2614,"end":2615},{"line":2586,"column":2601,"offset":2602},{"line":2586,"column":2611,"offset":2612},{"type":23,"value":2617,"position":2618}," and friends) is what lets you point the whole aggregate at a different coin from the settings panel without editing code. The OKX default uses that venue's dash-style symbol (",{"start":2619,"end":2620},{"line":2586,"column":2611,"offset":2612},{"line":2586,"column":2621,"offset":2622},357,5727,{"type":14,"tagName":128,"properties":2624,"children":2625,"position":2633},{},[2626],{"type":23,"value":2627,"position":2628},"BTC-USDT-SWAP",{"start":2629,"end":2630},{"line":2586,"column":2621,"offset":2622},{"line":2586,"column":2631,"offset":2632},372,5742,{"start":2634,"end":2635},{"line":2586,"column":2621,"offset":2622},{"line":2586,"column":2631,"offset":2632},{"type":23,"value":2637,"position":2638},"), a reminder that venues name the same market differently.",{"start":2639,"end":2640},{"line":2586,"column":2631,"offset":2632},{"line":2586,"column":2641,"offset":2642},431,5801,{"start":2644,"end":2645},{"line":2586,"column":27,"offset":2592},{"line":2586,"column":2641,"offset":2642},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2648,"children":2649,"position":2770},{},[2650,2668,2675,2687,2694,2706,2713,2726,2733,2745,2751,2763],{"type":14,"tagName":2436,"properties":2651,"children":2652,"position":2662},{},[2653],{"type":23,"value":2654,"position":2655},"Missing venues contribute zero, not chaos.",{"start":2656,"end":2659},{"line":2657,"column":32,"offset":2658},86,5805,{"line":2657,"column":2660,"offset":2661},45,5847,{"start":2663,"end":2665},{"line":2657,"column":27,"offset":2664},5803,{"line":2657,"column":2666,"offset":2667},47,5849,{"type":23,"value":2669,"position":2670}," A venue can be late to list a coin or briefly drop out. ",{"start":2671,"end":2672},{"line":2657,"column":2666,"offset":2667},{"line":2657,"column":2673,"offset":2674},104,5906,{"type":14,"tagName":128,"properties":2676,"children":2677,"position":2684},{},[2678],{"type":23,"value":1173,"position":2679},{"start":2680,"end":2681},{"line":2657,"column":2673,"offset":2674},{"line":2657,"column":2682,"offset":2683},115,5917,{"start":2685,"end":2686},{"line":2657,"column":2673,"offset":2674},{"line":2657,"column":2682,"offset":2683},{"type":23,"value":2688,"position":2689}," returns ",{"start":2690,"end":2691},{"line":2657,"column":2682,"offset":2683},{"line":2657,"column":2692,"offset":2693},124,5926,{"type":14,"tagName":128,"properties":2695,"children":2696,"position":2703},{},[2697],{"type":23,"value":124,"position":2698},{"start":2699,"end":2700},{"line":2657,"column":2692,"offset":2693},{"line":2657,"column":2701,"offset":2702},127,5929,{"start":2704,"end":2705},{"line":2657,"column":2692,"offset":2693},{"line":2657,"column":2701,"offset":2702},{"type":23,"value":2707,"position":2708}," when either side is ",{"start":2709,"end":2710},{"line":2657,"column":2701,"offset":2702},{"line":2657,"column":2711,"offset":2712},148,5950,{"type":14,"tagName":128,"properties":2714,"children":2715,"position":2723},{},[2716],{"type":23,"value":2717,"position":2718},"na",{"start":2719,"end":2720},{"line":2657,"column":2711,"offset":2712},{"line":2657,"column":2721,"offset":2722},152,5954,{"start":2724,"end":2725},{"line":2657,"column":2711,"offset":2712},{"line":2657,"column":2721,"offset":2722},{"type":23,"value":2727,"position":2728}," instead of poisoning the sum, and ",{"start":2729,"end":2730},{"line":2657,"column":2721,"offset":2722},{"line":2657,"column":2731,"offset":2732},187,5989,{"type":14,"tagName":128,"properties":2734,"children":2735,"position":2742},{},[2736],{"type":23,"value":1278,"position":2737},{"start":2738,"end":2739},{"line":2657,"column":2731,"offset":2732},{"line":2657,"column":2740,"offset":2741},197,5999,{"start":2743,"end":2744},{"line":2657,"column":2731,"offset":2732},{"line":2657,"column":2740,"offset":2741},{"type":23,"value":2688,"position":2746},{"start":2747,"end":2748},{"line":2657,"column":2740,"offset":2741},{"line":2657,"column":2749,"offset":2750},206,6008,{"type":14,"tagName":128,"properties":2752,"children":2753,"position":2760},{},[2754],{"type":23,"value":1997,"position":2755},{"start":2756,"end":2757},{"line":2657,"column":2749,"offset":2750},{"line":2657,"column":2758,"offset":2759},209,6011,{"start":2761,"end":2762},{"line":2657,"column":2749,"offset":2750},{"line":2657,"column":2758,"offset":2759},{"type":23,"value":2764,"position":2765}," only when a venue is actually reporting. So the aggregate degrades gracefully: three live venues still produce a clean line, and the table tells you it is three, not four.",{"start":2766,"end":2767},{"line":2657,"column":2758,"offset":2759},{"line":2657,"column":2768,"offset":2769},381,6183,{"start":2771,"end":2772},{"line":2657,"column":27,"offset":2664},{"line":2657,"column":2768,"offset":2769},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2775,"children":2776,"position":2860},{},[2777,2795,2802,2815,2822,2834,2841,2854],{"type":14,"tagName":2436,"properties":2778,"children":2779,"position":2789},{},[2780],{"type":23,"value":2781,"position":2782},"Cumulative means persistent.",{"start":2783,"end":2786},{"line":2784,"column":32,"offset":2785},88,6187,{"line":2784,"column":2787,"offset":2788},31,6215,{"start":2790,"end":2792},{"line":2784,"column":27,"offset":2791},6185,{"line":2784,"column":2793,"offset":2794},33,6217,{"type":23,"value":2796,"position":2797}," ",{"start":2798,"end":2799},{"line":2784,"column":2793,"offset":2794},{"line":2784,"column":2800,"offset":2801},34,6218,{"type":14,"tagName":128,"properties":2803,"children":2804,"position":2812},{},[2805],{"type":23,"value":2806,"position":2807},"persist cvd = 0",{"start":2808,"end":2809},{"line":2784,"column":2800,"offset":2801},{"line":2784,"column":2810,"offset":2811},51,6235,{"start":2813,"end":2814},{"line":2784,"column":2800,"offset":2801},{"line":2784,"column":2810,"offset":2811},{"type":23,"value":2816,"position":2817}," declares one accumulator that survives across bars, and ",{"start":2818,"end":2819},{"line":2784,"column":2810,"offset":2811},{"line":2784,"column":2820,"offset":2821},108,6292,{"type":14,"tagName":128,"properties":2823,"children":2824,"position":2831},{},[2825],{"type":23,"value":2826,"position":2827},"cvd = cvd + delta",{"start":2828,"end":2829},{"line":2784,"column":2820,"offset":2821},{"line":2784,"column":2701,"offset":2830},6311,{"start":2832,"end":2833},{"line":2784,"column":2820,"offset":2821},{"line":2784,"column":2701,"offset":2830},{"type":23,"value":2835,"position":2836}," adds each bar's net flow to the running total. That persistence is what turns a per-bar delta into a cumulative line. The line is colored green when the running total is positive and red when negative via ",{"start":2837,"end":2838},{"line":2784,"column":2701,"offset":2830},{"line":2784,"column":2839,"offset":2840},333,6517,{"type":14,"tagName":128,"properties":2842,"children":2843,"position":2851},{},[2844],{"type":23,"value":2845,"position":2846},"colorIndex",{"start":2847,"end":2848},{"line":2784,"column":2839,"offset":2840},{"line":2784,"column":2849,"offset":2850},345,6529,{"start":2852,"end":2853},{"line":2784,"column":2839,"offset":2840},{"line":2784,"column":2849,"offset":2850},{"type":23,"value":2265,"position":2855},{"start":2856,"end":2857},{"line":2784,"column":2849,"offset":2850},{"line":2784,"column":2858,"offset":2859},346,6530,{"start":2861,"end":2862},{"line":2784,"column":27,"offset":2791},{"line":2784,"column":2858,"offset":2859},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2865,"children":2866,"position":2948},{},[2867,2883,2889,2902,2909,2921,2928,2941],{"type":14,"tagName":2436,"properties":2868,"children":2869,"position":2878},{},[2870],{"type":23,"value":2871,"position":2872},"The bands and the diagnostics.",{"start":2873,"end":2876},{"line":2874,"column":32,"offset":2875},90,6534,{"line":2874,"column":2793,"offset":2877},6564,{"start":2879,"end":2881},{"line":2874,"column":27,"offset":2880},6532,{"line":2874,"column":2510,"offset":2882},6566,{"type":23,"value":2796,"position":2884},{"start":2885,"end":2886},{"line":2874,"column":2510,"offset":2882},{"line":2874,"column":2887,"offset":2888},36,6567,{"type":14,"tagName":128,"properties":2890,"children":2891,"position":2899},{},[2892],{"type":23,"value":2893,"position":2894},"stddev",{"start":2895,"end":2896},{"line":2874,"column":2887,"offset":2888},{"line":2874,"column":2897,"offset":2898},44,6575,{"start":2900,"end":2901},{"line":2874,"column":2887,"offset":2888},{"line":2874,"column":2897,"offset":2898},{"type":23,"value":2903,"position":2904}," over the cumulative line gives a one-sigma envelope, plotted faint above and below and shaded with ",{"start":2905,"end":2906},{"line":2874,"column":2897,"offset":2898},{"line":2874,"column":2907,"offset":2908},144,6675,{"type":14,"tagName":128,"properties":2910,"children":2911,"position":2918},{},[2912],{"type":23,"value":2128,"position":2913},{"start":2914,"end":2915},{"line":2874,"column":2907,"offset":2908},{"line":2874,"column":2916,"offset":2917},157,6688,{"start":2919,"end":2920},{"line":2874,"column":2907,"offset":2908},{"line":2874,"column":2916,"offset":2917},{"type":23,"value":2922,"position":2923},", so you can read momentum against its own recent volatility. On the last bar a small ",{"start":2924,"end":2925},{"line":2874,"column":2916,"offset":2917},{"line":2874,"column":2926,"offset":2927},243,6774,{"type":14,"tagName":128,"properties":2929,"children":2930,"position":2938},{},[2931],{"type":23,"value":2932,"position":2933},"plotTable",{"start":2934,"end":2935},{"line":2874,"column":2926,"offset":2927},{"line":2874,"column":2936,"offset":2937},254,6785,{"start":2939,"end":2940},{"line":2874,"column":2926,"offset":2927},{"line":2874,"column":2936,"offset":2937},{"type":23,"value":2942,"position":2943}," reports how many venues are live and the rounded CVD. If a feed drops, you see \"3 / 4\" instead of silently trusting a line that lost a quarter of its input.",{"start":2944,"end":2945},{"line":2874,"column":2936,"offset":2937},{"line":2874,"column":2946,"offset":2947},411,6942,{"start":2949,"end":2950},{"line":2874,"column":27,"offset":2880},{"line":2874,"column":2946,"offset":2947},{"type":23,"value":89},{"type":14,"tagName":2414,"properties":2953,"children":2955,"position":2964},{"id":2954},"customize-it",[2956],{"type":23,"value":2957,"position":2958},"Customize it",{"start":2959,"end":2962},{"line":2960,"column":56,"offset":2961},92,6947,{"line":2960,"column":2425,"offset":2963},6959,{"start":2965,"end":2967},{"line":2960,"column":27,"offset":2966},6944,{"line":2960,"column":2425,"offset":2963},{"type":23,"value":89},{"type":14,"tagName":2970,"properties":2971,"children":2972,"position":3349},"ul",{},[2973,2974,3070,3071,3180,3181,3230,3231,3261,3262,3348],{"type":23,"value":89},{"type":14,"tagName":2975,"properties":2976,"children":2977,"position":3066},"li",{},[2978,2996,3003,3015,3022,3035,3042,3060],{"type":14,"tagName":2436,"properties":2979,"children":2980,"position":2990},{},[2981],{"type":23,"value":2982,"position":2983},"Swap the coin.",{"start":2984,"end":2987},{"line":2985,"column":67,"offset":2986},94,6965,{"line":2985,"column":2988,"offset":2989},19,6979,{"start":2991,"end":2993},{"line":2985,"column":32,"offset":2992},6963,{"line":2985,"column":2994,"offset":2995},21,6981,{"type":23,"value":2997,"position":2998}," Change all four ",{"start":2999,"end":3000},{"line":2985,"column":2994,"offset":2995},{"line":2985,"column":3001,"offset":3002},38,6998,{"type":14,"tagName":128,"properties":3004,"children":3005,"position":3012},{},[3006],{"type":23,"value":3007,"position":3008},"*Symbol",{"start":3009,"end":3010},{"line":2985,"column":3001,"offset":3002},{"line":2985,"column":2666,"offset":3011},7007,{"start":3013,"end":3014},{"line":2985,"column":3001,"offset":3002},{"line":2985,"column":2666,"offset":3011},{"type":23,"value":3016,"position":3017}," inputs from the settings panel to aggregate a different market. Mind each venue's naming: OKX swaps use the ",{"start":3018,"end":3019},{"line":2985,"column":2666,"offset":3011},{"line":2985,"column":3020,"offset":3021},156,7116,{"type":14,"tagName":128,"properties":3023,"children":3024,"position":3032},{},[3025],{"type":23,"value":3026,"position":3027},"BASE-QUOTE-SWAP",{"start":3028,"end":3029},{"line":2985,"column":3020,"offset":3021},{"line":2985,"column":3030,"offset":3031},173,7133,{"start":3033,"end":3034},{"line":2985,"column":3020,"offset":3021},{"line":2985,"column":3030,"offset":3031},{"type":23,"value":3036,"position":3037}," form while Binance and Bybit use the joined form. See ",{"start":3038,"end":3039},{"line":2985,"column":3030,"offset":3031},{"line":2985,"column":3040,"offset":3041},228,7188,{"type":14,"tagName":3043,"properties":3044,"children":3046,"position":3055},"a",{"href":3045},"/kscript/faq/symbol-format",[3047],{"type":23,"value":3048,"position":3049},"symbol format",{"start":3050,"end":3053},{"line":2985,"column":3051,"offset":3052},229,7189,{"line":2985,"column":2560,"offset":3054},7202,{"start":3056,"end":3057},{"line":2985,"column":3040,"offset":3041},{"line":2985,"column":3058,"offset":3059},271,7231,{"type":23,"value":2265,"position":3061},{"start":3062,"end":3063},{"line":2985,"column":3058,"offset":3059},{"line":2985,"column":3064,"offset":3065},272,7232,{"start":3067,"end":3069},{"line":2985,"column":27,"offset":3068},6961,{"line":2985,"column":3064,"offset":3065},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3072,"children":3073,"position":3176},{},[3074,3091,3098,3111,3117,3130,3137,3150,3156,3169],{"type":14,"tagName":2436,"properties":3075,"children":3076,"position":3085},{},[3077],{"type":23,"value":3078,"position":3079},"Add or drop venues.",{"start":3080,"end":3083},{"line":3081,"column":67,"offset":3082},95,7237,{"line":3081,"column":2452,"offset":3084},7256,{"start":3086,"end":3088},{"line":3081,"column":32,"offset":3087},7235,{"line":3081,"column":3089,"offset":3090},26,7258,{"type":23,"value":3092,"position":3093}," More venues is just more ",{"start":3094,"end":3095},{"line":3081,"column":3089,"offset":3090},{"line":3081,"column":3096,"offset":3097},52,7284,{"type":14,"tagName":128,"properties":3099,"children":3100,"position":3108},{},[3101],{"type":23,"value":3102,"position":3103},"source(...)",{"start":3104,"end":3105},{"line":3081,"column":3096,"offset":3097},{"line":3081,"column":3106,"offset":3107},65,7297,{"start":3109,"end":3110},{"line":3081,"column":3096,"offset":3097},{"line":3081,"column":3106,"offset":3107},{"type":23,"value":3112,"position":3113}," lines plus more ",{"start":3114,"end":3115},{"line":3081,"column":3106,"offset":3107},{"line":3081,"column":2495,"offset":3116},7314,{"type":14,"tagName":128,"properties":3118,"children":3119,"position":3127},{},[3120],{"type":23,"value":3121,"position":3122},"pairDelta(...)",{"start":3123,"end":3124},{"line":3081,"column":2495,"offset":3116},{"line":3081,"column":3125,"offset":3126},98,7330,{"start":3128,"end":3129},{"line":3081,"column":2495,"offset":3116},{"line":3081,"column":3125,"offset":3126},{"type":23,"value":3131,"position":3132}," / ",{"start":3133,"end":3134},{"line":3081,"column":3125,"offset":3126},{"line":3081,"column":3135,"offset":3136},101,7333,{"type":14,"tagName":128,"properties":3138,"children":3139,"position":3147},{},[3140],{"type":23,"value":3141,"position":3142},"pairLive(...)",{"start":3143,"end":3144},{"line":3081,"column":3135,"offset":3136},{"line":3081,"column":3145,"offset":3146},116,7348,{"start":3148,"end":3149},{"line":3081,"column":3135,"offset":3136},{"line":3081,"column":3145,"offset":3146},{"type":23,"value":3151,"position":3152}," terms in the two sums, and bumping the ",{"start":3153,"end":3154},{"line":3081,"column":3145,"offset":3146},{"line":3081,"column":3020,"offset":3155},7388,{"type":14,"tagName":128,"properties":3157,"children":3158,"position":3166},{},[3159],{"type":23,"value":3160,"position":3161},"/ 4",{"start":3162,"end":3163},{"line":3081,"column":3020,"offset":3155},{"line":3081,"column":3164,"offset":3165},161,7393,{"start":3167,"end":3168},{"line":3081,"column":3020,"offset":3155},{"line":3081,"column":3164,"offset":3165},{"type":23,"value":3170,"position":3171}," in the table. To trade spot-only flow, delete the perp sources and keep the spot one.",{"start":3172,"end":3173},{"line":3081,"column":3164,"offset":3165},{"line":3081,"column":3174,"offset":3175},247,7479,{"start":3177,"end":3179},{"line":3081,"column":27,"offset":3178},7233,{"line":3081,"column":3174,"offset":3175},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3182,"children":3183,"position":3226},{},[3184,3201,3206,3219],{"type":14,"tagName":2436,"properties":3185,"children":3186,"position":3195},{},[3187],{"type":23,"value":3188,"position":3189},"Band width.",{"start":3190,"end":3193},{"line":3191,"column":67,"offset":3192},96,7484,{"line":3191,"column":2425,"offset":3194},7495,{"start":3196,"end":3198},{"line":3191,"column":32,"offset":3197},7482,{"line":3191,"column":3199,"offset":3200},18,7497,{"type":23,"value":2796,"position":3202},{"start":3203,"end":3204},{"line":3191,"column":3199,"offset":3200},{"line":3191,"column":2988,"offset":3205},7498,{"type":14,"tagName":128,"properties":3207,"children":3208,"position":3216},{},[3209],{"type":23,"value":3210,"position":3211},"bandLen",{"start":3212,"end":3213},{"line":3191,"column":2988,"offset":3205},{"line":3191,"column":3214,"offset":3215},28,7507,{"start":3217,"end":3218},{"line":3191,"column":2988,"offset":3205},{"line":3191,"column":3214,"offset":3215},{"type":23,"value":3220,"position":3221}," sets the volatility lookback. Shorten it for a reactive envelope that hugs the line, lengthen it for a smoother, slower band.",{"start":3222,"end":3223},{"line":3191,"column":3214,"offset":3215},{"line":3191,"column":3224,"offset":3225},154,7633,{"start":3227,"end":3229},{"line":3191,"column":27,"offset":3228},7480,{"line":3191,"column":3224,"offset":3225},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3232,"children":3233,"position":3257},{},[3234,3250],{"type":14,"tagName":2436,"properties":3235,"children":3236,"position":3245},{},[3237],{"type":23,"value":3238,"position":3239},"Spot vs perp split.",{"start":3240,"end":3243},{"line":3241,"column":67,"offset":3242},97,7638,{"line":3241,"column":2452,"offset":3244},7657,{"start":3246,"end":3248},{"line":3241,"column":32,"offset":3247},7636,{"line":3241,"column":3089,"offset":3249},7659,{"type":23,"value":3251,"position":3252}," Instead of one combined line, keep two accumulators (spot delta and perp delta) and plot both. Divergence between them, perps buying while spot sells, is often the interesting signal.",{"start":3253,"end":3254},{"line":3241,"column":3089,"offset":3249},{"line":3241,"column":3255,"offset":3256},210,7843,{"start":3258,"end":3260},{"line":3241,"column":27,"offset":3259},7634,{"line":3241,"column":3255,"offset":3256},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3263,"children":3264,"position":3344},{},[3265,3282,3288,3301,3306,3318,3324,3337],{"type":14,"tagName":2436,"properties":3266,"children":3267,"position":3276},{},[3268],{"type":23,"value":3269,"position":3270},"Colors.",{"start":3271,"end":3273},{"line":3125,"column":67,"offset":3272},7848,{"line":3125,"column":3274,"offset":3275},12,7855,{"start":3277,"end":3279},{"line":3125,"column":32,"offset":3278},7846,{"line":3125,"column":3280,"offset":3281},14,7857,{"type":23,"value":2796,"position":3283},{"start":3284,"end":3285},{"line":3125,"column":3280,"offset":3281},{"line":3125,"column":3286,"offset":3287},15,7858,{"type":14,"tagName":128,"properties":3289,"children":3290,"position":3298},{},[3291],{"type":23,"value":3292,"position":3293},"posCol",{"start":3294,"end":3295},{"line":3125,"column":3286,"offset":3287},{"line":3125,"column":3296,"offset":3297},23,7866,{"start":3299,"end":3300},{"line":3125,"column":3286,"offset":3287},{"line":3125,"column":3296,"offset":3297},{"type":23,"value":2546,"position":3302},{"start":3303,"end":3304},{"line":3125,"column":3296,"offset":3297},{"line":3125,"column":3214,"offset":3305},7871,{"type":14,"tagName":128,"properties":3307,"children":3308,"position":3315},{},[3309],{"type":23,"value":3310,"position":3311},"negCol",{"start":3312,"end":3313},{"line":3125,"column":3214,"offset":3305},{"line":3125,"column":2887,"offset":3314},7879,{"start":3316,"end":3317},{"line":3125,"column":3214,"offset":3305},{"line":3125,"column":2887,"offset":3314},{"type":23,"value":3319,"position":3320}," drive the line, the bands, and the fill. The band and fill tints derive from them through ",{"start":3321,"end":3322},{"line":3125,"column":2887,"offset":3314},{"line":3125,"column":2701,"offset":3323},7970,{"type":14,"tagName":128,"properties":3325,"children":3326,"position":3334},{},[3327],{"type":23,"value":3328,"position":3329},"opacity()",{"start":3330,"end":3331},{"line":3125,"column":2701,"offset":3323},{"line":3125,"column":3332,"offset":3333},138,7981,{"start":3335,"end":3336},{"line":3125,"column":2701,"offset":3323},{"line":3125,"column":3332,"offset":3333},{"type":23,"value":3338,"position":3339},", so recoloring stays consistent.",{"start":3340,"end":3341},{"line":3125,"column":3332,"offset":3333},{"line":3125,"column":3342,"offset":3343},171,8014,{"start":3345,"end":3347},{"line":3125,"column":27,"offset":3346},7844,{"line":3125,"column":3342,"offset":3343},{"type":23,"value":89},{"start":3350,"end":3351},{"line":2985,"column":27,"offset":3068},{"line":3125,"column":3342,"offset":3343},{"type":23,"value":89},{"type":14,"tagName":2414,"properties":3354,"children":3356,"position":3366},{"id":3355},"concepts-used",[3357],{"type":23,"value":3358,"position":3359},"Concepts used",{"start":3360,"end":3363},{"line":3361,"column":56,"offset":3362},100,8019,{"line":3361,"column":3364,"offset":3365},17,8032,{"start":3367,"end":3369},{"line":3361,"column":27,"offset":3368},8016,{"line":3361,"column":3364,"offset":3365},{"type":23,"value":89},{"type":14,"tagName":2970,"properties":3372,"children":3373,"position":3644},{},[3374,3375,3407,3408,3493,3494,3559,3560,3610,3611,3643],{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3376,"children":3377,"position":3403},{},[3378,3396],{"type":14,"tagName":3043,"properties":3379,"children":3381,"position":3390},{"href":3380},"/kscript/core-concepts/multi-source",[3382],{"type":23,"value":3383,"position":3384},"Multi-source and aggregation",{"start":3385,"end":3388},{"line":3386,"column":56,"offset":3387},102,8037,{"line":3386,"column":33,"offset":3389},8065,{"start":3391,"end":3393},{"line":3386,"column":32,"offset":3392},8036,{"line":3386,"column":3394,"offset":3395},70,8103,{"type":23,"value":3397,"position":3398}," for combining venues in one script",{"start":3399,"end":3400},{"line":3386,"column":3394,"offset":3395},{"line":3386,"column":3401,"offset":3402},105,8138,{"start":3404,"end":3406},{"line":3386,"column":27,"offset":3405},8034,{"line":3386,"column":3401,"offset":3402},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3409,"children":3410,"position":3489},{},[3411,3429,3436,3448,3454,3465,3470,3482],{"type":14,"tagName":3043,"properties":3412,"children":3414,"position":3423},{"href":3413},"/kscript/core-concepts/data-sources",[3415],{"type":23,"value":3416,"position":3417},"Data sources",{"start":3418,"end":3421},{"line":3419,"column":56,"offset":3420},103,8142,{"line":3419,"column":2425,"offset":3422},8154,{"start":3424,"end":3426},{"line":3419,"column":32,"offset":3425},8141,{"line":3419,"column":3427,"offset":3428},54,8192,{"type":23,"value":3430,"position":3431}," for the ",{"start":3432,"end":3433},{"line":3419,"column":3427,"offset":3428},{"line":3419,"column":3434,"offset":3435},63,8201,{"type":14,"tagName":128,"properties":3437,"children":3438,"position":3445},{},[3439],{"type":23,"value":3440,"position":3441},"buy_sell_volume",{"start":3442,"end":3443},{"line":3419,"column":3434,"offset":3435},{"line":3419,"column":2443,"offset":3444},8218,{"start":3446,"end":3447},{"line":3419,"column":3434,"offset":3435},{"line":3419,"column":2443,"offset":3444},{"type":23,"value":3449,"position":3450}," feed and its ",{"start":3451,"end":3452},{"line":3419,"column":2443,"offset":3444},{"line":3419,"column":2985,"offset":3453},8232,{"type":14,"tagName":128,"properties":3455,"children":3456,"position":3462},{},[3457],{"type":23,"value":2536,"position":3458},{"start":3459,"end":3460},{"line":3419,"column":2985,"offset":3453},{"line":3419,"column":3361,"offset":3461},8238,{"start":3463,"end":3464},{"line":3419,"column":2985,"offset":3453},{"line":3419,"column":3361,"offset":3461},{"type":23,"value":3131,"position":3466},{"start":3467,"end":3468},{"line":3419,"column":3361,"offset":3461},{"line":3419,"column":3419,"offset":3469},8241,{"type":14,"tagName":128,"properties":3471,"children":3472,"position":3479},{},[3473],{"type":23,"value":2556,"position":3474},{"start":3475,"end":3476},{"line":3419,"column":3419,"offset":3469},{"line":3419,"column":3477,"offset":3478},110,8248,{"start":3480,"end":3481},{"line":3419,"column":3419,"offset":3469},{"line":3419,"column":3477,"offset":3478},{"type":23,"value":3483,"position":3484}," members",{"start":3485,"end":3486},{"line":3419,"column":3477,"offset":3478},{"line":3419,"column":3487,"offset":3488},118,8256,{"start":3490,"end":3492},{"line":3419,"column":27,"offset":3491},8139,{"line":3419,"column":3487,"offset":3488},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3495,"children":3496,"position":3555},{},[3497,3514,3520,3531,3537,3549],{"type":14,"tagName":3043,"properties":3498,"children":3500,"position":3508},{"href":3499},"/kscript/core-concepts/user-functions",[3501],{"type":23,"value":3502,"position":3503},"User functions",{"start":3504,"end":3506},{"line":2673,"column":56,"offset":3505},8260,{"line":2673,"column":3199,"offset":3507},8274,{"start":3509,"end":3511},{"line":2673,"column":32,"offset":3510},8259,{"line":2673,"column":3512,"offset":3513},58,8314,{"type":23,"value":3430,"position":3515},{"start":3516,"end":3517},{"line":2673,"column":3512,"offset":3513},{"line":2673,"column":3518,"offset":3519},67,8323,{"type":14,"tagName":128,"properties":3521,"children":3522,"position":3528},{},[3523],{"type":23,"value":1173,"position":3524},{"start":3525,"end":3526},{"line":2673,"column":3518,"offset":3519},{"line":2673,"column":2422,"offset":3527},8334,{"start":3529,"end":3530},{"line":2673,"column":3518,"offset":3519},{"line":2673,"column":2422,"offset":3527},{"type":23,"value":2546,"position":3532},{"start":3533,"end":3534},{"line":2673,"column":2422,"offset":3527},{"line":2673,"column":3535,"offset":3536},83,8339,{"type":14,"tagName":128,"properties":3538,"children":3539,"position":3546},{},[3540],{"type":23,"value":1278,"position":3541},{"start":3542,"end":3543},{"line":2673,"column":3535,"offset":3536},{"line":2673,"column":3544,"offset":3545},93,8349,{"start":3547,"end":3548},{"line":2673,"column":3535,"offset":3536},{"line":2673,"column":3544,"offset":3545},{"type":23,"value":3550,"position":3551}," na guards",{"start":3552,"end":3553},{"line":2673,"column":3544,"offset":3545},{"line":2673,"column":3419,"offset":3554},8359,{"start":3556,"end":3558},{"line":2673,"column":27,"offset":3557},8257,{"line":2673,"column":3419,"offset":3554},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3561,"children":3562,"position":3606},{},[3563,3580,3586,3599],{"type":14,"tagName":3043,"properties":3564,"children":3566,"position":3574},{"href":3565},"/kscript/core-concepts/execution-model",[3567],{"type":23,"value":3568,"position":3569},"Execution model",{"start":3570,"end":3572},{"line":3401,"column":56,"offset":3571},8363,{"line":3401,"column":2988,"offset":3573},8378,{"start":3575,"end":3577},{"line":3401,"column":32,"offset":3576},8362,{"line":3401,"column":3578,"offset":3579},60,8419,{"type":23,"value":3581,"position":3582}," for ",{"start":3583,"end":3584},{"line":3401,"column":3578,"offset":3579},{"line":3401,"column":3106,"offset":3585},8424,{"type":14,"tagName":128,"properties":3587,"children":3588,"position":3596},{},[3589],{"type":23,"value":3590,"position":3591},"persist",{"start":3592,"end":3593},{"line":3401,"column":3106,"offset":3585},{"line":3401,"column":3594,"offset":3595},74,8433,{"start":3597,"end":3598},{"line":3401,"column":3106,"offset":3585},{"line":3401,"column":3594,"offset":3595},{"type":23,"value":3600,"position":3601}," state that accumulates across bars",{"start":3602,"end":3603},{"line":3401,"column":3594,"offset":3595},{"line":3401,"column":3604,"offset":3605},109,8468,{"start":3607,"end":3609},{"line":3401,"column":27,"offset":3608},8360,{"line":3401,"column":3604,"offset":3605},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3612,"children":3613,"position":3639},{},[3614,3632],{"type":14,"tagName":3043,"properties":3615,"children":3617,"position":3626},{"href":3616},"/kscript/functions/plotting",[3618],{"type":23,"value":3619,"position":3620},"Plotting",{"start":3621,"end":3624},{"line":3622,"column":56,"offset":3623},106,8472,{"line":3622,"column":3274,"offset":3625},8480,{"start":3627,"end":3629},{"line":3622,"column":32,"offset":3628},8471,{"line":3622,"column":3630,"offset":3631},42,8510,{"type":23,"value":3633,"position":3634}," for the colored line, bands, fill, and table",{"start":3635,"end":3636},{"line":3622,"column":3630,"offset":3631},{"line":3622,"column":3637,"offset":3638},87,8555,{"start":3640,"end":3642},{"line":3622,"column":27,"offset":3641},8469,{"line":3622,"column":3637,"offset":3638},{"type":23,"value":89},{"start":3645,"end":3646},{"line":3386,"column":27,"offset":3405},{"line":3622,"column":3637,"offset":3638},{"quirksMode":3648},false,{"start":3650,"end":3651},{"line":27,"column":27,"offset":97},{"line":3652,"column":27,"offset":3653},107,8556,1782471839104]