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

 
Точки останова при отладке внутри OnBookEvent не срабатывают - событие BookEvent не наступает (подписка есть).
 

В коде индикатора написано следующее:

 

Т.е. Period() возвращает int (в данном случае 0), в то время как обязано возвращать ENUM_TIMEFRAMES! В это же время _Period работает нормально и содержит текущий таймфрейм (в данном случае PERIOD_H1). Это в любом случае ошибка, т.к. в справке о функции Period() четко указанно: 

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

Содержимое переменной _Period, в которой хранится значение таймфрейма текущего графика. Значение может быть одним из значений перечисления ENUM_TIMEFRAMES.

 

Какое преимущество видится в отдельных окнах, которые будут через билд MT5? 

 
Vasiliy Sokolov:

В коде индикатора написано следующее:

Т.е. Period() возвращает int (в данном случае 0), в то время как обязано возвращать ENUM_TIMEFRAMES! В это же время _Period работает нормально и содержит текущий таймфрейм (в данном случае PERIOD_H1). Это в любом случае ошибка, т.к. в справке о функции Period() четко указанно: 

может без mql5 файла оно компилируется как для МТ4 ?
 
Vasiliy Sokolov:

В коде индикатора написано следующее:

 

Т.е. Period() возвращает int (в данном случае 0), в то время как обязано возвращать ENUM_TIMEFRAMES! В это же время _Period работает нормально и содержит текущий таймфрейм (в данном случае PERIOD_H1). Это в любом случае ошибка, т.к. в справке о функции Period() четко указанно: 

У вас tf имеет тип как перечисление. А записываете в него int. Позаботьтесь сами о записи в него тоже значения перечисления.
 
Artyom Trishkin:
Period() имеет возвращаемый тип ENUM_TIMEFRAMES
 
Комбинатор:
Period() имеет возвращаемый тип ENUM_TIMEFRAMES

В пятёрке Period() возвращает перечисление, а _Period возвращает int.

В четвёрке что предопределённая _Period, что функция Period() имеют тип int.

Раз человек получает предупреждение implicit enum conversion, значит делаем вывод, что речь о четвёрке.

 

Как в OnBookEvent узнать время принятого стакана?

Через SymbolInfoTick+time_msc это сделать не получится, т.к. OnBookEvent вызывается гораздо чаще, чем OnTick.

Можно, конечно, в OnTick запоминать time_msc и значение GetMicrosecondCount. А затем в OnBookEvent прибавлять прошедшее время к time_msc. Но как-то криво получается, поскольку OnBookEvent будут конфликтовать с OnTick - пока один выполняется, другой может ожидать.

 

Просьба добавить в колонку Источник журнала Эксперты данные не только о названии программы (выдавшей запись) и символа, на котором она запущена. Но и тип программы - индикатор/советник/скрипт. И хэндл чарта, на котором она запущена (можно всплывающим сообщением).

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

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

 
Лаконичный пример того, почему const может быть полезен и, как ,иногда, без него просто не обойтись
void Func( const string &Str ) { } // const - обязателен!

void OnStart() { Func(_Symbol); }
Причина обращения: