Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления - страница 12

 
Aleksey Vyazmikin #:

Может Вы и тощий, раз думаете то, что я что-то там о Вас думаю...

Как запускаете портативный режим? На windows 7 и 10 у меня всё корректно работает, а значит Вы что-то делаете не правильно.

Я не должен ни о чем догадываться. Всё должно быть просто и очевидно.

Например, в торговом терминале Jforex швейцарского банка Dukascopy пути к служебным директориям задаются явным образом в окне конфигурации. Всё элементарно, просто, очевидно и наглядно!

 
Transslator #:

Я не должен ни о чем догадываться. Всё должно быть просто и очевидно.

Например, в торговом терминале Jforex швейцарского банка Dukascopy пути к служебным директориям задаются явным образом в окне конфигурации. Всё элементарно, просто, очевидно и наглядно!

Вы путаете удобное с привычным.

В общем не знаю, чем Вам помочь - беспредметный разговор.

 

заметил в Терминале Отчет как из Сигналов, при 100% торговле роботом показывает Алготрейдинг 39%, обратите внимание, в прошлых билдах не смотрел

проверил сделки все с id эксперта, все закрыты по стопам (подсвечены) или в одно и тоже время 22:01


bild 3559

 

Уважаемые разработчики.

В новом (как минимум) обновлении терминала не правильно работает функция iTime(...)

Запускаю такой индикатор:

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   datetime arr_time=0, i_time=0;
//---
   for(int i=0; i_time<=0 && i<rates_total; i++) {
      arr_time=time[i];
      ResetLastError();
      i_time=iTime(_Symbol,PERIOD_CURRENT,rates_total-1-i);
      printf("i: %d   rates_total-%d: %d   time: %I64d   iTime: %I64d   Error: %d", i, i, rates_total-i, arr_time, i_time, GetLastError());
   }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

и получаю такой лог:

CS      0       15:03:14.766    iError (EURUSD,M5)      i: 0   rates_total-0: 10008   time: 1671213300   iTime: 0   Error: 4401
CS      0       15:03:14.766    iError (EURUSD,M5)      i: 1   rates_total-1: 10007   time: 1671213600   iTime: 0   Error: 4401
CS      0       15:03:14.766    iError (EURUSD,M5)      i: 2   rates_total-2: 10006   time: 1671213900   iTime: 0   Error: 4401
CS      0       15:03:14.766    iError (EURUSD,M5)      i: 3   rates_total-3: 10005   time: 1671214200   iTime: 0   Error: 4401
CS      0       15:03:14.766    iError (EURUSD,M5)      i: 4   rates_total-4: 10004   time: 1671214500   iTime: 0   Error: 4401
CS      0       15:03:14.766    iError (EURUSD,M5)      i: 5   rates_total-5: 10003   time: 1671214800   iTime: 0   Error: 4401
CS      0       15:03:14.766    iError (EURUSD,M5)      i: 6   rates_total-6: 10002   time: 1671215100   iTime: 0   Error: 4401
CS      0       15:03:14.766    iError (EURUSD,M5)      i: 7   rates_total-7: 10001   time: 1671215400   iTime: 0   Error: 4401
CS      0       15:03:14.766    iError (EURUSD,M5)      i: 8   rates_total-8: 10000   time: 1671215700   iTime: 1671215700   Error: 0

То есть, те бары, которые старше настройки количества макс. баров в окне графика, функция iTime(...) не видит. Ошибка 4401 - Запрашиваемая история не найдена

Точно такая же ошибка с функцией iOpen(...), и вероятно с остальными.

CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 0   rates_total-0: 10010   open: 1.06094   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 1   rates_total-1: 10009   open: 1.06168   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 2   rates_total-2: 10008   open: 1.06190   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 3   rates_total-3: 10007   open: 1.06162   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 4   rates_total-4: 10006   open: 1.06167   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 5   rates_total-5: 10005   open: 1.06140   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 6   rates_total-6: 10004   open: 1.06027   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 7   rates_total-7: 10003   open: 1.05997   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 8   rates_total-8: 10002   open: 1.05999   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 9   rates_total-9: 10001   open: 1.06004   iOpen: 0.00000   Error: 4401
CS      0       15:15:14.903    iError_iOpen (EURUSD,M5)        i: 10   rates_total-10: 10000   open: 1.06047   iOpen: 1.06047   Error: 0
Файлы:
 
Andrey Kaunov #:

То есть, те бары, которые старше настройки количества макс. баров в окне графика, функция iTime(...) не видит. Ошибка 4401 - Запрашиваемая история не найдена

Точно такая же ошибка с функцией iOpen(...), и вероятно с остальными.

Вы же сами себе и ответили

 

Из справки:

Возвращаемое значение

Количество скопированных элементов массива либо -1 в случае ошибки.

Примечание

Если интервал запрашиваемых данных полностью находится вне доступных данных на сервере, то функция возвращает -1. В случае если запрашиваются данные за пределами TERMINAL_MAXBARS (максимальное количество баров на графике), функция также вернет -1.

Проверьте это.

Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
  • www.mql5.com
Ошибки времени выполнения - Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Rashid Umarov #:

Вы же сами себе и ответили

Так бары то эти есть, и по количеству, и индикатор их видит в своей таймсерии. Почему не видит iTime(...)

Возможно, я раньше с этим не сталкивался вплотную, но такого поведения iTime(...) не замечал.


P.S. И ка же мне увидеть эти бары, скажем, из советника?

 
Andrey Kaunov #:

P.S. И ка же мне увидеть эти бары, скажем, из советника?

Увеличьте в настройках TERMINAL_MAXBARS  

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Состояние клиентского терминала - Состояние окружения - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Konstantin Gruzdev #:

Из справки:

Проверьте это.

Да, согласен, к CopyTime(...)  есть такое примечание. Но к iTime(...) нет. Никогда такого поведения не замечал.

 
Konstantin Gruzdev #:

Увеличьте в настройках TERMINAL_MAXBARS  

Так, как только появляется новый бар сверх количества  TERMINAL_MAXBARS, последний (самый старый) в истории удаляется,и функция не видит. И видит только TERMINAL_MAXBARS  в историю.

Причем раньше, после перезагрузке терминала, количество видимых индикатору баров сбрасывалось до TERMINAL_MAXBARS. Но сейчас остаётся таким же, как было при выключении терминала (по значению rates_total индикатора). А на графике при появлении каждого нового бара сверх значения  TERMINAL_MAXBARS, старый убирается с графика.


P.S. Это индикатор видит и считает бары, которых в окне графика уже нет. А в окне всё правильно отображается - 10000 баров. Но индикатор, даже после перезагрузки терминала, видит больше баров. 

Несостыковка из-за этого получается!

Rashid Umarov #:

Вы же сами себе и ответили

Рашид, вы поставьте индикаторы, что я прикрепил. Вот здесь поправил, чтобы дату бара показывал. Поставьте его, проверьте все. Это не есть правильно! Крайний бар там на скрине в 19:40 (первый бар на графике), но индикатор видит и удалившиеся бары.

Индикатор перестаёт видеть ушедшие в историю бары только после изменения настройки  TERMINAL_MAXBARS  и перезагрузки терминала. Причём, если просто увеличить TERMINAL_MAXBARS, а терминал не перезагружать, функция iTime(...) начинает видеть ушедшие в историю бары.


Файлы:
Причина обращения: