Market Impact Calendar📌 Monthly economic-impact calendar with daily scoring, trading-session weighting, DST schedules, and a synthetic market bulletin.
▌WHY THIS INDICATOR IS USEFUL
Market Impact Calendar was designed for a simple purpose: not just to display economic releases, but to help estimate their potential weight on a trading day.
Instead of a simple news list, the indicator provides a more structured reading:
- a monthly calendar directly on the chart,
- a daily impact score,
- weighting based on your own trading sessions,
- integration of special US market days,
- daylight saving time (DST) schedule information,
- and a bulletin mode to summarize the selected day quickly.
The goal is not to predict the market, but to provide a visual decision-support tool helping traders identify whether a day looks calm, moderate, or sensitive.
▌CREDITS & TECHNICAL BASE
This indicator uses the public Pine libraries “forex_factory_decoding” and “forex_factory_utility” from the original open-source work by toodegrees, based on Forex Factory data handling.
The main script, calendar logic, scoring system, interface, bulletin logic, trading-session weighting, special US day handling, and DST integration were developed in this version by E2PZ Continuum.
▌WHAT THIS INDICATOR DOES
The indicator processes economic releases through the imported libraries, then reorganizes them into a market-impact-oriented structure:
- classification of releases by time segment,
- grouping by day,
- filtering by impact level,
- weighting based on the related currency,
- weighting based on your trading hours,
- optional bonuses for major event types,
- final synthesis into a daily score and visual calendar display.
Each calendar day is therefore simplified into an operational reading:
- green = generally light day,
- orange = moderately sensitive day,
- red = potentially heavier or riskier day.
▌WHAT MAKES THIS VERSION ORIGINAL
This indicator is not a simple repackaging of raw economic data.
Its added value comes from:
- a full monthly calendar view directly displayed on the chart,
- a trading-oriented daily impact score,
- custom weighting through up to three trading-session levels,
- integration of US holidays, special days, and partial closes,
- DST information displayed in tooltips,
- manual navigation by day / month / year,
- a “Bulletin” mode turning the selected day into a readable editorial summary,
- bilingual English / French interface support,
- and a user-oriented reading logic designed to help decision-making rather than simply listing releases.
▌HOW TO USE IT
1. Choose whether to display the calendar, the bulletin, or both.
2. Select your timezone.
3. Configure your primary, secondary, and tertiary trading sessions.
4. Select which news impact levels should be included.
5. Navigate through the month or manually select a specific day.
6. Use Bulletin mode if you want a more narrative summary of the selected day.
Quick reading:
- a colored cell gives a visual estimate of the day’s sensitivity,
- the cell tooltip details time windows, related currencies, and major events,
- the information bar or bulletin summarizes the selected day.
▌MAIN SETTINGS
CALENDAR / BULLETIN
Displays the monthly calendar, the editorial bulletin, or both at the same time.
TIMEZONE
Converts displayed times into the selected timezone.
TRADING HOURS
Lets you define up to three personal trading windows.
Releases occurring inside these windows do not receive the same weight in the daily score.
NEWS FILTER
Selects which impact levels are used in the calculation and display.
SELECTION
Lets you manually browse a specific day, month, or year.
LANGUAGE
Switches between English and French display.
ADDITIONAL MARKETS (DST)
Adds optional markets to the schedule information shown during clock changes.
▌HOW THE SCORE SHOULD BE INTERPRETED
The daily score is a synthetic estimate.
It is not an absolute truth about future volatility.
It combines multiple elements:
- release importance,
- related currency,
- release timing,
- proximity to your trading sessions,
- clustering of multiple releases on the same day,
- and the context of special US market days.
This means that a red day does not guarantee strong volatility, and a green day does not guarantee a quiet market.
▌WARNINGS & LIMITATIONS
This indicator depends on an external source related to economic releases.
Like any third-party source, it may occasionally be delayed, incomplete, or partially updated.
The displayed score remains an internal estimate.
It helps rank days, but it does not replace personal analysis or manual verification of important releases.
Some future dates may remain neutral until the source has published the corresponding weekly data.
This indicator is designed as a preparation and decision-support tool, not as an automatic entry or exit signal.
▌USE CASES
This indicator can be useful to:
- avoid trading blind on sensitive macro days,
- quickly identify high-density economic days,
- adjust vigilance according to your trading session,
- prepare your week or your session in advance,
- filter days that look calmer or more sensitive.
▌SUMMARY
Market Impact Calendar aims to transform a raw flow of economic releases into a structured, visual, and operational reading for traders.
The goal is not just to see the news.
The goal is to better understand when a day deserves more attention — and why. Indicator

HolidayLibrary "Holiday"
- Full Control over Holidays and Daylight Savings Time (DLS)
The Holiday Library is an essential tool for traders and analysts who engage in backtesting and live trading . This comprehensive library enables the incorporation of crucial calendar elements - specifically Daylight Savings Time (DLS) adjustments and public holidays - into trading strategies and backtesting environments.
Key Features:
- DLS Adjustments: The library takes into account the shifts in time due to Daylight Savings. This feature is particularly vital for backtesting strategies, as DLS can impact trading hours, which in turn affects the volatility and liquidity in the market. Accurate DLS adjustments ensure that backtesting scenarios are as close to real-life conditions as possible.
- Comprehensive Holiday Metadata: The library includes a rich set of holiday metadata, allowing for the detailed scheduling of trading activities around public holidays. This feature is crucial for avoiding skewed results in backtesting, where holiday trading sessions might differ significantly in terms of volume and price movement.
- Customizable Holiday Schedules: Users can add or remove specific holidays, tailoring the library to fit various regional market schedules or specific trading requirements.
- Visualization Aids: The library supports on-chart labels, making it visually intuitive to identify holidays and DLS shifts directly on trading charts.
Use Cases:
1. Strategy Development: When developing trading strategies, it’s important to account for non-trading days and altered trading hours due to holidays and DLS. This library enables a realistic and accurate representation of these factors.
2. Risk Management: Trading around holidays can be riskier due to thinner liquidity and greater volatility. By integrating holiday data, traders can better manage their risk exposure.
3. Backtesting Accuracy: For backtesting to be effective, it must simulate the actual market conditions as closely as possible. Incorporating holidays and DLS adjustments contributes to more reliable and realistic backtesting results.
4. Global Trading: For traders active in multiple global markets, this library provides an easy way to handle different holiday schedules and DLS shifts across regions.
The Holiday Library is a versatile tool that enhances the precision and realism of trading simulations and strategy development . Its integration into the trading workflow is straightforward and beneficial for both novice and experienced traders.
EasterAlgo(_year)
Calculates the date of Easter Sunday for a given year using the Anonymous Gregorian algorithm.
`Gauss Algorithm for Easter Sunday` was developed by the mathematician Carl Friedrich Gauss
This algorithm is based on the cycles of the moon and the fact that Easter always falls on the first Sunday after the first ecclesiastical full moon that occurs on or after March 21.
While it's not considered to be 100% accurate due to rare exceptions, it does give the correct date in most cases.
It's important to note that Gauss's formula has been found to be inaccurate for some 21st-century years in the Gregorian calendar. Specifically, the next suggested failure years are 2038, 2051.
This function can be used for Good Friday (Friday before Easter), Easter Sunday, and Easter Monday (following Monday).
en.wikipedia.org
Parameters:
_year (int) : `int` - The year for which to calculate the date of Easter Sunday. This should be a four-digit year (YYYY).
Returns: tuple - The month (1-12) and day (1-31) of Easter Sunday for the given year.
easterInit()
Inits the date of Easter Sunday and Good Friday for a given year.
Returns: tuple - The month (1-12) and day (1-31) of Easter Sunday and Good Friday for the given year.
isLeapYear(_year)
Determine if a year is a leap year.
Parameters:
_year (int) : `int` - 4 digit year to check => YYYY
Returns: `bool` - true if input year is a leap year
method timezoneHelper(utc)
Helper function to convert UTC time.
Namespace types: series int, simple int, input int, const int
Parameters:
utc (int) : `int` - UTC time shift in hours.
Returns: `string`- UTC time string with shift applied.
weekofmonth()
Function to find the week of the month of a given Unix Time.
Returns: number - The week of the month of the specified UTC time.
dayLightSavingsAdjustedUTC(utc, adjustForDLS)
dayLightSavingsAdjustedUTC
Parameters:
utc (int) : `int` - The normal UTC timestamp to be used for reference.
adjustForDLS (bool) : `bool` - Flag indicating whether to adjust for daylight savings time (DLS).
Returns: `int` - The adjusted UTC timestamp for the given normal UTC timestamp.
getDayOfYear(monthOfYear, dayOfMonth, weekOfMonth, dayOfWeek, lastOccurrenceInMonth, holiday)
Function gets the day of the year of a given holiday (1-366)
Parameters:
monthOfYear (int)
dayOfMonth (int)
weekOfMonth (int)
dayOfWeek (int)
lastOccurrenceInMonth (bool)
holiday (string)
Returns: `int` - The day of the year of the holiday 1-366.
method buildMap(holidayMap, holiday, monthOfYear, weekOfMonth, dayOfWeek, dayOfMonth, lastOccurrenceInMonth, closingTime)
Function to build the `holidaysMap`.
Namespace types: map
Parameters:
holidayMap (map) : `map` - The map of holidays.
holiday (string) : `string` - The name of the holiday.
monthOfYear (int) : `int` - The month of the year of the holiday.
weekOfMonth (int) : `int` - The week of the month of the holiday.
dayOfWeek (int) : `int` - The day of the week of the holiday.
dayOfMonth (int) : `int` - The day of the month of the holiday.
lastOccurrenceInMonth (bool) : `bool` - Flag indicating whether the holiday is the last occurrence of the day in the month.
closingTime (int) : `int` - The closing time of the holiday.
Returns: `map` - The updated map of holidays
holidayInit(addHolidaysArray, removeHolidaysArray, defaultHolidays)
Initializes a HolidayStorage object with predefined US holidays.
Parameters:
addHolidaysArray (array) : `array` - The array of additional holidays to be added.
removeHolidaysArray (array) : `array` - The array of holidays to be removed.
defaultHolidays (bool) : `bool` - Flag indicating whether to include the default holidays.
Returns: `map` - The map of holidays.
Holidays(utc, addHolidaysArray, removeHolidaysArray, adjustForDLS, displayLabel, defaultHolidays)
Main function to build the holidays object, this is the only function from this library that should be needed. \
all functionality should be available through this function. \
With the exception of initializing a `HolidayMetaData` object to add a holiday or early close. \
\
**Default Holidays:** \
`DLS begin`, `DLS end`, `New Year's Day`, `MLK Jr. Day`, \
`Washington Day`, `Memorial Day`, `Independence Day`, `Labor Day`, \
`Columbus Day`, `Veterans Day`, `Thanksgiving Day`, `Christmas Day` \
\
**Example**
```
HolidayMetaData valentinesDay = HolidayMetaData.new(holiday="Valentine's Day", monthOfYear=2, dayOfMonth=14)
HolidayMetaData stPatricksDay = HolidayMetaData.new(holiday="St. Patrick's Day", monthOfYear=3, dayOfMonth=17)
HolidayMetaData addHolidaysArray = array.from(valentinesDay, stPatricksDay)
string removeHolidaysArray = array.from("DLS begin", "DLS end")
܂Holidays = Holidays(
܂ utc=-6,
܂ addHolidaysArray=addHolidaysArray,
܂ removeHolidaysArray=removeHolidaysArray,
܂ adjustForDLS=true,
܂ displayLabel=true,
܂ defaultHolidays=true,
܂ )
plot(Holidays.newHoliday ? open : na, title="newHoliday", color=color.red, linewidth=4, style=plot.style_circles)
```
Parameters:
utc (int) : `int` - The UTC time shift in hours
addHolidaysArray (array) : `array` - The array of additional holidays to be added
removeHolidaysArray (array) : `array` - The array of holidays to be removed
adjustForDLS (bool) : `bool` - Flag indicating whether to adjust for daylight savings time (DLS)
displayLabel (bool) : `bool` - Flag indicating whether to display a label on the chart
defaultHolidays (bool) : `bool` - Flag indicating whether to include the default holidays
Returns: `HolidayObject` - The holidays object | Holidays = (holidaysMap: map, newHoliday: bool, holiday: string, dayString: string)
HolidayMetaData
HolidayMetaData
Fields:
holiday (series string) : `string` - The name of the holiday.
dayOfYear (series int) : `int` - The day of the year of the holiday.
monthOfYear (series int) : `int` - The month of the year of the holiday.
dayOfMonth (series int) : `int` - The day of the month of the holiday.
weekOfMonth (series int) : `int` - The week of the month of the holiday.
dayOfWeek (series int) : `int` - The day of the week of the holiday.
lastOccurrenceInMonth (series bool)
closingTime (series int) : `int` - The closing time of the holiday.
utc (series int) : `int` - The UTC time shift in hours.
HolidayObject
HolidayObject
Fields:
holidaysMap (map) : `map` - The map of holidays.
newHoliday (series bool) : `bool` - Flag indicating whether today is a new holiday.
activeHoliday (series bool) : `bool` - Flag indicating whether today is an active holiday.
holiday (series string) : `string` - The name of the holiday.
dayString (series string) : `string` - The day of the week of the holiday. Library

Indicator

Indicator

Indicator
