Skip to main content

Configuration

Exports

NameKindDescription
NewsWidgetComponentEconomic calendar analysis overlay for your chart
NewsWidgetPropsTypeProps for NewsWidget
SymbolMapperTypeMapping from iC Candle tickers to your broker’s symbol names
ICCANDLE_TICKERSTypeUnion of all iC Candle ticker strings (keys of SymbolMapper)

NewsWidget props

PropTypeRequiredDescription
chartWidgetIChartingLibraryWidget | nullYesLive TradingView widget instance.
childrenReactNodeYesYour chart UI.
widgetKeystringYesiC Candle API key (theme, chart data, news events, validation).
defaultSymbolstringYesDefault symbol (e.g. XAU_USD, EURUSD). Fallback when symbol is unrecognized or unmapped.
symbolMapperSymbolMapperNoMaps iC Candle tickers to your TradingView symbol names.
chartInterval"1" | "5" | "15" | "30" | "60"YesInitial candle interval in minutes.
theme"light" | "dark" | "system"NoResolved theme tokens and chart overlays.

Widget key and remote theming

On mount:

  • URL: https://api.iccandle.ai/corporate-client/v1/widgetStyle/search/user/?service_type=search
  • Header: api-key: <widgetKey>

CSS custom properties (--iccandle-primary, --iccandle-border, --iccandle-background, --iccandle-text, etc.) are applied on the widget root for light/dark branding.

Theme prop vs. API tokens: The theme prop ("light" | "dark" | "system") chooses which variant of those tokens to apply.

Behavior summary

  • Subscribes to chart readiness, resolution, symbol changes, and drawing events.
  • Displays economic calendar events as interactive timescale marks.
  • On event selection: split layout with detail panel and pip-range visualization.
  • Draws pip-range rectangles, trend lines, and pip annotations on the chart.
  • Fetches similar historical events; shows metadata (actual, forecast, previous).
  • Configurable candle windows (10–50 candles).
  • Stores selected events in localStorage (iccandle:current-news-event) for timescale mark sync.
  • Listens for window message events for chart/news integration.

Chart switching between TradingView and iC Candle

ScenarioChart shown
Older event (~50+ candles after event on selected timeframe)iC Candle history chart via iframe (curated pip-range analysis).
Recent / upcoming event (timeframe not fully elapsed)TradingView in split layout with pip-range overlays on the left; iC Candle iframe on the right.

Symbol handling and limitations

iC Candle’s history chart supports a fixed set of symbols. For currency events, only symbols related to that currency are available in the iC Candle chart.

On TradingView, symbol filtering cannot be controlled by the widget - pip-range overlays apply to the currently active symbol, which may not match the event’s currency.

Symbol name mapping (symbolMapper)

iC Candle and your broker often use different symbol names. Map iC Candle tickers to your chart symbols:

<NewsWidget
chartWidget={chartWidget}
widgetKey="your-api-key"
defaultSymbol="XAUUSD"
chartInterval="15"
theme="dark"
symbolMapper={{
XAUUSD: "GOLD",
USDCAD: "USD_CAD",
EURUSD: "EURUSD",
}}
>
{children}
</NewsWidget>

When the iC Candle iframe sends a symbol change, the widget looks up symbolMapper; if missing, it falls back to defaultSymbol.

Optional: timescale marks (news/events)

If your data feed implements getTimescaleMarks, sync from localStorage key iccandle:current-news-event:

getTimescaleMarks: async (
symbolInfo: LibrarySymbolInfo,
from: number,
to: number,
onResult: GetMarksCallback<TimescaleMark>,
) => {
const marks: TimescaleMark[] = [];

try {
const currentNewsEvent = JSON.parse(
localStorage.getItem("iccandle:current-news-event") || "{}",
) as NewsEventType;

const { id, timestamp, event_name, currency, forecast, previous, actual } =
currentNewsEvent;

if (!id || !Number.isFinite(timestamp) || timestamp <= 0) return;
const hasAlready = marks.some((m) => String(m.id) === String(id));
if (hasAlready) return;

marks.push({
id: id,
time: timestamp / 1000,
color: "green",
label: event_name.slice(0, 1),
tooltip: [
event_name,
`Current Forecast: ${forecast || "-"}`,
`Previous Forecast: ${previous || "-"}`,
`Previous Actual: ${actual || "-"}`,
],
...(currency ? { imageUrl: `/images/symbols/${currency}.svg` } : {}),
});
} catch {
// no-op
}
onResult(marks);
},

License

MIT. TradingView Charting Library is subject to its own license from TradingView.