Traders //—>
|
Группа «Программирование на MQL»
Обсуждаем здесь вопросы разработки экспертов, делимся опытом, выкладываем уроки.
Внимание! Если Вы хотите заказать советник, то Вам в группу «Заказы на разработку советников»
Лучшее от AM2
100% ордеров в плюс или тысячи процентов годовых 19
2016-12-21 20:18:10 0
Советник — откусыватель убыточной позиции 23
2017-05-28 14:02:20 0
На какие «Машки» больше всего смотрят «Нонки» 33
2015-11-07 02:52:18 0
Запускаем стороннее приложение и выключаем компьютер с помощью средств MQL 3
2017-10-22 13:05:55 0
Как написать простейший советник, торгующий отложенными ордерами. 50
2013-02-28 20:53:04 0
Как написать простейший советник на MQL4?
Как написать простейший советник на MQL4? |
Подобным вопросом наверняка задается любой новичок желающий освоить написание экспертов для торговли на рынке FOREX. При желании и некоторой сноровке эту задачу можно решить за один вечер.
Для начала сформулируем правила открытия и закрытия позиций.
Торговать будем по валютной паре евродоллар на пятиминутке используя сигналы индикаторов Moving Average и Stochastic. Покупаем, когда Moving Average растет и Stochastic снизился ниже уровня перепроданности. Продаем, когда Moving Average убывает и Stochastic вырос выше уровня перекупленности.
Чтобы облегчить задачу написания эксперта воспользуемся кодом советника Moving Average.mq4 из стандартной библиотеки MetaTrader 4.
Немного изменим шапку эксперта и укажем свои внешние переменные:
Так как советник у нас простейший убираем из кода функции LotsOptimized() для расчета лота и CheckForClose() предназначенную для закрытия позиций при определенном условии.
Далее запишем значения необходимых индикаторов и условия открытия позиций в функции CheckForOpen():
И в завершение нашего задания подкорректируем содержание функции start():
Удачи вам и больших профитов уважаемые трейдеры и программисты!
Источник статьи: http://mql.opentraders.ru/940.html
Урок №12: Пишем советник по индикатору
На прошлом уроке мы с вами писали индикатор, который указывает входы в рынок. Соответственно сегодня мы займёмся разработкой эксперта, использующего его сигналы.
Начнём с создания шаблона советника(как это сделать мы разбирали на уроке №10).
Опишем входные параметры эксперта:
Значения StopLoss, TakeProfit и Slippage, присвоенные в параметрах, указаны для 4-х значного брокера, соответственно, чтобы эти же значения корректно работали у 5-ти значного ДЦ их нужно умножить на 10, что мы и сделаем в функции OnInit:
Начало нашего советника положено, что уже хорошо. Давайте теперь рассмотрим входные параметры индикатора, а заодно и номера буферов для сигналов:
Обычно я просто копирую параметры индикатора в код своего эксперта, в дальнейшем это позволит нам оптимизировать сам советник. В итоге получаем:
Переходим к функции OnTick и пишем заготовку обработчика, где описываю алгоритм работы эксперта:
- if (CountBuy() == 0) — я проверяю есть-ли у меня ордера на покупку, находящиеся в рынке, и если нет, то шаг 2.
- BuySignal = … — проверяем наличие сигнала на покупку по индикатору, кстати, это будет переменная, которую необходимо объявить заранее.
- if (BuySignal > 0) — если есть сигнал на покупку, то переходим к шагу 4.
- CloseSell() — закрываем открытые ордера на продажу, если они есть и переходим к шагу 5.
- Открываем ордер на покупку.
Точно такой же блок делается и для продаж.
Исходя из написанного алгоритма сразу видно, что предварительно нам потребуется несколько функций: CountBuy(), CountSell(), CloseBuy(), CloseSell(), а также написать код получения сигнала с индикатора.
Объявим в коде несколько переменных для дальнейшей работы и необходимые функции:
Функция CountBuy():
Аналогично пишется функция CountSell(), разве что проверяется тип ордера OP_SELL:
Далее пишем функцию CloseBuy():
Пишем практически всё то же самое и для закрытия ордеров на продажу, разница лишь в типе проверяемого ордера и цене закрытия, функция CloseSell():
На текущий момент нам осталось получить сигналы от индикаторы и написать код, открывающий ордера по его сигналам.
Для получения сигнала от любого пользовательского индикатора используется функция iCustom, обратившись к справке (F1) видим формат вызова функции:
Теперь мы можем с легкостью получить сигнал на покупку в нашем советнике:
заодно и сигнал на продажу:
кстати, обратите внимание на предпоследний параметр mode, который мы передаём в функцию iCustom — это номер буфера индикатора, где хранятся сигналы покупок и продаж.
Таким образом наша функция OnTick() будет выглядеть следующим образом:
Собственно говоря, на этом всё, разработка советника на пользовательском индикаторе завершена.
Источник статьи: http://mql.su/2017/12/lesson12-my-expert/
MQL4: Создаем шаблон советника в редакторе кода MetaEditor
В этой небольшой статье мы рассмотрим, как создать базовый шаблон на MQL4 в редакторе кода MetaEditor.
Для того чтобы создать шаблон советника в MQL4, нам необходимо открыть наш редактор кода. Как это делается, мы разбирали в нашей первой статье «Знакомство с редактором кода MetaEditor».
Итак, давайте создадим наш первый базовый шаблон советника. Открываем MetaEditor и нажимаем кнопку создать.
У нас появляется окно Мастера MQL, который нам поможет создать шаблон советника в MetaEditor. Он нам предлагает на выбор несколько вариантов того, что можно создать. Последние три варианта нам не нужны (они нужны для профессионального программирования). В процессе нашего программирования нам могут пригодиться: Советник (шаблон), Пользовательский индикатор или Скрипт. В нашем случае, сейчас выбираем Советник (шаблон) и нажимаем далее.
В следующем открывшемся окне Мастер MQL нам предлагает заполнить 4 поля. Мы будем заполнять только верхние два поля. В первом поле мы прописываем наименование нашего советника, допустим Experts\My_first_expert.
«My_first_expert» — это название моего советника. Вы можете назвать его иначе.
Второе поле особой значимости не играет: здесь прописываются только авторские права, то есть, в данном случае мое авторство Copyright (с) Антон SanGReal Invest.
В третьем поле прописывается Ваш сайт, если таковой есть. Но можно это поле не заполнять вовсе.
Четвертое поле нужно для того, чтобы мы на данном этапе уже ввели начальные значения в данном советнике, например, переменную лота, переменную take profit, переменную stop loss и так далее. Но я предпочитаю оставлять это поле пустым, так как для меня удобней прописать данные моменты в самом коде. Поэтому сейчас заполнять данное поле мы не будем.
Итак, заполняем нужные нам поля и нажимаем кнопку «Далее».
В следующем окне Мастер MQL нам предлагает выбрать какие-то базовые функции, которые он автоматически пропишет нам в коде. По сути, в 95-98% случаях нам данные функции не пригодятся. Но в рамках нашего обучения мы будем использовать функцию «On Timer». Соответственно, напротив нее необходимо поставить галочку. И нажимаем кнопку «Далее».
В следующем окне Мастер MQL вновь нам предлагает включить некоторые функции в наш стандартный шаблон. Но нам они не потребуются, соответственно ничего из предложенного не добавляем и нажимаем кнопку «Готово».
И вот у нас открылся базовый шаблон нашего «пустого» советника в MetaEditor.
На этом материал данной статьи окончен, переходите к следующей статье, где мы разберем с Вами базовые функциональные блоки кода советника в этом шаблоне, который сейчас открыли.
Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.
Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.
Другие статьи по теме Программирование на MQL4 Вы можете просмотреть в данном содержании практических уроков по MQL.
Понравился материал статьи? Добавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D
Источник статьи: http://sgr-tradeinvest.ru/mql4/shablon-sovetnika.html
Как правильно написать советник (индикатор) на MQL4? А также как отладить и протестировать его своими руками?
Многие трейдеры, сейчас задумываются над созданием собственного советника – изготовленного своими руками и идеально соответствующего их потребностям, а не написанного за деньги профессиональным программистом.
И эта задумка, стоит сразу отметить, вполне осуществима, еще и обладает рядом неоспоримых преимуществ: вы сэкономите на услугах фрилансеров, еще и опыт бесценный получите, который в дальнейшем пригодится для создания аналогичных алгоритмов.
РЕКОМЕНДУЕМ: ЛУЧШИЕ ФОРЕКС БРОКЕРЫ ПО МНЕНИЮ ВЕДУЩИХ РЕЙТИНГОВ
2007 год. Старт от 100$. | ТРОЙНОЙ ПОДАРОК НА 13-ЛЕТИЕ | обзор | отзывы
2017 год. VFSC, ЦРОФР. | ОТКРЫТЬ СЧЕТ В FINMAXFX | обзор | отзывы
1998 год. Старт от 0$. | CASHBACK х 2 + 20% К ДЕПОЗИТУ | обзор | отзывы
2007 год. Старт от 1$. МАКСИМАЛЬНЫЙ БОНУС $1500 | обзор / отзывы
ТОП ЛУЧШИХ БРОКЕРОВ БИНАРНЫХ ОПЦИОНОВ 2020 ГОДА
*БО. Не требуется верификация! | обзор | отзывы | НАЧАТЬ ТОРГОВЛЮ С 10$
*БО. Выгодные условия. | обзор | отзывы | ДО 218% ЗА СДЕЛКУ!
Советы опытных программистов: как написать собственный индикатор на MQL4?
Самое основное, с чего придется начать, это получение базовых знаний о языке программирования MQL4. Много полезной информации по созданию советника опубликовано на самой платформе MetaTrader 4. Чтобы ее получить, нужно зайти в справочную систему терминала и нажать клавишу F1.
Новичкам проще всего будет выбрать один из двух путей:
Первый – это разбор уже готовой программы, используемых там команд, принципов их действия. Так вы на наглядном примере сможете увидеть, как именно инициируемые вами действия влияют на работу алгоритма.
Второй вариант – написание простейших торговых алгоритмов, чтобы уже потом, по мере того как освоите основные функции, начать совершенствовать их, снабжать дополнительными командами и вносить изменения в старые.
Опытные программисты при написании советника или индикатора, советуют новичкам обратить внимание на следующие моменты:
- Закончив с готовым куском кода или функцией, если есть такая возможность, обязательно протестируйте его работу и выявите возможные ошибки. Если не уделять проверкам время, в будущем, когда размер программы возрастет и будет насчитывать внушительное количество строчек с кодом, поиск проблем станет проблематичным.
- Если кусок кода часто дублируется, стоит представить его как отдельную функцию. Итоговый результат не будет выглядеть так громоздко.
- Постарайтесь избавиться от перфекционизма. Стремление к написанию идеально оптимизированного кода лишь отнимет у вас кучу времени, взамен не предоставив никаких плюсов. Новичок должен сосредоточиться на основной задаче – создании алгоритма, который будет выполнять возложенные на него функции. А насколько он будет громоздким в плане содержимого – это уже проблема второстепенного характера. Оптимизируете его уже в процессе использования, в свободное время.
Собственный алгоритм смотрится куда выгоднее, чем готовые решения, которые во внушительном разнообразии представлены на рынке торговых советников. Связано это с тем, что трейдеру гораздо проще понять принципы функционирования своей программы, чем созданной чужими руками, и вносить туда необходимые для успешной работы поправки.
Создатели популярных советников часто не информируют общественность о некоторых нюансах работы их программ, что часто ограничивает участников валютного рынка.
Как отладить и протестировать советник на MQL4 созданный своими руками?
Написать MQL4 индикатор или советник человеку, который знаком с данным языком программирования и встроенным в него функционалом, не составляет никакого труда. Вы сами в этом убедитесь, ознакомившись с тематическими книгами и руководствами. Но само непосредственное написание кода является лишь первым этапом.
Следом за ним идет продолжительный процесс отладки и тестирование на предмет наличия всевозможных ошибок. Осложняется все тем, что платформа MetaTrader4 не содержит встроенный отладчик.
Создателям остается лишь мониторить результаты торговли автоматического алгоритма, занимаясь неинтересным и утомительным ручным просмотром логов, корректируя код по ходу дела. Занимающимся разработкой простых торговых советников людям еще повезет – алгоритм с несколькими командами проверить и оптимизировать можно быстро, а вот с громоздкими механическими торговыми системами дела обстоят уже не так радужно. Их программный код насчитывает многие тысячи строк – вероятность что-то упустить и допустить ошибку очень высока.
ЛУЧШИЕ ФОРЕКС БРОКЕРЫ, ПО ДАННЫМ РОССИЙСКОГО РЕЙТИНГА НА 2020 ГОД:
1998 год. FCA, НАУФОР. ВОЗВРАЩАЕМ 20% ОТ ТОРГОВЛИ | обзор / отзывы
2007 год. FinaCom. КЕШБЭК ДО 14$ С ЛОТА! | обзор / отзывы
2007 год. 260 представительств. STARTUP БОНУС $1500 | обзор / отзывы
1997 год. Нацбанк РБ. НЕ ДЛЯ РФ! ИЗ 50$ ДО 5.000$ | обзор / отзывы
2007 год. Financial Commission. ФОРЕКС / ОПЦИОНЫ ОТ 1$ | обзор / отзывы
А ТАКЖЕ ЛУЧШИЕ БРОКЕРЫ БИНАРНЫХ ОПЦИОНОВ НА СЕГОДНЯ:
Самые выгодные условия! ТОРГОВЛЯ БЕЗ ВЕРИФИКАЦИИ | обзор / отзывы
Инновационные платформы 2020. 3000$ К ДЕПОЗИТУ | обзор / отзывы
2 способа: как легко создать советник на MQL4 по зигзагу или на основе других индикаторов?
Есть два способа облегчить задачу по созданию автоматических советников, которые можно использовать совместно:
Во-первых, это использование готовых блоков (библиотек), созданных другими трейдерами/программистами. Куски кода часто выкладываются профессионалами на профильных ресурсах, форумах и блогах, откуда их легко скопировать.
От вас требуется лишь понимание того, как именно эта часть алгоритма будет функционировать в рамках вашего замысла по созданию программы.
Во-вторых, к созданию советников можно привлечь сторонние приложения, являющиеся аналогами “мастеров настройки” в операционных системах Windows и MacOS.
Все шаги по созданию кода будут сопровождаться подсказками и объяснениями, что позволит неопытным новичкам написать простенький алгоритм, особо не вникая в тонкости языка программирования MQL4 (хотя, конечно, ознакомиться с обучающей литературой и парой-тройкой статей на тему все-таки настоятельно рекомендуется).
Как облегчить задачу начинающему трейдеру по написанию собственных индикаторов на MQL4?
Из всего сказанного выше можно понять, что написание собственных советников и индикаторов MQL4 по зигзагу или на основе других индикаторов – это вполне посильная для большинства трейдеров задача. Нужно лишь начать с самых основ, изготавливая простейшие алгоритмы с минимумом команд и функций.
В интернете предоставлено немало полезной информации и вспомогательных средств, позволяющих облегчить написание кода и его последующую отладку. Нужно только немного попрактиковаться и все получится. Успехов!
Создание простого советника на MQL4
ТОП БРОКЕРОВ, ПРИЗНАННЫХ НЕЗАВИСИМЫМИ РЕЙТИНГАМИ
*БО. Не требуется верификация! | обзор/отзывы | НАЧАТЬ ТОРГОВЛЮ С 10$
*БО. Выплаты до 218% за сделку! | обзор/отзывы | НАЧАТЬ С 10 $
ЛУЧШИЕ ФОРЕКС БРОКЕРЫ ПО ДАННЫМ «ИНТЕРФАКС»
2007 год. FinaCom. КОПИРОВАТЬ СДЕЛКИ ТРЕЙДЕРОВ | обзор/отзывы
1998 год. FCA, НАУФОР. | +20% ПО КЕШБЭКУ | обзор/отзывы
2007 год. БОНУС $1500 НА СЧЕТ. | STARTUP BONUS $1500 | обзор/отзывы
2007 год. The FC. ФОРЕКС / ЦИФРОВЫЕ КОНТРАКТЫ ОТ 1$ | обзор / отзывы
Источник статьи: http://infofx.ru/trejding/kak-pravilno-napisat-sovetnik-indikator-na-mql4-a-takzhe-kak-otladit-i-protestirovat-ego-svoimi-rukami/