← К каталогу
Исходный код · ID 1155

FFC

news on mt4.mq4
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор FFC отображает экономический календарь Forex на графике MetaTrader 4. Он загружает данные о предстоящих событиях из XML-файла ForexFactory, парсит информацию о событиях и отображает их на графике с указанием времени до события и уровня влияния. Поддерживается фильтрация по валютам, уровню влияния и ключевым словам.

Индикатор рисует настраиваемую панель с информацией о ближайших событиях, включая прогноз и предыдущее значение, а также вертикальные линии на графике, отмечающие время событий. Панель настраивается по расположению, цветам и размеру шрифта. Можно показывать дополнительную информацию о символе: силу валюты, время до закрытия свечи и спред.

Система уведомлений поддерживает всплывающие алерты, звуковые сигналы, email и push-уведомления с настраиваемыми временными порогами. Данные календаря обновляются автоматически через заданный интервал. Индикатор предоставляет два буфера для использования в советниках: минуты до ближайшего события и его уровень влияния.

Настройки программы

НастройкаОписание
Report for active chart only (override other inputs) (ReportActive) Только активный график — Показывать события только для валютной пары активного графика
Include high (IncludeHigh) Включить высокое влияние — Отображать события с высоким уровнем влияния
Include medium (IncludeMedium) Включить среднее влияние — Отображать события со средним уровнем влияния
Include low (IncludeLow) Включить низкое влияние — Отображать события с низким уровнем влияния
Include speaks (IncludeSpeaks) Включить Speaks — Включать в отображение события типа Speaks
Include holidays (IncludeHolidays) Включить праздники — Отображать праздничные дни в календаре
Allow updates (AllowUpdates) Разрешить обновления — Автоматически обновлять данные календаря
Update every (in hours) (UpdateHour) Интервал обновления — Периодичность проверки обновлений данных в часах
lb_0 Разделитель — Визуальный разделитель в настройках
> PANEL SETTINGS (lb_1) Настройки панели — Группа параметров отображения панели событий
Show panel (ShowPanel) Показать панель — Отображать панель с информацией о событиях на графике
Show Panel in sub window (AllowSubwindow) Панель в подокне — Размещать панель в подокне графика, а не в основном окне
Panel side (Corner) Угол панели — Угол привязки панели на графике
Panel title (PanelTitle) Заголовок панели — Текст заголовка панели событий
Title color (TitleColor) Цвет заголовка — Цвет текста заголовка панели
Show panel backgroud (ShowPanelBG) Фон панели — Отображать фоновый цвет панели
Panel backgroud color (Pbgc) Цвет фона панели — Цвет фона панели событий
Low impact color (LowImpactColor) Цвет низкого влияния — Цвет маркера для событий с низким влиянием
Medium impact color (MediumImpactColor) Цвет среднего влияния — Цвет маркера для событий со средним влиянием
High impact color (HighImpactColor) Цвет высокого влияния — Цвет маркера для событий с высоким влиянием
Holidays color (HolidayColor) Цвет праздников — Цвет для обозначения праздничных дней
Remarks color (RemarksColor) Цвет заметок — Цвет для текста заметок и прошедших событий
Forecast color (PreviousColor) Цвет прогноза — Цвет для отображения предыдущего значения прогноза
Positive forecast color (PositiveColor) Цвет положительного прогноза — Цвет при прогнозе выше предыдущего значения
Negative forecast color (NegativeColor) Цвет отрицательного прогноза — Цвет при прогнозе ниже предыдущего значения
Show vertical lines (ShowVerticalNews) Вертикальные линии событий — Рисовать вертикальные линии на графике в момент событий
Chart time offset (in hours) (ChartTimeOffset) Смещение времени — Смещение отображаемого времени событий в часах
Hide event after (in minutes) (EventDisplay) Время отображения событий — Время хранения прошедших событий на графике в минутах
lb_2 Разделитель — Визуальный разделитель в настройках
> SYMBOL SETTINGS (lb_3) Настройки символов — Группа параметров фильтрации по валютам
Report for USD (ReportForUSD) Валюта USD — Показывать события, связанные с валютой USD
Report for EUR (ReportForEUR) Валюта EUR — Показывать события, связанные с валютой EUR
Report for GBP (ReportForGBP) Валюта GBP — Показывать события, связанные с валютой GBP
Report for NZD (ReportForNZD) Валюта NZD — Показывать события, связанные с валютой NZD
Report for JPY (ReportForJPY) Валюта JPY — Показывать события, связанные с валютой JPY
Report for AUD (ReportForAUD) Валюта AUD — Показывать события, связанные с валютой AUD
Report for CHF (ReportForCHF) Валюта CHF — Показывать события, связанные с валютой CHF
Report for CAD (ReportForCAD) Валюта CAD — Показывать события, связанные с валютой CAD
Report for CNY (ReportForCNY) Валюта CNY — Показывать события, связанные с валютой CNY
lb_4 Разделитель — Визуальный разделитель в настройках
> INFO SETTINGS (lb_5) Настройки информации — Группа параметров отображения информации о символе
Show Symbol info ( Strength / Bar Time / Spread ) (ShowInfo) Показать информацию — Отображать силу валюты, время до закрытия свечи и спред
Info color (InfoColor) Цвет информации — Цвет информационного текста о символе
Info font size (InfoFontSize) Размер шрифта информации — Размер шрифта для информационного текста
lb_6 Разделитель — Визуальный разделитель в настройках
> NOTIFICATION (lb_7) Настройки уведомлений — Группа параметров системы оповещений
Note: Set (-1) to disable the Alert (lb_8) Разделитель — Визуальный разделитель в настройках уведомлений
Minutes before first Alert (Alert1Minutes) Первое уведомление — За сколько минут до события отправлять первое уведомление
Minutes before second Alert (Alert2Minutes) Второе уведомление — За сколько минут до события отправлять второе уведомление
Popup Alerts (PopupAlerts) Всплывающие уведомления — Показывать всплывающие алерты на графике
Sound Alerts (SoundAlerts) Звуковые уведомления — Воспроизводить звуковой сигнал при уведомлении
Sound file name (AlertSoundFile) Файл звука — Имя файла звукового уведомления
Send email (EmailAlerts) Email-уведомления — Отправлять уведомления по электронной почте
Send push notification (NotificationAlerts) Push-уведомления — Отправлять push-уведомления на мобильное устройство
Получить полный код

Поиск по коду файла

/*
ACKNOWLEDGEMENTS:

derkwehler and other contributors - the core code of the FFCal indicator,
                                    FFCal_v20 dated 07/07/2009, Copyright @ 2006 derkwehler 
                                    
                                    email: d********r*@gmail.com 

deVries   - for his excellent donated work that significantly altered and streamlined the file 
            handling coding to establish compatibility with the new release of MT4 Build 600+,
            and which has resulted in faster code execution.                                     
            (Jobs for deVries  www.mql5.com/en/job/new?prefered=deVries) 
qFish     - for his generously given time and help during the effort to improve this indicator.
atstrader - For a neat new option controlling for what pair/pairs(s) news is shown.

                                                                              - Traderathome, 03-17-2014       
                                                                                email: t**********e*@msn.com 

-------------------------------------------- MAIN MODIFICATIONS --------------------------------------------
------------------------------------------------------------------------------------------------------------

These modifications were applied to 03-17-2014 release founded here: 

    Added: #property strict for compatibility with MT4 Build 600+ and better code quality.
    Added: Show event Previous/Forecast. (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 below)
    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 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.

-------------------------------------------- HOW TO USE BUFFERS --------------------------------------------
------------------------------------------------------------------------------------------------------------

For use in an EA, the indicator holds 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)

*Please note that the indicator will not work on strategy tester

------------------------------------------------- EXAMPLES -------------------------------------------------
------------------------------------------------------------------------------------------------------------
Simple call: 
-------------
NOTE: if you use the simple call method, 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
        string       "",              // Ignore keyword
        bool         true,            // true/false: Allow Updates
        int          4,               // Update every (in hours)
        int          0,               // Buffers: (0) Minutes, (1) Impact
        int          0                // shift 
        );

                                                                                  - Awran5, 08-14-2016
                                                                                    email: a****5*@yahoo.com

-------------------------------------------------- HEADER ----------------------------------------------------
--------------------------------------------------------------------------------------------------------------
*/

#property description "Modified version of FF Calendar Indicator with new features"
#property version "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2

#import "urlmon.dll"
int URLDownloadToFileW(int pCaller,string szURL,string szFileName,int dwReserved,int Callback);
#import

#define INAME     "FFC"
#define TITLE		0
#define COUNTRY	1
#define DATE		2
#define TIME		3
#define IMPACT		4
#define FORECAST	5
#define PREVIOUS	6

extern bool    ReportActive      = false;                // Report for active chart only (override other inputs)
extern bool    IncludeHigh       = true;                 // Include high
extern bool    IncludeMedium     = true;                 // Include medium
extern bool    IncludeLow        = true;                 // Include low
extern bool    IncludeSpeaks     = true;                 // Include speaks
extern bool    IncludeHolidays   = false;                // Include holidays
extern string  FindKeyword       = "";                   // Find keyword
extern string  IgnoreKeyword     = "";                   // Ignore keyword
extern bool    AllowUpdates      = true;                 // Allow updates
extern int     UpdateHour        = 4;                    // Update every (in hours)
input string   lb_0              = "";                   // ------------------------------------------------------------
input string   lb_1              = "";                   // ------> PANEL SETTINGS
extern bool    ShowPanel         = true;                 // Show panel
extern bool    AllowSubwindow    = false;                // Show Panel in sub window
extern ENUM_BASE_CORNER Corner   = 2;                    // Panel side
extern string  PanelTitle="Forex Calendar @ Forex Factory"; // Panel title
extern color   TitleColor        = C'46,188,46';         // Title color
extern bool    ShowPanelBG       = true;                 // Show panel backgroud
extern color   Pbgc              = C'25,25,25';          // Panel backgroud color
extern color   LowImpactColor    = C'91,192,222';        // Low impact color 
extern color   MediumImpactColor = C'255,185,83';        // Medium impact color      
extern color   HighImpactColor   = C'217,83,79';         // High impact color
extern color   HolidayColor      = clrOrchid;            // Holidays color
extern color   RemarksColor      = clrGray;              // Remarks color
extern color   PreviousColor     = C'170,170,170';       // Forecast color
extern color   PositiveColor     = C'46,188,46';         // Positive forecast color
extern color   NegativeColor     = clrTomato;            // Negative forecast color
extern bool    ShowVerticalNews  = true;                 // Show vertical lines
extern int     ChartTimeOffset   = 0;                    // Chart time offset (in hours)
extern int     EventDisplay      = 10;                   // Hide event after (in minutes)
input string   lb_2              = "";                   // ------------------------------------------------------------
input string   lb_3              = "";                   // ------> SYMBOL SETTINGS
extern bool    ReportForUSD      = true;                 // Report for USD
extern bool    ReportForEUR      = true;                 // Report for EUR
extern bool    ReportForGBP      = true;                 // Report for GBP
extern bool    ReportForNZD      = true;                 // Report for NZD
extern bool    ReportForJPY      = true;                 // Report for JPY
extern bool    ReportForAUD      = true;                 // Report for AUD
extern bool    ReportForCHF      = true;                 // Report for CHF
extern bool    ReportForCAD      = true;                 // Report for CAD
extern bool    ReportForCNY      = false;                // Report for CNY
input string   lb_4              = "";                   // ------------------------------------------------------------
input string   lb_5              = "";                   // ------> INFO SETTINGS
extern bool    ShowInfo          = true;                 // Show Symbol info ( Strength / Bar Time / Spread )
extern color   InfoColor         = C'255,185,83';        // Info color
extern int     InfoFontSize      = 8;                    // Info font size
input string   lb_6              = "";                   // ------------------------------------------------------------
input string   lb_7              = "";                   // ------> NOTIFICATION
input string   lb_8              = "";                   // *Note: Set (-1) to disable the Alert
extern int     Alert1Minutes     = 30;                   // Minutes before first Alert 
extern int     Alert2Minutes     = -1;                   // Minutes before second Alert
extern bool    PopupAlerts       = false;                // Popup Alerts
extern bool    SoundAlerts       = true;                 // Sound Alerts
extern string  AlertSoundFile    = "news.wav";           // Sound file name
extern bool    EmailAlerts       = false;                // Send email
extern bool    NotificationAlerts= false;                // Send push notification

string xmlFileName;
string sData;
string Event[200][7];
string eTitle[10],eCountry[10],eImpact[10],eForecast[10],ePrevious[10];
int eMinutes[10];
datetime eTime[10];
int anchor,x0,x1,x2,xf,xp;
int Factor;

bool FirstAlert;
bool SecondAlert;
datetime AlertTime;

double MinuteBuffer[];
double ImpactBuffer[];

datetime xmlModifed;
int TimeOfDay;
datetime Midnight;
bool IsEvent;

int OnInit()
  {
      // код доступен только после оплаты
   }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],

Показано первые 50% кода (символов: 19168)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 916,80₽ ≈ $23.43