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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.