Первый эксперт

Первый экспертДобрый день, уважаемые подписчики и посетители форекс блога 4exlab.ru .

Сегодня мне прислали письмо о тематике нового поста, в котором было несколько предложений. Суть была такая: «А каким был Ваш первый эксперт?». В теме одного письма этот ответ сложно уложить. Тем более трата такого большого времени на ответ по e-mail только лишь для одного человека… Согласитесь, для трейдера, это непозволительная роскошь. Именно поэтому было решено оформить этот ответ в виде поста и выложить его на форекс блог 4exlab.ru (Группа авторов). По – моему это замечательное решение.

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

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

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

Стратегия очень проста по своему алгоритму, ее я сам придумал, выстраивая линии moving average на различных инструментах.

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

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

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


Специальные функции int init() и int deinit() я оставил пустыми, потому что я не собирался подключать встроенный индикатор Allligarot, а решил написать его подобие в самом эксперте, не отображая линии индикатора на графике. Мне оставалось только прописать код, который бы хранился в специальной функции int start(). Здесь все обстояло следующим образом:

Я прописал два условия if else, в которых проверялось условие «Имеются ли открытые сделки или нет».

Если сделки не были открыты, и были выполнены условия для открытия позиции buy / sell (на данном примере это отдельные условия. Будьте внимательны), то выставлялся ордер на покупку / продажу соответственно. Выглядело это так.

После выставления нашего ордера на покупку / продажу наше первое if else уже бы не могло осуществлять дальнейшие действия и открывать новые ордера, так как в условии четко прописано «Если имеется ордер – ложь». Так как в нашем случае «Если имеется ордер – правда», то переходим к следующему условию if else. Это условие диктует нам правила для закрытия ордеров. Именно для него подходит «Если имеется ордер – правда». Если выполняется наше условие, у нас имеется открытый ордер, то при соблюдении определенных сигналов на продажу наш торговый эксперт даст команду на закрытие сделки. Выглядеть это будет так.

Затем для осуществления переменных я произвел замену. Думаю, вы это сделаете сами, напрягайте мозг, товарищи, иначе ничего не получится! Думать все-равно придется. (в исходном файле смотрите замену переменных).

Поясню, что я использовал дополнительное отклонение в несколько пунктов в виде -/+*Point . Это мне позволило существенно сократить убыточные сделки. К сожалению, прибыль тоже сократилась.

В принципе, эксперт готов, можно его тестировать и совершенствовать.


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

А каким был Ваш первый эксперт?

Код советника можно скачать здесь

12.01.2011 · Группа авторов · комментариев 5
Метки: , , , ,  · Рубрика: Автотрейдинг

комментариев 5

  1. Flordy - 05.03.2011

    у меня получилось!. этот эксперт сливает депо =)

  2. Группа авторов - 08.03.2011

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

  3. freeman - 09.03.2011

    Добрый день. Хочу Поблагодарить Вас за столько ценный материал. У меня тоже получилось написать по этому уроку эксперт. Тоже сливает депо, но я все равно очень рад. Буду совершенствовать умение 😉 . Здесь главное больше руками работать.

  4. Группа авторов - 09.03.2011

    да не за что 😉

  5. Роман - 27.12.2011

    А как сделать так что бы советник открывал ордер, при открытии бара(свечи), а когда надо закрывал и открывал позицию в другую сторону?

Комментировать