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

EA News Impact

ea news impact.mq5
Вы автор или правообладатель?

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

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

О программе

EA News Impact — советник для MetaTrader 5, предназначенный для фильтрации торговли в периоды выхода важных экономических новостей. Программа получает данные о новостях через внешнюю библиотеку и отображает их на графике в виде информационных меток с указанием страны, уровня влияния, времени и прогнозов.

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

Версия 1.00 от Robotop. Основная обработка событий осуществляется в обработчике OnTick, инициализация — в OnInit. Торговая логика (проверка сигналов и открытие ордеров) в коде не содержится и оставлена для дальнейшей разработки.

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

НастройкаОписание
IN_FilterNews Включает или отключает фильтрацию торговли вокруг выходящих новостей. При активном состоянии советник проверяет наличие значимых новостей и при необходимости приостанавливает торговлю.
IN_Offset Числовой параметр, задающий смещение часового пояса сервера относительно GMT для корректного определения времени выхода новостей.
IN_MinuteBeforeNews Количество минут до выхода новости, в течение которых торговля будет приостановлена. Значение 0 означает отсутствие фильтрации до новости.
IN_MinuteAfterNews Количество минут после выхода новости, в течение которых торговля будет приостановлена. Значение 0 означает отсутствие фильтрации после новости.
IN_ImpactNews Минимальный уровень влияния новостей, которые учитываются фильтром. Доступны варианты: Low (низкий), Medium (средний), High (высокий).
IN_CountryNews Список стран-кодов, разделённых запятыми, для фильтрации новостей. По умолчанию включены USD, GBP, EUR, CAD, JPY, AUD, NZD.
Получить полный код

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

#property version   "1.00"
#property strict

/*
   27 Maret 2023
   Versi 1.00

*/

#define HOLIDAY   0
#define LOW       1
#define MEDIUM    2
#define HIGH      3

struct stDataNews{
   string title;
   string country;
   datetime date;
   int   impact;
   double forecast;
   double previous;

};

bool     P_News   = false;

#import "libNewsFF.ex4"
   bool getNews(int offset=3, int duration=77, string url="");
   int checkPrevNews(int with_in=15, int impact=-1, string filterCountry="");
   int checkNextNews(int with_in=15, int impact=-1, string filterCountry="");
   int getNewsRecord(stDataNews &arrRecord[], int with_in=15, int impact=-1, string filterCountry="");
#import

enum enumNewsImpact{
   eNewsImpactLow,         //Low Impact
   eNewsImpactMedium,      //Medium Impact
   eNewsImpactHigh,        //High Impact

};

input    bool                 IN_FilterNews        = true;                             //Filter News (Stop Trading during News)
input    int                  IN_Offset            = 3;                                //GMT SERVER
input    int                  IN_MinuteBeforeNews  = 15;                               //Before News (0: avoid)
input    int                  IN_MinuteAfterNews   = 30;                               //After News (0: avoid)
input    enumNewsImpact       IN_ImpactNews        = eNewsImpactHigh;                  //Impact
input    string               IN_CountryNews       = "USD, GBP, EUR, CAD, JPY, AUD, NZD"; //Country

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

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

   bool isStopTradingByNews  = false;
   if (IN_FilterNews == true){
      P_News = getNews(IN_Offset);
      if (P_News){
         int NewsInMinute  = IN_MinuteBeforeNews; //Incoming news in xx minutes
         int impact  = IN_ImpactNews;
         string country = IN_CountryNews; //"USD, GBP, EUR";
         if (NewsInMinute > 0 && checkNextNews(NewsInMinute, impact, country) >= 0 ){

            isStopTradingByNews  = true;
         }

         if (!isStopTradingByNews){
            NewsInMinute  = IN_MinuteAfterNews;
            if (NewsInMinute > 0 && checkPrevNews(NewsInMinute, impact, country) >= 0 ){

          

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

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

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

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

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

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

Стоимость полного кода
301,10₽ ≈ $3.68