This is a modified version of the popular news indicator FFCal which was published initially by DerkWehler to ForexFactory forum. Actually, I’ve modified the code to suit my needs but I found that it may be useful for others as well so I decided to share it. I have rewritten the indicator so you can consider it almost “build from scratch” of the original. Yet, it shares the same techniques and main style.
The indicator places a panel on your chart that shows 5 economic events listed on the Forex Factory Calendar. You can filter out/in the events of High, Medium, or Low impact, Speaks, Holidays or by specific keyword filter. Please see all modifications listed below.
Also, the indicator can be called within an EA using the iCustom() function by accessing 2 buffers:
- Buffer (0) contains minutes until the most recent event.
- Buffer (1) contains impact value for the most recent event (Low = 1, Medium = 2, High = 3).
You can call buffers in two ways:
Simple call: (default values will be applied)
int EventMinute = (int)iCustom(NULL,0,"FFC",0,0); if(EventMinute == 30) { .. YOUR CODE .. } // 30 minutes before the event int EventImpact = (int)iCustom(NULL,0,"FFC",1,0); if(EventImpact == 3)Â Â { .. YOUR CODE .. } // High impact event
Advanced call:
iCustom(         string      NULL,            // symbol         int          0,              // timeframe         string      "FFC",          // path/name of the custom indicator compiled program         bool        true,            // true/false: Active chart only         bool        true,            // true/false: Include High impact         bool        true,            // true/false: Include Medium impact         bool        true,            // true/false: Include Low impact         bool        true,            // true/false: Include Speaks         bool        false,          // true/false: Include Holidays         string      "",              // Find keyword (case-sensitive)         string      "",              // Ignore keyword (case-sensitive)         bool        true,            // true/false: Allow Updates         int         4,              // Update every (in hours)         int          0,              // Buffers: (0) Minutes, (1) Impact         int          0                // shift         );
*Please note that the indicator does not have (at this stage) back-testing capabilities.
Suggested style:
- High Impact color = C’217,83,79′
- Med Impact color = C’255,185,83′
- Low Impact color = C’91,192,222′
- Holidays color = clrOrchid
- Remarks color = clrDimGray
Calendar legend:
- m/m: Month Over Month
- q/q: Quarter Over Quarter
- y/y: Year Over Year
- K Thousand
- M Million
- B Billion
- T Trillion
Modifications:
- Added: #property strict for compatibility with MetaTrader 4 Build 600+ and better code quality.
- Added: Show event Previous/Forecast impact (colored impact).
- Added: Option to show events related to active chart only (override other parameters)
- Added: Keyword filter. Find or Ignore a specific one word, i.e. “NFP”, will filter out all events with/without only that word. (case-sensitive)
- Added: Option to show currency strength / bar time left / spread value.
- Added: Option to control the time for display of past events (in minutes).
- Added: Option to set panel location in 4 chart corners.
- Added: Tool-tip on mouse hover that shows event title, impact and event time left.
- Added: Panel title. You can use it as a reminder note 🙂
- Modified: Show event in “Date/Time format” instead of minutes left (you can show minutes left through Tool-tip)
- Modified: Vertical lines for the upcoming events. (You may need to modify the “time offset” input depending on your broker time).
- Modified: Buffers that holds the upcoming event minute and impact (see examples above)
- Modified: Revised order of External Inputs.
- Improved: Replaced DownLoadWebPageToFile() function with native Windows URLDownloadToFileW() function.
- Improved: Placed (download/read XML file) and related codes into a functions so we can call them when needed.
- Improved: Replaced “GlobalVariables” that used to update XML file with FILE_MODIFY_DATE – OnTimer() set by “AllowUpdates”, “UpdateHour” inputs.
- Improved: Time GMT offset, now the events will show in your local time automatically.
- Improved: Justify the panel/text when set to right/left.
- Improved: Alert function, Now it will send beside the Popup Alert: sound alert, Push notification on your phone and Emails. (two separate alerts)
- Improved: Code quality, now the indicator is lighter and faster than ever.
- Fixed: Various bug fixes, some unnecessary/unused codes or variables removed, placed some variables inside their related functions.
Real Authors:
- DerkWehler
- traderathome
- deVries
- qFish
- atstrader
Credit:
- JimDandy
- WHRoeder
- RaptorUK
* In order to use this indicator, you need to turn on DLL Imports in your MetaTrader 4 platform options.
* Please be aware that the code may have some bugs or other flaws, so if you see any bugs or suggestions, or even better code practice, please let me know.
* According to Forex Factory website, all event times are approximate and subject to change.