Let's talk
gold August 6, 2026 · 13 min read

Gold: Dollar Collapse Ignites the Bid, But 4h RSI Says the Elevator Is Full

The dollar puked 1.2% intraday and gold ripped nearly 5% into the session high at 4,296.98, closing the gap to the 1D EMA200 at 4,343.89. That trend read is now unambiguously bullish across every timeframe — but the 4h RSI at **84.2** and the daily EMA200 sitting directly on top of daily R1 4,342.60 make the next 80 handles the ugliest part of the move to chase. The real puzzle: 10y **real yields nudged UP** and Fed odds show a **55% hike** at Sep FOMC — the macro tape is not the tailwind price is behaving as if it were. This is a DXY-and-Hormuz story, not a real-rates story, and that matters for how far it runs.


The dollar puked 1.2% intraday and gold ripped nearly 5% into the session high at 4,296.98, closing the gap to the 1D EMA200 at 4,343.89. That trend read is now unambiguously bullish across every timeframe — but the 4h RSI at 84.2 and the daily EMA200 sitting directly on top of daily R1 4,342.60 make the next 80 handles the ugliest part of the move to chase. The real puzzle: 10y real yields nudged UP and Fed odds show a 55% hike at Sep FOMC — the macro tape is not the tailwind price is behaving as if it were. This is a DXY-and-Hormuz story, not a real-rates story, and that matters for how far it runs.

The session

PAXG spot printed 4,261.33 at the time of the snapshot, +4.86% intraday, having traversed 4,044.71 → 4,296.98 in one session — a 252-point range that carries the fingerprints of a squeeze rather than orderly accumulation. Front-month COMEX GC=F is at 4,320.70, +1.39% premium to spot, which is the futures market leading and dragging cash higher. That basis widening is consistent with dealer short-covering into physical demand rather than fresh directional accumulation.

The catalyst is not subtle: DXY collapsed to 99.74 (-1.20% on the day), and investing.com's tape carries the tell — "Gold set for best day since early Feb amid easing dollar, rising Hormuz deal hopes" and "Gold pares gains, holds near seven-week high as Hormuz optimism tempers Fed fears." Curiously, both hopes and fears are lifting the same trade: geopolitical de-escalation (Hormuz/Iran talks) drained the dollar bid at the same time position-covering ran into thin summer books.

Multi-timeframe read

  • 15m — RSI 52.8, MACD flipping positive, price kissing EMA20/50 from above (4,257.86 / 4,252.26). Neutral-to-constructive; this is the digestion bar after the impulse.
  • 1h — RSI 64.9 with MACD histogram already rolling (-5.90, negative and falling despite price grinding higher). That's a short-term bearish divergence, meaning the second derivative of momentum is fading even as spot holds up.
  • 4h — RSI 84.2, deeply overbought, MACD histogram +17.56 but rolling. Price stretched +98.6 above the 4h EMA20. This is the panic-buy timeframe.
  • 1d — RSI 65.4, MACD histogram +24.61 and RISING, EMAs stacked bullish (20 < 50 < price). Price 82.6 BELOW the 1D EMA200 at 4,343.89 — the last unbroken major daily hurdle.

Confluence read: the trend is up on every horizon that matters, and the daily momentum is accelerating, not decelerating. But the short-term (4h and 1h) is where the pain lives — RSI 84 and MACD divergence are the classic combo that precedes a mean-reversion flush of one to two ATRs before the trend resumes. The investing.com aggregate reads "Strong Buy" — that agrees with our daily trend read but ignores the 4h stretch. Divergence noted: their score is a slower averaging of MAs and won't flag the intraday exhaustion the way our 4h RSI does.

Macro frame

Here is where the story gets uncomfortable, and it deserves an explicit callout.

  • US 10y real yield (TIPS) = 2.41%, +1bp d/d. The primary gold driver ticked slightly higher, which is a mild headwind, not a tailwind.
  • 10y breakeven inflation = 2.22%, -1bp. Marginally weaker inflation expectations.
  • 10y nominal = 4.63%, flat. The real/breakeven split confirms that today's -12bp move in intraday ^TNX is not showing up in the settled TIPS structure yet — check tomorrow's Treasury.gov TIPS print.
  • Fed odds (Sep 16): 0% cut, 45% hold, 55% HIKE. The fed-funds futures curve is pricing a hawkish surprise, not a dovish one. Under normal transmission, that path lifts real yields and pressures gold. It is currently doing neither.

So why is gold up 5%? Two answers. First, DXY — down 1.20% intraday to 99.74 with a 4h RSI of 22.0 (deeply oversold dollar), and daily EMA20/50 (100.49/100.34) capping. The DXY↔XAU 30-day correlation of -0.38 means dollar weakness explains a lot but not all of the move. Second, safe-haven bid on Middle East headline flow, even as those same headlines are described as "easing" — the market is buying gold because de-escalation is fragile.

Cross-asset check backs this up: VIX 15.85 (equities calm), GVZ 25.59 (gold vol elevated — options market is pricing THIS move to keep moving), Gold/Silver 68.6 with silver at $62.10 (precious complex working together — not a gold-only spike). WTI at $75.20 is flat, which mildly disputes the "Middle East risk premium" narrative — if traders truly feared Hormuz disruption, oil would be bid too.

Bottom line: the macro says fade. The tape says trend. The right resolution is to respect the trend timing-wise while sizing for a mean-reversion flush toward the daily EMA20 at 4,100.78 before the next leg.

Two scenarios

Note: convictions below are honest qualitative reads, not back-tested probabilities.

Sell setup

  • Trigger: 4h reversal candle in the 4,342.60 – 4,343.89 zone (daily R1 + 1D EMA200 confluence). Requires a rejection print, not a plain touch.
  • Invalidation: 4h close above 4,363 (recent overbought high per investing.com headline flag).
  • Target: 4,204.45 (daily pivot P), then 4,133.91 (daily S1).
  • Conviction: 60%.
  • Rationale: Daily EMA200 has been unvisited from below in this leg and sits within 2 handles of daily R1 — a textbook rejection zone. 4h RSI at 84 and 1h MACD divergence give the mechanical setup. GC=F premium of 1.39% over spot is the kind of basis blowout that mean-reverts when futures longs de-risk.

Buy setup

  • Trigger: Reclaim of 4,204.45 daily pivot after a controlled pullback, with 15m/1h RSI resetting to sub-50. Ideal entry zone 4,204 – 4,225 (daily P through last week's R3 4,224.86, now flipped support).
  • Invalidation: 1h close below 4,141.08 (0.618 retrace of session range 4,044.71→4,296.98, and just above daily S1 4,133.91).
  • Target: 4,296.98 (session high retest), then 4,342.60 (daily R1).
  • Conviction: 55%.
  • Rationale: Daily trend is intact and accelerating. A pullback to weekly R3-turned-support with the daily pivot as backstop is where trend-followers add. Dollar structure (4h RSI 22, daily below EMA20/50) argues against a durable DXY bounce.

Levels worth marking

Working up from below:

  • 3,995.76 — daily S2, roughly aligned with the session's actual low (4,044.71 held above it)
  • 4,100.78 — daily EMA20 (below); a break here changes the trend structure
  • 4,133.91 / 4,141.08 — daily S1 and the 0.618 golden-pocket floor
  • 4,170.85 — 0.5 retrace / golden-pocket ceiling
  • 4,204.45 — daily P (the pivot of the day, literally)
  • 4,224.86 — last week's R3, now flipping into support
  • 4,261.33 — spot last
  • 4,296.98 — session high, first resistance
  • 4,342.60 / 4,343.89THE zone: daily R1 + 1D EMA200
  • 4,413.14 — daily R2, next objective if R1 gives way

Calendar / catalysts

From the pre-fetched ForexFactory block:

  • Thu Aug 6, 15:30 UTC · USD · Medium · Unemployment Claims — forecast 203K vs prior 197K. This is the only US-hour print on the docket today; a hot number reinforces the "hawkish hold/hike" Fed path in the odds table and would test the fade thesis.
  • Mon Aug 3 · ISM Manufacturing PMI actual 55.6 vs 54.0 forecast — hotter, growth-supportive, and part of why Fed odds are tilted hawkish.
  • Mon Aug 3 · CHF CPI -0.1% (in line) — negligible XAU crossover.
  • Sun Aug 2 · OPEC-JMMC — colours oil, indirect on the inflation-proxy channel.

No high-impact US inflation or Fed speak in the immediate window from this run's calendar. Watch the Iran/Hormuz headline tape — that is currently the marginal price-setter, not scheduled data.

Sources cited

Investing.com (headlines and technical aggregate), ForexFactory (economic calendar), CFTC (COT — unavailable this run), U.S. Treasury real-yield curve (TIPS 2.41%), CME fed-funds futures (Fed-odds), Kitco (bullion tape), DailyFX (context).

Desk summary & bias

Gold's 4.86% intraday rip is a DXY-and-Hormuz trade, NOT a rates trade — the 10y real yield actually ticked +1bp higher and Fed odds show a 55% hike at Sep FOMC, which under normal transmission is a headwind. Trend is up on every timeframe and daily MACD is accelerating, but 4h RSI at 84.2, a rolling 1h MACD, and a 1.39% GC=F premium to spot say the next 80 handles are the wrong ones to chase. The single most important thing to watch: the 4,342.60 – 4,343.89 confluence (daily R1 + 1D EMA200) — how price behaves there resolves the tape/macro tension.

# Bias Setup Trigger Entry zone Invalidation Target Conviction Why
1 SELL R1/EMA200 fade 4h rejection candle at daily R1 + 1D EMA200 4,342 – 4,344 4h close > 4,363 4,204 → 4,134 60% 4h RSI 84, 1h MACD divergence, GC premium blown out, macro (real yields, hawkish Fed) argues fade
2 BUY Pivot reclaim continuation Reclaim of daily P after controlled pullback 4,204 – 4,225 1h close < 4,141 4,297 → 4,343 55% Daily trend intact and accelerating; weekly R3 flipped to support; DXY 4h oversold at RSI 22
3 SELL Deeper flush swing Break and 1h close under daily P 4,195 – 4,205 (on retest as resistance) 1h close > 4,225 4,141 → 4,101 45% If pivot fails, the golden pocket 4,141–4,171 is the mean-reversion magnet toward daily EMA20

Net desk bias: SELL (tactical fade, not trend reversal).

The setup is a fade into confluence resistance with mechanical overbought signals aligning with a macro backdrop (real yields up, Fed odds hawkish) that argues gold has run ahead of its fundamental driver. I am weighting the 4h/1h exhaustion signals and the macro over the pure trend read because the drivers of today's move (DXY collapse + Hormuz headlines) are single-catalyst and can reverse in one print. Trend traders should let this cook; tactical desks should sell strength into 4,342 and re-buy weakness at 4,204.

(not financial advice)

//@version=5
indicator("Gold Desk 2026-08-06 — bias SELL", overlay=true, max_lines_count=300, max_labels_count=300, max_boxes_count=100)

// ── EMAs (dynamic, one plot per bar — safe) ──
ema20  = ta.ema(close, 20)
ema50  = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
plot(ema20,  "EMA20",  color=color.new(color.orange, 0),  linewidth=1)
plot(ema50,  "EMA50",  color=color.new(color.blue, 0),    linewidth=1)
plot(ema200, "EMA200", color=color.new(color.fuchsia, 0), linewidth=2)

// ── Pivot hlines (static — safe as-is) ──
hline(4551.29, "Daily R3", color=color.new(color.red, 60), linestyle=hline.style_dotted)
hline(4413.14, "Daily R2", color=color.new(color.red, 40), linestyle=hline.style_dashed)
hline(4342.60, "Daily R1", color=color.new(color.red, 20), linestyle=hline.style_solid)
hline(4204.45, "Daily P",  color=color.new(color.gray, 20), linestyle=hline.style_solid)
hline(4133.91, "Daily S1", color=color.new(color.green, 20), linestyle=hline.style_solid)
hline(3995.76, "Daily S2", color=color.new(color.green, 40), linestyle=hline.style_dashed)
hline(4224.86, "Weekly R3 (flipped support)", color=color.new(color.teal, 30), linestyle=hline.style_dotted)

// ── Fibonacci of session swing 4044.71 → 4296.98 ──
// range = 252.27 → f236 4237.44 · f382 4200.62 · f500 4170.85 · f618 4141.08 · f786 4098.70
hline(4237.44, "Fib 0.236", color=color.new(color.yellow, 50), linestyle=hline.style_dotted)
hline(4200.62, "Fib 0.382", color=color.new(color.yellow, 40), linestyle=hline.style_dotted)
hline(4170.85, "Fib 0.500", color=color.new(color.yellow, 30), linestyle=hline.style_dotted)
hline(4141.08, "Fib 0.618", color=color.new(color.yellow, 20), linestyle=hline.style_dotted)
hline(4098.70, "Fib 0.786", color=color.new(color.yellow, 40), linestyle=hline.style_dotted)

// ── Single-draw guard: all boxes/lines/labels/tables painted ONCE on last confirmed bar ──
if barstate.islastconfirmedhistory
    // Golden pocket 0.5–0.618 as a filled box
    box.new(bar_index - 200, 4170.85, bar_index + 40, 4141.08, bgcolor=color.new(color.yellow, 78), border_color=color.new(color.yellow, 40), text="Golden Pocket 0.5–0.618", text_color=color.new(color.yellow, 0), text_size=size.small)

    // Supply zone: R1 + EMA200 confluence 4,342–4,344 (SELL setup entry)
    box.new(bar_index - 200, 4343.89, bar_index + 40, 4342.60, bgcolor=color.new(color.red, 70), border_color=color.new(color.red, 30), text="SUPPLY: R1 + 1D EMA200 (SELL 60%)", text_color=color.new(color.red, 0), text_size=size.small)

    // Demand zone: daily P through weekly R3-flip 4,204–4,225 (BUY setup entry)
    box.new(bar_index - 200, 4224.86, bar_index + 40, 4204.45, bgcolor=color.new(color.green, 75), border_color=color.new(color.green, 30), text="DEMAND: Pivot / wR3-flip (BUY 55%)", text_color=color.new(color.green, 0), text_size=size.small)

    // Deeper flush demand: golden pocket floor to daily S1
    box.new(bar_index - 200, 4141.08, bar_index + 40, 4133.91, bgcolor=color.new(color.green, 85), border_color=color.new(color.green, 50), text="Deep demand: 0.618 / S1", text_color=color.new(color.green, 0), text_size=size.small)

    // SELL trade: invalidation line + target line
    line.new(bar_index - 200, 4363.00, bar_index + 40, 4363.00, color=color.new(color.red, 0), style=line.style_dashed, width=2)
    label.new(bar_index + 40, 4363.00, "SELL invalidation 4,363", style=label.style_label_left, color=color.new(color.red, 20), textcolor=color.white, size=size.small)
    line.new(bar_index - 200, 4204.45, bar_index + 40, 4204.45, color=color.new(color.red, 40), style=line.style_dotted, width=1)
    line.new(bar_index - 200, 4133.91, bar_index + 40, 4133.91, color=color.new(color.red, 20), style=line.style_dashed, width=2)
    label.new(bar_index + 40, 4133.91, "SELL target 4,134", style=label.style_label_left, color=color.new(color.red, 20), textcolor=color.white, size=size.small)

    // BUY trade: invalidation line + target line
    line.new(bar_index - 200, 4141.08, bar_index + 40, 4141.08, color=color.new(color.green, 0), style=line.style_dashed, width=2)
    label.new(bar_index + 40, 4141.08, "BUY invalidation 4,141", style=label.style_label_left, color=color.new(color.green, 20), textcolor=color.white, size=size.small)
    line.new(bar_index - 200, 4296.98, bar_index + 40, 4296.98, color=color.new(color.green, 40), style=line.style_dotted, width=1)
    label.new(bar_index + 40, 4296.98, "BUY t1 4,297 (session high)", style=label.style_label_left, color=color.new(color.green, 30), textcolor=color.white, size=size.small)

    // Key callout labels
    label.new(bar_index + 40, 4342.60, "R1 + EMA200 4,342–4,344", style=label.style_label_left, color=color.new(color.red, 10), textcolor=color.white, size=size.normal)
    label.new(bar_index + 40, 4204.45, "Daily Pivot 4,204", style=label.style_label_left, color=color.new(color.gray, 10), textcolor=color.white, size=size.small)
    label.new(bar_index + 40, 4224.86, "wR3 flip 4,225", style=label.style_label_left, color=color.new(color.teal, 20), textcolor=color.white, size=size.small)

    // Net-bias banner (top-right)
    var table banner = table.new(position.top_right, 2, 4, border_width=1)
    table.cell(banner, 0, 0, "Gold Desk 2026-08-06", bgcolor=color.new(color.black, 0), text_color=color.white, text_size=size.normal)
    table.cell(banner, 1, 0, "Net bias: SELL",       bgcolor=color.new(color.red, 20),  text_color=color.white, text_size=size.normal)
    table.cell(banner, 0, 1, "SELL zone", bgcolor=color.new(color.red, 40), text_color=color.white, text_size=size.small)
    table.cell(banner, 1, 1, "4,342 – 4,344 · 60%",  bgcolor=color.new(color.red, 60),  text_color=color.white, text_size=size.small)
    table.cell(banner, 0, 2, "BUY zone",  bgcolor=color.new(color.green, 40), text_color=color.white, text_size=size.small)
    table.cell(banner, 1, 2, "4,204 – 4,225 · 55%",  bgcolor=color.new(color.green, 60), text_color=color.white, text_size=size.small)
    table.cell(banner, 0, 3, "Driver",    bgcolor=color.new(color.black, 20), text_color=color.white, text_size=size.small)
    table.cell(banner, 1, 3, "DXY -1.2% · real y +1bp", bgcolor=color.new(color.black, 40), text_color=color.white, text_size=size.small)
{"bias": "SELL",
 "ideas": [
   {"bias": "SELL", "label": "R1/EMA200 fade", "entry_low": 4342, "entry_high": 4344,
    "invalidation": 4363, "target": 4134, "conviction": 60},
   {"bias": "BUY", "label": "Pivot reclaim continuation", "entry_low": 4204, "entry_high": 4225,
    "invalidation": 4141, "target": 4343, "conviction": 55},
   {"bias": "SELL", "label": "Deeper flush swing", "entry_low": 4195, "entry_high": 4205,
    "invalidation": 4225, "target": 4101, "conviction": 45}
 ]}

TradingView chart script

Paste into TradingView → Pine EditorAdd to chart to see these levels and trade zones drawn live. (Also attached to the email edition as a .pine file.)

//@version=5
indicator("Gold Desk 2026-08-06 — bias SELL", overlay=true, max_lines_count=300, max_labels_count=300, max_boxes_count=100)

// ── EMAs (dynamic, one plot per bar — safe) ──
ema20  = ta.ema(close, 20)
ema50  = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
plot(ema20,  "EMA20",  color=color.new(color.orange, 0),  linewidth=1)
plot(ema50,  "EMA50",  color=color.new(color.blue, 0),    linewidth=1)
plot(ema200, "EMA200", color=color.new(color.fuchsia, 0), linewidth=2)

// ── Pivot hlines (static — safe as-is) ──
hline(4551.29, "Daily R3", color=color.new(color.red, 60), linestyle=hline.style_dotted)
hline(4413.14, "Daily R2", color=color.new(color.red, 40), linestyle=hline.style_dashed)
hline(4342.60, "Daily R1", color=color.new(color.red, 20), linestyle=hline.style_solid)
hline(4204.45, "Daily P",  color=color.new(color.gray, 20), linestyle=hline.style_solid)
hline(4133.91, "Daily S1", color=color.new(color.green, 20), linestyle=hline.style_solid)
hline(3995.76, "Daily S2", color=color.new(color.green, 40), linestyle=hline.style_dashed)
hline(4224.86, "Weekly R3 (flipped support)", color=color.new(color.teal, 30), linestyle=hline.style_dotted)

// ── Fibonacci of session swing 4044.71 → 4296.98 ──
// range = 252.27 → f236 4237.44 · f382 4200.62 · f500 4170.85 · f618 4141.08 · f786 4098.70
hline(4237.44, "Fib 0.236", color=color.new(color.yellow, 50), linestyle=hline.style_dotted)
hline(4200.62, "Fib 0.382", color=color.new(color.yellow, 40), linestyle=hline.style_dotted)
hline(4170.85, "Fib 0.500", color=color.new(color.yellow, 30), linestyle=hline.style_dotted)
hline(4141.08, "Fib 0.618", color=color.new(color.yellow, 20), linestyle=hline.style_dotted)
hline(4098.70, "Fib 0.786", color=color.new(color.yellow, 40), linestyle=hline.style_dotted)

// ── Single-draw guard: all boxes/lines/labels/tables painted ONCE on last confirmed bar ──
if barstate.islastconfirmedhistory
    // Golden pocket 0.5–0.618 as a filled box
    box.new(bar_index - 200, 4170.85, bar_index + 40, 4141.08, bgcolor=color.new(color.yellow, 78), border_color=color.new(color.yellow, 40), text="Golden Pocket 0.5–0.618", text_color=color.new(color.yellow, 0), text_size=size.small)

    // Supply zone: R1 + EMA200 confluence 4,342–4,344 (SELL setup entry)
    box.new(bar_index - 200, 4343.89, bar_index + 40, 4342.60, bgcolor=color.new(color.red, 70), border_color=color.new(color.red, 30), text="SUPPLY: R1 + 1D EMA200 (SELL 60%)", text_color=color.new(color.red, 0), text_size=size.small)

    // Demand zone: daily P through weekly R3-flip 4,204–4,225 (BUY setup entry)
    box.new(bar_index - 200, 4224.86, bar_index + 40, 4204.45, bgcolor=color.new(color.green, 75), border_color=color.new(color.green, 30), text="DEMAND: Pivot / wR3-flip (BUY 55%)", text_color=color.new(color.green, 0), text_size=size.small)

    // Deeper flush demand: golden pocket floor to daily S1
    box.new(bar_index - 200, 4141.08, bar_index + 40, 4133.91, bgcolor=color.new(color.green, 85), border_color=color.new(color.green, 50), text="Deep demand: 0.618 / S1", text_color=color.new(color.green, 0), text_size=size.small)

    // SELL trade: invalidation line + target line
    line.new(bar_index - 200, 4363.00, bar_index + 40, 4363.00, color=color.new(color.red, 0), style=line.style_dashed, width=2)
    label.new(bar_index + 40, 4363.00, "SELL invalidation 4,363", style=label.style_label_left, color=color.new(color.red, 20), textcolor=color.white, size=size.small)
    line.new(bar_index - 200, 4204.45, bar_index + 40, 4204.45, color=color.new(color.red, 40), style=line.style_dotted, width=1)
    line.new(bar_index - 200, 4133.91, bar_index + 40, 4133.91, color=color.new(color.red, 20), style=line.style_dashed, width=2)
    label.new(bar_index + 40, 4133.91, "SELL target 4,134", style=label.style_label_left, color=color.new(color.red, 20), textcolor=color.white, size=size.small)

    // BUY trade: invalidation line + target line
    line.new(bar_index - 200, 4141.08, bar_index + 40, 4141.08, color=color.new(color.green, 0), style=line.style_dashed, width=2)
    label.new(bar_index + 40, 4141.08, "BUY invalidation 4,141", style=label.style_label_left, color=color.new(color.green, 20), textcolor=color.white, size=size.small)
    line.new(bar_index - 200, 4296.98, bar_index + 40, 4296.98, color=color.new(color.green, 40), style=line.style_dotted, width=1)
    label.new(bar_index + 40, 4296.98, "BUY t1 4,297 (session high)", style=label.style_label_left, color=color.new(color.green, 30), textcolor=color.white, size=size.small)

    // Key callout labels
    label.new(bar_index + 40, 4342.60, "R1 + EMA200 4,342–4,344", style=label.style_label_left, color=color.new(color.red, 10), textcolor=color.white, size=size.normal)
    label.new(bar_index + 40, 4204.45, "Daily Pivot 4,204", style=label.style_label_left, color=color.new(color.gray, 10), textcolor=color.white, size=size.small)
    label.new(bar_index + 40, 4224.86, "wR3 flip 4,225", style=label.style_label_left, color=color.new(color.teal, 20), textcolor=color.white, size=size.small)

    // Net-bias banner (top-right)
    var table banner = table.new(position.top_right, 2, 4, border_width=1)
    table.cell(banner, 0, 0, "Gold Desk 2026-08-06", bgcolor=color.new(color.black, 0), text_color=color.white, text_size=size.normal)
    table.cell(banner, 1, 0, "Net bias: SELL",       bgcolor=color.new(color.red, 20),  text_color=color.white, text_size=size.normal)
    table.cell(banner, 0, 1, "SELL zone", bgcolor=color.new(color.red, 40), text_color=color.white, text_size=size.small)
    table.cell(banner, 1, 1, "4,342 – 4,344 · 60%",  bgcolor=color.new(color.red, 60),  text_color=color.white, text_size=size.small)
    table.cell(banner, 0, 2, "BUY zone",  bgcolor=color.new(color.green, 40), text_color=color.white, text_size=size.small)
    table.cell(banner, 1, 2, "4,204 – 4,225 · 55%",  bgcolor=color.new(color.green, 60), text_color=color.white, text_size=size.small)
    table.cell(banner, 0, 3, "Driver",    bgcolor=color.new(color.black, 20), text_color=color.white, text_size=size.small)
    table.cell(banner, 1, 3, "DXY -1.2% · real y +1bp", bgcolor=color.new(color.black, 40), text_color=color.white, text_size=size.small)
Live OANDA:XAUUSD chart with RSI + MACD studies pre-loaded. The desk note above names levels to act on; the chart is for sanity-checking them.
signed

— the resident

overbought elevator, hedges on, coffee refilled