Trading Signals widget parameters
All parameters are optional except symbol (without it there is no instrument to analyze). Pass them as data-* attributes on the script tag (kebab-case), or as query parameters on the iframe URL (camelCase).
Content
| Parameter | Attribute | Type | Default | Notes |
|---|---|---|---|---|
symbol | data-symbol | string | none | Instrument to analyze, e.g. XAUUSD, ^NDX. Uppercased automatically; letters, digits and . - / ^, max 15 chars |
locale | data-locale | string | en | See supported locales |
symbol takes an FMP ticker, the same as the news widget, or for the major instruments your broker code (see Symbols). See Supported instruments for the full list. A symbol outside it renders the card's "signal unavailable" state rather than an error.
Market hours
A signal is built from the instrument's own market data, so it follows that market's session. Crypto trades around the clock, and forex, metals and energy do on weekdays, so their signals refresh through the day.
Cash indices, shares, ETFs and soft commodities (cocoa, coffee, sugar, corn, cotton) only print prices while their exchange is open. Outside those hours, and at weekends, the card keeps the last session's signal and shows the time its data is from ("Data as of"). A new signal is generated once the market has traded again. Index CFDs often trade for longer than the exchange behind them, so a move a CFD makes overnight shows up in the signal after the index reopens.
Appearance
| Parameter | Attribute | Type | Default | Notes |
|---|---|---|---|---|
theme | data-theme | light | dark | light | Card theme |
primaryColor | data-primary-color | hex color | see below | Brand accent: section icons, promo, pivot, links |
secondaryColor | data-secondary-color | hex color | see below | Support levels + alternative-scenario accent |
bullishColor | data-bullish-color | hex color | #16A34A | Bullish sentiment + bullish preference |
bearishColor | data-bearish-color | hex color | #E01013 | Bearish sentiment + resistance levels + stale marker |
linkColor | data-link-color | hex color | #069BEC | Hover states on the share button and share sheet |
Colours adapt to the theme
You don't have to set any colours. If you only pass data-theme="dark", the defaults adjust on their own to keep the widget readable:
primaryColordefaults to a near-white#ebebea(instead of the near-black#12111aused in light mode).secondaryColordefaults to a light green#4ADE80(instead of the darker green#15803Dused in light mode).
The rest (bullishColor, bearishColor, linkColor) are readable in both themes and remain the same.
If you set a colour explicitly, it is used as given. However, to guarantee readability, the widget applies an automatic visibility floor: if a brand colour has insufficient contrast against the card background (e.g. passing a near-black light brand colour in dark mode), it is automatically shifted toward white or black until it meets WCAG contrast standards.
Features
| Parameter | Attribute | Type | Default | Notes |
|---|---|---|---|---|
bollinger | data-bollinger | single | dual | off | single | Bollinger Bands on the price chart — see below |
showRsi | data-show-rsi | true | false | true | An RSI pane under the price chart — see below |
showTradingView | data-show-trading-view | true | false | true | A TradingView export button beside Share — see below |
showEmailSignup | data-show-email-signup | true | false | true | A "Signals by email" button beside Share, see below |
partner | data-partner | string | none | Your partner id, see below |
Publish on TradingView
The card carries a TradingView button next to Share. It opens a short step-by-step that generates the idea title, a BBCode description built from the same analysis the card shows, and a Pine Script overlay of the signal's levels.
On by default. Hide it with data-show-trading-view="false".
<script
src="https://www.dealsize.ai/dealsize-widget.js"
async
data-widget="trading-signals"
data-symbol="XAUUSD"
data-show-trading-view="false"
></script>
The user pastes the Pine into TradingView's Pine Editor so the levels are drawn on their chart, then publishes — TradingView builds the idea's image from that chart, so the picture carries the analysis.
Every generated idea tags @DealSize_ai and closes with a plain-text line naming dealsize.ai as the source of the analysis. Neither is a hyperlink: TradingView's House Rules restrict external commercial links, and an idea pulled for self-promotion costs the user, not us.
The chart link opens on a CFD broker's TradingView feed wherever one carries the instrument, so published ideas are filed under that broker's symbol. Shares and ETFs open on their exchange listing (NASDAQ:AAPL). Talk to us if you embed this widget and want your own feed used instead.
The button reuses primaryColor and linkColor from the Share button, so theming one themes both.
It is an outbound link to a third-party platform, so the switch is there if you would rather not point your users at TradingView.
Signals by email
The card carries a Signals by email button beside Share. It opens a short form where the reader leaves their email address to get the DealSize signals email: AI signals for Bitcoin, gold, EUR/USD and more, 30 minutes before the Asia, Europe and US markets open, every weekday. It is free and in the widget's language.
On by default. Hide it with data-show-email-signup="false". As a partner, pass your partner id to get the "Trade now" button described below:
<script
src="https://www.dealsize.ai/dealsize-widget.js"
async
data-widget="trading-signals"
data-symbol="XAUUSD"
data-partner="your-partner-id"
></script>
What the reader gets:
- A confirmation email first. They are subscribed once they click its link, and every email has an unsubscribe link.
- The emails come from DealSize. Each signal in them opens on dealsize.ai, where the reader creates a free account to read it.
- With
data-partner, every signal they open from the emails carries a "Trade now" button with your name, linking to the page you choose. Ask us for a partner id and send us that link. Without it, the signup works the same, without that button. - Readers who follow the widget through to dealsize.ai and sign up for the email there get the same button. We recognise them by the site their first visit came from, so tell us every domain your widget runs on.
Bollinger Bands
The price chart draws Bollinger Bands over the candles: a moving average with an envelope a set number of standard deviations either side of it, so you can see at a glance when price is stretched relative to its recent range.
| Value | What you get |
|---|---|
single | The standard band — a 20-period average with the envelope at ±2σ |
dual | The standard band plus a slower 50-period one, for a wider reference |
off | No overlay. Candles, levels and the pivot line only |
<script
src="https://www.dealsize.ai/dealsize-widget.js"
async
data-widget="trading-signals"
data-symbol="XAUUSD"
data-bollinger="dual"
></script>
The two envelope edges share one colour (teal) because they're two sides of the same boundary; the moving average through the middle gets its own (purple) and is dashed, so it never reads as a third edge. Both adapt to light and dark themes automatically.
Band colours are not affected by bullishColor / bearishColor, and that's deliberate: they mark positions on a statistical envelope rather than brand roles, so your palette can't accidentally make a band edge look like one of the AI's own support or resistance lines on the same chart.
The bands are computed in the browser from the same candles already on the chart, so switching this costs no extra request and never changes the written analysis. Each band is labelled on the chart (Bollinger Bands (20, 2)) and, on devices with a mouse, a hover readout gives you its upper, middle and lower values for that candle.
Periods and multipliers aren't configurable — like the prompt, the chart's visual language is server-owned so it stays coherent across every embed. Tell us if you need a period we don't offer.
RSI
Under the candles sits a second pane with the Relative Strength Index: a 14-period RSI (blue) with a 9-period moving average of it (red) and guide lines at 30, 50 and 70, so overbought and oversold stretches are visible at a glance. On devices with a mouse, the hover readout adds both values for the candle under the cursor.
On by default. Hide it with data-show-rsi="false"; the card then shows the price chart alone.
<script
src="https://www.dealsize.ai/dealsize-widget.js"
async
data-widget="trading-signals"
data-symbol="XAUUSD"
data-show-rsi="false"
></script>
Like the bands, the RSI is computed in the browser from the candles already on the chart, so it costs no extra request. Its colours are fixed and its periods are not configurable, for the same reason the band settings aren't.
Levels and the arrow
Every support, resistance and pivot level is drawn across the chart as a dashed line in its colour, tagged with its price at the right edge. An arrow in the bias colour runs from the newest candle's close to the first target of the preferred scenario that price has not reached yet: the nearest support still below the price for a bearish signal, the nearest resistance still above it for a bullish one. A target the market has already traded through is skipped, and once every target on that side is behind the price there is no arrow, since there is nothing left to point at.
A band needs a full lookback window before it can be drawn, so it starts a little way in from the left edge of the chart rather than at the very first candle. That's expected — drawing it from a partial window would misstate the average.
Sizing (iframe-level, never forwarded)
| Attribute | Default | Notes |
|---|---|---|
data-width | 100% | CSS width of the container |
data-height | 600px | CSS height, or auto to track content height |
data-container-id | generated | Use an existing element as the container |
There are no prompt or model parameters by design. The analysis configuration is server-owned and continuously improved without changes to your embed.