Как заказать торгового робота на MQL5 и MQL4

18 июня 2010, 17:06
MetaQuotes
91
55 533

 

Автоматическая торговля в MetaTrader

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

 

Написание программ для торговли

Однако не все трейдеры являются программистами, поэтому часто на форумах появляются темы "Требуется программист", многие программисты предоставляют услуги по написанию советников и индикаторов на языке MQL. Работа по написанию торговых советников имеет определенную специфику, алгоритм должен быть четко формализован (см. статью Советник на заказ. Инструкция для трейдера), в противном случае заказчик может получить не то, что хотел получить. Как следствие этого - неизбежные недоразумения.

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

 

Раздел Работа на MQL5.com

Основным отличием сервиса "Работа" на MQL5.community от большинства подобных ресурсов и сервисов на других сайтах является безопасность. Заказчик и исполнитель защищены от недобросовестных действий противоположной стороны на всем протяжении совместной работы. В случае возникновения спорной ситуации компания MetaQuotes Software Corp. готова выступить арбитром.

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

В данной статье мы рассмотрим, как пользоваться сервисом "Работа" для размещения и выполнения заказов на работу.

 

1. Создание заказа на выполнение работы

Итак, требуется разместить заказ на создание советника, идем в раздел "Работа" и выбираем пункт "Новая работа":

Рисунок 1. Создание нового заказа

Рисунок 1. Создание нового Заказа

После этого появится возможность указать детали работы:

Рисунок 2. Редактирование работы

Рисунок 2. Редактирование работы

  • Название (краткая информация о работе, которую требуется сделать)
  • Ориентировочная стоимость (указывается в долларах США)
  • Ориентировочные сроки (указывается в днях)
  • Категории (указываются одна или две категорий работы): Индикаторы, Эксперты, Библиотеки, Скрипты, Интеграция, Прочее)
  • Описание (информация о работе, на этом этапе нет необходимости предоставлять детальное техническое задание)

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

В пункте "Категории" к заказу нужно указать одну или две (не более) категорий работы, которую требуется сделать, и нажать "Применить":

Рисунок 3. Категории работы

Рисунок 3. Категории работы

В нашем случае требуется написание эксперта, поэтому выберем категорию "Эксперты".

После этого в секции "Новые" появится заказ на выполнение работы, и этот заказ будет виден в разделе "Работа" всем пользователям MQL5 сообщества:

Рисунок 4. Размещенный Заказ на работу

Рисунок 4. Размещенный Заказ на работу

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

 

2. Обработка заявок на выполнение работы

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

Рисунок 5. Подача заявки на выполнение работы

Рисунок 5. Подача заявки на выполнение работы

Текущие заявки на выполнение работы видны всем пользователям MQL5.community. При подаче заявок Претендентами, они попадают в категорию "Необработанные".

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

При появлении в Заказе новых сообщений появится значок в виде портфеля - это уведомление о наличии обновлений:

Рисунок 6. Обновления в работах

Рисунок 6. Обновления в работах

Для перехода к просмотру новых сообщений нажмите на данную иконку.

Дальнейшие действия Заказчика - обработка поступивших заявок на выполнение работы. Это осуществляется переносом заявок претендентов в категории "Выбранные", "Кандидаты" или "Отклоненные":

Рисунок 7. Список заявок Претендентов на выполнение работы

Рисунок 7. Список заявок Претендентов на выполнение работы

Подходящих Претендентов на выполнение работы можно поместить в группу "Кандидаты" и с ними вести дальнейшее обсуждение деталей работы.

При помещении Претендентов в группу "Кандидаты" они будут об этом проинформированы, и в соответствующих обсуждениях Заявок добавятся сообщения:

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

После того как Заказчиком принято решение о выборе наиболее подходящей Заявки на выполнение работы, нужно перенести Заявку в категорию "Выбранные":

Рисунок 8. Выбор Исполнителя работы

Рисунок 8. Выбор Исполнителя работы

Важно: При попытке выбрать еще одну Заявку по данному Заказу в дополнение к уже выбранной, произойдет удаление текущей выбранной заявки из категории Выбранные.

В данном примере Заказчик Alexander_Demidov поместил заявки пользователей Mikhail_Antonov и Greg_Maltsev в группу "Кандидаты". Заявка пользователя Mikhail_Antonov будет перенесена в категорию "Выбранные". Перенос Заявки в категорию "Выбранные" означает, что Заказчик выбрал Исполнителя работы.

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

 

3. Выполнение работы

Процесс выполнения работы состоит из шести шагов. Прохождение первых пяти шагов подтверждается Заказчиком и Исполнителем.

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

Краткое описание действий Заказчика и Исполнителя на каждом из шагов приведено в таблице 1.

Шаг Название Действия Заказчика Действия Исполнителя
1 Соглашение
о работе
Подтверждает выбор заявки Исполнителя на выполнение работы. Подтверждает согласие на выполнение работы.
2 Согласование технического задания Предоставляет Исполнителю Техническое Задание.
Подтверждает окончательную стоимость и сроки выполнения работ.
Подтверждает согласие с представленным ТЗ и указанной окончательной стоимостью и сроками выполнения работ
3
Демонстрация После получения материалов работы, Заказчик должен либо подтвердить соответствие представленных материалов характеру Заказа, либо отклонить с перечислением нереализованных требований технического задания. Когда все пункты Технического Задания выполнены, Исполнитель предоставляет демонстрацию результатов работы и подтверждает, что продемонстрировал Заказчику готовое решение.
4
Передача работ Заказчик проверяет предоставленные материалы и принимает работу. Исполнитель предоставляет работу Заказчику и подтверждает, что работа сдана.
5
Оплата После принятия работы Заказчиком система автоматически выполнит перечисление оплаты со счета Заказчика на счет Исполнителя.

Таблица 1. Действия Заказчика и Исполнителя на каждом из шагов

Обсуждение деталей и обмен материалами производится в сообщениях конкретной работы.

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

 

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

Для подтверждения начала работы с конкретным Исполнителем Заказчику нужно перенести выбранную Заявку на выполнение работы в категорию "Выбранные" и подтвердить свое согласие автору Заявки:

Рисунок 9. Подтверждение выбора Исполнителя работы

Рисунок 9. Подтверждение выбора Исполнителя работы

После этого в обсуждении появится подтверждение шага "Соглашение о работе":

Рисунок 10. Подтверждение шага "Соглашение о работе" со стороны Заказчика

Рисунок 10. Подтверждение шага "Соглашение о работе" со стороны Заказчика

После подтверждения Заказчиком шага "Соглашение о работе", на мобильное устройство Исполнителя будет отправлено Push-уведомление вида:

"Работа: Заказчик Alexander_Demidov подтвердил этап "Соглашение о работе"

Для получения Push-уведомлений необходимо предварительно указать идентификатор Metaquotes ID в своем профиле MQL5.community. Подробнее о Push-уведомлениях вы можете узнать в статье MetaQuotes ID в мобильном терминале MetaTrader.

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

Исполнитель также должен подтвердить свое согласие на выполнение работы:

Рисунок 11. Подтверждение шага "Соглашение о работе" со стороны Исполнителя

Рисунок 11. Подтверждение шага "Соглашение о работе" со стороны Исполнителя

После согласия Исполнителя на выполнение работы соглашение о работе достигнуто:

Рисунок 12. Шаг "Соглашение о работе" подтвержден обеими сторонами

Рисунок 12. Шаг "Соглашение о работе" подтвержден обеими сторонами

Как видно на рис. 11, шаг "Соглашение о работе" теперь отображается светло-зеленым цветом. Это означает, что шаг выполнен.

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

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

 

3.2 Шаг 2. Согласование Технического Задания

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

Рисунок 13. Согласование технического задания, предоставленного Заказчиком

Рисунок 13. Согласование технического задания, предоставленного Заказчиком

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

Рисунок 14. Прикрепление технического задания в обсуждении работы
Рисунок 14. Прикрепление технического задания в обсуждении работы

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

Финальный вариант Технического Задания предоставляется Заказчиком в виде прикрепленного файла непосредственно перед подтверждением шага "Согласование ТЗ". Все пункты задания должны быть детально описаны и при необходимости иллюстрироваться картинками.

Заказчик вместе с окончательным вариантом ТЗ должен также установить стоимость оплаты и сроки выполнения работы:

Рисунок 15. Подтверждение Заказчиком предоставления Технического Задания и утверждения окончательной стоимости работы

Рисунок 15. Подтверждение Заказчиком предоставления Технического Задания и утверждения окончательной стоимости работы

Исполнитель должен дать согласие с условиями Технического Задания и указанной окончательной стоимостью работы:

Рисунок 16. Подтверждение Исполнителем согласия с условиями Технического Задания и окончательной стоимостью работы

Рисунок 16. Подтверждение Исполнителем согласия с условиями Технического Задания и окончательной стоимостью работы

Утвержденное обеими сторонами Техническое Задание должно содержать все требования к Заказу.

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

После подтверждения обеими сторонами шага "Согласование ТЗ" в обсуждениях появятся сообщения:

Рисунок 17. Подтверждение шага "Согласование ТЗ"

Рисунок 17. Подтверждение шага "Согласование ТЗ"

После прохождения шага "Согласование ТЗ" вносить какие-либо изменения в комментарии в обсуждениях работы невозможно. В случае необходимости корректировок следует отправлять новые сообщения с деталями изменений.

 


3.3 Шаг 3. Демонстрация

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

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

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

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

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

Процесс подтверждения шага "Демонстрация" также автоматически протоколируется сервисом Работа:

Рисунок 19. Подтверждение шага "Демонстрация"

Рисунок 19. Подтверждение шага "Демонстрация"

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

 

3.4 Шаг 4. Передача работ

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

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

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

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

Рисунок 20. Подтверждение шага "Передача работ"

Рисунок 20. Подтверждение шага "Передача работ"

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

 

3.5 Шаг 5. Оплата

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

Рисунок 21. Оплата работы

Рисунок 21. Оплата работы

После выполнения работы она попадает в раздел "Выполненные":

Рисунок 22. Работа выполнена

Рисунок 22. Работа выполнена

 

4. Отзывы о работе

После завершения работы Заказчик и Исполнитель имеют возможность написать отзывы о проведенном сотрудничестве и поставить оценку.

Список работ, завершенных Заказчиком или Исполнителем, можно увидеть в разделе "Работа" профиля пользователя.

Пример отзыва, оставленного Заказчиком приведен на рис. 23.

Рисунок 23. Список работ, выполненных пользователем Mikhail Antonov

Рисунок 23. Список работ, выполненных пользователем Mikhail Antonov

У Исполнителя также есть возможность оставить отзыв о Заказчике:

Рисунок 24. Отзывы от исполнителей работ, заказанных пользователем Alexander Demidov

Рисунок 24. Отзывы от исполнителей работ, заказанных пользователем Alexander Demidov

 

Заключение

Если вы трейдер с готовой торговой стратегией, но не умеющий программировать на MQL5/MQL4, то "Работа" - это сервис для вас. С ним вы получаете простую, контролируемую и безопасную возможность найти разработчика, который напишет вам эксперта или индикатор. Любой из зарегистрированных пользователей может принять ваше предложение и разработать для вас требуемую программу.

С запуском сервиса "Работа" MQL5.community становится идеальным местом для размещения заказов и оказания услуг программирования. Тысячи трейдеров и разработчиков ежедневно посещают этот ресурс и с легкостью могут помочь друг другу. Для трейдера сервис "Работа" - это возможность легко получить свой собственный эксперт. Для MQL5-разработчика это возможность легко найти новых клиентов.

Последние комментарии | Перейти к обсуждению на форуме трейдеров (91)
Evgeny Nevolin
Evgeny Nevolin | 5 июн 2019 в 22:04
Я опубликовал задание на разработку советника, пришло много предложений, но я не могу выбрать подходящего кандидата, никакой информации о них не видно, отзывов тоже, все они числятся как разработчики под номерами, никаких имен нет.
Artyom Trishkin
Artyom Trishkin | 5 июн 2019 в 22:17
Evgeny Nevolin:
Я опубликовал задание на разработку советника, пришло много предложений, но я не могу выбрать подходящего кандидата, никакой информации о них не видно, отзывов тоже, все они числятся как разработчики под номерами, никаких имен нет.

Таковы правила фриланса.

Konstantin Nikitin
Konstantin Nikitin | 5 июн 2019 в 22:25
Evgeny Nevolin:
Я опубликовал задание на разработку советника, пришло много предложений, но я не могу выбрать подходящего кандидата, никакой информации о них не видно, отзывов тоже, все они числятся как разработчики под номерами, никаких имен нет.

Пообщайтесь с разработчиками. Чаще всего по их ответам проще определиться кто есть кто.

P.S. Ну и как вариант можно договориться с кем-то и разместить персональный заказ.
Anastasiya Burbello
Anastasiya Burbello | 25 июл 2019 в 16:06

Здравствуйте. Я здесь новичок и возник вопрос.

Гипотетически. Возможно ли продлить сроки выполнения заказа после согласования ТЗ между Заказчиком и Исполнителем, если оба на это согласны?

Присутствует ли такая функция?

Спасибо за ответы.

Ivan Titov
Ivan Titov | 30 ноя 2019 в 13:08
Предлагаю сделать согласование обеими сторонами увеличение срока и бюджета работы. А то заказчики, пользуясь этим, необоснованно затягивают проверку и навязывают доработки, не предусмотренные ТЗ.
Пошаговое руководство по написанию MQL5-советников для начинающих Пошаговое руководство по написанию MQL5-советников для начинающих

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

Создание и публикация отчетов о результатах торговли, отправка SMS-сообщений Создание и публикация отчетов о результатах торговли, отправка SMS-сообщений

Трейдер не всегда имеет возможность и желание находиться часами перед торговым терминалом. Особенно, если торговая система в той или иной степени формализована и позволяет автоматически идентифицировать некоторые состояния рынка. В данной статье описано, как с помощью советника, индикатора или скрипта сформировать отчет о результатах торговли в виде html-файла и загрузить его по протоколу FTP на WWW-сервер, рассмотрен вопрос отправки уведомлений о торговых событиях на мобильный телефон в виде SMS-сообщений.

Библиотека для построения  диаграмм средствами Google Chart API Библиотека для построения диаграмм средствами Google Chart API

Построение разного рода диаграмм является неотъемлемой частью анализа рыночной ситуации и тестирования торговой системы. Зачастую, чтобы построить красивую наглядную диаграмму приходится организовать вывод данных в файл, после чего использовать его в приложениях типа MS Excel, что не слишком удобно и лишает нас возможности динамического обновления данных. Google Charts API предоставляет средства для создания диаграмм в он-лайн режиме путём отправки специального запроса на сервер. В статье делается попытка автоматизировать процесс создания запроса и получения диаграммы с сервера Google.

Принципы экономного пересчета индикаторов Принципы экономного пересчета индикаторов

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