Примеры: MetaEditor: Опираясь на силу шаблонов - страница 2

 
Sibrs писал(а): Мой личный опыт и личное мнение таково: более простой, короткий и ясный код, заточенный под конкретную задачу, работает быстрее и эффективнее (не всегда, но как правило), его проще сопровождать, проще мофицировать, в нем легче найти баги и проще найти для него повторное применение.

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

Если мне хочется быстро проверить некие аналитические сигналы на их пригодность в торговле, я скорее вначале вставлю их в шаблон и быстренько проверю. Именно эту возможность Rosh и продемонстрировал. А в некоторых средах (скажем, Trading Solutions или Fibo Galactic Trader) эти шаблоны зашиты вовнутрь, и перенос аналитических сигналов в торговую стратегию реализован визуально. Понятно, что гибкость меньше, чем при непосредственном кодировании.

Если понравятся результаты торговли, я уже дальше буду думать над индивидуализацией. Зато теперь я малой кровью смогу заранее выяснить, пригодна ли эта стратегия или нет - вместо того, чтобы вначале долго возиться с изячным решением и в конце концов узнать: "фтопку такой советнег!". Ну а решение о том, как использовать этот шаблон - просто для первичной проверки или для окончательного варианта, - трейдер все равно принимает самостоятельно.

P.S. Ну вот, вижу, что Rosh уже об этом же написал. О проверке "малой кровью".

 

Сдается мне мы спорим ни о чем :)

Есть два разных подхода к кодированию исходных текстов (точнее их гораздо больше - но в этом обсуждении затронуты только два). Каждый из них имеет "право на жизнь". 

Гораздо важнее методология создания алгоритма работы советника. Здесь автор проделал огромадную работу и в это смысле его статья очень полезна (особенно для начинающих кодеров-трейдеров). А вот то, что и мухи (способ создания новых советников) и котлеты (правила построения самих советников) оказались вместе - и породило "путаницу". Каждая часть сама по себе ценна и изучать их лучше по отдельности: шаблоны это чтото одно, а правила торговли - чтото совсем другое.

В порядке обмена опытом: Я например, больше пользую "версионность" ,чем шаблоны. Написан советник, показывает неплохие результаты. Его код копируется в новый файл (просто ручками, без механизма шаблонов) один-в-один и в новой версии докручивается "какая-то гаечка". Если результат улучшился - старый вариант идет в архив, а новый становится источником для очередной версии. Если ухудшился - возвращаюсь к предыдущему. Если новая версия приобретает какието особые свойства - она становится источником новой ветки шаблонов и начинает самостоятельную жизнь. Таким образом, мои шаблоны непрерывно растут и  улучшаются.

 
ZZZ-статья очень полезна для начинающих-но можно обойтись одной прагой/start\-и хорошо зарабатывать.
Удивляет до крайности ,что ниже насребано-видимо телом люди выросли ,а мозг отстал-деточки играйте сами в свои игрушки-и так сколько напихано дерьма в интернете....СЛОВ НЕТ!!!
 

Статья просто замечательная особенно для начинающих. Поскольку, учтывая, что MQL весьма далек от совершенства,

идеи изложенные в ней и способы их реализации очень полезны и удобны. Разумеется не стоит доводить "универсализм" до абсурда.

А человек "переболевший этим универсализмом", да еще и "достаточно быстро", и теперь использующий в программировании, подчеркиваю в программировании, "просто Ctrl+C/Ctrl+V", выглядит несколько смИшным.

Да и объединение в одной статье "способа создания новых советников" и "правил построения самих советников", кажется вполне уместным ( две ипостаси одной проблеммы ).  Короче Респект!

 

По поводу кода. Мне показалось, что в функции "isNewBar" ошибка: всегда используется только первый элемент массива со всеми вытекающими

последствиями.

За статью еще раз спасибо.

 
roma33:

По поводу кода. Мне показалось, что в функции "isNewBar" ошибка: всегда используется только первый элемент массива со всеми вытекающими

последствиями.

Вы совершенно правы! Спасибо.

Действительно, переменная i была оставлена как есть, то есть с нулевым значением по умолчанию, и нигде в блоке switch() ее значение не менялось. Изменил функцию isNewBar() , улучшил ее отработку на первом тике первого тестируемого бара. Кроме того, проверил на своем компьютере все версии советников и шаблонов (их оказалось несколько), синхронизировал между собой и сделал мелкие подчистки.

Заменил файлы, прикрепленные к статье, возможно там содержались небольшие ошибки, я их не проверял а просто заменил на новые. В тексте же статьи же исправленные места не трогал, так как на понимание идеи они (исправления) практически не влияют.

 

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

Небольшая опечатка:

    В функции CalculateSL_and_TP нужно заменить

           int digits = MarketInfo(Symbol(),MODE_MODE_SPREAD);

    на

           int digits = MarketInfo(Symbol(),MODE_DIGITS);

 
Livingston:

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

Небольшая опечатка:

    В функции CalculateSL_and_TP нужно заменить

           int digits = MarketInfo(Symbol(),MODE_MODE_SPREAD);

    на

           int digits = MarketInfo(Symbol(),MODE_DIGITS);

Благодарю. Исправил во всех файлах и в статье. Банальное копирование размножило одну ошибку.
 
спасибо вам за статью,огромное,вот бы еще как код любого индикатора вставить
 
Отличная статья, нашел много нужной информации в одном месте. Автору респект. +1
 

Я счел эту статьи весьма полезной для себя. Спасибо автору