urdala_news_investing_com.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «urdala_news_investing_com.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор отображает вертикальные линии на графике в соответствии с экономическими новостями, загружаемыми из интернет-источника. Он анализирует важность событий (высокая, средняя, низкая) и привязывает их к валютным парам, отображая линии нужного цвета и стиля на таймшарте.
Индикатор рассчитывает буферное значение, которое становится равно единице, когда текущее время попадает в заданный интервал до или после ближайшего новостного события. Это позволяет визуально и программно отслеживать приближение значимых макроэкономических публикаций.
Данные о новостях обновляются с заданным периодичностью. При включённой опции уведомлений пользователь получает алерты о приближении событий. Параметры фильтрации по валютным парам и уровню важности позволяют настраивать отображение под конкретные задачи.
Время событий корректируется смещением часового пояса. Индикатор работает в окне графика, использует один буфер и поддерживает удаление объектов при деинициализации.
Настройки программы
| Настройка | Описание |
|---|---|
| MinDo | Время в минутах до новостного события, в течение которого буфер индикатора устанавливается в 1. |
| MinPosle | Время в минутах после новостного события, в течение которого буфер индикатора устанавливается в 1. |
| offset | Смещение часового пояса в часах, добавляемое к рассчитанному времени новостного события. |
| Vhigh | Отображать новостные события с высоким уровнем важности. |
| Vmedium | Отображать новостные события со средним уровнем важности. |
| Vlow | Отображать новостные события с низким уровнем важности. |
| NewsSymb | Список валютных символов через запятую для фильтрации новостей. Если пусто, используется текущий символ инструмента. |
| RisovatLini | Включает или отключает отрисовку вертикальных линий для новостных событий на графике. |
| Next | При включении отображаются и прошедшие новостные события на графике. |
| Signal | При включении отправляется уведомление-оповещение при приближении значимого новостного события. |
| highc | Цвет линий для новостных событий с высоким уровнем важности. |
| mediumc | Цвет линий для новостных событий со средним уровнем важности. |
| lowc | Цвет линий для новостных событий с низким уровнем важности. |
| Style | Стиль линий вертикальных объектов на графике. |
| Upd | Интервал в секундах между обновлениями данных о новостях. |
Поиск по коду файла
/*??????? ? nalivator.com*/
#property description "????????? ?????????."
#property description "??????? ????? ? ????? "
#property description "?? ??????? ?? ????????. ?????????? ?????? ??????? ??????."
#property strict
#property indicator_chart_window
#property indicator_buffers 1
extern int MinDo = 30; // ???????????? ????? ?? ???????
extern int MinPosle = 30; // ???????????? ????? ????? ???????
extern int offset = 3; // ??????? ???? ???????
extern bool Vhigh = true; // ?????????? ?????? ???????
extern bool Vmedium = true; // ?????????? ??????? ???????
extern bool Vlow = true; // ?????????? ?????? ???????
extern string NewsSymb = "USD,EUR,GBP,CHF,CAD,AUD,NZD,JPY"; //?????? ??? ?????? ? ???????? (????? - ?????? ??????? ??????)
extern bool RisovatLini = true; // ???????? ????? ?? ???????
extern bool Next = false; // ???????? ?????? ????? ??????? ????????
extern bool Signal = false; // ????????? ? ??????????? ???????
extern color highc = clrRed; // ???? ?????? ????????
extern color mediumc = clrBlue; // ???? ??????? ????????
extern color lowc = clrLime; // ???? ?????? ????????
extern int Style = 2; // ????? ?????
extern int Upd = 86400; // ?????? ?????????? ???????? ? ????????
#import "wininet.dll"
int InternetAttemptConnect(int x);
int InternetOpenW(string sAgent,int lAccessType,
string sProxyName="",string sProxyBypass="",
int lFlags=0);
int InternetOpenUrlW(int hInternetSession,string sUrl,
string sHeaders="",int lHeadersLength=0,
int lFlags=0,int lContext=0);
int InternetReadFile(int hFile,int &sBuffer[],int lNumBytesToRead,
int &lNumberOfBytesRead[]);
int InternetCloseHandle(int hInet);
#import
double Torg[1];
int NomNews = 0;
string NewsArr[4][1000];
int Now=0;
color Col;
datetime LastUpd;
string str1;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
if(UninitializeReason() == REASON_REMOVE)ObjectsDeleteAll(0,OBJ_VLINE);
if(UninitializeReason() == REASON_PARAMETERS)
{
for(int i=0;i<ObjectsTotal();i++)
{
string name = ObjectName(i);
if(ObjectGet(name,OBJPROP_TYPE) == OBJ_VLINE && ObjectGet(name,OBJPROP_TIME) >= iTime(Symbol(),PERIOD_W1,0)){ObjectDelete(name);i--;}
}
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
if(TimeCurrent()-LastUpd>=Upd){Comment("???????? ????????...");Print("???????? ????????...");UpdateNews();LastUpd=TimeCurrent();Comment("");}
WindowRedraw();
if(RisovatLini)
{
for(int i=0;i<NomNews;i++)
{
string Name = StringSubstr(TimeToStr(TimeNewsFunck(i),TIME_MINUTES)+"_"+NewsArr[1][i]+"_"+NewsArr[3][i],0,63);
if(NewsArr[3][i]!="")if(ObjectFind(Name)==0)continue;
if(StringFind(str1,NewsArr[1][i])<0)continue;
if(TimeNewsFunck(i)<TimeCurrent() && Next)continue;
color clrf = clrNONE;
if(Vhigh && StringFind(NewsArr[2][i],"High")>=0 )clrf = highc;
if(Vmedium && StringFind(NewsArr[2][i],"Moderate")>=0)clrf = mediumc;
if(Vlow && StringFind(NewsArr[2][i],"Low")>=0 )clrf = lowc;
if(clrf == clrNONE)continue;
if(NewsArr[3][i]!="")
{
ObjectCreate(Name,0,OBJ_VLINE,TimeNewsFunck(i),0);
ObjectSet(Name,OBJPROP_COLOR,clrf);
ObjectSet(Name,OBJPROP_STYLE,Style);
}
}
}
int i;
Torg[0]=0;
for(i=0;i<NomNews;i++)
{
int power = 0;
if(Vhigh && StringFind(NewsArr[2][i],"High")>=0 )power = 1;
if(Vmedium && StringFind(NewsArr[2][i],"Moderate")>= 0)power = 2;
if(Vlow && StringFind(NewsArr[2][i],"Low")>= 0 )power = 3;
if(power == 0)continue;
if(TimeCurrent()+MinDo*60>TimeNewsFunck(i) && TimeCurrenПоказано первые 50% кода (символов: 6058)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.