PageSourceSearch

https://www.luxalgo.com/_next/static/chunks/pages/edge-stats-712150ac19bf35d1.js

js luxalgo.com collected 2026-10-03 23:59:24 UTC 25,636 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2977],{9811:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});var a=t(66352),n=t(95132);function i(e){let{domain:s,name:t,src:i,className:r="size-7",imgSize:o=18}=e,l=(0,n.useMemo)(()=>{let e=[];return i&&e.push(i),s&&(e.push("https://www.google.com/s2/favicons?domain=".concat(s,"&sz=64")),e.push("https://icons.duckduckgo.com/ip3/".concat(s,".ico"))),e},[i,s]),[d,c]=(0,n.useState)(0),m=l.join("|");(0,n.useEffect)(()=>c(0),[m]);let h=l[d];return h?(0,a.jsx)("span",{className:"flex ".concat(r," shrink-0 items-center justify-center overflow-hidden rounded-md border border-white/10 bg-white"),"aria-hidden":!0,children:(0,a.jsx)("img",{src:h,alt:"",width:o,height:o,loading:"lazy",onError:()=>c(e=>e+1)},h)}):(0,a.jsx)("span",{className:"flex ".concat(r," shrink-0 items-center justify-center rounded-md border border-white/10 bg-white/[0.05] text-[11px] font-semibold text-fg-300"),"aria-hidden":!0,children:t.charAt(0).toUpperCase()})}},15735:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>D});var a=t(66352),n=t(56900),i=t(83643),r=t(59038),o=t(72766),l=t(75271),d=t(69626),c=t(50821),m=t(19932),h=t(75623),p=t(61737),x=t(99082),g=t(94092),u=t.n(g),f=t(22233),y=t.n(f),b=t(26505),w=t(50056);let v="https://github.com/LuxAlgo/edge-stats",j={hosted:!1,label:"Local MCP server",note:"Ten read-only tools over your own store",menuTitle:"@luxalgo/edge-stats-mcp \xb7 from a clone",actions:[{label:"Copy quickstart (clone + demo store)",copy:"git clone https://github.com/LuxAlgo/edge-stats && cd edge-stats && pnpm install && pnpm edgestats init --demo",icon:"terminal"},{label:"Setup guide on GitHub",href:"https://github.com/LuxAlgo/edge-stats",icon:"github"}],tools:[{name:"edge_query",when:"Any composed P(outcome given conditions), in the full envelope."},{name:"edge_fields",when:"The registry: every outcome, predicate, and field, with definitions."},{name:"edge_sessions",when:"The historical sessions behind a result."},{name:"edge_report",when:"A preset from the catalog, with parameters."},{name:"edge_reports_list",when:"The catalog, with parameter specs."},{name:"edge_freshness",when:"Configured symbols, last bar per symbol, calendar versions."},{name:"edge_export",when:"CSV or parquet written locally, path returned."},{name:"edge_trades",when:"Which trade tags your imported trades produced, and how to query them."},{name:"edge_live",when:"Live Board state: forming, active, and resolved setups."},{name:"edge_session_bars",when:"One matched session's bars with the levels drawn from its features: the chart behind the number."}]},N={conditions:["dayOfWeek = Tue"],estimate:79.4,n:102,ci:"[70.6%, 86.1%]",hits:81,stability:"88.2% (n=51) vs 70.6% (n=51) \xb7 halves agree ✓",distribution:"median 1 \xb7 p25 0 \xb7 p75 16 \xb7 p90 100",perYear:"2023 88.0% (50) \xb7 2024 71.2% (52)"},k={conditions:["dayOfWeek = Tue","gapPct BETWEEN 0.2% AND 0.6%"],estimate:71.4,n:14,ci:"[45.4%, 88.3%]",hits:10,warning:"LOW SAMPLE. N < 30; treat as anecdote, not edge",stability:"57.1% (n=7) vs 85.7% (n=7) \xb7 halves agree ✓",distribution:"median 25.5 \xb7 p25 10 \xb7 p75 63.5 \xb7 p90 109.7",perYear:"2023 66.7% (6) \xb7 2024 75.0% (8)"};function A(e){let{env:s}=e;return(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 font-mono text-[11px]",children:[(0,a.jsx)("span",{className:"rounded-md border border-sky-400/30 bg-sky-400/10 px-2 py-1 text-sky-300",children:"gapFill"}),(0,a.jsx)("span",{className:"px-0.5 text-fg-300",children:"WHERE"}),s.conditions.map((e,t)=>(0,a.jsxs)("span",{className:"contents",children:[t>0&&(0,a.jsx)("span",{className:"px-0.5 text-fg-300",children:"AND"}),(0,a.jsx)("span",{className:"rounded-md border px-2 py-1 ".concat(t===s.conditions.length-1&&s.conditions.length>1?"border-purple-400/40 bg-purple-400/10 text-purple-300":"border-white/15 bg-white/[0.04] text-fg-200"),children:e})]},e))]})}function E(e){let{env:s,title:t}=e;return(0,a.jsx)("div",{className:"dark min-w-0",children:(0,a.jsxs)("div",{className:"flex h-full flex-col overflow-hidden rounded-2xl border border-white/10 bg-[#060606]",children:[(0,a.jsx)("div",{className:"border-b border-white/[0.06] px-5 py-3",children:(0,a.jsx)("p",{className:"text-xs font-medium text-fg-300",children:t})}),(0,a.jsxs)("div",{className:"flex-1 space-y-4 px-5 py-5",children:[(0,a.jsx)(A,{env:s}),(0,a.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-4 gap-y-1",children:[(0,a.jsx)("span",{className:"font-mono text-4xl tabular-nums text-fg-100",children:(0,a.jsx)(d.T9,{value:s.estimate,decimals:1,suffix:"%"})}),(0,a.jsxs)("span",{className:"font-mono text-sm text-fg-200",children:["N = ",s.n]}),(0,a.jsxs)("span",{className:"font-mono text-sm text-fg-300",children:["95% CI ",s.ci]}),(0,a.jsxs)("span",{className:"font-mono text-sm text-fg-300",children:["(",s.hits," hits)"]})]}),s.warning&&(0,a.jsxs)("p",{className:"rounded-md border border-amber-400/25 bg-amber-400/[0.07] px-3 py-2 text-xs text-amber-300/90",children:["⚠ ",s.warning]}),(0,a.jsxs)("div",{className:"space-y-1.5 font-mono text-xs leading-relaxed text-fg-300",children:[(0,a.jsxs)("p",{children:[(0,a.jsx)("span",{className:"text-fg-200",children:"stability"})," ",s.stability]}),(0,a.jsxs)("p",{children:[(0,a.jsx)("span",{className:"text-fg-200",children:"minutes to fill"})," ",s.distribution]}),(0,a.jsxs)("p",{children:[(0,a.jsx)("span",{className:"text-fg-200",children:"per-year"})," ",s.perYear]})]})]}),(0,a.jsx)("p",{className:"border-t border-white/[0.06] px-5 py-2.5 text-xs text-fg-300",children:"Historical conditional frequencies with sample sizes. Not predictions, not advice."})]})})}
1let _=["gapFill WHERE dayOfWeek = Tue AND gapPct BETWEEN 0.05% AND 0.6%","orbBreak(15m, up) WHERE gapUp AND NOT eventDay('CPI')","eventOccurs('TRADED_WIN') WHERE eventDay('TRADED') AND prevNr7","gapFill WHERE dayOfWeek = Tue AND NOT eventDay('FOMC')"],T=[{slug:"session-gap-fill",name:"Session Gap Fill",cites:6,image:"https://luxalgo-images-production.s3.us-east-1.amazonaws.com/image_2025-10-08_181105507.png"},{slug:"ultimate-opening-range-breakout",name:"Ultimate Opening Range Breakout",cites:5,image:"https://luxalgo-images-production.s3.us-east-1.amazonaws.com/ultimate%20opening%20range%20breakout.png"},{slug:"session-levels-predictor",name:"Session Levels Predictor",cites:5,image:"https://luxalgo-images-production.s3.amazonaws.com/image_2024-01-30_165158835.png"},{slug:"seasonality-widget",name:"Seasonality Widget",cites:2,image:"https://luxalgo-images-production.s3.amazonaws.com/Seasonality%20Widget.png"},{slug:"session-streaks",name:"Session Streaks",cites:2,image:"https://luxalgo-images-production.s3.us-east-1.amazonaws.com/image_2025-10-30_232137325.png"},{slug:"fvg-sessions",name:"FVG Sessions",cites:2,image:"https://luxalgo-images-production.s3.amazonaws.com/image%20(42).png"}],S=[{name:"Binance",domain:"binance.com",note:"spot crypto, full 1m history",tag:"free, keyless"},{name:"Coinbase",domain:"coinbase.com",note:"Coinbase Exchange 1m candles",tag:"free, keyless"},{name:"Alpaca",domain:"alpaca.markets",src:"https://github.com/alpacahq.png?size=64",note:"US equities and ETFs, 1m bars",tag:"free tier"},{name:"Databento",domain:"databento.com",note:"CME futures, continuous 1m",tag:"pay as you go"},{name:"Massive",domain:"massive.com",note:"Massive flat files from disk",tag:"your subscription"},{name:"CSV file",note:"anything you can export to a file",tag:"free"},{name:"Demo store",note:"deterministic synthetic bars, ~900k of them",tag:"built in"},{name:"Your trades",note:"your own fills, imported through the Broker SDK",tag:"read-only"}],q=[[[h.T.dim,"$ "],[h.T.hi,"git clone https://github.com/LuxAlgo/edge-stats && cd edge-stats"]],[[h.T.dim,"$ "],[h.T.hi,"pnpm install"]],[[h.T.dim,"$ "],[h.T.hi,"pnpm edgestats init --demo"]],[[h.T.cmt,"# ~900k synthetic bars, derived in seconds"]],[],[[h.T.dim,"$ "],[h.T.hi,'pnpm edgestats query "gapFill WHERE dayOfWeek = Tue" \\']],[[h.T.hi,"    --symbol DEMO_STK"]],[[h.T.dim,"$ "],[h.T.hi,"pnpm edgestats serve"]],[[h.T.cmt,"# dashboard + API on localhost"]]],z=[{day:"Mon",pct:88,n:92},{day:"Tue",pct:79.4,n:102},{day:"Wed",pct:84,n:100},{day:"Thu",pct:87,n:100},{day:"Fri",pct:87.1,n:101}];function C(){let e=z.reduce((e,s)=>s.pct<e.pct?s:e);return(0,a.jsx)("div",{className:"dark",children:(0,a.jsxs)("div",{className:"relative overflow-hidden rounded-2xl border border-white/10 bg-[#060606]",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 border-b border-white/[0.06] px-5 py-3 sm:px-6",children:[(0,a.jsx)("span",{className:"text-xs font-medium text-fg-100",children:"reports"}),(0,a.jsx)("span",{className:"text-xs font-medium text-fg-300",children:"| gap fill | by weekday"})]}),(0,a.jsx)("div",{className:"grid grid-cols-5 items-end gap-3 px-5 pt-8 pb-4 sm:gap-4 sm:px-8",children:z.map(s=>(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,a.jsxs)("span",{className:"font-mono text-sm tabular-nums ".concat(s.day===e.day?"text-fg-300":"text-fg-100"),children:[s.pct.toFixed(1),"%"]}),(0,a.jsx)("div",{className:"flex h-40 w-full items-end sm:h-48",children:(0,a.jsx)("div",{className:"w-full rounded-t-md ".concat(s.day===e.day?"bg-white/[0.16]":"bg-sky-500"),style:{height:"".concat(s.pct,"%")}})}),(0,a.jsx)("span",{className:"text-xs font-medium text-fg-200",children:s.day}),(0,a.jsxs)("span",{className:"font-mono text-[10px] text-fg-300",children:["N = ",s.n]})]},s.day))})]})})}function D(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.A,{title:"Edge Stats: Free Trading Statistics for Your Setups | LuxAlgo",description:"See how often your trading setup actually works. Edge Stats runs gap fill, opening range, and seasonality reports on your own market data, free and open source, with a real sample size behind every answer.",canonicalUrl:"".concat("https://www.luxalgo.com","/edge-stats"),openGraphImageUrl:"/api/og/page/?title=Edge%20Stats",markdownPath:"/edge-stats.md"}),(0,a.jsx)(r.gk,{items:[{name:"LuxAlgo",url:"/"},{name:"Edge Stats",url:"/edge-stats/"}]}),(0,a.jsx)(r.Ec,{project:"edge-stats"}),(0,a.jsxs)("section",{className:"relative overflow-hidden px-6 pt-24 pb-16 sm:pt-32 sm:pb-20",children:[(0,a.jsx)(c.A,{wgsl:"\nstruct Params { time: f32, aspect: f32, light: f32 }\n@group(0) @binding(0) var<uniform> params: Params;\n\nfn hash21(p: vec2f) -> f32 {\n  var q = fract(p * vec2f(123.34, 345.45));\n  q += dot(q, q + 34.345);\n  return fract(q.x * q.y);\n}\nfn hash11(p: f32) -> f32 {\n  var q = fract(p * 0.1031);\n  q *= q + 33.33;\n  q *= q + q;\n  return fract(q);\n}\n\n@fragment fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n  // A distribution rising from the baseline: histogram bars under a\n  // breathing bell curve, purple into pink.\n  let n = 48.0;\n  let bin = floor(uv.x * n);\n  let bx = (bin + 0.5) / n;\n  let t = params.time * 0.22;\n  // The curve re-samples slowly: mean and width drift.\n  let mean = 0.5 + 0.06 * sin(t * 0.7);\n  let width = 0.16 + 0.03 * sin(t * 0.41 + 1.7);\n  let z = (bx - mean) / width;\n  let curve = exp(-0.5 * z * z);\n  let jitter = 0.86 + 0.28 * hash11(bin + floor(t) * 91.0);\n  let jitter2 = 0.86 + 0.28 * hash11(bin + (floor(t) + 1.0) * 91.0);\n  let barH = curve * mix(jitter, jitter2, smoothstep(0.2, 0.8, fract(t))) * 0.52;\n\n  let base = 0.94;\n  let topY = base - barH;\n  let inBar = step(topY, uv.y) * step(uv.y, base);\n  let fxx = fract(uv.x * n);\n  let barBody = inBar * smoothstep(0.0, 0.14, fxx) * smoothstep(1.0, 0.86, fxx);\n  // Bright cap at each bar top, soft body below.\n  let cap = smoothstep(0.03, 0.0, abs(uv.y - topY)) * inBar;\n  var lum = barBody * (0.035 + 0.10 * (1.0 - (uv.y - topY) / max(barH, 0.001)) * 0.35);\n  lum += cap * 0.35;\n\n  let dd = distance(vec2f(uv.x, uv.y * 1.4), vec2f(0.5, 0.15));\n  lum += smoothstep(0.85, 0.0, dd) * 0.05;\n  lum *= smoothstep(0.0, 0.05, uv.y) * smoothstep(1.0, 0.94, uv.y);\n  lum += (hash21(uv * 613.7) - 0.5) * 0.004;
1\n\n  // Purple center, pink tails.\n  let purple = vec3f(0.75, 0.55, 1.3);\n  let pink = vec3f(1.25, 0.5, 0.9);\n  let ink = mix(purple, pink, smoothstep(0.0, 1.6, abs(z)));\n  let dark = vec3f(lum) * ink;\n  let paper = vec3f(1.0) - vec3f(lum) * (vec3f(1.7) - ink * 0.7);\n  let col = mix(dark, paper, params.light);\n  return vec4f(col, 1.0);\n}\n"}),(0,a.jsxs)("div",{className:"relative mx-auto max-w-3xl space-y-8 text-center",children:[(0,a.jsx)(l.A,{immediate:!0,children:(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsx)("h1",{className:"text-[clamp(38px,5.5vw,64px)] leading-[1.06] font-medium tracking-tight text-fg-100 text-balance",children:"How often did it actually work?"}),(0,a.jsx)(o.Y0,{children:(0,a.jsx)("span",{className:"mx-auto block max-w-2xl",children:"Stop guessing whether your setup has an edge. Edge Stats answers from your own market data: how often it worked, under the exact conditions you trade it, with the sample size and confidence interval attached so you know when to trust the number."})})]})}),(0,a.jsx)(l.A,{immediate:!0,delay:120,children:(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-4",children:[(0,a.jsx)(w.jY,{config:j}),(0,a.jsx)(p.A,{repo:"LuxAlgo/edge-stats",href:v})]})})]}),(0,a.jsx)("div",{className:"relative mx-auto mt-14 max-w-[1100px]",children:(0,a.jsx)(l.A,{delay:240,children:(0,a.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,a.jsx)(E,{env:N,title:"edgestats query \xb7 DEMO_STK"}),(0,a.jsx)(E,{env:k,title:"+ one more condition"})]})})})]}),(0,a.jsxs)(m.Ay,{hue:"purple",hue2:"pink",innerClassName:"grid items-center gap-10 lg:grid-cols-[1fr_1.15fr] lg:gap-16",children:[(0,a.jsx)(l.A,{children:(0,a.jsxs)("div",{className:"space-y-5",children:[(0,a.jsx)("h2",{className:"text-[clamp(30px,4vw,52px)] leading-[1.06] font-medium tracking-tight text-fg-100 text-balance",children:"Know if your setup works, down to the weekday."}),(0,a.jsx)(o.iq,{children:"Does the gap fill more often on a Monday? Pick a setup, pick a ticker, and the report answers with real numbers and real sample sizes. Gap fills, opening range breaks, inside days, and everything between."})]})}),(0,a.jsx)(l.A,{delay:120,className:"min-w-0",children:(0,a.jsx)(C,{})})]}),(0,a.jsx)(m.Ay,{hue:"purple",hue2:"sky",children:(0,a.jsxs)("div",{className:"space-y-10",children:[(0,a.jsxs)("div",{className:"grid items-start gap-6 lg:grid-cols-[1fr_1.1fr] lg:gap-12",children:[(0,a.jsx)(l.A,{children:(0,a.jsx)("h2",{className:"text-[clamp(30px,4vw,52px)] leading-[1.06] font-medium tracking-tight text-fg-100 text-balance",children:"Every classic report, ready on day one."})}),(0,a.jsx)(l.A,{delay:100,children:(0,a.jsxs)("p",{className:"max-w-xl text-base leading-relaxed text-fg-300 sm:text-lg",children:["Gap fills, opening range breaks, inside days, session behavior: the reports data-driven traders live by ship as 42 presets across 11 categories. Every preset cites the"," ",(0,a.jsx)(u(),{href:"/library",className:"text-fg-100 underline decoration-white/25 underline-offset-2 transition-colors duration-150 hover:decoration-white/60",children:"LuxAlgo Library"})," ","indicator that draws the same setup on your chart, so the statistic and the visual come from one playbook."]})})]}),(0,a.jsx)(l.A,{delay:140,children:(0,a.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:T.map(e=>(0,a.jsxs)(u(),{href:"/library/indicator/".concat(e.slug,"/"),className:"group overflow-hidden rounded-xl border border-white/10 bg-surface-100 transition-colors duration-200 hover:border-white/25",children:[(0,a.jsx)("div",{className:"relative aspect-[16/10] overflow-hidden bg-black",children:(0,a.jsx)(y(),{src:e.image,alt:"".concat(e.name," preview"),fill:!0,sizes:"(min-width: 1024px) 33vw, (min-width: 640px) 50vw, 100vw",className:"object-cover transition-transform duration-500 ease-out-quart group-hover:scale-[1.02] motion-reduce:transition-none motion-reduce:group-hover:scale-100"})}),(0,a.jsxs)("div",{className:"flex items-baseline justify-between gap-3 border-t border-white/[0.06] px-4 py-3",children:[(0,a.jsx)("span",{className:"truncate text-sm font-medium text-fg-100",children:e.name}),(0,a.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-fg-300",children:["cited by ",e.cites," presets"]}
1)]})]},e.slug))})})]})}),(0,a.jsx)(m.Ay,{hue:"sky",hue2:"purple",children:(0,a.jsxs)("div",{className:"space-y-10",children:[(0,a.jsxs)("div",{className:"grid items-start gap-6 lg:grid-cols-[1fr_1.1fr] lg:gap-12",children:[(0,a.jsx)(l.A,{children:(0,a.jsx)("h2",{className:"text-[clamp(30px,4vw,52px)] leading-[1.06] font-medium tracking-tight text-fg-100 text-balance",children:"See the bars behind the number."})}),(0,a.jsx)(l.A,{delay:100,children:(0,a.jsxs)("p",{className:"max-w-xl text-base leading-relaxed text-fg-300 sm:text-lg",children:["Every result lists the sessions it counted, and any of them opens on a chart: that session’s one-minute bars with the prior high, low, and close, the session open, the gap band, and a marker at the minute the outcome happened. A “gap filled 80%” is a claim about sessions; this is where you pick one and look. Drawn in your browser by"," ",(0,a.jsx)(u(),{href:(0,i.Wx)("/"),className:"text-fg-100 underline decoration-white/25 underline-offset-2 transition-colors duration-150 hover:decoration-white/60",children:"Vela for Developers"}),", our"," ",(0,a.jsx)("a",{href:"https://github.com/LuxAlgo/Vela",target:"_blank",rel:"noopener noreferrer",className:"text-fg-100 underline decoration-white/25 underline-offset-2 transition-colors duration-150 hover:decoration-white/60",children:"open source"})," ","charting library, and loaded only when you open it, so nothing else on the page slows down."]})})]}),(0,a.jsx)(l.A,{delay:140,children:(0,a.jsx)("div",{className:"overflow-hidden rounded-2xl border border-white/10 bg-[#0b0d10]",children:(0,a.jsx)(y(),{src:"/images/vela/edge-stats-session-view.png",alt:"Edge Stats session view: one session's one-minute bars on a Vela chart with the prior close, session open, gap band, and the gap-fill marker",width:2e3,height:1241,sizes:"(min-width: 1280px) 1200px, 100vw",className:"h-auto w-full"})})})]})}),(0,a.jsx)(m.Ay,{hue:"purple",hue2:"pink",children:(0,a.jsxs)("div",{className:"space-y-12",children:[(0,a.jsxs)("div",{className:"grid items-start gap-6 lg:grid-cols-[1fr_1.1fr] lg:gap-12",children:[(0,a.jsx)(l.A,{children:(0,a.jsx)("h2",{className:"text-[clamp(30px,4vw,52px)] leading-[1.06] font-medium tracking-tight text-fg-100 text-balance",children:"Let your agent run the analysis."})}),(0,a.jsx)(l.A,{delay:100,children:(0,a.jsxs)("p",{className:"max-w-xl text-base leading-relaxed text-fg-300 sm:text-lg",children:["Ten read-only tools let Claude, Cursor, or any assistant run any report or custom question against your data mid-conversation, and show the sessions behind the answer. Analysis that used to be a spreadsheet weekend becomes one message. Three of them (edge_symbols, edge_presets, edge_report) are live on the"," ",(0,a.jsx)(u(),{href:"/mcp",className:"text-fg-100 underline decoration-white/25 underline-offset-4 transition-colors duration-150 hover:decoration-white/60",children:"hosted LuxAlgo MCP"}),", keyless, serving the nightly precomputed reports; run the server locally for the full engine over your own store."]})})]}),(0,a.jsx)(l.A,{delay:120,children:(0,a.jsx)(w._d,{tools:j.tools,columns:3})}),(0,a.jsx)(l.A,{delay:80,className:"flex justify-center",children:(0,a.jsx)(w.jY,{config:j})})]})}),(0,a.jsx)(m.Ay,{hue:"sky",hue2:"purple",glow:!1,children:(0,a.jsxs)("div",{className:"space-y-12",children:[(0,a.jsx)(l.A,{children:(0,a.jsxs)("div",{className:"max-w-2xl space-y-4",children:[(0,a.jsx)("h2",{className:"text-[clamp(32px,4vw,52px)] leading-[1.08] font-medium tracking-tight text-fg-100",children:"Your bars, from wherever they live."}),(0,a.jsx)(o.Y0,{children:"Seven adapters, two of them free and keyless. Daily canaries pull a sample from every vendor and fail CI on 
1schema drift."})]})}),(0,a.jsx)(l.A,{delay:140,children:(0,a.jsx)(x.A,{connections:S,footer:(0,a.jsxs)(a.Fragment,{children:["Broker sync and fill imports run through the open"," ",(0,a.jsx)(u(),{href:"/broker-sdk",className:"text-fg-100 underline decoration-white/25 underline-offset-2 transition-colors duration-150 hover:decoration-white/60",children:"LuxAlgo Broker SDK"}),", read-only by design"]})})})]})}),(0,a.jsx)(m.Ay,{hue:"pink",hue2:"purple",glow:!1,innerClassName:"grid gap-12 sm:grid-cols-2 sm:gap-8 lg:grid-cols-4",children:[["No naked percentages","There is no code path that prints a percentage without its sample size."],["Intervals, always","Every estimate carries N and a Wilson 95% confidence interval."],["Guarded small samples","A warning below 30 sessions. No estimate at all below 10."],["Stability, split","First half versus second half, plus a recency view over the last 250 sessions."]].map((e,s)=>{let[t,n]=e;return(0,a.jsx)(l.A,{delay:70*s,children:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)(m.v0,{hue:["purple","pink","sky","cobalt"][s%4],children:t}),(0,a.jsx)("p",{className:"text-lg leading-snug text-fg-100 text-balance",children:n})]})},t)})}),(0,a.jsx)(m.Ay,{hue:"purple",hue2:"pink",children:(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"grid items-start gap-6 lg:grid-cols-[1fr_1.1fr] lg:gap-12",children:[(0,a.jsx)(l.A,{children:(0,a.jsx)("h2",{className:"text-[clamp(30px,4vw,52px)] leading-[1.06] font-medium tracking-tight text-fg-100 text-balance",children:"Any condition you can think of."})}),(0,a.jsx)(l.A,{delay:100,children:(0,a.jsx)("p",{className:"max-w-xl text-base leading-relaxed text-fg-300 sm:text-lg",children:"By ticker, by weekday, by session, by gap size, on event days or off them. Any condition you actually trade can be asked directly, and combined freely with the others, so the question you ask is exactly the trade you take."})})]}),(0,a.jsx)(l.A,{delay:140,className:"mt-12",children:(0,a.jsx)("div",{className:"overflow-hidden rounded-xl border border-white/10 bg-surface-100",children:_.map((e,s)=>(0,a.jsxs)("p",{className:"overflow-x-auto whitespace-nowrap px-5 py-3.5 font-mono text-[13px] text-fg-200 sm:px-6 ".concat(s>0?"border-t border-white/[0.06]":""),children:[(0,a.jsx)("span",{className:"mr-3 select-none text-fg-300",children:"$"}),e]},e))})}),(0,a.jsx)(l.A,{delay:80,children:(0,a.jsx)("p",{className:"mt-4 max-w-3xl text-sm leading-relaxed text-fg-300",children:"Answers land in about 20 milliseconds over years of 1-minute bars (the architecture doc’s own measurement), because the heavy work happens once when your data syncs, not every time you ask."})})]})}),(0,a.jsxs)(m.Ay,{hue:"pink",hue2:"purple",glow:!1,innerClassName:"grid items-center gap-10 lg:grid-cols-2 lg:gap-16",children:[(0,a.jsx)(l.A,{children:(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h2",{className:"text-2xl font-medium tracking-tight text-fg-100 sm:text-[28px]",children:"Prove it on the demo store first."}),(0,a.jsx)(o.iq,{children:"One clone, one install, and the deterministic demo store answers in seconds: ~900k synthetic bars with the full envelope on every query. Point an adapter at real data when you believe the machinery."})]})}),(0,a.jsx)(l.A,{delay:120,className:"min-w-0",children:(0,a.jsx)(h.A,{title:"terminal",lines:q,typewriter:!0})})]}),(0,a.jsx)(b.A,{heading:"Distributions, not promises.",statement:"Every answer carries its N.",hue:"purple",hue2:"pink",body:"No order execution, ever. No telemetry, no accounts. Just historical conditional frequencies with sample sizes, computed on your machine, or served precomputed from the hosted LuxAlgo MCP.",repo:"LuxAlgo/edge-stats",repoUrl:v,licenseLine:"MIT code \xb7 CC BY 4.0 bundled data \xb7 \xa9 LuxAlgo Global, LLC"}),(0,a.jsx)("div",{className:"border-t border-white/[0.06] px-6 py-8",children:(0,a.jsx)("p",{className:"mx-auto max-w-3xl text-center text-xs leading-relaxed text-fg-300",children:"Every Edge Stats result carries the same fixed line: historical conditional frequencies with sample sizes, not predictions and not advice. Past frequencies do not guarantee future results."})})]})}},54512:(e,s,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/edge-stats",function(){return t(15735)}])},99082:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});var a=t(66352),n=t(9811);
1function i(e){let{connections:s,footer:t,columns:i=2}=e;return(0,a.jsx)("div",{className:"dark",children:(0,a.jsxs)("div",{className:"relative overflow-hidden rounded-2xl border border-white/10 bg-[#060606]",children:[(0,a.jsx)("div",{className:2===i?"grid sm:grid-cols-2":"grid",children:s.map((e,s)=>(0,a.jsxs)("div",{className:"flex items-center gap-3 border-white/[0.05] px-5 sm:px-6 ".concat(1===i?"py-4 ".concat(s>0?"border-t":""):"py-3 ".concat(s>1?"border-t":s>0?"border-t sm:border-t-0":""," ").concat(s%2==0?"sm:border-r":"")),children:[(0,a.jsx)(n.A,{domain:e.domain,src:e.src,name:e.name,className:"size-7",imgSize:17}),(0,a.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,a.jsx)("span",{className:"block truncate text-[13px] font-medium text-fg-100",children:e.name}),(0,a.jsx)("span",{className:"block truncate text-xs text-fg-300",children:e.note})]}),e.tag&&(0,a.jsx)("span",{className:"shrink-0 rounded-full border border-white/10 bg-white/[0.03] px-2 py-0.5 text-[10px] font-medium whitespace-nowrap text-fg-300",children:e.tag})]},e.name))}),t&&(0,a.jsx)("p",{className:"border-t border-white/[0.06] px-5 py-3 text-xs text-fg-300 sm:px-6",children:t})]})})}}},e=>{e.O(0,[2233,8626,9546,8404,636,6593,8792],()=>e(e.s=54512)),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.