Как написать советник для MT4 в курсе обучения MQL |

 

Как написать советник для MT4 в курсе обучения MQL

В данном обзоре мы вам расскажем как написать советник для mt4 и поможет нам в этом курс обучения MQL от практикующего трейдера и программиста.

Наверняка каждый из вас скачивал у нас на блоге или на форуме или же покупал хотя бы один советник форекс в интернете. Обычно при покупке и дальнейшем детальном рассмотрении форекс советника сталкиваемся с такой ситуацией: советник зарабатывает или сливает, а вы знаете как изменить или улучшить алгоритм его торговли, чтоб он начал зарабатывать, но вы не знаете как написать советник для mt4, а чтобы заплатить программисту нет свободных денежных средств.

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

Главной целью курса является обучение желающих полностью изучить язык MQL и сразу по ходу прохождения курса написать и показать примеры полноценных рабочих форекс советников.

Обучение начинается с знакомства с терминалом МТ4 и далее постепенно переходит к более сложным темам.

Что является несомненным плюсом, так это то, что вы, вместе с автором, сможете создать полноценный форекс советник от начала и до конца с названием — «НА ОТКАТЕ» и в режиме реального времени пройдете процесс написания создания советника.
Кроме этого вы изучите еще множество тем и подробных инструкций в какой последовательности работать над созданием собственным автоматизированным торговым алгоритмом.

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

Процитируем спикера видеокурса обучения MQL Еврения Черных на одном из занятий:»Вы сэкономите много времени, чтоб изучить все книжки и все ресурсы по написанию советников. Также вы сэкономите много денег, которые пришлось бы платить программисту за написание советника по вашему алгоритму!» По статистике все больше и больше трейдеров переходят на автоматическую торговлю из-за того, что банально не могут соблюдать четкие правила своей торговой системы. Еще одним большим плюсом для вас будет то что вы не только сможете написать себе советник и не делиться прибыльным алгоритмом с программистом, но и сможете писать сами советники и продавать их и неплохо на этом зарабатывать». Подход у вех продавцов один : -) Иными словами -напиши абы что и продай.

Данный видео курс рассчитан на 7 дней. Для совсем новичков информацию нужно будет изучить несколько раз и советуем лучше всего сразу останавливать видео и пробовать писать коды вместе с автором, чтоб понять все тонкости написания советника для mt4.

Если Вы не видите ссылку на скачивание материала — отключите блокиратор рекламы и добавьте наш сайт в список исключений. Если Вы против рекламы на нашем сайте — покупайте контент напрямую у авторов.

Скачать курс обучения MQL

ВНИМАНИЕ!ДАННЫЕ МАТЕРИАЛЫ ПРИСЫЛАЮТСЯ ПОЛЬЗОВАТЕЛЯМИ И ПОДПИСЧИКАМИ.
АДМИНИСТРАТОР САЙТА ОТВЕТСТВЕННОСТИ НЕ НЕСЕТ.
ЕСЛИ ВЫ ЗАКОННЫЙ ПРАВООБЛАДАТЕЛЬ, НАПИШИТЕ В СООТВЕСТВУЮЩИЙ РАЗДЕЛ НА САЙТЕ.

Как заказать написание советника по вашей стратегии

Доброго времени суток, товарищи форекс трейдеры!

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

Где искать программистов ?

MetaTrader – это по истине флагманский терминал по расширяемости и доступному функционалу в своем классе. В подтверждение этому огромная библиотека индикаторов, экспертов и скриптов, которые позволяют делать с терминалом все, что вы только можете пожелать. Все это благополучие в полной мере заслуга компании MetaQuotes, чья команда регулярно занимается реализацией продуманных и простых в использовании сервисов, упрощающих жизнь как обычным трейдерам, так и программистам, использующим данную платформу.

Само собой, у каждого есть собственная уникальная в своем роде идея, как стоит использовать обширные возможности торгового терминала. Собственный торговый эксперт, торговая панель, индикатор или скрипт – все это требует работы квалифицированного программиста. Но что, если вы не знаете ни одного языка программирования? Ответ очевиден – заказать разработку на фриланс бирже. Лучшим местом для этого будет сервис MQL5 Jobs, созданный компанией MetaQuotes специально для разработки приложений для терминалов MT4/MT5.

Проверка идеи

daily_picdump_1317_640_42

Для начала следует определиться, что именно вам нужно. То есть хотите вы сделать торгового робота, индикатор или вспомогательный скрипт. Если вы еще не уверены, как конкретно должно выглядеть финальное решение, следует подробно описать задачу, и вам обязательно предложат одно из возможных ее решений.

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

Часто проблема объясняется тем, что заказчики не слишком трепетно относятся к проверке идеи на истории, либо вовсе берут техническое задание из какой-либо статьи в интернете. Если вы проверяете стратегию вручную, используйте разные участки истории. Часто начинающие трейдеры проверяет лишь на одном участке, либо заведомо пропускают убыточные сделки, убеждая себя, что их можно было спокойно фильтровать “на глазок”. Из-за этого заказчик в итоге и получает совершенно неожиданный для себя результат.

Типичной причиной ссор на этой почве становится желание заказчика “по-быстрому” доработать идею, пока исполнитель еще “горячий”. Часто объем работ переходит по размеру на новый заказ, и дело заканчивается обращением в арбитраж. Поэтому, всегда цените свое время и время того, кто исполняет ваш заказ, и избавьте себя от желания сделать несколько “небольших бесплатных изменений” на последних этапах работы.

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

Написание технического задания

daily_picdump_1887_640_85

Самый сложный этап для новичков – это написать правильное техническое задание. Многие даже не знают, с чего начать. Главное правило – задание должно быть полностью самодостаточным и максимально подробным. Без соблюдения этих двух моментов вы рискуете получить недопонимание со стороны исполняющего ваш заказ. В таком случае всегда старайтесь доработать ТЗ уже в ходе обсуждения заказа с исполнителем, чтобы вы были максимально уверены в правильной и, главное, одинаковой интерпретации с обеих сторон.

Само собой, начать следует с общей идеи. Если это торговый советник, попробуйте описать, какие индикаторы в нем используются (и по какому принципу) или на чем основано принятие решения о входе в сделку. Далее, каким образом устанавливается лот позиции, по какому принципу позиции закрываются, нужен ли стоп лосс, тейк профит или трейлинг-стоп. Дальше, какие требуются входные параметры, на что это будет влиять, и какие дополнительные функции вы хотите реализовать в своей идее.

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

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

Как делать не нужно:

Требуется советник на основе ATR и фракталов. Открываем сделку при появлении большой свечи возле уровня фрактала. Лот прогрессирующий, зависит от денег на счету. Также нужен динамический стоп лосс и тейк профит.

Пример правильного ТЗ:

Требуется написать советник на основе фракталов Билла Уильямса и индикатора ATR. Во входных параметрах должна быть возможность указать коэффициент риска, период ATR, а также минимальные значения стоп лосса и тейк профита.

Входим в позицию на покупку, если свеча с телом в 200% от текущего значения ATR закрывается выше уровня последнего верхнего фрактала. Маржа по позиции должна соответствовать установленному коэффициенту риска от эквити. Выход из позиции осуществляется по стоп лоссу или тейк профиту. Значения стоп лосса и тейк профита берутся из текущих показаний ATR, но они должны быть не меньше значений, указанных во входных параметрах.

Создание заказа

daily_picdump_1946_640_09

В первую очередь, нужно создать новый заказ. Для этого переходим на сайт MQL5.com, регистрируемся, если вы этого еще не сделали, и переходим в раздел “Фриланс”. Для создания новой задачи кликаем по ссылке “Новая работа”.

mql5-jobs-sozdanie-zakaza

Дальше, заполняем форму заказа:

  1. Впишите название работы. Например: “Требуется написать советник” или “Нужен индикатор”;
  2. Выберите категорию и укажите версию платформы (MQL4 или MQL5);
  3. Если ранее вы уже что-то заказывали и хотите продолжить работу с тем же разработчиком, вы можете создать персонализированный заказ, указав в этом поле имя исполнителя;
  4. Укажите примерную стоимость работы. Если вы еще не определились с бюджетом, можете оставить поле пустым и выяснить стоимость в ходе обсуждения заказа с разработчиками. На этом этапе вы указываете лишь ориентировочную стоимость, но в то же время не стоит указывать слишком малую цену или слишком завышать порог. Если в первом случае вы можете вовсе не получить откликов, то во втором исполнители могут наоборот затребовать слишком много;
  5. Здесь укажите примерные сроки выполнения работ. Старайтесь всегда указывать в задании, есть ли срочность в выполнении работы. Разработчики далеко не всегда следуют установленным срокам, поскольку много неучтенного времени может уходить на тестирование и исправление ошибок. Естественно, за срочное задание исполнитель может потребовать большую стоимость;
  6. Самая важная часть. Здесь стоит подробно расписать задачу. От того, на сколько правильно составлено задание, во многом зависит финальный результат.

mql5-jobs-sozdanie-zakaza-2

Чуть ниже вы можете прикрепить файлы, если требуется. Например, это могут быть пояснительные картинки или другие файлы, непосредственно касающиеся выполнения работы. После заполнения формы нажмите “Добавить”, чтобы создать новый заказ.

mql5-jobs-sozdanie-zakaza-3Общение с исполнителями

daily_picdump_1997_640_89

После создания новой заявки на нее начнут откликаться исполнители. При получении нового сообщения в работах, в верхнем тулбаре появится иконка портфеля. Кликните на иконку, чтобы перейти к обсуждению. На начальном этапе нужно обсудить все вопросы, касающиеся деталей выполняемой задачи, стоимости и сроков. Для выбора исполнителя наведите курсор на заявку и нажмите “Перенести в: Выбранные”.

mql5-jobs-obshhenie-s-ispolnitelyami

Выбирая исполнителя, старайтесь обращать внимание на его стаж работы и отзывы предыдущих заказчиков. Стоит обратить внимание на стоимость выполняемых заказов – множество заказов по 10$ может говорить о недостаточном профессионализме разработчика. Также, хорошие исполнители всегда стараются пойти навстречу, объяснить, если что-то непонятно, или же дать ссылку на нужные материалы. Также, по возможности плюсом будет наличие дополнительных контактов для связи и, в принципе, скорости ответа на сообщения. Это говорит о том, на сколько исполнитель заинтересован в работе.

Для выполнение работы можно выбрать только одного исполнителя. Если вы изменили свое решение и выбрали другого, первый будет удален из группы “Выбранные”. По нажатию на иконку портфеля откроется страница заказа. Заявки исполнителей делятся на четыре группы: Выбранные, Кандидаты, Отклоненные и Новые.

mql5-jobs-obshhenie-s-ispolnitelyami-2

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

Шаг 1: Соглашение о работе

daily_picdump_2048_640_48

После переноса исполнителя в группу выбранных с вашей стороны необходимо подтвердить факт предоставления работы и согласиться с правилами сервиса. На данном этапе заказчик подтверждает согласие с правилами работы сервиса, а исполнитель подтверждает принятие работы. Отметьте указанные галочки и нажмите “Далее”.

mql5-jobs-soglashenie-o-rabote

После этого в журнале появится соответствующее сообщение.

mql5-jobs-soglashenie-o-rabote-2Шаг 2: Подтверждение ТЗ

daily_picdump_2021_640_50

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

mql5-jobs-shag-2-podtverzhdenie-tz

По результатам обсуждения финального ТЗ с исполнителем у вас есть возможность скорректировать стоимость работы и срок ее выполнения, перед тем как подтвердить ее окончательно. Также, вам нужно приложить ТЗ отдельным файлом. Этот файл будет использоваться в случае разрешения спорных ситуаций через Арбитраж.

mql5-jobs-shag-2-podtverzhdenie-tz-2

Введите в соответствующие поля обговоренные стоимость, сроки и нажмите “Далее”. После подтверждения условий исполнителем работа будет перенаправлена на шаг предоставления прототипа, а на вашем счету будет заморожена сумма в размере стоимости работы. Перевод денег исполнителю будет осуществляться только на последнем шаге.

Шаг 3: Предоставление прототипа

daily_picdump_2068_640_53

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

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

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

Шаг 4: Демонстрация

daily_picdump_2049_640_35

Это заключительный этап, на котором исполнитель должен предоставить полностью рабочее решение. В решении должны быть реализованы все требования, указанные в ТЗ, а также дополнительные условия, выясненные в процессе обсуждения задачи. Конкретно, в каком виде предоставляется решение зависит от вида задания. Это могут быть тест советника в тестере стратегий, исходные коды или логи в журнале. Также, заказчик может запросить демонстрацию работы приложения в режиме видеоконференции или пояснение работы некоторых моментов. В любом случае, если на этом этапе вам понадобятся какие-либо доработки, вам необходимо будет создать для этого новый заказ.

mql5-jobs-shag-4-demonstratsiya

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

Шаг 5: Передача работ

daily_picdump_2069_640_83

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

Если после этого заказчик не будет выходить на связь, в течении 3 дней средства автоматически будут перечислены на счет разработчику. То есть работа автоматически переходит на шаг оплаты.

mql5-jobs-shag-5-peredacha-rabotШаг 6: Оплата

daily_picdump_2073_640_86

После подтверждения передачи работ обеими сторонами разработчику на счет автоматически переходит обговоренная сумма оплаты за вычетом 10% комиссии сервиса. Больше ничего нажимать не нужно. Работа будет автоматически перенесена в раздел “Выполненные”. Вы, как заказчик, теперь можете оставить отзыв исполнителю (описать, на сколько вы довольны выполненной работой). Также, исполнитель может оставить ответный отзыв. Таким образом формируется рейтинг заказчика и исполнителя.

mql5-jobs-shag-6-oplataЗаключение

daily_picdump_2073_640_37

Если вам требуется реализовать уникальную торговую идею и вы разочаровались найти подходящее решение на просторах интернета, сервис MQL5 Jobs – это идеальное решение. Если же вы еще не сталкивались с Фриланс биржами до этого момента, помните, главное здесь – это взаимное уважение. Если вы будете следовать инструкциям и предоставлять всю необходимую информацию, вы наверняка получите желаемый результат, а возможно даже найдете постоянных партнеров.

Учимся писать советник. Часть 1.

25 февраля, 2016 Igor-san

В качестве примера для обучения решил начать с нуля создание собственного торгового советника. Для пущего привлечения читателей к своему детищу назову его Форекс-Грааль (Forex-Grail), слово «святой» (holy) от греха подальше опущу. Буду стараться делать код удобочитаемым, чтобы в дальнейшем было проще его расширять и искать ошибки. Итак, вперед.

Запускаем редактор Метаедитор (MetaEditor) из поставки Метатрейдера 4 (Metatrader), до 5 версии думаю я еще не скоро дойду, а в нем «Мастер MQL», где выбираем из предлагаемого списка шаблон советника.

wizard-grail

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

Переменные MINLOT,MAXLOT нужны для корректировки возможного несоответствия наших желаний требованиям дилинг-центра. Эта проверка осуществляется в блоке OnInit(), который выполняется после загрузки советника в терминал. Также событие OnInit происходит при смене периода графика, валюты, после перекомпиляции или смене счета. Тут нужно размещать однократно изменяемые сущности.

В функции OnDeinit ничего нет. Это событие возникает при закрытии графика, перед сменой валюты, при изменении входных параметров после перекомпиляции исходника, при смене счета ну и при выключении торгового терминала.

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

В нашем простейшем примере мы будем торговать одним ордером. Для этого в функции TradesCount() вычисляется число рыночных ордеров, и если хотя бы один присутствует, то ничего не делаем.

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

И это будет работать в большинстве случаев. Но иногда можете нарваться на ошибку 130 — неправильные стопы. Особенно если вы скальпер и несколько пипсов в сделке вам ох как важны. А все потому что стопы и тейки в длинной позиции нужно устанавливать не от Ask, а от Bid.
Запомним несколько простых, пусть и печальных для трейдера правил:
1) Брокер работает против вас, любая сделка открывается не в вашу пользу.
2) Продаем по заниженной против нас цене, а покупаем по завышенной.
3) ASK — цена по которой вы покупаете (для вас завышают цену), она выше цены, по которой вы же можете продать (А идет выше буквы B).
4) BID — цена по которой вы продаете (для вас занижают цену), она ниже цены, чем продают вам (буква B стоит ниже А)
5) Длинная позиция, покупка, открывается по невыгодной для вас цене ASK , соответственно закрытие длинной позиции, будь то стоп или профит, будет проходить как продажа вами по невыгодной для вас цене BID.
6) Короткая позиция, продажа, открывается по невыгодной для вас цене BID, соответственно её закрытие будет проводиться брокером как покупка вами по грабительской цене ASK.

Разница между ценами Ask и Bid называется спредом и является существенным заработком для брокеров, и иногда, при резких движениях торгового инструмента, она может существенно возрастать. Надеюсь, это небольшое отступление будет полезно для новичков.

Итак, вот в общем-то наш первый советник и готов. Пора приступить к испытаниям и открывать реальный торговый счет для загребания денег :).

strategy-tester-grail-1

К сожалению, график не внушает оптимизма, с Канарами придется повременить и продолжить работать головой. Постойте, раз на рынке только 25% времени существуют выраженные тренды, а оставшееся время валюты и сырье болтаются во флете, то может нам нужно не идти в направлении предыдущей свечи, а развернуться? Поменяем знак сравнения в if (Open[1] чтобы получилось if (Open[1]>Close[1]) — в лонг идем при черной свече. И заново протестируем «грааль».

strategy-tester-grail-2

journal-grail

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

А если еще и провести оптимизацию значений

то можно получить вполне себе симпатичный график.

На этой оптимистической ноте и закончим создание первой самостоятельной версии автоматического торгового советника Форекс-Грааль. И постоянного профита всем нам!

Продолжение находится здесь: вводим трейлинг-стоп.

Опубликовано в рубрике Советник Forex-Grail Теги: mql4, грааль, Метаедитор, спред

Источник https://pamm-fxprofit.com/foreks-dlya-novichkov/kak-napisat-sovetnik-dlya-mt4-v-kurse-obucheniya-mql.html

Источник https://tlap.com/avtomatiziruem-vashy-strategiy/

Источник https://hometrade.ru/uchimsya-pisat-sovetnik-1/