Т.е. Period() возвращает int (в данном случае 0), в то время как обязано возвращать ENUM_TIMEFRAMES! В это же время _Period работает нормально и содержит текущий таймфрейм (в данном случае PERIOD_H1). Это в любом случае ошибка, т.к. в справке о функции Period() четко указанно:
может без mql5 файла оно компилируется как для МТ4 ?
Т.е. Period() возвращает int (в данном случае 0), в то время как обязано возвращать ENUM_TIMEFRAMES! В это же время _Period работает нормально и содержит текущий таймфрейм (в данном случае PERIOD_H1). Это в любом случае ошибка, т.к. в справке о функции Period() четко указанно:
У вас tf имеет тип как перечисление. А записываете в него int. Позаботьтесь сами о записи в него тоже значения перечисления.
Через SymbolInfoTick+time_msc это сделать не получится, т.к. OnBookEvent вызывается гораздо чаще, чем OnTick.
Можно, конечно, в OnTick запоминать time_msc и значение GetMicrosecondCount. А затем в OnBookEvent прибавлять прошедшее время к time_msc. Но как-то криво получается, поскольку OnBookEvent будут конфликтовать с OnTick - пока один выполняется, другой может ожидать.
Просьба добавить в колонку Источник журнала Эксперты данные не только о названии программы (выдавшей запись) и символа, на котором она запущена. Но и тип программы - индикатор/советник/скрипт. И хэндл чарта, на котором она запущена (можно всплывающим сообщением).
По этой же причине (хэндлы) прошу добавить всплытие номера хэндла при наведении на закладки чарта.
Прошу добавить логирование таких событий, как открытие нового чарта (вместе с хэндлом) и удаление чарта.
В коде индикатора написано следующее:
Т.е. Period() возвращает int (в данном случае 0), в то время как обязано возвращать ENUM_TIMEFRAMES! В это же время _Period работает нормально и содержит текущий таймфрейм (в данном случае PERIOD_H1). Это в любом случае ошибка, т.к. в справке о функции Period() четко указанно:
В коде индикатора написано следующее:
Т.е. Period() возвращает int (в данном случае 0), в то время как обязано возвращать ENUM_TIMEFRAMES! В это же время _Period работает нормально и содержит текущий таймфрейм (в данном случае PERIOD_H1). Это в любом случае ошибка, т.к. в справке о функции Period() четко указанно:
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 может быть полезен и, как ,иногда, без него просто не обойтись
Ага, вот только Func("123") вызовет ошибку компиляции.
Вы же поняли, что имелось в виду это
А вы поняли про что я? )
Я стараюсь не использовать ссылки в параметрах по причине того, что по ссылкам нельзя передавать литералы. Иногда это очень большая проблема.
И проще передавать по значению потому что по значению все работает отлично, ваш пример в том числе.