Новая версия платформы MetaTrader 5 build 3280: Улучшения и исправления по отзывам трейдеров - страница 4

 
Guilherme Mendonca # :


Я надеюсь, что в следующем обновлении для мобильных устройств (ios) MT5 должен дать "магический номер" для информации о сделках и позициях.

Невозможно следить за сделками в мобильном, когда вы используете несколько советников с разными магическими номерами.

Попробуйте использовать комментарий для каждой сделки.

 

В индикаторе через CopyTime() делаю запрос на получение данных с месячного таймфрейма. Если график открывается в первый раз, то получить менее 300 баров по символу GBPCHF заняло 117 секунд.

Видео: https://drive.google.com/file/d/10KW5Usa1ZVONRghSZCHuji4h3CDQVma-/view?usp=sharing

В справке есть такое упоминание, что данные любого ТФ подготавливаются независимо от данных других ТФ:

Непонятно, почему так много времени требуется для копирования 300 баров другого ТФ. Для индикатора в истории часто нужны только значения баров OLHC и не требуется внутренняя вложенность от других ТФ. Как-то можно ускорить этот момент? Этот же код в МТ4 выполняется менее чем за 0,05 сек.

Файлы:
 

Копируем по времени:

int cHigh=CopyHigh(_Symbol,0,T1,T2,_high);

Если начальное время попало на несуществующий бар - было позднее открытие сессии, а это часто бывает НЕ по форекс-символам,

то функция возвращает -1, что не совсем логично. Более правильно возвращать ближайший найденный.

 

Доброго времени.

А где скачать последний билд: 

MetaTrader 5 build 3280


По ссылке только мартовский... 2361... :-(

 
Oleg_Filatov #:

Доброго времени.

А где скачать последний билд: 

MetaTrader 5 build 3280


По ссылке только мартовский... 2361... :-(

 
 
Oleg_Filatov #:

Доброго времени.

А где скачать последний билд: 

MetaTrader 5 build 3280


По ссылке только мартовский... 2361... :-(

32-разрядный уже давно не обновляется...

 

Спасибо за быстрый ответ.

Это засада...

 

Появился вопрос. Как программно инициировать загрузку/обновление встроенного Экономического календаря в терминале MT5 ?

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

В советнике я сделал постоянный запрос (на каждом тике) функций CalendarEventByCurrency и CalendarValueHistoryByEvent, пока список новостей пуст. И в процессе работы советника список появляется только тогда, когда открываешь вкладку "Календарь". То что я описал выше. Вот кусок кода:

   struct SNews {
      datetime    time;
      string      currency;
      string      importance;
      string      name;
   };

   SNews news_list[];
//...
   Currencies[0] = SymbolInfoString(news_symbol, SYMBOL_CURRENCY_BASE);
   Currencies[1] = SymbolInfoString(news_symbol, SYMBOL_CURRENCY_PROFIT);
   //printf("Currencies[0]: %s   Currencies[1]: %s", Currencies[0], Currencies[1]);
   MqlCalendarValue values[];
   MqlCalendarEvent events[];
   int events_count[2];
   int count=0;

   for(int i=0; i<2; i++) {
      events_count[i]=CalendarEventByCurrency(Currencies[i], events);
      if(events_count[i]>0)
         for(int l=0; l<events_count[i]; l++) {
            if(events[l].importance != CALENDAR_IMPORTANCE_LOW &&
               events[l].importance != CALENDAR_IMPORTANCE_MODERATE &&
               events[l].importance != CALENDAR_IMPORTANCE_HIGH) continue;

            if(CalendarValueHistoryByEvent(events[l].id, values, date_from, date_to))
               for(int j=0; j<ArraySize(values); j++) {
                  //Print((string)values[j].time + "  " + Currencies[i] + "  " + events[l].name + "  " + EnumToString(events[l].importance));
                  ArrayResize(news_list, count+1, SIZE_NEWS_ARRAY);
                  news_list[count].time = values[j].time;
                  news_list[count].currency = Currencies[i];
                  news_list[count].importance = events[l].importance==CALENDAR_IMPORTANCE_LOW?"Low":(events[l].importance==CALENDAR_IMPORTANCE_MODERATE?"Moderate":"High");
                  news_list[count].name = events[l].name;
                  count++;
               }
         }      
   }
   printf("There are %d news items on the %s", count, news_symbol);
   if(count==0) return false;

При включении терминала получаю это:

...
RS      0       16:53:02.834    ePositiveNight (GBPAUD,M5)      There are 0 news items on the GBPAUD
JS      0       16:53:02.843    ePositiveNight (USDCHF,M5)      There are 0 news items on the USDCHF
LR      0       16:53:02.876    ePositiveNight (EURUSD,M5)      There are 0 news items on the EURUSD
IR      0       16:53:02.934    ePositiveNight (EURAUD,M5)      There are 0 news items on the EURAUD
PQ      0       16:53:02.951    ePositiveNight (NZDUSD,M5)      There are 0 news items on the NZDUSD
FQ      0       16:53:02.957    ePositiveNight (GBPJPY,M5)      There are 0 news items on the GBPJPY
QP      0       16:53:02.970    ePositiveNight (EURJPY,M5)      There are 0 news items on the EURJPY
QP      0       16:53:03.106    ePositiveNight (GBPUSD,M5)      There are 0 news items on the GBPUSD
MO      0       16:53:03.209    ePositiveNight (GBPCAD,M5)      There are 0 news items on the GBPCAD
QO      0       16:53:03.241    ePositiveNight (USDCAD,M5)      There are 0 news items on the USDCAD
KN      0       16:53:03.292    ePositiveNight (USDJPY,M5)      There are 0 news items on the USDJPY
LN      0       16:53:03.312    ePositiveNight (EURGBP,M5)      There are 0 news items on the EURGBP
FM      0       16:53:03.323    ePositiveNight (NZDCHF,M5)      There are 0 news items on the NZDCHF
QM      0       16:53:03.403    ePositiveNight (AUDUSD,M5)      There are 0 news items on the AUDUSD
JL      0       16:53:03.633    ePositiveNight (GBPAUD,M5)      There are 0 news items on the GBPAUD
GL      0       16:53:03.638    ePositiveNight (USDCHF,M5)      There are 0 news items on the USDCHF
FK      0       16:53:03.651    ePositiveNight (EURUSD,M5)      There are 0 news items on the EURUSD
JK      0       16:53:03.718    ePositiveNight (GBPJPY,M5)      There are 0 news items on the GBPJPY
EJ      0       16:53:03.726    ePositiveNight (EURJPY,M5)      There are 0 news items on the EURJPY
MJ      0       16:53:03.740    ePositiveNight (EURAUD,M5)      There are 0 news items on the EURAUD
GI      0       16:53:03.858    ePositiveNight (GBPUSD,M5)      There are 0 news items on the GBPUSD
EI      0       16:53:03.957    ePositiveNight (GBPCAD,M5)      There are 0 news items on the GBPCAD
FH      0       16:53:04.014    ePositiveNight (USDCAD,M5)      There are 0 news items on the USDCAD
OH      0       16:53:04.064    ePositiveNight (USDJPY,M5)      There are 0 news items on the USDJPY
IG      0       16:53:04.154    ePositiveNight (EURGBP,M5)      There are 0 news items on the EURGBP
CG      0       16:53:04.169    ePositiveNight (NZDCHF,M5)      There are 0 news items on the NZDCHF
RF      0       16:53:04.191    ePositiveNight (AUDUSD,M5)      There are 0 news items on the AUDUSD
QE      0       16:53:04.472    ePositiveNight (GBPAUD,M5)      There are 45 news items on the GBPAUD
ME      0       16:53:04.547    ePositiveNight (GBPJPY,M5)      There are 31 news items on the GBPJPY
NS      0       16:53:04.547    ePositiveNight (NZDUSD,M5)      There are 83 news items on the NZDUSD
OE      0       16:53:04.583    ePositiveNight (EURAUD,M5)      There are 101 news items on the EURAUD
OH      0       16:53:04.586    ePositiveNight (EURJPY,M5)      There are 87 news items on the EURJPY
EH      0       16:53:05.270    ePositiveNight (USDCAD,M5)      There are 86 news items on the USDCAD
KF      0       16:53:05.270    ePositiveNight (GBPUSD,M5)      There are 95 news items on the GBPUSD
IH      0       16:53:05.300    ePositiveNight (USDJPY,M5)      There are 80 news items on the USDJPY
NP      0       16:53:05.364    ePositiveNight (EURGBP,M5)      There are 102 news items on the EURGBP
IS      0       16:53:05.393    ePositiveNight (GBPCAD,M5)      There are 37 news items on the GBPCAD
JI      0       16:53:05.393    ePositiveNight (AUDUSD,M5)      There are 94 news items on the AUDUSD
RS      0       16:53:05.484    ePositiveNight (NZDCHF,M5)      There are 19 news items on the NZDCHF
RE      0       16:53:05.980    ePositiveNight (EURUSD,M5)      There are 151 news items on the EURUSD
NI      0       16:53:06.724    ePositiveNight (USDCHF,M5)      There are 80 news items on the USDCHF
JQ      0       16:53:23.697    ePositiveNight (AUDNZD,M5)      There are 33 news items on the AUDNZD
MI      0       16:53:43.891    ePositiveNight (AUDCAD,M5)      There are 36 news items on the AUDCAD

Новости подгружаются только после того, как откроешь в терминале вкладку "Календарь".

Функция

Действие

CalendarCountryById

Получает описание страны по её идентификатору

CalendarEventById

Получает описание события по его идентификатору

CalendarValueById

Получает описание значения события по его идентификатору

CalendarCountries

Получает массив описаний стран, доступных в Календаре

CalendarEventByCountry

Получает массив описаний всех событий, доступных в Календаре, по указанному коду страны

CalendarEventByCurrency

Получает массив описаний всех событий, доступных в Календаре, по указанной валюте

CalendarValueHistoryByEvent

Получает массив значений по всем событиям на заданном диапазоне времени по идентификатору события

CalendarValueHistory

Получает массив значений по всем событиям на заданном диапазоне времени с фильтром по стране и/или валюте

CalendarValueLastByEvent

Получает массив значений события по его ID c момента состояния базы Календаря с заданным change_id

CalendarValueLast

Получает массив значений по всем событиям с фильтрацией по стране и/или валюте с момента состояния базы Календаря с заданным change_id


P.S. Хорошо бы добавить функцию типа CalendarUpdating, которая обновляет/загружает события в календаре.

 

mt4 1353 параметр scale при изменении мышью перестает работать. https://www.youtube.com/watch?v=CbxqyymZFys&feature=youtu.be



 
Полностью понятны сообщения компилятора, но все же есть ощущение неодинакового применения некоторых шаблонных конструкций.
template <typename T>
void f( T& ) {}

template <typename T>
T g()
{
  T Tmp; // possible use of uninitialized variable 'Tmp' (int)
  
  return(Tmp);
}

void OnStart()
{
  f(g<MqlTick>()); // OK
  f(g<int>());     // 'g<int>' - parameter passed as reference, variable expected
}