Лига Торговых Систем. Продолжаем работу. - страница 396

 
Vitaly Muzichenko #:

Хороший стиль программирования, чтобы куда-то перенести программу, нужно везде таскать пачку портянок. 

Стиль называется "повтороне использование кода". 

По-хорошему, вся библиотека должна быть в одном .lib-файле, к которому должно быть обращение из одного файла эксперта.

Однако, хедеры ( файлы .mqh ) все равно должны "носиться" отдельно. 

Виталий, ты ж вроде как в курсе сколько файлов приходится носить во всяких обычных С++ проектах!  Да погляди, сколько файлов за собой носит сам MT ! Ты про них забыл? 


Проблема в том, что мне неинтересно "впаривать" экспертов, поэтому я забочусь не об удобстве тех, кому буду "впаривать" граали, а о собственном удобстве. У меня каждый класс лежит в отдельной паре файлов .mqh - mq5. Мне так удобно и привычно.  И я вовсе не собирался ни с кем делиться ничем, кроме информации или .ex5-модуля. 

Однако, админы почему-то против. Видимо, считают участников форума за дебилов, которые не могут решить, нужны ли им .ex5 модули, и решают за них... ну... я не вижу смысла спорить с админами, значит, участники и есть дебилы. Зачем им давать .ex5-модули? 

Ну а раз так... Народ, чем богаты - тем и рады. Я, в отличие от местных граалевпаривальщиков - ничего не скрываю. Всё открыто, и денег мне не надо. Нравится - используйте. Но, при этом вся тысяча классов будет разбросана по двум тысячам файлов, которые необходимо собрать.  Не нравится - игнорьте. И не надо ничего собирать.

 
Roman Shiredchenko #:

Валерий - кинь кодом в лк. Не понимаю.... ;-)
Я вкурю то что и он раньше написал - но щас некогда. Фарш нужен. 
Иду на переработку. ;-)


Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Лига Торговых Систем. Продолжаем работу.

Georgiy Merts, 2023.04.18 10:48

Мой код тебе, боюсь, не поможет. 

Впрочем, МНК-ядро почти не зависит от классов моей библиотеки. Так что, прикрепляю файлы. Требуется хотя бы базовое пониманиее ООП. Разберёшься?

Для использования надо пронаследоваться от класса CLSMCore, и обязательно перегрузить чисто виртуальные функции:

 
Там все есть. Конечно это не мой стиль, но разобраться можно.
 
Georgiy Merts #:

Стиль называется "повтороне использование кода". 

По-хорошему, вся библиотека должна быть в одном .lib-файле, к которому должно быть обращение из одного файла эксперта.

Однако, хедеры ( файлы .mqh ) все равно должны "носиться" отдельно. 


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

 
Valeriy Yastremskiy #:
Там все есть. Конечно это не мой стиль, но разобраться можно.
сенк - с гляну....
 
Valeriy Yastremskiy #:

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

Да, про "падежи" - близкая аналогия. 

Однако, я не раз убеждался, что универсальность играет добрую службу. Вот этот же класс, ядро МНК - изначально был разработан вовсе не для аппроксимации ценовых данных, а для статистической обработки точек (графиков результатов тестирования). Идея со статистикой по точкам тестирования не выгорела, код остался. А потом, гораздо позже - возникла идея построения канала, ось которого строится по методу МНК, а границы - по принципу обычного прайс-ченела, только значение границ строится не просто по старшему экстремуму за несколько баров, а по максимальному отклонению от оси за несколько баров. 

Соответственно, мне не надо было писать класс расчёта оси канала заново - пронаследовался от ядра МНК, в функции передал число точек закрытия баров (можно было и другие цены брать), на выходе - получил готовую аппроксимированную ось. Бинго! 

Безусловно, где-то надо остановиться, универсальность не должна писаться ради универсальности. Однако, если есть малейшее подозрение, что код может быть повторно использован в другом месте - его надо писать как можно универсальнее, и сдабривать подробными комментариями. По моему опыту - это всегда окупается. 

 
Georgiy Merts #:

Да, про "падежи" - близкая аналогия. 

Однако, я не раз убеждался, что универсальность играет добрую службу. Вот этот же класс, ядро МНК - изначально был разработан вовсе не для аппроксимации ценовых данных, а для статистической обработки точек (графиков результатов тестирования). Идея со статистикой по точкам тестирования не выгорела, код остался. А потом, гораздо позже - возникла идея построения канала, ось которого строится по методу МНК, а границы - по принципу обычного прайс-ченела, только значение границ строится не просто по старшему экстремуму за несколько баров, а по максимальному отклонению от оси за несколько баров. 

Соответственно, мне не надо было писать класс расчёта оси канала заново - пронаследовался от ядра МНК, в функции передал число точек закрытия баров (можно было и другие цены брать), на выходе - получил готовую аппроксимированную ось. Бинго! 

Безусловно, где-то надо остановиться, универсальность не должна писаться ради универсальности. Однако, если есть малейшее подозрение, что код может быть повторно использован в другом месте - его надо писать как можно универсальнее, и сдабривать подробными комментариями. По моему опыту - это всегда окупается. 

Это когда инструмент на местах и мастер знает где что лежит, как называется и для чего предназначено)
 

Не понял... Вроде написал длинное сообщение в ответ на реплику, и всё исчезло... 

Похоже, модераторы усердствуют? 

Ладно, им виднее... 

 
Georgiy Merts #:

Не понял... Вроде написал длинное сообщение в ответ на реплику, и всё исчезло... 

Похоже, модераторы усердствуют? 

Ладно, им виднее... 

Нет, не удаляли.
Наверное сайт обновлялся (какое-то короткое время) и ваш пост попал под это.
 
Sergey Golubev #:
Нет, не удаляли.
Наверное сайт обновлялся (какое-то короткое время) и ваш пост попал под это.

Понятно. Ну и ладно... Там ничего интересного не было. Спорили о необходимости отрицательных попыток для эволюции. 

 
Georgiy Merts #:

Понятно. Ну и ладно... Там ничего интересного не было. Спорили о необходимости отрицательных попыток для эволюции. 

Спор про эволюцию - в другой ветке - тут:
https://www.mql5.com/ru/forum/446262/page3
Виды торговли на рынке Форекс. Какую предпочитаете?
Виды торговли на рынке Форекс. Какую предпочитаете?
  • 2023.04.26
  • www.mql5.com
Скальпинг, Не агрессивный скальпинг, Краткосрочная торговля, Среднесрочная торговля, Долгосрочная торговля, Инвестиции - жду пока не закроется орде...