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

 
build 1178. Ошибка компиляции: 'B' - template mismatch
class A { template<typename T> A( T ) {} };
class B;
class B {};
а раньше все было нормально
 
A100:
build 1178. Ошибка компиляции: 'B' - template mismatch
а раньше все было нормально
Спасибо, проверим.
 
Почему событие OnTimer не запускается в индикаторах, вызываемых через iCustom?
 
Ilya Malev:
Почему событие OnTimer не запускается в индикаторах, вызываемых через iCustom?
Архитектурно событие таймера является событием чарта, соответственно в данном случае индикаторы его получать не могут.
 
Anton:
Архитектурно событие таймера является событием чарта, соответственно в данном случае индикаторы его получать не могут.
Как программно заставить индикатор, вызываемый через iCustom, отрисоваться (то есть спровоцировать вызов OnCalculate), в случае отсутствия поступления тиков (например, в выходные)?
 
Если в этом индикаторе в свою очередь вызываются другие индикаторы, то при первом автоматическом вызове OnCalculate сразу после выхода из OnInit данные этих индикаторов не будут рассчитаны, и более того, индикатор не сможет "подождать" их просчета не выходя из OnCalculate. А следующего вызова OnCalculate не будет до конца выходных, когда начнутся первые тики. При этом ни OnTimer, ни OnChartEvent в таком индикаторе не работают, чтобы вызвать перерисовку когда данные будут получены. В итоге единственный способ который я вижу - через DLL вызывать из контекстного меню окна пункт "Обновить" на графике - не думаю, что разработчики планировали именно этот способ для нормальной работы индикаторов в МТ5. Иначе пользователю придется куковать у графика нажимая эту кнопку, пока индикатор не отрисуется, что вряд ли его обрадует.
 
Ilya Malev:
Если в этом индикаторе в свою очередь вызываются другие индикаторы, то при первом автоматическом вызове OnCalculate сразу после выхода из OnInit данные этих индикаторов не будут рассчитаны, и более того, индикатор не сможет "подождать" их просчета не выходя из OnCalculate. А следующего вызова OnCalculate не будет до конца выходных, когда начнутся первые тики. При этом ни OnTimer, ни OnChartEvent в таком индикаторе не работают, чтобы вызвать перерисовку когда данные будут получены. В итоге единственный способ который я вижу - через DLL вызывать из контекстного меню окна пункт "Обновить" на графике - не думаю, что разработчики планировали именно этот способ для нормальной работы индикаторов в МТ5. Иначе пользователю придется куковать у графика нажимая эту кнопку, пока индикатор не отрисуется, что вряд ли его обрадует.

если для МТ4:

так не получится? https://www.mql5.com/ru/code/11678

ChartRefresh
ChartRefresh
  • голосов: 11
  • 2014.08.13
  • Alexandr Bryzgalov
  • www.mql5.com
Скрипт для принудительно обновления текущего графика.
 
Alexandr Bryzgalov:
так не получится? https://www.mql5.com/ru/code/11678

Этот скрипт для MetaTrader 4 :)

В МТ4 как раз все данные предупредительно рассчитываются терминалом до получения их в программах mql4

 
Ilya Malev:

Этот скрипт для MetaTrader 4 :)

В МТ4 как раз все данные предупредительно рассчитываются терминалом до получения их в программах mql4

да, я после уточнил

ЗЫ: интересно, а эти коды сообщений которые работают для МТ4 не подойдёт для МТ5 )

 
Alexandr Bryzgalov:
да, я после уточнил
Может выложите версию для МТ5? ) Не знаю для чего она нужна в МТ4, но в МТ5 будет реальная польза - в виду безвыходности ситуации, о которой я выше написал.