НАПИСАНИЕ ФОРЕКС СОВЕТНИКОВ

Лучшие Форекс брокеры 2021:

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

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

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

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

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

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

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

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

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

Лучшие Форекс брокеры 2021:

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

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

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

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

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

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

Техническое задание по написанию форекс робота (советника)

Лучшие Форекс брокеры 2021:

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

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

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

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

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

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

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

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

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

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

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

Общение с исполнителями

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

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

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

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

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

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

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

Шаг 2: Подтверждение ТЗ

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

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

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

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

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

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

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

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

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

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

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

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

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

Шаг 6: Оплата

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

Заключение

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

MQL4: Пишем советник по индикатору открытых позиций трейдеров

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

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

Мы будем использовать библиотеку wininet.dll, которая как раз позволяет получать данные из сети. Также мы будем плотно работать со строками, используя такие функции, как StringFind, StringSubstr, StringConcatenate, StrToDouble и прочие.

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

Заключение

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

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

Как заказать написание советника по вашей стратегии. Как написать Форекс советник самому? Правильные советы начинающим

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

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

Наш сайт предлагает Вам услуги программирования торговых систем (советников, индикаторов) на заказ. Разработка ведётся на языках mql4 и c# . Если у Вас есть прибыльная торговая стратегия и Вы хотите написать по ней советника, Вы можете его заказать нашему программисту за умеренную плату.

Советники на заказ пишет для нас профессиональный программист, практикующий трейдер, имеющий богатый опыт в этой сфере. Мы предлагаем программирование советников и индикаторов форекс на заказ для торговых платформ MetaTrader4 и cAlgo .

У нас Вы можете заказать написание советника или индикатора для:

  • Метатрейдер4 (МТ4, язык программирования mql4)
  • Метатрейдер5 (МТ5, язык программирования mql5)
  • cAlgo (язык программирования C#)
  • NinjaTrader (язык программирования C#)
  • ActTrader (язык программирования Pascal)
  • ThinkOrSwim (язык программирования Java)

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

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

Заказывая советник у нас , Вы можете рассчитывать на отличное качество выполненной работы, сжатые сроки и поддержку заказчика после сдачи работы, в плане установки и настройки советника. Все работы всегда доводятся до логического завершения и до того состояния, которое полностью устраивает заказчика. Все работы перед отправкой клиенту проходят предварительную проверку в тестере и в реальном времени. Предварительное согласование техзадания возможно по скайпу MqlProger или ICQ 330-249-601, но в любом случае ТЗ в письменном виде должно быть сформировано заказчиком и отправлено на email.

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

Рабочее время с 10.00 до 19.00 МСК, кроме выходных. Ваши заказы на советники и индикаторы принимаются круглосуточно, программист обрабатывает их в рабочее время.

Обратите внимание, вышел новый 600 билд Метатрейдер 4, подробнее читайте в разделе статей, в котором установка советников и индикаторов производится принципиально по другому в отличие от старых билдов. Все советники, которые Вы заказываете у нас для терминала МТ4, будут готовы к использованию на последних билдах, в том числе билд 600 и выше.

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

Внимание! Неточности в коде, допущенные по вине программиста, исправляются бесплатно.

В наши услуги входит: Программирование советников на заказ, написание торговых роботов, скриптов, индикаторов для платформы MetaTrade 4. Возможно программирование под любые другие платформы. Решение нестандартных задач автоматизации связанных с FOREX. Огромный опыт программирования задач с визуальными элементами платформы MetaTrader. Большой опыт разработки нейроиндикаторов и автоматических торговых систем с использованием нейронных сетей. Перед заказом Вы можете ознакомиться с нашими разработками, .
Вы можете приблизительно узнать о стоимости заказа исходя из прайс-листа:

  • Разработка простых советник для МТ4 на заказ(например основанных на пересечении, с трейлингом и стопами и тейкпрофитом) от 10$.
  • Усложнёный алгоритм входа/выхода советника от 20$.
  • Добавление к торговому роботу(заказанному у нас) простых систем управления капиталом(например мартингейл) от 10-50$
  • Усложнённый расчёт уровней отложенных ордеров от 40$.
  • Советники основанные на управлении визуальными элементами MetaTrader»а от 50$. —
  • Мультивалютные советники как правило очень сложные в исполнении и начальные цены обычно выше от 80$. Но смысла их заказывать почти нету потому что каждый советник работает на любой паре не мешаю другому советнику.
  • Трейлинг стоп от 10$.
  • Советники на основе сеток из отложенных ордеров от 80$

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

Когда я показываю работу эксперта заказчику, а МТ4 как всегда виснет

Индикаторы, скрипты на заказ

  • Cигнал по условиям от 10$
  • Формула или наложение мувинга на имеющийся индикатор от 10$
  • Индикаторы расставляющие визуальные(трендовые линии) элементы MetaTrader от 50$

Реализация задач с применение других языков программирования

  • Реализация отдельных функций в DLL — от 50$
  • Защита кода путём переноса расчётной части в DLL от 100$.
  • Выполнение защиты с помощью функций WinAPI(практически не взламываемый тип защиты) для коммерческих советников от 150$
  • Связка терминалов от 300$(Альфа Директ, NinjaTrader и др.)
  • Копирование сделок с одного счёта на другие — 70$.
  • Решение задач с использованием нейронных сетей от 500$.(только при условии что заказчик хорошо знает тему НС)

Если Вы хотите заказать советника, свяжитесь с нами!

Режим работы С понедельника по воскресенье, круглосуточно

Адрес: Ворошиловский просп., 13 344006 Ростов-на-Дону,

Телефон:+7 950 854 77 00,

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

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

Рано или поздно в жизни трейдера наступает момент, когда требуется автоматизация торгового процесса. Говоря проще трейдеру надоедает торговать «руками» и нужно поручить эту рутинную работу компьютеру.

Чтобы компьютер торговал сам, ему требуется специальная программа, которая бы могла самостоятельно заниматься торговлей в торговом терминале. Такая программа называется советником или торговым экспертом (expert advisor). На жаргоне трейдеров советник может называться «сова» (сокращенное от «советник»), торговый робот и пр.

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

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

Цена работы зависит от сложности Вашего задания. Могу сказать одно — по сравнению с аналогичными предложениями на данном «рынке труда», я делаю советники недорого.

Обо мне:

На рынке с 2006 года. Реальные счета, ПАММ-счета, инвестирование в ПАММы. Программирую на mql4 около 4 лет. Чуть менее на mql5. Мои личные работы успешно продаются в Маркете . Мной выполнено уже более 300 заказов на mql4-mql5.
=====================

Детали:

  • срок разработки — 1-3 дня;
  • в срок разработки не входит срок тестирования и отладки, который по времени зависит в основном от Заказчика;
  • перед выдачей Заказчику советник гарантированно тестируется на отработку положений тех.задания.

Гарантии

  • абсолютная конфиденциальность;
  • при невыполнении договорённостей с моей стороны сумма предоплаты возвращается;
  • длительное сопровождение (модернизация, бесплатное исправление «багов») —> .

Преимущества:

  • предоставляю исходный код (.mq4, .mq5);
  • максимальная гибкость в настройках параметров (настраивается всё);
  • советник готов работать на реале (также на демо и в тестере);
  • советник корректно отрабатывает перезапуск, не пропускает сигналы;
  • советник «видит» только свои ордера, не привязан к инструменту и таймфрейму графика;
  • работаю один, без команды и не посредничаю, поэтому несу личную ответственность по всем своим гарантиям;
  • Стоимость работы от $50 (все индивидуально). Гибкие способы оплаты.

Чтобы заказать советник, пожалуйста, свяжитесь со мной по одному из этих контактов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Общение с исполнителями

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

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

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

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

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

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

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

Шаг 2: Подтверждение ТЗ

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

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

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

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

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

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

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

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

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

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

НАПИСАНИЕ СОВЕТНИКОВ ФОРЕКС

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

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

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

Шаг 6: Оплата

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

Заключение

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

С уважением, Алексей Вергунов

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

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

На нашем ресурсе вы также можете заказать написание советника или индикатора, которые будут написаны на языке mql4 и c#.

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

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

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

Пошаговое руководство по написанию MQL5-советников для начинающих

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

1. Торговая стратегия

Что будет делать наш советник:

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

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

  1. Мы будем использовать индикатор Moving Average (скользящие средние) с периодом 8 (вы можете выбрать любой период, но в данной стратегии мы будем использовать период 8).
  2. Мы хотим, чтобы наш советник покупал, если 8-периодная скользящая средняя (далее для удобства будем называть ее MA-8) возрастает и текущая цена закрытия находится выше ее; советник должен продавать , когда MA-8 падает и цена закрытия находится ниже MA-8 .
  3. Также мы собираемся использовать другой индикатор, называемый Average Directional Movement (ADX) с периодом 8 для определения факта наличия тренда на рынке. Это нужно для того, чтобы входить в рынок, когда он находится в состоянии тренда. Для того, чтобы это реализовать, мы будем помещать торговый запрос (на покупку или продажу) при наступлении условий, указанных выше, а также при значениях ADX, больших 22. Если ADX>22, но уменьшается или ADX<22, мы не будем помещать торговые запросы даже при наступлении условий, изложенных в пункте 2.
  4. Мы хотим защитить себя установкой ордеров Stop Loss в 30 пунктов, Take Proft установим на уровне 100 пунктов.
  5. Также мы хотим, чтобы советник проверял возможности для продажи/покупки только при формировании нового бара, при этом советник должен помещать ордер на покупку только в случае сигнала на покупку и отсутствия открытых длинных позиций. Аналогично в случае продажи — условия на продажу и отсутствие открытых коротких позиций.

Forex EA Generator — создание простого советника

Стратегия разработана, теперь время начать писать код.

2. Пишем советник

2.1 Мастер MQL5

Начнем с запуска редактора MetaQuotes Language Editor 5. Затем нажимаем Ctrl-N или на кнопку «Создать» в панели инструментов.

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

В окне Мастера MQL5 выбираем «Советник» и нажимаем «Далее», как показано на рис. 2:

Рисунок 2. Выбор типа создаваемой программы

В следующем окне в поле «Имя» напишите имя, которое вы хотите дать вашему советнику, я написал «My_First_EA«. Вы можете указать свое имя в поле «Автор» и адрес в виде ссылки на ваш сайт или e-mail (если есть).

Рисунок 3. Общие параметры советника

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

Рисунок 4. Входные параметры советника

В нашем советнике нам нужно иметь возможность изменять Stop Loss, Take Profit, ADX Period and Moving Average Period, так что укажем их здесь.

Дважды кликнем мышкой по колонке «Имя» в параметрах и напишем наименование параметра, аналогично в колонках «Тип» и «Начальное значение» укажем тип данных параметра и начальные значения.

После этого, результат будет примерно следующий:

Рисунок 5. Типы данных входных параметров советника

Как видно, мы выбрали тип integer (int) для всех параметров. Рассмотрим подробнее типы данных.

  • char: Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как положительные, так и отрицательные значения. Диапазон изменения значений составляет от -128 до 127.
  • uchar: Целый тип uchar также занимает в памяти 1 байт, как и тип char, но в отличие от него, uchar предназначен только для положительных значений. Минимальное значение равно нулю, максимальное значение равно 255. Первая буква u в названии типа uchar является сокращением слова unsigned (беззнаковый).
  • short: Целый тип short имеет размер 2 байта(16 бит) и, соответственно, позволяет выразить множество значений равное 2 в степени 16: 2^16=65 536. Так как тип short является знаковым и содержит как положительные, так и отрицательные значения, то диапазон значений находится между -32 768 и 32 767.
  • ushort: Беззнаковым типом short является тип ushort, который также имеет размер 2 байта. Минимальное значение равно 0, максимальное значение 65 535.
  • int: Целый тип int имеет размер 4 байта (32 бита). Минимальное значение -2 147 483 648, максимальное значение 2 147 483 647.
  • uint: Беззнаковый целый тип uint занимает в памяти 4 байта и позволяет выражать целочисленные значения от 0 до 4 294 967 295.
  • long: Целый тип long имеет размер 8 байт (64 бита). Минимальное значение -9 223 372 036 854 775 808, максимальное значение 9 223 372 036 854 775 807.
  • ulong: Целый тип ulong также занимает 8 байт и позволяет хранить значения от 0 до 18 446 744 073 709 551 615.

Как видно из описания различных типов данных, беззнаковые целые (uint) не предназначены для хранения отрицательных значений, любые попытки установить отрицательные значения могут привести к непредсказуемым результатам. Например, если вы хотите хранить отрицательные значения, нельзя для них использовать переменные типа uchar, uint, ushort, ulong.

Вернемся к нашему советнику. Для значений, меньших 127 или 255, для экономии памяти можно использовать значения типа char or uchar, соответственно, однако для удобства мы зададим их значения как тип int.

После того, как закончено определение необходимых входных параметров индикатора, нажмем на кнопку «Finish» и MetaQuotes Editor5 создаст шаблон кода, представленный ниже:

Для лучшего понимания, рассмотрим отдельно различные секции кода.

В верхней части кода (заголовок) определяются свойства советника. Как видно, это значения, которые были установлены в Мастере MQL5 на рис. 3.

В этой части кода также можно задать дополнительные параметры, например description (текст с кратким описанием советника), определить константы, включить дополнительные файлы или импортируемые функции.

Для выражений, начинающихся с символа «#», не нужно ставить точку с запятой в конце строки, это директивы препроцессора. Другой пример:

  • #define
    Директива #define используется для определения констант. Записывается в виде:
  • #defineidentifiertoken_string
    Это означает, что компилятор заменит в коде переменные identifier численным значением, равным token_string.

#define ABC 100
#define COMPANY_NAME «MetaQuotes Software Corp.»

В данном случае COMPANY_NAME будет означать строку «MetaQuotes Software Corp.», вместо ABC будет подразумеваться число, равное 100.

Более подробнее о директивах препроцессора можно прочитать в руководстве по MQL5. Идем далее.

Вторая часть заголовка в нашем коде — это секция входных параметров.

написание советников форекс

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

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

Далее идет функция инициализации советника. Это функция вызывается первой после запуска советника или смены графика и вызывается только один раз.

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

Например, можно проверить, достаточно ли баров на графике для работы нашего советника и т.п.

Также это лучшее место для получения хэндлов технических индикаторов, которые будут использоваться (в нашем случае это индикаторы ADX и Moving Average ).

Функция OnDeinit вызывается при удалении советника с графика.

Форекс Написание Советников

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

Данная функция производит обработку события NewTick, которое генерируется при приходе новой котировки для символа.

Большая часть кода, отвечающего за реализацию нашей торговой стратегии будет содержаться в данной функции.

Отметим, что советник не сможет производить торговые операции, если в авто-трейдинг не разрешен в клиентском терминале:

Рисунок 6. Торговля советником разрешена

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

2.2. Раздел входных параметров

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

Это однострочный комментарий.

Это многострочный комментарий

Это многострочный комментарий. Многострочные комментарии начинаются с пары символов «/*» и заканчиваются «*/» .

При компиляции кода комментарии игнорируются компилятором.

Использование однострочных комментариев для входных параметров позволяет описать предназначение входных параметров. В этом случае вместо наименования параметров будут показаны комментарии, как показано ниже:

Рисунок 7. Входные параметры советника

Вернемся к нашему коду.

Мы решили добавить дополнительные параметры в наш советник. Параметр EA_Magic (Magic Number) будет использован для всех ордеров нашего советника. Минимальное значение ADX задано как переменная типа double. Значения типа double используются для констант, которые, наряду с целой частью, также могут содержать и дробную часть.

double mysum = 123.5678 ;

double b7 = 0.09876 ;

Количество лотов для торговли (Lot) представляет собой объем финансового инструмента, который мы хотим торговать.

Далее мы также объявили дополнительные переменные, которые будут использованы следующим образом: переменная adxHandle будет использоваться для хранения хэндла индикатора ADX, переменная maHandle для хэндла индикатора Moving Average. Динамические массивы plsDI[], minDI[], adxVal[] are будут использованы для хранения значений +DI, -DI и самого значения ADX для каждого бара графика. Численные значения индикатора Moving Average для каждого бара графика будут храниться в динамическом массиве maVal[].

Кстати, что представляют собой динамические массивы? Динамический массив — это массив, объявленный без указания размера. Другими словами, в квадратных скобках при его описании нет конкретного числа, указывающего его размер.

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

double allbars[ 20 ]; // этот массив содержит 20 элементов — от 0 до 19

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

Переменные STP и TKP нужны для установки значений Stop Loss и Take Profit ордеров нашего советника.

2.3. Секция инициализации советника

Далее мы получаем хэндлы индикаторов, используя соответствующие функции индикаторов.

Хэндл индикатора ADX получаем при помощи функции iADX. В качестве аргументов ей передается символ графика symbol ( NULL также означает символ текущего графика), период/таймфрейм ( 0 означает таймфрейм текущего графика ), период индикатора ADX, который будет использоваться для вычисления индикатора (ADX_Period мы определили в разделе входных параметров индикатора):

Хэндл индикатора Moving Average получаем при помощи функции iMA. Аргументы этой функции следующие:

  • symbol — Символьное имя инструмента, на данных которого будет вычисляться индикатор (можно использовать _symbol, symbol() или NULL для текущего символа).
  • period — Значение периода может быть одним из значений перечисления ENUM_TIMEFRAMES, (можно использовать _period, period() или 0 для таймфрейма текущего графика).
  • ma_period — Период усреднения для вычисления скользящего среднего (который мы определили ранее в разделе входных параметров индикатора).
  • ma_shift — Сдвиг индикатора относительно ценового графика (мы используем 0).
  • ma_method — Метод усреднения. Может быть любым из значений MODE_SMA, MODE_EMA, MODE_SMMA или MODE_LWMA.
  • applied_price — Используемая цена. Может быть любой из ценовых констант ENUM_APPLIED_PRICE или хендлом другого индикатора.

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

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

Мы решили хранить значения Stop Loss и Take Profit в определенных ранее переменных STP и TKP. Почему мы это сделали?

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

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

Предопределенной переменной _Digits или функцией Digits() . Для 3-х и 5-ти значных котировок мы умножаем значения Stop Loss и Take Profit на 10.

2.4. Раздел деинициализации советника

Поскольку эта функция вызывается при прекращении работы советника или удалении советника с графика, здесь мы освобождаем хэндлы индикаторов, созданные в процессе инициализации. Мы создали два индикатора, ADX и Moving Average.

Для их удаления мы используем функцию IndicatorRelease(). Эта функция имеет лишь один параметр ( хэндл индикатора ).

bool IndicatorRelease (
int indicator_handle , // хэндл индикатора
);

Функция удаляет хэндл индикатора и освобождает расчетную часть индикатора, если ею больше никто не пользуется.

2.5 Раздел OnTick советника

Первое, что мы здесь делаем — проверяем достаточно ли баров на текущем графике. Количество баров на любом графике можно узнать при помощи функции Bars. У нее есть два входных параметра, первый — symbol, (символ текущего графика можно получить используя предопределенную переменную _Symbol или функцию Symbol() ) и period или timeframe текущего графика (для текущего графика — предопределенная переменная _Period или функция Period() ).

При количестве баров на графике менее 60, наш советник не будет работать и выйдет из функции OnTick. Функция Alert показывает сообщение в отдельном окне. Эта функция выводит значения аргументов/параметров, разделенных запятыми. В нашем случае выводится только одно значение в виде строки и завершается работа функции OnTick.

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

Мы начнем с объявления статической переменной Old_Time, в которой будем хранить время бара. Мы определили ее статической, поскольку нам нужно, чтобы ее значение сохранялось при новом вызове функции. Тогда у нас будет возможность проверять ее значение с переменной New_Time, которая также объявлена типа datetime, но в виде массива из одного элемента, она будет использоваться для хранения времени текущего бара. Также мы объявляем переменную IsNewBar типа boolean, и устанавливаем ее значение в false. Ее значение будет установлено в true только в случае определения факта появления нового бара.

Для получения времени бара используется функция CopyTime. Она копирует время бара в массив New_Time, состоящий из одного элемента. В случае успеха, мы сравниваем значение времени бара с сохраненным ранее временем предыдущего бара. Если они различны, это означает, что появился новый бар и переменная IsNewBar устанавливается в true, а значение текущего времени бара сохраняется в переменной Old_Time.

Таким образом, переменная IsNewBar будет указывать на факт появления нового бара. Если ее значение равно false, мы завершаем выполнение функции OnTick.

Обратите внимание на строчку:

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

Следующее, что мы собираемся cделать — проверить наличие достаточного количества баров для работы. Зачем делать это снова?

Мы хотим быть уверены в том, что наш советник работает корректно.

Следует отметить, что функция OnInit вызывается только один раз при присоединении советника к графику, а функция OnTick вызывается каждый раз при поступлении нового тика (ценовой котировки).

Как можно видеть, мы это делаем по-другому. Мы сохраняем общее количество баров в истории в новой переменной Mybars, определенной внутри функции OnTick:

Этот тип переменной является локальной переменной, в отличие от переменных, декларированных в разделе входных параметров нашего кода.

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

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

Эта структура используется для хранения последних цен по символу.

struct MqlTick
<
datetime time ; // Время последнего обновления цен
double bid ; // Текущая цена Bid
double ask ; // Текущая цена Ask
double last ; // Текущая цена последней сделки (Last)
ulong volume ; // Объем для текущей цены Last
>;

Любая переменная, объявленная типа может быть легко использована для получения текущих значений цен Ask, Bid, Last и Volume, достаточно вызвать функцию SymbolInfoTick.

Мы объявили переменную latest_price как структуру MqlTick, так что мы можем использовать ее для получения цен Bid и Ask.

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

написание советников форекс

struct MqlTradeRequest
<
ENUM_TRADE_REQUEST_ACTIONS action ; // Тип выполняемого действия
ulong magic ; // Идентификатор magic number эксперта
ulong order ; // Тикет ордера
string symbol ; // Имя торгового инструмента
double volume ; // Запрашиваемый объем сделки в лотах
double price ; // Цена
double stoplimit ; // Уровень StopLimit ордера
double sl ; // Уровень Stop Loss ордера
double tp ; // Уровень Take Profit ордера
ulong deviation ; // Максимально приемлемое отклонение от запрашиваемой цены
ENUM_ORDER_TYPE type ; // Тип ордера
ENUM_ORDER_TYPE_FILLING type_filling ; // Тип ордера по исполнению
ENUM_ORDER_TYPE_TIME type_time ; // Тип ордера по времени действия
datetime expiration ; // Срок истечения ордера (для ордеров типа ORDER_TIME_SPECIFIED)
string comment ; // Комментарий к ордеру
>;

Создание простого советника MT4 часть №1

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

Результат выполнения торговой операции возвращается в специальную предопределенную структуру типа MqlTradeResult. Любая переменная типа MqlTradeResult может быть использована для доступа к результату выполнения торгового запроса.

struct MqlTradeResult
<
uint retcode ; // Код результата операции
ulong deal ; // Тикет сделки, если она совершена
ulong order ; // Тикет ордера, если он выставлен
double volume ; // Объем сделки, подтверждённый брокером
double price ; // Цена в сделке, подтверждённая брокером
double bid ; // Текущая рыночная цена Bid
double ask ; // Текущая рыночная цена Ask
string comment ; // Комментарий брокера к операции (по умолчанию заполняется расшифровкой)
>;

В нашем случае переменная mresult объявлена как структура тип MqlTradeResult.

Цены (Open, Close, High, Low), время, объем каждого бара, и спред символа хранятся в этой структуре. Любой массив, определенный как массив типа MqlRates может быть использован для хранения значений цен, объемов и спредов по символу.

struct MqlRates
<
datetime time ; // Время начала периода
double open ; // Цена открытия
double high ; // Наивысшая цена за период
double low ; // Наименьшая цена за период
double close ; // Цена закрытия
long tick_volume ; // Тиковый объем
int spread ; // С пред
long real_volume ; // Биржевой объем
>;

Для наших целей мы определили массив mrate[] , который будет использоваться для хранения этой информации .

Здесь мы устанавливаем индексацию как в таймсериях для всех массивов, которые будут использоваться нами. Это позволит нам быть уверенными в том, что скопированные массивы будут иметь нумерацию как в таймсериях (справа налево т.е. 0, 1, 2, 3 и т.д.). Это производится при помощи функции ArraySetAsSeries().

Создание торгового робота(эксперта)||Create expert advisor mt4

bool ArraySetAsSeries(
void array[] , // массив по ссылке
bool set // true означает обратный порядок индексации
);

Следует отметить, что это можно сделать однократно в функции инициализации советника. Тем не менее, для последовательности изложения я решил рассмотреть этот вопрос здесь.

Мы используем функцию SymbolInfoTick для получения текущих котировок. Эта функция имеет два аргумента — символ графика и структура типа MqlTick ( latest_price ). Снова, проверяем корректность выполнения функции и выводим сообщение в случае ошибки.

Затем, при помощи функции CopyRates мы копируем информацию последних трех баров в массив типа MqlRates. Функция CopyRates используется для получения исторических данных по указанному символу, периоду и запрашиваемому количеству данных, которые затем помещаются в массив типа MqlRates.

int CopyRates (
string symbol_name , // имя символа
ENUM_TIMEFRAMES timeframe , // период
int start_pos , // откуда начнем
int count , // количество данных для копирования
MqlRates rates_array[] // массив, куда будут скопированы данные
);

Имя символа и текущий таймфрей получаем используя предопределенные переменные _Symbol и _Period . Начиная с текущего бара Bar 0 , имеющего индекс 0, мы возьмем только три бара: Bars 0, 1, и 2. Результат будет помещен в наш массив mrate[].

Массив mrate[] теперь содержит все данные по ценам, времени, объемам и спредам для баров 0, 1 и 2. Поэтому для того, чтобы получить нужное свойство любого бара, мы используем выражение типа:

например, для каждого из этих баров:

mrate[1].time // время начала бара 1
mrate[1].open // цена открытия бара 1
mrate[0].high // наибольшая цена бара 0 (текущий бар), и т.д.

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

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

MQL5 — пишем советник на мартингейле для MT5

В качестве хэндла индикатора указывается хэндл, полученный в функции OnInit. Что касается номеров буферов индикатора, то индикатор ADX имеет 3 (три) буфера:

  • 0 — MAIN_LINE,
  • 1 — PLUSDI_LINE,
  • 2 — MINUSDI_LINE.

Индикатор The Moving Average имеет только 1 (один) буфер:

  • 0 – MAIN_LINE.

Начиная с текущего бара (0), мы копируем также еще два бара. Таким образом, полное количество баров равно 3 (бары 0-й,1-й и 2-й). Массив buffer[] в параметре функции CopyBuffer, это массив, куда будут помещены данные. В нашем случае это динамические массивы adxVal, plsDI, minDI и maVal.

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

Важно отметить, что функции CopyBuffer() and the CopyRates() возвращают общее количество скопированных данных или -1 в случае ошибки. Вот почему мы проверяем возвращаемые значения, они будут меньше 0 в случае ошибки.

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

Для того, чтобы реализовать это, сначала объявим две переменные типа boolean (Buy_opened и Sell_opened), которые будут установлены в TRUE в случае наличия соответствующих открытых позиций.

Для того, чтобы узнать наличие открытой позиции, мы использовали функцию PositionSelect, которая возвращает TRUE в случае наличия открытой позиции по указанному символу и FALSE при отсутствии открытой позиции.

В качестве основного аргумента функции передается наименование символа, наличие позиции по которому следует проверить. Здесь для имени символа мы использовали предопределенную переменную _Symbol.

В случае, если функция вернула TRUE (позиция существует), мы хотим проверить ее тип (покупка или продажа). Для этого мы используем функцию PositionGetInteger, она возвращает тип открытой позиции, в случае, если в качестве параметра задан запрос свойства POSITION_TYPE. В результате возвращается одно из значений перечисления ENUM_POSITION_PROPERTY_INTEGER: POSITION_TYPE_BUY или POSITION_TYPE_SELL.

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

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

После того, как это сделано, перейдем к следующему шагу.

Рассмотрим условия покупки.

Отметим, что выражения, приведенные выше, соответствуют стратегии, которая обсуждалась ранее. Мы объявили переменные типа bool для каждого из условий, которые должны быть выполнены перед установкой ордера. Переменные типа bool могут принимать только одно из значений: TRUE или FALSE.

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

Здесь мы проверяем значение скользящей средней MA-8 на барах 0, 1 и 2. Если значение MA-8 на текущем баре больше, чем на предыдущем (бар 1), и при этом значение MA-8 на баре 1 больше, чем на баре 2, это означает, что скользящая средняя MA-8 возрастает. Это одно из условий покупки.

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

Теперь мы хотим проверить, является ли значение ADX (ADX для бара 0), больше, чем минимальное значение, указанное во входных параметрах советника. Если это условие выполнено, это означает, что текущее значение ADX больше минимального необходимого, также нам нужно убедиться в том, что значение plusDI больше, чем minusDI. Это производится следующим выражением:

Если все эти условия соблюдаются, то в случае наличия открытой позиции на покупку сообщаем о ее наличии и завершаем выполнение функции. Если нет открытой длинной позиции, для отправки торгового запроса мы подготавливаем переменную mrequest типа MqlTradeRequest , которая была объявлена ранее.

  • Поле action, являющееся типом торговой операции задается как TRADE_ACTION_DEAL, поскольку мы помещаем ордер в режиме немедленного исполнения. Для модификации ранее установленного отложенного ордера нужно указать TRADE_ACTION_MODIFY, для его удаления — TRADE_ACTION_REMOVE. Для цены открытия ордера мы используем значение поля Ask структуры latest_price. Значение цены Stop Loss получается вычистанием из цены Ask заданного значения StopLoss в пунктах. Цена Take Profit вычисляется прибавлением заданного значения TakeProfit в пунктах. Как видно, при указании цен мы использовали функцию NormalizeDouble, которая округляет числа до заданной точности — при отправке запроса на торговый сервер следует указывать нормализованные цены.
  • В поле symbol указывается текущий символ (_Symbol или Symbol()),
  • В поле type — тип ордера, здесь ORDER_TYPE_BUY. Для ордера на продажу нужно указать тип ORDER_TYPE_SELL.
  • В поле type_filling — тип исполнения ордера, значение ORDER_FILLING_FOK означает что сделка должна быть выполнена в указанном объеме по указанной (или лучше) цене. Если на рынке отсутствует возможность исполнить указанный объем, ордер не будет выполнен.

У функции OrderSend() два аргумента — переменные типа MqlTradeRequest и MqlTradeResult.

bool OrderSend (
MqlTradeRequest& request // структура запроса
MqlTradeResult& result // структура ответа
);

Как видно, мы использовали наши переменные mrequest и mresult в качестве аргументов функции OrderSend() .

После отправки ордера, мы теперь используем значение переменной mresult для проверки результата. Если наш ордер был успешно выполнен, нужно дать об этом знать, также в случае ошибки также нужно информировать о результате. Доступ к коду ошибки и номеру ордера можно получить, используя поля mresult.retcode и mresult,order соответственно.

Код возврата торгового сервера 10009 означает, что запрос OrderSend был успешно выполнен, а код 10008 показывает, что ордер помещен в очередь на исполнение. Поэтому мы должны проверить любой из этих вариантов — в таком случае мы уверены в том, что ордер был выполнен или помещен в очередь на исполнение.

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

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

Здесь мы проверяем значения MA-8 для баров 0, 1 и 2. Если значение MA-8 текущего бара (0) меньше, чем значение предыдущего бара 1, а также MA-8 для бара 1 меньше, чем значение для бара 2, это значит, что MA-8 падает. В этом случае одно условий для продажи удовлетворяется.

В этом выражении проверяется условие того, что цена закрытия меньше чем значение MA-8 соответствующего бара (бара 1). Если цена закрытия меньше значения скользящей средней, это значит второе условие удовлетворяется. Затем проверяются следующие условия.

Здесь проверяется условие того, что текущее значение ADX (бара 0) больше чем значение, указанное во входных параметрах советника. Также нужно проверить условие того, что значение MinusDI больше, чем plusDI. Это делается следующим образом:

Специальные функции MQL. Основы написания советников форекс.

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

Главное отличие в способе вычисления цен Stop Loss и Take Profit. Поскольку производится продажа, используется Bid цена, которая была получена ранее в структуру latest_price. Также здесь указан другой тип ордера — ORDER_TYPE_SELL.

Аналогично, мы используем функцию NormalizedDouble для цены ордера и цен StopLoss и TakeProfit — всегда нужно использовать нормализованные цены при отсылке запроса на торговый сервер.

Так же, как и для ордеров Buy, мы должны проверить результат торгового запроса. Мы используем тот же код, как и для случая покупки.

3. Отладка и тестирование советника

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

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

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

Рисунок 8. Настройка параметров отладки

После появления окна «Параметры», выберите валютную пару, нужный период/таймфрейм и нажмите кнопку OK:

Рисунок 9. Установка параметров отладки

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

Для того, чтобы добавить точку останова, нужно перейти к строке, на которой нужно остановиться. В левой части редактора, рядом с границей редактора кода, нужно дважды кликнуть мышкой, при этом появится маленький голубой круг с белым квадратом внутри (рис. 10). Альтернативным вариант добавления точки останова — перейти на строку и нажать клавишу F9. Для того, чтобы убрать точку останова следует повторно нажать F9, либо дважды кликнуть по кругу.

Рисунок 10. Ставим точку останова

В нашем коде мы собираемся установить точки останова на 5 различных строк кода.

Для удобства описания, они пронумерованы от 1 до 5.

Установим эти 5 точек останова на строки, указанные на рис. 11. Точку останова 1 мы установили ранее.

Рисунок 11. Установка дополнительных точек останова

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

Для начала запуска режима отладки, нажмите клавишу F5 или зеленкую кнопку в панели инструментов редактора MetaEditor:

Рисунок 12. Запуск отладчика

Сначала редактор откомпилирует код, если при компиляции не возникло ошибок, он покажет их в отчете во вкладке «Ошибки»:

Рисунок 13. Отчет компиляции

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

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

Рисунок 14. Установка входных параметров советника для отладки

В левом верхнем углу графика видно, что советник присоеден к графику.

При запуске функции OnTick(), произойдет остановка работы советника, он остановится в точку останова 1.

Рисунок 15. Режим отладки: остановка работы советника в первой точке останова

Об этом свидетельствует зеленая стрелка в строке. Она говорит нам о том, что предыдущая строка была выполнена, теперь будет выполнена текущая строка.

Перед тем, как продолжить, имеет смысл познакомиться с командами отладчика. Если посмотреть на панель инструментов редактора MetaEditor, можно увидеть, что теперь стали доступны три кнопки, которые ранее были серого цвета. Причина этого в том, что теперь мы находимся в режиме отладки. Эти три команды используются для исполнения в режиме отладки (Step into, Step over, Step out)»

Рисунок 16. Режим отладки: команда «Step into» (Шаг с заходом)

Команда Step Into (Шаг с заходом) переходит к следующему шагу, при этом производится заход внутрь любой вызываемой функции в коде. Для исполнения данной команды, нажмите эту кнопку или клавишу F11. Далее мы будем использовать данную команду при пошаговой отладке нашего кода.

Рисунок 17. Режим отладки: команда «Step over» (Шаг с обходом)

Команда Step over (Шаг с обходом), в свою очередь, не производит заход отладчика в функции, которые вызываются в коде. Для исполнения данной команды нужно нажать эту кнопку или клавишу F10.

Рисунок 18. Режим отладки: команда «Step out» (Шаг наружу)

Для перехода к выполнению одного шага программы на один уровень выше есть команда Step Out (Шаг наружу), которая вызывается нажатием на соответствующую кнопку или комбинацией клавиш Shift+F11.

В нижней части редактора, вы видите окно «Инструменты»(Toolbox). Вкладка «Отладка» содержит следующие колонки:

  • Файл : Имя файла, с которым производится работа.
  • Функция : Имя функции, которая вызывается в настоящий момент.
  • Строка : Номер строки кода.
  • Выражение : В этой колонке вы можете указать любое выражение или переменную, за значениями которых вы желаете наблюдать в процессе выполнения программы.
  • Значение : В этой колонке показываются текущие значения указанных выражений/переменных.
  • Тип : В данной колонке показан тип данных, для которых установлен режим наблюдения.

Вернемся к процессу отладки.

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

  • Old_Time (старое время бара)
  • New_Time[0] (время текущего бара)
  • copied (количество скопированных данных времени)
  • IsNewBar (флаг, показывающий появление нового бара)
  • Mybars (полное количество баров в истории) – наш советник использует это значение

Также можно добавить в мониторинг и другие переменные, например значения технических индикаторов ADX, MA-8 и т.д.

Для добавления выражения/переменной в список наблюдаемых, дважды щелкните на колонке «Выражение» или используйте пункт «Добавить» контекстного меню и укажите наименование переменных или выражения, которые нужно включить в режим наблюдение

Рисунок 19. Монитор выражений

Укажите переменные/выражения для наблюдения:

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

Рисунок 21. Конманда «Step into» (Шаг с заходом) в действии

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

Рисунок 22. Наблюдение за выражениями или переменными

Рисунок 23. Наблюдение за выражениями или переменными

Рисунок 24. Наблюдение за выражениями или переменными

При наступлении нового тика, мы заходим в функцию OnTick(). В случае объявления переменных статическими, переменные останутся декларированными, их значения сохраняться.при новом вызове функции OnTick мы будем наблюдать следующее:

Рисунок 25. Значения переменных при новом вызове функции OnTick

Теперь запустим программу снова, на этот раз без точек останова.

Рисунок 26. В режиме отладки при новом баре советник выводит сообщение

При каждом баре программа будет проверять условия на покупку/продажу, при наступлении условий будет производиться торговля и выводиться сообщение о результатах выполнения торговой операции:

Рисунок 27. Торговля советника

Я думаю, можно оставить советник поработать еще несколько минут и попить кофе. Вернувшись обратно и сделав немного денег (шутка), нажмите красную кнопку Stop в MetaEditor для остановки процесса отладки.

Рисунок 28. Остановка режима отладки

Мы убедились, что наш советник работает, однако отметим, что клиентский терминал должен быть подключен к Интернет, в противном случае, он не будет работать.

3.2 Тестируем стратегию нашего советника

Теперь мы хотим проверить нашего советника используя встроенный Тестер стратегий клиентского терминала. Для запуска Тестера Стратегий нажмите клавишу Ctrl-R или выберите пункт «Тестер стратегий» в меню «Вид» главного меню, как показано на рисунке 26:

Рисунок 29. Запуск Тестера стратегий

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

Рисунок 30. Окно Тестера стратегий

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

Рисунок 31. Вкладка «Настройки» Тестера

  1. Выберите советника, который нужно протестировать.
  2. Выбор валютной пары для тестирования.
  3. Выбор периода/таймфрейма для тестирования (выберем H2).
  4. Выберите «Select Custom» чтобы производить тестирование на указанном историческом интервале.
  5. Выбор дат начала и окончания тестирования.
  6. Выберем режим торговли «Обычный».
  7. Выбор начального депозита для тестирования.
  8. Не будем использовать оптимизицию параметров советника (Отключена)
  9. Нажмите кнопку «Старт», когда будете готовы начать тестирование.

Перед тем, как нажать кнопку «Старт», посмотрим на другие вкладки Тестера.

Вкладка «Агенты»

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

Рисунок 32. Вкладка «Агенты» Тестера стратегий

Для одного агента в процессе тестирования вкладка «Агенты» имеет вид:

Рисунок 33. Агенты Тестера стратегий в процессе тестирования

Вкладка «Журнал»

В этой вкладке показываются все события, которые происходят в течение процесса тестирования.

Рисунок 34. Вкладка «Журнал» Тестера стратегий показывает активность советника при тестировании

Вкладка «Входные параметры»

Здесь можно указать входные параметры советника.

Рисунок 35. Вкладка «Входные параметры» советника в Тестере стратегий

Если используется оптимизация параметров при тестировании, нужно указать значения переменных, выделенных на рис. 31.

  • Старт — начальное значение параметра
  • Шаг — шаг изменения параметра
  • Стоп — конечное значение параметра для тестера.

Тем не менее, в нашем советнике мы не будем производить поиск оптимальных параметров, поэтому нам они не нужны.

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

Вкладка «График»

После ознакомления с содержимым вкладки «Журнал» можно посмотреть на новую вкладку «График», которая появилась в процессе тестирования. При переключении на вкладку «График» вы увидите график, показывающий увеличение и уменьшение баланса, в зависимости от результатов торговли в истории.

Рисунок 36. График результатов тестирования

После завершения тестирования появится другая вкладка, называемая «Результаты» тестирования. Переключившись во вкладку результаты, вы увидите отчет о проведенном тестировании.

Рисунок 37. Отчет результатов Тестера стратегий

Видны чистая прибыль, общая прибыль, общее количество сделок, кол-во убыточных сделок и другие.

Нажав правую кнопку мыши во вкладке «Результаты», вы увидите контектное меню. Выберите пункт «Сохранить как отчет«:

Создать советник форекс за 5 минут без знания программирования

Рисунок 38. Сохранение результатов тестирования

Появится диалог сохранения файла, напишите имя файла для отчета (если хотите, можно использовать имя, преложенное по умолчанию) и нажимте кнопку «Сохранить». Полный отчет будет сохранен в файле формата HTML.

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

Рисунок 39. График с результатами тестирования на истории

Мы успешно написали и протестировали наш советник на истории и теперь имеем заготовку для дальнейшей работы. Можно опять вернуться во вкладку «Настройки» Тестера стратегий и протестировать его на другом временном интервале.

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

Выводы

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

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

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

Как написать Форекс советник самому? Правильные советы начинающим. Как заказать разработку советника или индикатора и не быть обманутым

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

И если честно, сделать это по сути не сложно, при том, что преимущества написания собственного робота очевидны:

  • во-первых, это бесплатно,
  • а во-вторых, можно и дальше создавать собственные советники, ведь навыки никуда не пропадут.

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

Итак, какой же совет дают начинающим создателям роботов опытные трейдеры?

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

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

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

Поэтому тем, кто задумался над вопросом: «Как написать Форекс советник самому? », специалисты дают еще один совет – эффективнее всего создавать роботов, используя уже опробованные и доказавшие свою надежность высокую надежность стратегии торговли, которые неоднократно были проверены во время ручной торговли в течение долгого времени.

Чтобы написать Форекс советник самому и в дальнейшем использовать его бесплатно, Вам необходимо обладать базовыми знаниями языка программирования. К таким языкам относятся MQL4 и MQL5.

Версия MQL4 — является встроенным языком программирования, разработанным «MetaQuotes Software Corp». Кстати, на основе данного языка и создается большинство торгово-информационных терминалов. С помощью этого языка можно писать (Expert Advisors), которые автоматизируют процесс торговли и наилучшим образом подходят для реализации своих стратегий. Помимо этого при помощи MQL4, Вы можете создавать «под себя» библиотеки функций, различные скрипты и технические индикаторы.

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

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

MQL5, также является языком программирования, только более современным и более высокого уровня. Синтаксис данного языка, имеет максимальное приближение к «С++», что дает возможность создавать программное обеспечение в стиле ООП (объектно-ориентированного программирования).

Для написания советников посредством MQL5 , Вам также необходимо использовать среду разработки «MetaEditor», включающую в себя отладку, автозавершение, сниппеты, профилактику, MQL5 Storage (встроенное версионное хранилище) и многое другое. Массу вспомогательной информации, касающейся, как непосредственно языка, так и программирования на нем, можно найти на сайте mql5.

Также, для тех, кто задается вопросом, как написать Форекс советник самому, во многом поможет справочный материал, размещаемый непосредственно в торговом терминале, вызываемый нажатием клавиши «F1», а также справки редактора «MetaQuotes Language». Для их вызова в терминале нажмите клавишу «F4», а затем «F1».

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

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

Этап тестирования, как обязательный пункт после написания советника

Итак, как написать или создать Форекс советник самому, Вы уже поняли. Сделать это можно при помощи языков программирования либо используя специальные программы. Но здесь возникает другой, пожалуй, самый важный вопрос:

«А будет ли Ваш советник работать правильно? ». Ведь торговые терминалы не оснащены ни отладчиками программ, ни баггерами (debugger).

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

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

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

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

ОБЯЗАТЕЛЬНО ПОСМОТРИТЕ:
Как написать Forex советник на основе индикатора?

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

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

Как написать советник форекс для MetaTrader, с чего следует начать

Большинство независимых трейдеров торгуют на валютном рынке через дилинговые центры при помощи терминала MetaTrader, у которого есть четвёртая и пятая версии. Казалось бы, программы почти одинаковые, но языки программирования на них немного отличаются, поэтому если установлен MetaTrader4, то для решения задачи необходимо изучать язык программирования MQL4, если же используется MetaTrader5, то для него создан свой язык — MQL5.

Следует отметить, что в любом случае MT5 – это будущее, рано или поздно необходимо будет осваивать именно этот терминал, но, в настоящее время, начинающему лучше разбираться как написать советник форекс для MT4, так как информации и обучающих материалов в сети по этой теме не просто много, а колоссальное количество, переучиться потом будет намного проще. Итак, начать рекомендуется с учебников, самый популярный и подробный из которых находится на ресурсе MQL4 community. Выглядит он следующим образом:

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

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

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

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

Социальные кнопки для Joomla

  • 14.11.2022 06:32 | Индикатор разворота — определяем конец тренда 52759
  • 02.04.2022 10:04 | Индикатор VSA читает рынок как открытую книгу 49620
  • 23.09.2022 11:08 | Конструктор советников форекс позволит создать любой торговый робот 46461
  • 13.12.2022 01:48 | Торговля внутри дня — часовая стратегия форекс 38800
  • 12.12.2022 05:36 | Индикаторы опционных уровней – ступени вашего успеха 33713
  • 09.12.2022 10:37 | Форекс индикаторы без перерисовки 30209

Начав интересоваться трейдингом, любой человек рано или поздно узнает о возможности автоматического способа проведения сделок по купле/продаже. Они ведутся специальными программами, действующими согласно заложенным в них стратегиям. Они описываются с помощью кода на языке MQL4, создавая тем самым боту алгоритм поведения на рынке.

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

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

Кроме того, роботы могут:

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

В большинстве случаев преимущество машины над человеком не поддается сомнению, по этой причине многие трейдеры пытаются скачать или купить робота, но также стремятся реализовать свои торговые идеи, ища в интернете объявления: «Напишу советник Форекс бесплатно».

MQL4 — Пишем советник по стратегии Пирамидинга

В действительности создать бота может каждый, не нужно даже владеть специальными навыками. В популярном терминале MetaTrader 4 имеется специальное приложение, позволяющее разрабатывать подобные программы любого уровня сложности.

Кроме того, есть универсальные конструкторы, например, ENSED COR или System Creator. Разобраться во всех нюансах их интерфейса и функционала под силу любому, а, следовательно, и написать советника Форекс бесплатно.

Зачем автоматизировать свою форекс стратегию

Преимущество создания программы своими руками в том, что будут известны все особенности и нюансы применяемой стратегии, понятна тактика, возможности и принцип работы.

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

Бесплатное написание советника Форекс состоит из нескольких общих этапов:

  • передача при помощи кода сигналов на открытие позиции при сделке на покупку;
  • описание указаний на проведение операции при продаже;
  • указание момента, когда следует закрывать ордера на buy и sell;
  • выбор критериев по расчету объемов лота и способов по снижению рисков (стоп-лосс, тейк-профит, трейлинг стоп).

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

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

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

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

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

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

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

На нашем ресурсе вы также можете заказать написание советника или индикатора, которые будут написаны на языке mql4 и c#.

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

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

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

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

Я напишу советники Форекс , если в ТЗ будут указаны следующие моменты:

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

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

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

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

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

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

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

АВТОМАТИЧЕСКАЯ ТОРГОВЛЯ НА БИРЖЕ.СОЗДАНИЕ ТОРГОВОГО РОБОТА.АЛГОТРЕЙДИНГ

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

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

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

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

Стабильно зарабатывать на финансовом рынке могут те трейдеры, которые имеют:

  1. Опыт ведения торгов;
  2. Определенные специализированные знания;
  3. Владение информацией.

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

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

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

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

Наиболее популярным на сегодняшний момент считается терминал МТ4, поэтому и спрос на торговых экспертов под него довольно высокий. Итак, если самостоятельно пишем простой советник Форекс для Mt4, при этом, не обладаем навыками программирования, потребуется сделать несколько шагов, следуя инструкции. Но у каждого трейдера свои методы ведения торговли, поэтому нужно создавать советника под индивидуальные требования, в зависимости от выбранной стратегии торговли и других нюансов. Здесь речь идет о простейшем советнике. Если же необходимо написать сложного робота, то, конечно, не зная, хотя бы азы MQL, не стоит даже пытаться этим заниматься. Это просто трата времени и нервов.

  • Стратегия

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

  • Тестирование

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

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

  • Программирование

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

Где найти программиста профессионала?

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

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

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

Торговые Forex советники — как заказать написание?

Что лучше: самостоятельная или автоматическая торговля? Споры на этот счет ведутся уже давно, и тем не менее приверженцев торговли с помощью роботов становится все больше. Какие преимущества имеют советники форекс?

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

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

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

Торговые советники форекс устанавливаются непосредственно в терминал, и, к примеру, в популярном Метатрейдере уже есть несколько предустановленных роботов. Но многие трейдеры предпочитают самостоятельно купить или заказать советник, чтобы добиться максимальной эффективности торговли. Что предпочтительнее: готовые forex советники или выполненные на заказ? Купить готовый советник однозначно будет дешевле, его цена может составлять менее 100 долларов. Но зато если вы закажете написание советника индивидуально, то он будет полностью соответствовать вашим потребностям, целям и торговой стратегии.

Где заказать написание качественного советника? Лучше всего доверить разработку торгового робота проверенным компаниям, которые дают возможность попробовать тестовую версию и дают определенные гарантии. Заказывать советник у неизвестного частного лица — это высокий риск того, что вместо эксклюзивного продукта вы получите обычную компиляцию из нескольких бесплатных алгоритмов. Хорошо, если такой советник вообще будет нормально работать и не сольет ваш депозит! Разработать полезные и эффективные советники форекс могут только опытные программисты и трейдеры, которые используют инновационные технологии и хорошо понимают весь процесс торговли на рынке Форекс.

Советники Forex

Торговый советник для рынка Форекс – это программа, способная выполнять в терминале любые действия по поручению трейдера без его непосредственного участия. Все задачи выполняются автоматически или механически, поэтому советники называют экспертами или механическими торговыми системами (МТС). Проще говоря, это программа подачи заявок брокеру без вмешательства со стороны трейдера. Вы устанавливаете прибыльного торгового советника для рынка Форекс на существующую онлайн торговую платформу для рынка Форекс, которая соединена с брокером сервера, настраиваете все ее параметры, и советник начнет торги по заданной стратегии.

Содержание

Преимущества торговых экспертов для Форекс

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

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

Написание Форекс-советника

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

Индикаторы для Форекс-советников

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

Виды Форекс-советников

Торговый терминал MetaTrader 4 имеет несколько встроенных советников. Они имеют функцию независимой торговой системы и дублируют торговые сигналы. Они очень популярны среди новичков и были созданы специально для демонстрации возможностей программы клиентского терминала MetaTrader 4.

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

Тестирование Форекс-советников

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

Советы для начинающих

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

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

Советники и программирование MQL4

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

Итак, сегодня мы будет вести разговор о программировании MQL4. Также советуем ознакомиться с видео “Как создать советник MQL4?”

Язык программирования MQL4 – что и как?

Возможно, вы знаете, что в торговом терминале МТ4 имеется собственный язык программирования – т.н. MetaQuotes Language (сокращённо MQL). Наиболее популярна версия 4, хотя некоторые практикуют также написание советников на MQL5 – для МТ5.

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

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

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

Торговый советник – программа, которая выполняет самые различные действия: выводит какую-либо информацию на график, открывает-закрывает сделки, устанавливает, отменяет и изменяет стоп-ордера и многое другое. Фактически, советник является программным отображением определённой торговой системы (стратегии). Иногда советников называют Механическими Торговыми Системами (МТС). Главная особенность МТС – полная автономность.

Рекомендуемый брокер для торговли — Alpari или RoboForex.

Язык программирования MQL4 – стартуем!

Синтаксис языка MQL4 очень похож на известный С (тот, с которого пошли С+ и С++). Поэтому если вы умеете программировать на С, то MQL4 изучите без проблем. Различия лишь в том, что последний является упрощённым вариантом С, а также “заточен” под написание индикаторов и МТС.

Полным новичкам сначала будет непривычно, но начните с простых основ, а потом постепенно переходите к сложным функциям – и всё получится! Вам пригодится как книга-руководство по языку
http://docs.mql4.com/ru/index
так и специализированнее форумы, где имеются ответы на часто задаваемые вопросы, а также много готовых советников Форекс – как и индикаторов со скриптами.
www.mql4.com/ru
www.mql5.com/ru

Преимущества программирования MQL4

● Реализация собственных идей для прибыльного трейдинга.

● Новое направление для саморазвития.

● Возможность написания платных советников на заказ.

● Более глубокое понимание торговых операций.

● Новые идеи для торговли.

● Возможность проведения любого статистического анализа.

Ленивые или занятые трейдеры всегда могут обратиться за помощью к профессиональному программисту, который за условно небольшую плату (от 50$ и выше) напишет вам торгового советника “под ключ”. Всё же советуем изучить хотя бы основы языка программирования MQL4 – это поможет вам более точно объяснить программисту, какой торговый алгоритм вы хотите получить на выходе.

Желаем прибыльной автоматической торговли и помните, что прибыльность торговли очень сильно зависит от выбранного вами брокера!

Напишу советник Форекс

Содержание данной статьи является исключительно частным мнением автора и может не совпадать с официальной позицией LiteForex. Материалы, публикуемые на данной странице, предоставлены исключительно в информационных целях и не могут рассматриваться как инвестиционный совет или консультация для целей Директивы 2004/39 /EC.

Я попробую применить полученные знания на демо-счете, доступном без регистрации

Покажите мне графики валют и как цена на рынке двигается в реальном времени

Я хочу начать копировать сделки профессиональных трейдеров на мой счет

Мощный конструктор советников форекс MT4! Создай своего робота без знаний программирования!

Я готов начать зарабатывать на финансовых рынках и хочу открыть торговый счет

    LiteForex в ВКонтакте

Предупреждение о рисках: Торговля на финансовых рынках сопряжена с риском. Контракты на разницу («CFDs») являются сложными финансовыми инструментами, используемыми для маржинальной торговли. Торговля CFD имеет высокий уровень риска, так как кредитное плечо может работать как в Вашу пользу, так и против Вас. Вследствие этого торговля CFD подходит не всем инвесторам из-за высокого риска потери инвестированного капитала. Вы не должны рисковать большими средствами, чем Вы готовы потерять. Перед началом торговли Вы должны убедиться, что Вы понимаете все риски и учитываете их в совокупности с уровнем Вашего опыта при постановке Ваших инвестиционных целей. Перейти к полному документу «Предупреждение о рисках».

Данный веб-сайт является собственностью группы компаний LiteForex.

LiteFinance Global LLC зарегистрирована в государстве Сент-Винсент и Гренадины как общество с ограниченной ответственностью под номером 931 LLC 2022. Юридический адрес: First Floor, First St Vincent Bank Ltd Building, James Street, Kingstown, St. Vincent and the Grenadines. Email:

LiteFinance Global LLC не предоставляет сервис резидентам стран Европейской Экономической Зоны (ЕЭЗ), США, Израиля и Японии.

Как заказать написание советника

Содержание данной статьи является исключительно частным мнением автора и может не совпадать с официальной позицией LiteForex. Материалы, публикуемые на данной странице, предоставлены исключительно в информационных целях и не могут рассматриваться как инвестиционный совет или консультация для целей Директивы 2004/39 /EC.

Нет возможности читать нас каждый день? Получайте свежие статьи на вашу электронную почту.

Написал

Я попробую применить полученные знания на демо-счете, доступном без регистрации

Покажите мне графики валют и как цена на рынке двигается в реальном времени

Я хочу начать копировать сделки профессиональных трейдеров на мой счет

Я готов начать зарабатывать на финансовых рынках и хочу открыть торговый счет

    LiteForex в ВКонтакте

Предупреждение о рисках: Торговля на финансовых рынках сопряжена с риском. Контракты на разницу («CFDs») являются сложными финансовыми инструментами, используемыми для маржинальной торговли. Торговля CFD имеет высокий уровень риска, так как кредитное плечо может работать как в Вашу пользу, так и против Вас. Вследствие этого торговля CFD подходит не всем инвесторам из-за высокого риска потери инвестированного капитала. Вы не должны рисковать большими средствами, чем Вы готовы потерять. Перед началом торговли Вы должны убедиться, что Вы понимаете все риски и учитываете их в совокупности с уровнем Вашего опыта при постановке Ваших инвестиционных целей. Перейти к полному документу «Предупреждение о рисках».

Данный веб-сайт является собственностью группы компаний LiteForex.

LiteFinance Global LLC зарегистрирована в государстве Сент-Винсент и Гренадины как общество с ограниченной ответственностью под номером 931 LLC 2022. Юридический адрес: First Floor, First St Vincent Bank Ltd Building, James Street, Kingstown, St. Vincent and the Grenadines. Email:

LiteFinance Global LLC не предоставляет сервис резидентам стран Европейской Экономической Зоны (ЕЭЗ), США, Израиля и Японии.

Лучшие Форекс брокеры 2021: