urdala_news_investing_com_5402521786908705332.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «urdala_news_investing_com_5402521786908705332.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 5, предназначенный для отображения экономических новостей и событий на графике. Получает данные календаря экономических событий из интернет-источника через HTTP-запросы с использованием библиотеки WinInet, анализирует HTML-страницу и извлекает информацию о времени, валюте, важности и названии каждого события.
На графике рисует вертикальные линии в местах наступления новостных событий. Цвет и стиль линий зависят от уровня волатильности события (высокая, умеренная, низкая). Индикатор позволяет фильтровать события по валютным парам и по уровню значимости.
При включённой опции уведомлений индикатор отправляет Alert-сигнал, когда текущее время попадает в заданный интервал до и после ближайшего новостного события по выбранной валюте. Данные новостей обновляются с настраиваемым периодичностью.
Настройки программы
| Настройка | Описание |
|---|---|
| MinDo | Количество минут до наступления новостного события, в пределах которого индикатор фиксирует приближение события и активирует внутренний сигнал. |
| MinPosle | Количество минут после новостного события, в пределах которого проверяется активность сигнала по событию. |
| offset | Смещение часового пояса в часах, применяемое при преобразовании времени новостного события из строки в дату и время. |
| Vhigh | Флаг отображения новостных событий с высоким уровнем волатильности и соответствующей цветовой маркировкой. |
| Vmedium | Флаг отображения новостных событий с умеренным уровнем волатильности и соответствующей цветовой маркировкой. |
| Vlow | Флаг отображения новостных событий с низким уровнем волатильности и соответствующей цветовой маркировкой. |
| NewsSymb | Список валютных символов через запятую для фильтрации отображаемых новостей. Если параметр пуст, используется текущий символ графика. |
| RisovatLini | Флаг включения/выключения отрисовки вертикальных линий на графике для каждого отфильтрованного новостного события. |
| Next | Флаг отображения будущих (ещё не наступивших) новостных событий на графике в виде вертикальных линий. |
| Signal | Флаг включения уведомлений в виде Alert при приближении текущего времени к новостному событию в заданном временном окне. |
| highc | Цвет вертикальной линии для новостных событий с высокой волатильностью. |
| mediumc | Цвет вертикальной линии для новостных событий с умеренной волатильностью. |
| lowc | Цвет вертикальной линии для новостных событий с низкой волатильностью. |
| Style | Стиль вертикальных линий событий на графике (целочисленное значение, соответствующее стилям линий MetaTrader). |
| 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 и перейдите к оплате.