const INDICATOR_CHART_SLIDES = [ { src: 'chart-1.png', alt: 'Ghost on chart — full module set, dashboard + tutorial table + chart legend' }, { src: 'chart-2.png', alt: 'Ghost on chart — supply/demand zones, signals, and trend ribbon' }, { src: 'chart-3.png', alt: 'Ghost on chart — clean view with EMA ribbon, BUY/SELL signals, and reversal pivots' }, ]; function IndicatorChartSlideshow() { const [idx, setIdx] = React.useState(0); const [paused, setPaused] = React.useState(false); React.useEffect(() => { if (paused) return; const t = setInterval(() => setIdx(i => (i + 1) % INDICATOR_CHART_SLIDES.length), 4500); return () => clearInterval(t); }, [paused]); return (
setPaused(true)} onMouseLeave={() => setPaused(false)}>
· Live On Chart · TradingView
{INDICATOR_CHART_SLIDES.map((s, i) => ( {s.alt} ))}
{INDICATOR_CHART_SLIDES.map((_, i) => (
); } const CONFLUENCE_SLIDES = [ { src: 'confluence-1.png', alt: 'NQ 5M chart — chop zones, No-Trade ✕ filters, and a volume-based reversal bubble at the swing low; signals only fire after the stack clears.' }, { src: 'confluence-2.png', alt: 'NQ 5M zoomed-in view — the moment all three confluences align: chop ends, ✕ veto lifts, large volume bubble prints at the demand pivot, BUY signal triggers.' }, ]; function ConfluenceSlideshow() { const [idx, setIdx] = React.useState(0); const [paused, setPaused] = React.useState(false); React.useEffect(() => { if (paused) return; const t = setInterval(() => setIdx(i => (i + 1) % CONFLUENCE_SLIDES.length), 5000); return () => clearInterval(t); }, [paused]); return (
setPaused(true)} onMouseLeave={() => setPaused(false)}>
· NQ1! · 5M · The Stack Aligns
{CONFLUENCE_SLIDES.map((s, i) => ( {s.alt} ))}
{CONFLUENCE_SLIDES.map((_, i) => (
); } function Indicator() { return ( <>