# ChartMath /c: the chart any AI can draw on A chart is one URL. Write it from memory, send it, it renders live: no install, no account. Plain query params. A malformed item is skipped and counted, never a blank page. Links never break. 1. A URL grammar you can write with no tools. 2. This page, which teaches it in under two thousand tokens. 3. A viewer that renders the URL and fills in ChartMath research when the URL names it. 4. Read access shaped for you, so you can see the data before deciding where lines go. ## Chart params i=SYMBOL or EXCHANGE-SYMBOL Instrument. A bare symbol resolves US, then India, then Crypto; first hit wins. EXCHANGE-SYMBOL is exact. Required. e.g. i=NVDA tf=D W M 1h 15m 5m 1m Timeframe. Default D. e.g. tf=W at=TIME Anchor bar. Named references are computed as of the anchor. st= places its entry marker here. Default last bar. e.g. at=2026-09-04 w=before[,after] Window in bars around the anchor. before ≤ 500, after ≤ 200. Optional; drawings outside it are still drawn but may sit off-screen, so set it to fit explicit dates. Default 120,10. e.g. w=90,20 ind=ema sma bb rsi atr macd vwap, comma-separated Indicators, max 6. Volume is always shown. e.g. ind=ema20,sma50,rsi14 t=text ≤80 Title. e.g. t=NVDA+bull+flag n=text ≤500 Note under the chart. Plain text, no links. e.g. n=Entry+on+a+close+above+the+base by=[a-z0-9_.-]{1,32} Author. Shown as "drawn by" and carried into the install link as ref=c-. e.g. by=chatgpt theme=dark or light Colour scheme. Default site theme. e.g. theme=dark e=1 Embed: chart only, no header, note, or panel. e.g. e=1 ## Drawing params (each one repeats; they draw in the order written) h=PRICE[@TIME][:LABEL[:COLOR]] Horizontal level. @TIME starts it at that bar (ray). Default amber. e.g. h=128.4:Breakout:amber v=TIME[:LABEL[:COLOR]] Vertical marker at a bar. Default blue. e.g. v=2026-09-04:Screen+fired box=TIME,TIME,PRICE,PRICE[:LABEL[:COLOR]] or range:N[:LABEL[:COLOR]] Shaded rectangle: from, to, low, high. Chip shows bars and % height automatically. Default blue. e.g. box=2026-08-20,2026-09-04,121.3,128.4:Base tl=TIME,PRICE,TIME,PRICE[:LABEL[:COLOR]] or swing:hi / swing:lo Two-point segment. Chip shows % and bars automatically. Default purple. e.g. tl=2026-08-15,118.2,2026-09-04,127.9 ray=same as tl The same line extended right to the chart edge. e.g. ray=swing:lo m=TIME:TEXT[:above|below] Bar marker with text. below (default) is an up-arrow under the bar, above a down-arrow over it. e.g. m=2026-09-04:Entry:below txt=TIME,PRICE:TEXT[:COLOR] Anchored text with a pointer to its bar and price. e.g. txt=2026-08-28,124:Volume+dried+up+here plan=PRICE,PRICE,PRICE[:LABEL[:COLOR]] Trade plan: entry, stop, target. Side is inferred from where the stop sits. Draws the three lines, red risk zone, green reward zone, and an R:R chip. Dashed: an authored plan. e.g. plan=130.1,126.05,138.2 st=SLUG[:EXIT_ID] A plan derived from a ChartMath screen's backtest: entry at ep (or the anchor close), stop and target from the strategy, chip with win rate and sample size. Solid lines. Slug as on chartmath.com/screens; the timeframe suffix may be omitted. One per URL. e.g. st=bull-flag-breakout-daily ep=PRICE (number) Entry price for st. Default anchor close. e.g. ep=130.1 ## Named references (as of the anchor bar, computed by the code the read layer uses) hi:N Highest high of the N bars ending at the anchor. (any PRICE) lo:N Lowest low of the N bars ending at the anchor. (any PRICE) ema:N EMA of closes, period N, at the anchor. (any PRICE) sma:N Simple mean of the N closes ending at the anchor. (any PRICE) last Close of the anchor bar (live last price when the anchor is the last bar). (any PRICE or TIME) range:N The box spanning the N bars ending at the anchor: lo:N to hi:N. (box only) swing:hi Line through the two most recent swing highs (a bar higher than the three bars on each side). (tl and ray only) swing:lo Line through the two most recent swing lows. (tl and ray only) ## Time TIME is 2026-09-04 (a trading date), 2026-09-04T10:30 (exchange-local), 1757000000 (epoch seconds UTC), or last. A date matches the bar with that trading date; a datetime snaps to the nearest bar. After the last bar clamps to the last bar. Before the first loaded bar clamps to the first. N is 2..250. Labels are plain text up to 40 characters, no commas or colons. Bars, not days: about 21 daily bars make a month and 5 a week, so range:21 is the last month on a daily chart. ## Colours and limits Colours: amber blue red green gray purple orange cyan. Every primitive has a default; you rarely need to name one. Caps, truncated not rejected: 40 drawings, title 80, note 500, label 40, 6 indicators, window 500 bars before the anchor and 200 after. ## Read the data first (if you can fetch a URL) /c/read?i=SYMBOL&tf=D&n=120 One instrument: header, N bars (date o h l c v), a structure block (hi/lo 10 20 50, ema 9 20 50 200, sma 50 200, atr14, the last five swing highs and lows, and base: the tightest recent consolidation as from..to low..high, present only when one exists), and the screens it is in today, newest entry first, with the best strategy's win rate, n, SL%, TP% for the newest five. n ≤ 500. Add fmt=json for JSON. e.g. https://chartmath.com/c/read?i=NVDA&tf=D&n=120 /c/read/screens Every screen: slug, name, timeframe, today's match count, side. Filters: tf, region. e.g. https://chartmath.com/c/read/screens?tf=D /c/read/screen/SLUG Today's matches for one screen, one per line, with entry time, last price, and the best strategy. e.g. https://chartmath.com/c/read/screen/bull-flag-breakout-daily ## Examples # The bare minimum. https://chartmath.com/c?i=NVDA&h=hi:20:20d+high&t=NVDA+daily&by=example # Tier 0: the author computes nothing; the viewer does. https://chartmath.com/c?i=NVDA&tf=D&h=hi:20:20d+high&h=ema:50&box=range:30&tl=swing:hi&ind=ema20&by=example # Tier 1: a base as a box, an authored plan, a note. https://chartmath.com/c?i=NVDA&tf=D&at=2026-09-04&w=90,20&box=2026-08-11,2026-09-04,207.25,234.75:Range&plan=230.3,222.9,245.1:Swing+long&v=2026-09-04:Screen+fired&n=Range+is+18+bars+at+13%25+height.+Entry+on+a+close+above+it,+stop+under+the+Sep+1+swing+low.&by=example # st= draws the backtested stop and target with win rate and sample size. https://chartmath.com/c?i=NVDA&tf=D&at=2026-09-04&st=bull-flag-breakout-daily&ep=230.3&by=chartmath # NSE, a marker, anchored text. https://chartmath.com/c?i=NSE-RELIANCE&tf=W&h=lo:50:50w+low&m=2026-07-20:Reversal+bar:below&txt=2026-06-08,1290:Volume+dried+up+here&by=example # Datetimes, a ray through swing lows, embed mode. https://chartmath.com/c?i=BTCUSDT&tf=1h&at=2026-09-04T14:00&w=60,10&h=last&ray=swing:lo&theme=dark&e=1&by=example ## Screen slugs for st= (daily) nr4-squeeze-daily, price-below-20-50-ema-daily, price-above-20-50-ema-daily, above-all-mas-bull-daily, near-52-week-high-daily, nr7-squeeze-daily, consistent-downtrend-daily, gap-down-1pct-and-daily, three-higher-closes-daily, near-52-week-low-daily, high-atr-daily, three-lower-closes-daily, volume-surge-2x-daily, low-volatility-compression-daily, gap-up-1pct-and-daily, below-lower-bollinger-daily, prior-day-high-breakout-daily, prior-day-low-breakdown-daily, volume-shock-3x-daily, consistent-uptrend-daily, gain-5pct-daily, above-upper-bollinger-daily, macd-bull-cross-daily, rsi-overbought-extreme-daily, new-20-day-low-daily, range-expansion-daily and 36 more daily screens at https://chartmath.com/c/read/screens?tf=D For another timeframe, swap the suffix: -weekly, -monthly, -1h, -15m, -5m, -1m. Not every screen runs on every timeframe; https://chartmath.com/c/read/screens lists them all. Omit the suffix and the chart's tf supplies it. ## Universe ChartMath tracks US equities (NYSE, NASDAQ), NSE, and crypto. Anything else is not tracked yet, and the page says so. Add by= so we can see it was you.