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

 
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); }
 
fxsaber:
Лаконичный пример того, почему const может быть полезен и, как ,иногда, без него просто не обойтись
Ага, вот только Func("123") вызовет ошибку компиляции.
 
Комбинатор:
Ага, вот только Func("123") вызовет ошибку компиляции.
Нехорошо придираться на ровном месте! Вы же поняли, что имелось в виду это
void Func( const string &Str ) { Str = ""; }

void OnStart() { Func(_Symbol); }
 
fxsaber:
Вы же поняли, что имелось в виду это

А вы поняли про что я? )

Я стараюсь не использовать ссылки в параметрах по причине того, что по ссылкам нельзя передавать литералы. Иногда это очень большая проблема.

И проще передавать по значению потому что по значению все работает отлично, ваш пример в том числе.