Замените printf -> Print
или прочтите документацию про PrintFormat https://www.mql5.com/ru/docs/common/printformat
А если просто
Понятно, что не пролезет, но в порядке бреда попробовал.))
2016.08.14 22:51:02.785 eBat3.1 (EURUSD,M1) Low = 1.797693134862316e+308
Понятно, что не пролезет, но в порядке бреда попробовал.))
Результат не изменился - значит остальные строки были лишними. Скорее всего там нельзя вызывать Low.
Результат не изменился - значит остальные строки были лишними. Скорее всего там нельзя вызывать Low.
1. Не факт.
2. Можно. Класс CExpert уже инициализирован. Другой вопрос, что истории в буфере нет, несмотря на Refresh и пр.
Скоро тики пойдут, посмотрим. Хотя история д.б. уже буфере.
ЗЫ Тики пошли. Тишина. Без перемен.
Сделал класс CiClose. Работает. CExpert по прежнему нет.
2016.08.15 02:13:11.946 eBat3.1 (EURUSD,M1) CiClose Close = 1.11589 2016.08.15 02:13:11.946 eBat3.1 (EURUSD,M1) Low = 1.797693134862316e+308 2016.08.15 02:13:10.901 eBat3.1 (EURUSD,M1) CiClose Close = 1.1159 2016.08.15 02:13:10.901 eBat3.1 (EURUSD,M1) Low = 1.797693134862316e+308 2016.08.15 02:13:10.101 eBat3.1 (EURUSD,M1) CiClose Close = 1.11591
(
Сильно не разбирался, но по-моему, вы неправильно используете конструктор.
Конструктор глобального объекта вызывается на стадии инициализации программы, когда еще никаких данных может и не быть.
А вы в нем - уже и рефреш, и процессинг проводите...
Сильно не разбирался, но по-моему, вы неправильно используете конструктор.
Конструктор глобального объекта вызывается на стадии инициализации программы, когда еще никаких данных может и не быть.
А вы в нем - уже и рефреш, и процессинг проводите...
Правильно. Объект готов к употреблению сразу после создания и конфигурации. Рефреш - предназначен для обновления данных. После него должно читаться. Процессинг там действительно ни к чему, но и не мешает.)
Как вы читали, уже и живые тики ничего не дали.
Похоже на форуме никто этот CExpert вообще не применял. )) Я тоже больше на него время терять не буду. Идея применения готового шаблона для создания собственной стратегии не м.б. реализована из-за отсутствия шаблона. Знакомство с MQ ООП не состоялось. )
Придется все с нуля.
printf("Low = ", a); // нету?? И где???
Хороший вопрос. Где? Где в выводимой строке обозначено место для вывода переменной?
Вот так как-нибудь:
printf("Low = %f", a);
Хороший вопрос. Где? Где в выводимой строке обозначено место для вывода переменной?
Вот так как-нибудь:
printf уже неактуально.
Уже сделано Print("Low = ", a); См. 2-3 посты. Результата нет.
С тиками результата тоже нет. См. вывод тиков выше. Хотя повторю,
2016.08.15 02:13:11.946 eBat3.1 (EURUSD,M1) CiClose Close = 1.11589 2016.08.15 02:13:11.946 eBat3.1 (EURUSD,M1) Low = 1.797693134862316e+308 2016.08.15 02:13:10.901 eBat3.1 (EURUSD,M1) CiClose Close = 1.1159 2016.08.15 02:13:10.901 eBat3.1 (EURUSD,M1) Low = 1.797693134862316e+308 2016.08.15 02:13:10.101 eBat3.1 (EURUSD,M1) CiClose Close = 1.11591
Нормальный вывод - класс CiClose.
Выводите в принт Low(1), а не переменную 'a' - сейчас не понятно, как она может выводиться на тиках, если определена, судя по показанному исходнику, локально в конструкторе.
Сейчас принт выводит EMPTY_VALUE - похоже, что переменная один раз заполнилась при создании экземпляра (когда данных еще нет) и так и осталась не обновленной.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В потомке CExpert (Expert.mqh) пишем, прямо в конструкторе потомка: Все функции от класса CExpert.
Получаем
Ошибок нет, специально printf повставлял. А, вроде, судя по документации по CExpert, все должно быть готово к употреблению.
См. Класс CExpert и его базовый класс CExpertBase