CExpert и написание советника по своей стратегии

 

День добрый!

Только что задал подобный вопрос в теме https://www.mql5.com/ru/forum/3146/page2 обсуждение статьи ... . Если модераторы сочтут появление новой темы излишним, то пожалуйста стреляйте на поражение без предупреждения и удаляйте эту тему :). 

На мой взгляд тема, все-таки, заслуживает отдельной ветки, потому что многим изучающим MQL5 также как и мне трудно охватить разом весь огромный объем работы выполненный разработчиками MQ. Придерживаясь классического принципа программирования "повторное использование кода" я бы хотел по максимуму задействовать уже разработанные классы из стандартной библиотеки, но меня несколько смущает наличие советников которые не расширяют класс CExpert

В связи с этим вопрос: "что дает такое расширение, когда его лучше использовать, а когда нет?". Наверное, четких ответов не существует, но наверняка есть принципы которых лучше придерживаться в том или другом случае.

Буду признателен за любые комментарии. Они помогут грамотнее использовать возможности MQL5. 

Спасибо! 

Обсуждение статьи "Торговый эксперт по книге Б. Вильямса "Новые измерения в биржевой торговле""
Обсуждение статьи "Торговый эксперт по книге Б. Вильямса "Новые измерения в биржевой торговле""
  • www.mql5.com
Вильямса, особенности их реализации и результаты тестирования на исторических данных.
 

В классе CExpert - собрана основная функциональность логики советника.

Не вполне понятно, что имеется ввиду "наличие советников, которые не расширяют класс CExpert" - для того и создан этот класс, чтобы использовать его с минимумом расширений.

В принципе, он уже готов, и его вполне можно использовать "как есть", добавляя только  необходимые функции.

Документация по MQL5: Стандартная библиотека / Классы торговых стратегий / Базовые классы экспертов / CExpert
Документация по MQL5: Стандартная библиотека / Классы торговых стратегий / Базовые классы экспертов / CExpert
  • www.mql5.com
Стандартная библиотека / Классы торговых стратегий / Базовые классы экспертов / CExpert - Документация по MQL5
 

Кстати, ns_k, обращаю ваше внимание на то, что класс CExpert вобще в коде указанной статьи - не используется. Автор использует более низкоуровневые классы, которые непосредственно отвечают за торговые операции, позицию, символ и историю. Даже для получения данных - используются низкоуровневые функции типа Copy..., а не классы Стандартной библиотеки.

Вобще, использование классов стандартной библиотеки в указанной статье - крайне ограниченное. 

 
Laryx:

Кстати, ns_k, обращаю ваше внимание на то, что класс CExpert вобще в коде указанной статьи - не используется. Автор использует более низкоуровневые классы, которые непосредственно отвечают за торговые операции, позицию, символ и историю. Даже для получения данных - используются низкоуровневые функции типа Copy..., а не классы Стандартной библиотеки.

Вобще, использование классов стандартной библиотеки в указанной статье - крайне ограниченное. 

Спасибо за Ваши комментарии. 

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

Кстати, весьма кстати :), пришлась бы возможность генерировать искуственно событие тика в режиме отладки. Может быть это уже есть, а я не знаю как пользоваться? 

В любом случае, разработчику стандартных классов, а я думаю, что это был один программер, большой респект! 

 

Безусловно, считаю Стандартную Библиотеку - одним из главных достоинств MQL5.

Очень продуманная и глубокая идея реализованная в рамках подхода ООП. Весь свой код делаю только на основе ее классов.

 

пришлась бы возможность генерировать искуственно событие тика в режиме отладки. Может быть это уже есть, а я не знаю как пользоваться?  

 

Увы, пока что отладчик Метатрейдера 5 - не работает на исторических данных. Таким образом, есть два варианта - либо ждать обычное событие Тика, либо вызывать функцию OnTick() прямо в конце функции OnInit().

Мне самому очень не хватает тиков на исторических данных, приходится использовать вот такие "подмены", писать логи и изучать их...

Будем надеяться, что отладка на исторических данных рано или поздно появится. 

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Laryx:

Безусловно, считаю Стандартную Библиотеку - одним из главных достоинств MQL5.

Очень продуманная и глубокая идея реализованная в рамках подхода ООП. Весь свой код делаю только на основе ее классов.

 

 

Увы, пока что отладчик Метатрейдера 5 - не работает на исторических данных. Таким образом, есть два варианта - либо ждать обычное событие Тика, либо вызывать функцию OnTick() прямо в конце функции OnInit().

Мне самому очень не хватает тиков на исторических данных, приходится использовать вот такие "подмены", писать логи и изучать их...

Будем надеяться, что отладка на исторических данных рано или поздно появится. 

 

Спасибо за совет насчет onTick() в onInit() !

 
ns_k:

 

Thanks for the tip about onTick () in onInit ()!

Вы можете использовать OnTimer () для тестирования цели
 
angevoyageur:
Вы можете использовать OnTimer () для тестирования цели
 то же вариант, спасибо! :)