Ошибки, баги, вопросы - страница 328

 
DenisR:
У меня сначала было тоже 15 505 1009, но потом терминал обновился до последней версии (408) и стало 5 505 1009. Но в любом случае, признак конца файла не может быть больше размера самого файла. Сейчас меня это волнует больше всего.
Ну да, странновато...
 

Немного изменённый пример индикатора из хелпа:

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2010, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//---- plot Line
#property indicator_label1  "Line"
#property indicator_type1   DRAW_LINE
#property indicator_color1  DarkBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         LineBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,LineBuffer,INDICATOR_DATA);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//--- получим количество доступных баров для текущих символа и периода на графике
   if(prev_calculated<=0) 
     {
      int bars=Bars(Symbol(),0);
      Print("Bars = ",bars,", rates_total = ",rates_total,", prev_calculated = ",prev_calculated);
      Print("time[0] = ",time[0]," time[rates_total-1] = ",time[rates_total-1]);
      //--- return value of prev_calculated for next call
     }
   return(rates_total);
  }

Кидаем, например, на USDJPY (1h). Потом, например, запускаем на #C (30m). Это всё делаем, пока рынок США ещё не открылся. И наблюдаем картину - с приходом тика по USDJPY срабатывает OnCalculate по #C, мало того, prev_calculated=0. А на самом USDJPY, prev_calculated != 0 до нового бара. Как по мне, то явный баг, хотя, может чего-то не знаю. Билд 408

 
notused:

Кидаем, например, на USDJPY (1h). Потом, например, запускаем на #C (30m). Это всё делаем, пока рынок США ещё не открылся. И наблюдаем картину - с приходом тика по USDJPY срабатывает OnCalculate по #C, мало того, prev_calculated=0. А на самом USDJPY, prev_calculated != 0 до нового бара. Как по мне, то явный баг, хотя, может чего-то не знаю. Билд 408

Подобное уже обсуждалось: https://www.mql5.com/ru/forum/3283/page2#comment_50176 (последние два абзаца; да и всю тему можно посмотреть).
Почему срабатывает OnCalculate по выходным, когда нет тиков?
Почему срабатывает OnCalculate по выходным, когда нет тиков?
  • www.mql5.com
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных.
 
Yedelkin:
Подобное уже обсуждалось: https://www.mql5.com/ru/forum/3283/page2#comment_50176 (последние два абзаца; да и всю тему можно посмотреть).
Спасибо, будем знать
 
Вопрос. Индикаторный буфер содержит целые числа или, например, время. Можно ли сделать так, чтобы в DataWindow значения индикаторного буфера отображались как целое или, например, как время?
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Lizar:
Вопрос. Индикаторный буфер содержит целые числа или, например, время. Можно ли сделать так, чтобы в DataWindow значения индикаторного буфера отображались как целое или, например, как время?

как целое можно - уменьшив INDICATOR_DIGITS


 
sergeev:

как целое можно - уменьшив INDICATOR_DIGITS

Тогда и все double-ы превратятся в целые :( 
 
Lizar:
Вопрос. Индикаторный буфер содержит целые числа или, например, время. Можно ли сделать так, чтобы в DataWindow значения индикаторного буфера отображались как целое или, например, как время?
На данный момент индикаторные буферы позиционируются как массивы типа double. Сооответственно, и в DataWindow значения буферов отражаются как значения типа double. По всей видимости, самостоятельно, без разработчиков, решить поставленную задачу пока не получится.
 
Yedelkin:
На данный момент индикаторные буферы позиционируются как массивы типа double. Сооответственно, и в DataWindow значения буферов отражаются как значения типа double. По всей видимости, самостоятельно, без разработчиков, решить поставленную задачу пока не получится.
вот это да...
 
Yedelkin:
На данный момент индикаторные буферы позиционируются как массивы типа double. Сооответственно, и в DataWindow значения буферов отражаются как значения типа double. По всей видимости, самостоятельно, без разработчиков, решить поставленную задачу пока не получится.
Пусть индикаторные буферы позиционируются как массивы типа double. Из double можно сделать int и datatime. А вот показать преобразованный результат нельзя. Просто возможности индикаторов возросли, а отображение результатов в  DataWindow осталось прежнее. Пожалуй  в сервисдеск напишу пожелание.
Причина обращения: