[{"data":1,"prerenderedAt":3655},["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=\"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, 0.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## 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":3648,"position":3650},"root",[13,100,101,116,117,2412,2413,2431,2432,2484,2485,2575,2576,2646,2647,2773,2774,2863,2864,2951,2952,2968,2969,3354,3355,3372,3373],{"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","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},"0.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},77,4530,{"line":2422,"column":2425,"offset":2426},16,4542,{"start":2428,"end":2430},{"line":2422,"column":27,"offset":2429},4527,{"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},79,4546,{"line":2443,"column":2446,"offset":2447},22,4565,{"start":2449,"end":2451},{"line":2443,"column":27,"offset":2450},4544,{"line":2443,"column":2452,"offset":2453},24,4567,{"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,4604,{"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,4611,{"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,4919,{"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},81,4923,{"line":2495,"column":2498,"offset":2499},27,4947,{"start":2501,"end":2503},{"line":2495,"column":27,"offset":2502},4921,{"line":2495,"column":29,"offset":2504},4949,{"type":23,"value":2506,"position":2507}," Each ",{"start":2508,"end":2509},{"line":2495,"column":29,"offset":2504},{"line":2495,"column":2510,"offset":2511},35,4955,{"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,4992,{"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,5144,{"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,5150,{"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,5155,{"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,5162,{"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,5346,{"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},83,5350,{"line":2586,"column":2510,"offset":2589},5382,{"start":2591,"end":2593},{"line":2586,"column":27,"offset":2592},5348,{"line":2586,"column":2594,"offset":2595},37,5384,{"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,5515,{"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,5528,{"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,5704,{"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,5719,{"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,5778,{"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},85,5782,{"line":2657,"column":2660,"offset":2661},45,5824,{"start":2663,"end":2665},{"line":2657,"column":27,"offset":2664},5780,{"line":2657,"column":2666,"offset":2667},47,5826,{"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,5883,{"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,5894,{"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,5903,{"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,5906,{"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,5927,{"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,5931,{"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,5966,{"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,5976,{"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,5985,{"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,5988,{"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,6160,{"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},87,6164,{"line":2784,"column":2787,"offset":2788},31,6192,{"start":2790,"end":2792},{"line":2784,"column":27,"offset":2791},6162,{"line":2784,"column":2793,"offset":2794},33,6194,{"type":23,"value":2796,"position":2797}," ",{"start":2798,"end":2799},{"line":2784,"column":2793,"offset":2794},{"line":2784,"column":2800,"offset":2801},34,6195,{"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,6212,{"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,6269,{"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},6288,{"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,6494,{"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,6506,{"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,6507,{"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},89,6511,{"line":2874,"column":2793,"offset":2877},6541,{"start":2879,"end":2881},{"line":2874,"column":27,"offset":2880},6509,{"line":2874,"column":2510,"offset":2882},6543,{"type":23,"value":2796,"position":2884},{"start":2885,"end":2886},{"line":2874,"column":2510,"offset":2882},{"line":2874,"column":2887,"offset":2888},36,6544,{"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,6552,{"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,6652,{"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,6665,{"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,6751,{"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,6762,{"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,6919,{"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},91,6924,{"line":2960,"column":2425,"offset":2963},6936,{"start":2965,"end":2967},{"line":2960,"column":27,"offset":2966},6921,{"line":2960,"column":2425,"offset":2963},{"type":23,"value":89},{"type":14,"tagName":2970,"properties":2971,"children":2972,"position":3351},"ul",{},[2973,2974,3070,3071,3181,3182,3231,3232,3262,3263,3350],{"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},93,6942,{"line":2985,"column":2988,"offset":2989},19,6956,{"start":2991,"end":2993},{"line":2985,"column":32,"offset":2992},6940,{"line":2985,"column":2994,"offset":2995},21,6958,{"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,6975,{"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},6984,{"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,7093,{"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,7110,{"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,7165,{"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,7166,{"line":2985,"column":2560,"offset":3054},7179,{"start":3056,"end":3057},{"line":2985,"column":3040,"offset":3041},{"line":2985,"column":3058,"offset":3059},271,7208,{"type":23,"value":2265,"position":3061},{"start":3062,"end":3063},{"line":2985,"column":3058,"offset":3059},{"line":2985,"column":3064,"offset":3065},272,7209,{"start":3067,"end":3069},{"line":2985,"column":27,"offset":3068},6938,{"line":2985,"column":3064,"offset":3065},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3072,"children":3073,"position":3177},{},[3074,3091,3098,3111,3118,3131,3138,3151,3157,3170],{"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},94,7214,{"line":3081,"column":2452,"offset":3084},7233,{"start":3086,"end":3088},{"line":3081,"column":32,"offset":3087},7212,{"line":3081,"column":3089,"offset":3090},26,7235,{"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,7261,{"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,7274,{"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":3116,"offset":3117},82,7291,{"type":14,"tagName":128,"properties":3119,"children":3120,"position":3128},{},[3121],{"type":23,"value":3122,"position":3123},"pairDelta(...)",{"start":3124,"end":3125},{"line":3081,"column":3116,"offset":3117},{"line":3081,"column":3126,"offset":3127},98,7307,{"start":3129,"end":3130},{"line":3081,"column":3116,"offset":3117},{"line":3081,"column":3126,"offset":3127},{"type":23,"value":3132,"position":3133}," / ",{"start":3134,"end":3135},{"line":3081,"column":3126,"offset":3127},{"line":3081,"column":3136,"offset":3137},101,7310,{"type":14,"tagName":128,"properties":3139,"children":3140,"position":3148},{},[3141],{"type":23,"value":3142,"position":3143},"pairLive(...)",{"start":3144,"end":3145},{"line":3081,"column":3136,"offset":3137},{"line":3081,"column":3146,"offset":3147},116,7325,{"start":3149,"end":3150},{"line":3081,"column":3136,"offset":3137},{"line":3081,"column":3146,"offset":3147},{"type":23,"value":3152,"position":3153}," terms in the two sums, and bumping the ",{"start":3154,"end":3155},{"line":3081,"column":3146,"offset":3147},{"line":3081,"column":3020,"offset":3156},7365,{"type":14,"tagName":128,"properties":3158,"children":3159,"position":3167},{},[3160],{"type":23,"value":3161,"position":3162},"/ 4",{"start":3163,"end":3164},{"line":3081,"column":3020,"offset":3156},{"line":3081,"column":3165,"offset":3166},161,7370,{"start":3168,"end":3169},{"line":3081,"column":3020,"offset":3156},{"line":3081,"column":3165,"offset":3166},{"type":23,"value":3171,"position":3172}," in the table. To trade spot-only flow, delete the perp sources and keep the spot one.",{"start":3173,"end":3174},{"line":3081,"column":3165,"offset":3166},{"line":3081,"column":3175,"offset":3176},247,7456,{"start":3178,"end":3180},{"line":3081,"column":27,"offset":3179},7210,{"line":3081,"column":3175,"offset":3176},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3183,"children":3184,"position":3227},{},[3185,3202,3207,3220],{"type":14,"tagName":2436,"properties":3186,"children":3187,"position":3196},{},[3188],{"type":23,"value":3189,"position":3190},"Band width.",{"start":3191,"end":3194},{"line":3192,"column":67,"offset":3193},95,7461,{"line":3192,"column":2425,"offset":3195},7472,{"start":3197,"end":3199},{"line":3192,"column":32,"offset":3198},7459,{"line":3192,"column":3200,"offset":3201},18,7474,{"type":23,"value":2796,"position":3203},{"start":3204,"end":3205},{"line":3192,"column":3200,"offset":3201},{"line":3192,"column":2988,"offset":3206},7475,{"type":14,"tagName":128,"properties":3208,"children":3209,"position":3217},{},[3210],{"type":23,"value":3211,"position":3212},"bandLen",{"start":3213,"end":3214},{"line":3192,"column":2988,"offset":3206},{"line":3192,"column":3215,"offset":3216},28,7484,{"start":3218,"end":3219},{"line":3192,"column":2988,"offset":3206},{"line":3192,"column":3215,"offset":3216},{"type":23,"value":3221,"position":3222}," sets the volatility lookback. Shorten it for a reactive envelope that hugs the line, lengthen it for a smoother, slower band.",{"start":3223,"end":3224},{"line":3192,"column":3215,"offset":3216},{"line":3192,"column":3225,"offset":3226},154,7610,{"start":3228,"end":3230},{"line":3192,"column":27,"offset":3229},7457,{"line":3192,"column":3225,"offset":3226},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3233,"children":3234,"position":3258},{},[3235,3251],{"type":14,"tagName":2436,"properties":3236,"children":3237,"position":3246},{},[3238],{"type":23,"value":3239,"position":3240},"Spot vs perp split.",{"start":3241,"end":3244},{"line":3242,"column":67,"offset":3243},96,7615,{"line":3242,"column":2452,"offset":3245},7634,{"start":3247,"end":3249},{"line":3242,"column":32,"offset":3248},7613,{"line":3242,"column":3089,"offset":3250},7636,{"type":23,"value":3252,"position":3253}," 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":3254,"end":3255},{"line":3242,"column":3089,"offset":3250},{"line":3242,"column":3256,"offset":3257},210,7820,{"start":3259,"end":3261},{"line":3242,"column":27,"offset":3260},7611,{"line":3242,"column":3256,"offset":3257},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3264,"children":3265,"position":3346},{},[3266,3284,3290,3303,3308,3320,3326,3339],{"type":14,"tagName":2436,"properties":3267,"children":3268,"position":3278},{},[3269],{"type":23,"value":3270,"position":3271},"Colors.",{"start":3272,"end":3275},{"line":3273,"column":67,"offset":3274},97,7825,{"line":3273,"column":3276,"offset":3277},12,7832,{"start":3279,"end":3281},{"line":3273,"column":32,"offset":3280},7823,{"line":3273,"column":3282,"offset":3283},14,7834,{"type":23,"value":2796,"position":3285},{"start":3286,"end":3287},{"line":3273,"column":3282,"offset":3283},{"line":3273,"column":3288,"offset":3289},15,7835,{"type":14,"tagName":128,"properties":3291,"children":3292,"position":3300},{},[3293],{"type":23,"value":3294,"position":3295},"posCol",{"start":3296,"end":3297},{"line":3273,"column":3288,"offset":3289},{"line":3273,"column":3298,"offset":3299},23,7843,{"start":3301,"end":3302},{"line":3273,"column":3288,"offset":3289},{"line":3273,"column":3298,"offset":3299},{"type":23,"value":2546,"position":3304},{"start":3305,"end":3306},{"line":3273,"column":3298,"offset":3299},{"line":3273,"column":3215,"offset":3307},7848,{"type":14,"tagName":128,"properties":3309,"children":3310,"position":3317},{},[3311],{"type":23,"value":3312,"position":3313},"negCol",{"start":3314,"end":3315},{"line":3273,"column":3215,"offset":3307},{"line":3273,"column":2887,"offset":3316},7856,{"start":3318,"end":3319},{"line":3273,"column":3215,"offset":3307},{"line":3273,"column":2887,"offset":3316},{"type":23,"value":3321,"position":3322}," drive the line, the bands, and the fill. The band and fill tints derive from them through ",{"start":3323,"end":3324},{"line":3273,"column":2887,"offset":3316},{"line":3273,"column":2701,"offset":3325},7947,{"type":14,"tagName":128,"properties":3327,"children":3328,"position":3336},{},[3329],{"type":23,"value":3330,"position":3331},"opacity()",{"start":3332,"end":3333},{"line":3273,"column":2701,"offset":3325},{"line":3273,"column":3334,"offset":3335},138,7958,{"start":3337,"end":3338},{"line":3273,"column":2701,"offset":3325},{"line":3273,"column":3334,"offset":3335},{"type":23,"value":3340,"position":3341},", so recoloring stays consistent.",{"start":3342,"end":3343},{"line":3273,"column":3334,"offset":3335},{"line":3273,"column":3344,"offset":3345},171,7991,{"start":3347,"end":3349},{"line":3273,"column":27,"offset":3348},7821,{"line":3273,"column":3344,"offset":3345},{"type":23,"value":89},{"start":3352,"end":3353},{"line":2985,"column":27,"offset":3068},{"line":3273,"column":3344,"offset":3345},{"type":23,"value":89},{"type":14,"tagName":2414,"properties":3356,"children":3358,"position":3368},{"id":3357},"concepts-used",[3359],{"type":23,"value":3360,"position":3361},"Concepts used",{"start":3362,"end":3365},{"line":3363,"column":56,"offset":3364},99,7996,{"line":3363,"column":3366,"offset":3367},17,8009,{"start":3369,"end":3371},{"line":3363,"column":27,"offset":3370},7993,{"line":3363,"column":3366,"offset":3367},{"type":23,"value":89},{"type":14,"tagName":2970,"properties":3374,"children":3375,"position":3645},{},[3376,3377,3408,3409,3497,3498,3562,3563,3613,3614,3644],{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3378,"children":3379,"position":3404},{},[3380,3397],{"type":14,"tagName":3043,"properties":3381,"children":3383,"position":3391},{"href":3382},"/kscript/core-concepts/multi-source",[3384],{"type":23,"value":3385,"position":3386},"Multi-source and aggregation",{"start":3387,"end":3389},{"line":3136,"column":56,"offset":3388},8014,{"line":3136,"column":33,"offset":3390},8042,{"start":3392,"end":3394},{"line":3136,"column":32,"offset":3393},8013,{"line":3136,"column":3395,"offset":3396},70,8080,{"type":23,"value":3398,"position":3399}," for combining venues in one script",{"start":3400,"end":3401},{"line":3136,"column":3395,"offset":3396},{"line":3136,"column":3402,"offset":3403},105,8115,{"start":3405,"end":3407},{"line":3136,"column":27,"offset":3406},8011,{"line":3136,"column":3402,"offset":3403},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3410,"children":3411,"position":3493},{},[3412,3430,3437,3450,3456,3468,3474,3486],{"type":14,"tagName":3043,"properties":3413,"children":3415,"position":3424},{"href":3414},"/kscript/core-concepts/data-sources",[3416],{"type":23,"value":3417,"position":3418},"Data sources",{"start":3419,"end":3422},{"line":3420,"column":56,"offset":3421},102,8119,{"line":3420,"column":2425,"offset":3423},8131,{"start":3425,"end":3427},{"line":3420,"column":32,"offset":3426},8118,{"line":3420,"column":3428,"offset":3429},54,8169,{"type":23,"value":3431,"position":3432}," for the ",{"start":3433,"end":3434},{"line":3420,"column":3428,"offset":3429},{"line":3420,"column":3435,"offset":3436},63,8178,{"type":14,"tagName":128,"properties":3438,"children":3439,"position":3447},{},[3440],{"type":23,"value":3441,"position":3442},"buy_sell_volume",{"start":3443,"end":3444},{"line":3420,"column":3435,"offset":3436},{"line":3420,"column":3445,"offset":3446},80,8195,{"start":3448,"end":3449},{"line":3420,"column":3435,"offset":3436},{"line":3420,"column":3445,"offset":3446},{"type":23,"value":3451,"position":3452}," feed and its ",{"start":3453,"end":3454},{"line":3420,"column":3445,"offset":3446},{"line":3420,"column":3081,"offset":3455},8209,{"type":14,"tagName":128,"properties":3457,"children":3458,"position":3465},{},[3459],{"type":23,"value":2536,"position":3460},{"start":3461,"end":3462},{"line":3420,"column":3081,"offset":3455},{"line":3420,"column":3463,"offset":3464},100,8215,{"start":3466,"end":3467},{"line":3420,"column":3081,"offset":3455},{"line":3420,"column":3463,"offset":3464},{"type":23,"value":3132,"position":3469},{"start":3470,"end":3471},{"line":3420,"column":3463,"offset":3464},{"line":3420,"column":3472,"offset":3473},103,8218,{"type":14,"tagName":128,"properties":3475,"children":3476,"position":3483},{},[3477],{"type":23,"value":2556,"position":3478},{"start":3479,"end":3480},{"line":3420,"column":3472,"offset":3473},{"line":3420,"column":3481,"offset":3482},110,8225,{"start":3484,"end":3485},{"line":3420,"column":3472,"offset":3473},{"line":3420,"column":3481,"offset":3482},{"type":23,"value":3487,"position":3488}," members",{"start":3489,"end":3490},{"line":3420,"column":3481,"offset":3482},{"line":3420,"column":3491,"offset":3492},118,8233,{"start":3494,"end":3496},{"line":3420,"column":27,"offset":3495},8116,{"line":3420,"column":3491,"offset":3492},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3499,"children":3500,"position":3558},{},[3501,3518,3524,3536,3541,3552],{"type":14,"tagName":3043,"properties":3502,"children":3504,"position":3512},{"href":3503},"/kscript/core-concepts/user-functions",[3505],{"type":23,"value":3506,"position":3507},"User functions",{"start":3508,"end":3510},{"line":3472,"column":56,"offset":3509},8237,{"line":3472,"column":3200,"offset":3511},8251,{"start":3513,"end":3515},{"line":3472,"column":32,"offset":3514},8236,{"line":3472,"column":3516,"offset":3517},58,8291,{"type":23,"value":3431,"position":3519},{"start":3520,"end":3521},{"line":3472,"column":3516,"offset":3517},{"line":3472,"column":3522,"offset":3523},67,8300,{"type":14,"tagName":128,"properties":3525,"children":3526,"position":3533},{},[3527],{"type":23,"value":1173,"position":3528},{"start":3529,"end":3530},{"line":3472,"column":3522,"offset":3523},{"line":3472,"column":3531,"offset":3532},78,8311,{"start":3534,"end":3535},{"line":3472,"column":3522,"offset":3523},{"line":3472,"column":3531,"offset":3532},{"type":23,"value":2546,"position":3537},{"start":3538,"end":3539},{"line":3472,"column":3531,"offset":3532},{"line":3472,"column":2586,"offset":3540},8316,{"type":14,"tagName":128,"properties":3542,"children":3543,"position":3549},{},[3544],{"type":23,"value":1278,"position":3545},{"start":3546,"end":3547},{"line":3472,"column":2586,"offset":3540},{"line":3472,"column":2985,"offset":3548},8326,{"start":3550,"end":3551},{"line":3472,"column":2586,"offset":3540},{"line":3472,"column":2985,"offset":3548},{"type":23,"value":3553,"position":3554}," na guards",{"start":3555,"end":3556},{"line":3472,"column":2985,"offset":3548},{"line":3472,"column":3472,"offset":3557},8336,{"start":3559,"end":3561},{"line":3472,"column":27,"offset":3560},8234,{"line":3472,"column":3472,"offset":3557},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3564,"children":3565,"position":3609},{},[3566,3583,3589,3602],{"type":14,"tagName":3043,"properties":3567,"children":3569,"position":3577},{"href":3568},"/kscript/core-concepts/execution-model",[3570],{"type":23,"value":3571,"position":3572},"Execution model",{"start":3573,"end":3575},{"line":2673,"column":56,"offset":3574},8340,{"line":2673,"column":2988,"offset":3576},8355,{"start":3578,"end":3580},{"line":2673,"column":32,"offset":3579},8339,{"line":2673,"column":3581,"offset":3582},60,8396,{"type":23,"value":3584,"position":3585}," for ",{"start":3586,"end":3587},{"line":2673,"column":3581,"offset":3582},{"line":2673,"column":3106,"offset":3588},8401,{"type":14,"tagName":128,"properties":3590,"children":3591,"position":3599},{},[3592],{"type":23,"value":3593,"position":3594},"persist",{"start":3595,"end":3596},{"line":2673,"column":3106,"offset":3588},{"line":2673,"column":3597,"offset":3598},74,8410,{"start":3600,"end":3601},{"line":2673,"column":3106,"offset":3588},{"line":2673,"column":3597,"offset":3598},{"type":23,"value":3603,"position":3604}," state that accumulates across bars",{"start":3605,"end":3606},{"line":2673,"column":3597,"offset":3598},{"line":2673,"column":3607,"offset":3608},109,8445,{"start":3610,"end":3612},{"line":2673,"column":27,"offset":3611},8337,{"line":2673,"column":3607,"offset":3608},{"type":23,"value":89},{"type":14,"tagName":2975,"properties":3615,"children":3616,"position":3640},{},[3617,3634],{"type":14,"tagName":3043,"properties":3618,"children":3620,"position":3628},{"href":3619},"/kscript/functions/plotting",[3621],{"type":23,"value":3622,"position":3623},"Plotting",{"start":3624,"end":3626},{"line":3402,"column":56,"offset":3625},8449,{"line":3402,"column":3276,"offset":3627},8457,{"start":3629,"end":3631},{"line":3402,"column":32,"offset":3630},8448,{"line":3402,"column":3632,"offset":3633},42,8487,{"type":23,"value":3635,"position":3636}," for the colored line, bands, fill, and table",{"start":3637,"end":3638},{"line":3402,"column":3632,"offset":3633},{"line":3402,"column":2784,"offset":3639},8532,{"start":3641,"end":3643},{"line":3402,"column":27,"offset":3642},8446,{"line":3402,"column":2784,"offset":3639},{"type":23,"value":89},{"start":3646,"end":3647},{"line":3136,"column":27,"offset":3406},{"line":3402,"column":2784,"offset":3639},{"quirksMode":3649},false,{"start":3651,"end":3652},{"line":27,"column":27,"offset":97},{"line":3653,"column":27,"offset":3654},106,8533,1784888036698]