НАПИШУ СОВЕТНИК ДЛЯ МТ4 ИЛИ МТ5
|

Разрешите представиться, меня зовут Александр я программист и трейдер на фондовой бирже.

Специализируюсь на создании советников для терминалов «MetaTrader 4» и «MetaTrader 5».

Более 10 лет помогаю трейдерам с автоматизацией торговли на бирже, пишу советники для Форекс и торговые роботы для Фондовой биржи.

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

ИНН 720801575700

ОРГНИП 3127232214001

Работаю с заказчиками со всего мира. Постоянным клиентам даю 20% скидку.

Являюсь активным трейдером и имею статус квалифицированного инвестора с 2020 г.

Предпочитаю спекулировать акциями на Фондовой бирже. Веду публичную торговлю в телеграм и обучаю своей торговой системе 38%. Если интересно, то пишите мне в телеграм.

Скачайте шаблон технического задания, заполните и пришлите его нам на почту dken@ya.ru или в мессенджер указанный ниже.

Я гарантирую выполнение заказа в полном объеме, а в случаи, если не справлюсь с задачей, то верну вам предоплату в 100% размере.

Если у вас остались вопросы, то напишите мне в любой из мессенджеров.

У вас нет торговой стратегии?
Воспользуйтесь данным сайтом, тут много интересных и хороших торговых стратегий.
Ну, а если вам нужен торговый советник по выбранной вами стратегии, то присылайте нам задание, мы вам поможем автоматизировать или протестировать торговую стратегию.

Запустили новый Маркетплейс торговых роботов, индикаторов, стратегий и курсов. Приглашаем вас в интернет-магазин.

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

Если хотите узнать больше, то пишите мне в любой из мессенджеров.

Согласно федеральному закону «О рынке ценных бумаг» от 22.04.1996 N 39-ФЗ sovetnikov.net не осуществляет брокерскую деятельность и не оказывает услуги Форекс дилинга. Компания осуществляет деятельность только по предоставлению консультационных услуг по вопросам автоматизации торговых стратегий.

Предупреждение
В связи с законами РФ, обязан вас уведомить, что информация на данном сайте не является индивидуальной инвестиционной рекомендацией, и финансовые инструменты либо операции, упомянутые в ней, могут не соответствовать Вашему инвестиционному профилю и инвестиционным целям (ожиданиям). Определение соответствия финансового инструмента либо операции Вашим интересам, инвестиционным целям, инвестиционному горизонту и уровню допустимого риска является Вашей задачей. ИП Гаврилин Александр Викторович не несет ответственности за возможные убытки в случае совершения операций либо инвестирования в финансовые инструменты, упомянутые на данном сайте, и не рекомендует использовать указанную информацию в качестве единственного источника информации при принятии инвестиционного решения.

Учимся писать советник. Часть 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, грааль, Метаедитор, спред

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

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

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

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

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 – это идеальное решение. Если же вы еще не сталкивались с Фриланс биржами до этого момента, помните, главное здесь – это взаимное уважение. Если вы будете следовать инструкциям и предоставлять всю необходимую информацию, вы наверняка получите желаемый результат, а возможно даже найдете постоянных партнеров.

Источник https://napishu-sovetnik.ru/

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

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