Первый эксперт
Добрый день, уважаемые подписчики и посетители форекс блога 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% . Но для учебы и такой точности было за глаза. Пускай эксперт убыточный. Главное то, что он успешно прошел компиляцию и в режиме тестирования открывал и закрывал позиции. После окончания тестирования присутствовало ощущение радости от небольшой победы. Именно тогда я для себя решил, что буду заниматься автоматическим трейдингом.
А каким был Ваш первый эксперт?
Код советника можно скачать здесьСтатья подготовлена Группой Авторов
·
Связанные записи




Комментарии Вконтакте
5 комментариев
у меня получилось!. этот эксперт сливает депо =)
а никто и не обещал, что советник будет в профите. основная задача — научит программировать на языке MQL. думаю, что она выполнена, раз у вас советник все же заработал
Добрый день. Хочу Поблагодарить Вас за столько ценный материал. У меня тоже получилось написать по этому уроку эксперт. Тоже сливает депо, но я все равно очень рад. Буду совершенствовать умение
. Здесь главное больше руками работать.
да не за что
А как сделать так что бы советник открывал ордер, при открытии бара(свечи), а когда надо закрывал и открывал позицию в другую сторону?
Комментировать