TurboCapitalTurboCapital

SierraChart Indicator

Forex Factory Events

Never Get Blindsided by a News Spike Again.

Forex Factory Events

Forex Factory Events indicator screenshot

Polls the ForexFactory weekly economic calendar JSON feed and draws a styleable vertical line at every event's scheduled time, with an optional rotated text label.

Overview

Economic releases (CPI, NFP, FOMC, GDP, central-bank rate decisions, etc.) drive volatility windows on index futures, FX, and metals. This study fetches the official ForexFactory "this week" JSON, parses every event, and renders each one on the chart as a vertical line so you can see at a glance where the high-impact prints land in your chart timezone.

Default source: https://nfs.faireconomy.media/ff_calendar_thisweek.json — the same feed used by the public ForexFactory calendar page.

How It Works

  1. HTTP poll — issues an HTTPS request to the JSON URL on study load and every Poll Interval minutes thereafter (default 60).
  2. JSON parse — flat scan of the response extracts title, country, date, impact, forecast, previous for every event in the array.
  3. Timezone normalization — each event timestamp carries its own offset (publisher ships NY local time). Parser converts to UTC, then shifts to the chart's configured timezone. Lines render at the correct wall-clock instant regardless of chart TZ.
  4. Filter — events run through impact, currency, title-include, title-exclude, and chart-time window filters.
  5. Draw — surviving events get a vertical line with optional rotated text label. Drawings never save to the chartbook.

Data Fields

The ForexFactory JSON ships flat objects with these fields:

FieldTypeValues
titlestringEvent name, e.g. "CPI y/y", "Non-Farm Employment Change"
countrystringUSD, EUR, GBP, JPY, AUD, NZD, CAD, CHF, CNY
datestringISO 8601 with timezone offset, e.g. 2026-05-26T21:30:00-04:00
impactstringHigh, Medium, Low, Holiday
forecaststringConsensus value (may be empty)
previousstringPrior reading (may be empty)

Inputs

#InputDefaultDescription
0Calendar JSON URLhttps://nfs.faireconomy.media/ff_calendar_thisweek.jsonSource feed URL
1Poll Interval (Minutes)60How often to re-fetch the JSON
2Show: High ImpactYesDraw High-impact events
3Show: Medium ImpactYesDraw Medium-impact events
4Show: Low ImpactNoDraw Low-impact events
5Show: HolidayNoDraw bank holiday markers
6Currencies (CSV)USDComma-separated currency codes. Blank = all
7Title Include Keywords (CSV)(empty)Only draw events whose title contains any of these substrings (case-insensitive). Blank = no include filter
8Title Exclude Keywords (CSV)Speaks,Bank HolidaySkip events whose title contains any of these substrings
9High Impact ColorRed (220, 60, 60)Vertical line + label color for High events
10Medium Impact ColorAmber (230, 160, 50)Color for Medium events
11Low Impact ColorGrey (170, 170, 170)Color for Low events
12Holiday ColorBlue (100, 140, 200)Color for Holiday events
13High Impact Line Width2Pixel width for High lines
14Medium Impact Line Width1Pixel width for Medium lines
15Low Impact Line Width1Pixel width for Low lines
16Holiday Line Width1Pixel width for Holiday lines
17Line Style1 (Dash)0=Solid 1=Dash 2=Dot 3=DashDot 4=DashDotDot
18Transparency Level400=opaque, 100=invisible
19Show Event LabelsYesRender text label alongside line
20Label Font Size8Label text size
21Label: Include CurrencyYesPrefix label with currency code
22Label: Include Impact TagNoPrefix label with [H]/[M]/[L]/[X]
23Label: Include Forecast/PreviousNoAppend (F:... P:...) to label
24Label Vertical Position0 (Top)0=Top of visible range, 1=Middle, 2=Bottom
25Label: Vertical (Rotated) TextYesRotate label 90° so it reads along the line
26Use Chart-Time Window FilterNoRestrict drawing to a time-of-day window
27Window Start00:00:00Chart-time start of allowed window
28Window End23:59:59Chart-time end of allowed window
29Verbose LoggingNoExtra debug output

Filter Logic

For each event, all of the following must pass:

  1. Impact — its impact level must have its Show toggle = Yes.
  2. Currency — if the Currencies CSV is non-empty, the event's country must be in the list.
  3. Title include — if the include keyword CSV is non-empty, the title must contain at least one keyword (case-insensitive substring match).
  4. Title exclude — title must not contain any exclude keyword.
  5. Time window — if enabled, the event's chart-time-of-day must be inside [WindowStart, WindowEnd]. Overnight wrap (e.g. 22:00–06:00) supported.

Displaying Future Events

Sierra Chart clips drawings to the loaded bar range. ForexFactory ships events for the entire current week, so future events render correctly only if the chart has enough forward bars.

Chart Settings → Display → "Number of Bars to Add to End of Chart":

Chart PeriodBars to add for ~1 week forward
1 Min~10,000
5 Min~2,000
15 Min~700
1 Hour~170
Daily~10

Without enough forward bars, all future events stack at the rightmost X position. Past events always render correctly.

Timezone Handling

The study converts every event time through UTC and out to the chart's configured timezone. Examples for 2026-05-26T21:30:00-04:00:

Chart TZLine drawn at
New York (EDT)2026-05-26 21:30
Chicago (CDT)2026-05-26 20:30
London (BST)2026-05-27 02:30
Tokyo (JST)2026-05-27 10:30
UTC2026-05-27 01:30

ISO-8601 Z / z suffix and +HH:MM / -HH:MM offsets all parsed correctly. DST transitions are handled because the publisher updates the offset twice a year.

Installation

  1. Place ForexFactory_64.dll in your Sierra Chart Data folder
  2. Add study to chart: Analysis > Studies > Add Custom Study
  3. Search for "Forex Factory Events"
  4. Set chart's Display → Number of Bars to Add to End of Chart high enough for your bar period so future events render correctly.

Requirements

  • Sierra Chart with internet access for HTTPS calls
  • ForexFactory JSON feed reachable (publicly hosted by FairEconomy)
  • Chart must be in Graph Region 0 (overlay on price)