Примеры: Отображение новостного календаря

 

New article Отображение новостного календаря has been published:

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



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

Author: Slobodov Gleb

 

Чёто прикреплённые файлы не соответствуют тому что написано в статье либо файлов не хватает=\

 

При всем желании даже по трем последним ссылкам ничего не качается.

И ещё если создать все как написано в статье что то не работает. Функция DeleteObjects() вобще не описана.

 
fornax:

При всем желании даже по трем последним ссылкам ничего не качается.



И ещё если создать все как написано в статье что то не работает.
Функция DeleteObjects() вобще не описана.

Да, я заметил что к сожеланию публикация кода в CodeBase требует проверки модератора. Необходимые файлы опубликовал на ifolder:
http://ifolder.ru/4230100

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

Если честно у меня все заработало только когда я заменил все функции прописаные в Time.mq4 на логически верные с учетом врменной зоны)

Спасибо автору давно искал идею автоматической подгрузки на котировки.

 
fornax:

Если честно у меня все заработало только когда я заменил все функции прописаные в Time.mq4 на логически верные с учетом врменной зоны)


Спасибо автору давно искал идею автоматической подгрузки на котировки.



А можно уточнить, что значит логически верные с учетом временной зоны?
Может код продемонстрируете? Когда Вы использовали индикатор в оригинале, был сдвиг новостей что ли?
 
shobvas:А можно уточнить, что значит логически верные с учетом временной зоны?
Может код продемонстрируете? Когда Вы использовали индикатор в оригинале, был сдвиг новостей что ли?
datetime ToDate(string stDate,string stTime) 
{
  
  string WeekDay = StringSubstr(stDate,0,3);
    int WeekPlus = 0;
  if (WeekDay=="Mon") WeekPlus=0;
  if (WeekDay=="Tue") WeekPlus=1;
  if (WeekDay=="Wed") WeekPlus=2;
  if (WeekDay=="Thu") WeekPlus=3;
  if (WeekDay=="Fri") WeekPlus=4;
  if (WeekDay=="Sat") WeekPlus=5;
  if (WeekDay=="Sun") WeekPlus=-1;
    
  datetime Res = PerviousMonday(TimeCurrent())+WeekPlus*24*60*60;
 
  datetime Tm = StrToTime(stTime);
   Res=Res+TimeHour(Tm )*60*60+TimeMinute(Tm )*60+TimeSeconds(Tm )
         -TimeHour(Res)*60*60-TimeMinute(Res)*60-TimeSeconds(Res);  
  if (StringFind(stTime,"PM")>=0)       
    Res+=12*60*60;
  Res=Res+2*60*60;//Для моих котриовок временной пояс +2 часа относительно Гринвича
    return (Res);
}

Ничего особенного просто пояс задается вручную там все новости все равно относительно гривича. У меня только так хоть что-то прорисовалось.

Индикатор судя по алертам зависал где то в области поиска времени со сдвигом.

 
Готовый индикатор новостей можно найти здесь
http://forum.alpari-idc.ru/showthread.php?t=38334
дополнительные программы для скачивания списка новостей не используются
 
fornax:
shobvas:А можно уточнить, что значит логически верные с учетом временной зоны?
Может код продемонстрируете? Когда Вы использовали индикатор в оригинале, был сдвиг новостей что ли?
datetime ToDate(string stDate,string stTime) 
{
  
  string WeekDay = StringSubstr(stDate,0,3);
    int WeekPlus = 0;
  if (WeekDay=="Mon") WeekPlus=0;
  if (WeekDay=="Tue") WeekPlus=1;
  if (WeekDay=="Wed") WeekPlus=2;
  if (WeekDay=="Thu") WeekPlus=3;
  if (WeekDay=="Fri") WeekPlus=4;
  if (WeekDay=="Sat") WeekPlus=5;
  if (WeekDay=="Sun") WeekPlus=-1;
    
  datetime Res = PerviousMonday(TimeCurrent())+WeekPlus*24*60*60;
 
  datetime Tm = StrToTime(stTime);
   Res=Res+TimeHour(Tm )*60*60+TimeMinute(Tm )*60+TimeSeconds(Tm )
         -TimeHour(Res)*60*60-TimeMinute(Res)*60-TimeSeconds(Res);  
  if (StringFind(stTime,"PM")>=0)       
    Res+=12*60*60;
  Res=Res+2*60*60;//Для моих котриовок временной пояс +2 часа относительно Гринвича
    return (Res);
}

Ничего особенного просто пояс задается вручную там все новости все равно относительно гривича. У меня только так хоть что-то прорисовалось.

Индикатор судя по алертам зависал где то в области поиска времени со сдвигом.

А у меняна #include <Time.mqh> ошибка помогие разобрать..