Урок №12: Пишем советник по индикатору | MQL-разработка

 

Урок №12: Пишем советник по индикатору

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

Начнём с создания шаблона советника(как это сделать мы разбирали на уроке №10).

Опишем входные параметры эксперта:

Значения StopLoss, TakeProfit и Slippage, присвоенные в параметрах, указаны для 4-х значного брокера, соответственно, чтобы эти же значения корректно работали у 5-ти значного ДЦ их нужно умножить на 10, что мы и сделаем в функции OnInit:

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

Параметры индикатора

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

Переходим к функции OnTick и пишем заготовку обработчика, где описываю алгоритм работы эксперта:

  1. if (CountBuy() == 0) — я проверяю есть-ли у меня ордера на покупку, находящиеся в рынке, и если нет, то шаг 2.
  2. BuySignal = … — проверяем наличие сигнала на покупку по индикатору, кстати, это будет переменная, которую необходимо объявить заранее.
  3. if (BuySignal > 0) — если есть сигнал на покупку, то переходим к шагу 4.
  4. CloseSell() — закрываем открытые ордера на продажу, если они есть и переходим к шагу 5.
  5. Открываем ордер на покупку.

Точно такой же блок делается и для продаж.

Исходя из написанного алгоритма сразу видно, что предварительно нам потребуется несколько функций: CountBuy(), CountSell(), CloseBuy(), CloseSell(), а также написать код получения сигнала с индикатора.

Объявим в коде несколько переменных для дальнейшей работы и необходимые функции:

Функция CountBuy():

Аналогично пишется функция CountSell(), разве что проверяется тип ордера OP_SELL:

Далее пишем функцию CloseBuy():

заодно и сигнал на продажу:

кстати, обратите внимание на предпоследний параметр mode, который мы передаём в функцию iCustom — это номер буфера индикатора, где хранятся сигналы покупок и продаж.

Таким образом наша функция OnTick() будет выглядеть следующим образом:

Как написать индикатор или советник для Forex Tester

Здравствуйте, друзья форекс программисты !

Как вы знаете – в специализированной программе Forex Tester для тестирования торговых стратегий можно писать свои собственные индикаторы и советники, но мало кто пробовал это сделать. К сожалению – программа не поддерживает скриптовый язык mql, встроенный в терминал MetaTrader 4. Тем не менее, программа поддерживает импорт стратегий и индикаторов в виде dll файлов и сегодня мы разберемся, что нужно для того, чтобы писать свои индикаторы для Forex Tester.

Инструментарий

Прежде всего вам нужно установить программу Forex Tester, импортировать котировки для нее и подготовиться к тестированию. Все это уже было описано, например, тут, поэтому подробно останавливаться на этом не стоит. Где брать котировки и как их устанавливать вы также, думаю, разберетесь самостоятельно.

Написание собственных скриптов, индикаторов, советников для программы может происходить на двух языках программирования: C++ и Delphi. Но пугаться не стоит – дело в том, что язык mql очень похож на C++. К тому же – зная один из языков программирования и имея под рукой справочник по нему – можно справиться с любой несложной задачей. Вся логика везде одинаковая, конструкции различаются только синтаксисом, и то не особо сильно, а написание индикатора в большинстве случаев является как раз простой задачей.

Итак, я советую вам выбрать именно C++ за его сходство с mql. Поэтому для написания советников и индикаторов вам потребуется установка среды разработки. Лично я часто веду разработки для веба и уже давно использую для этого такую IDE, как NetBeans. В сети вы сможете найти немало видео уроков по использованию этой среды разработки, в которой детально разобран каждый элемент интерфейса.

Также можно найти и немало различных плагинов, упрощающих работу с ней. Это очень мощная среда разработки со множеством функций и возможностей под различные языки программирования. Но намного легче было бы установить что-то попроще, особенно если вам не нужно много функционала, а ваша цель – просто написать индикатор для Forex Tester. Поэтому предлагаю вам установить Dev-C++ – простую, легкую в использовании IDE.

Подготовка к работе

Чтобы получить сведения об основных функциях, используемых в индикаторах, вы можете воспользоваться справкой программы Forex Tester:

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

Сначала мы подключаем необходимые интерфейсы API при помощи команды uses. Затем идет перечисление внешних переменных, которые можно настроить при запуске.

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

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

Ознакомиться со структурой программ вы можете в справке в разделе «Как создавать…». Далее я советую ознакомиться со списком функций, которые вы будете использовать при создании вашей программы. Затем почитайте, какие есть структуры, типы, классы и константы – все это займет не так уж и много времени, но зато вы примерно будете себе представлять спектр возможностей, который вам даст API, а также лишний раз убедитесь, насколько все похоже на родной mql.

Поэтому, если вы хорошо знакомы с mql и пишете на нем уверенно, практически все, что вам нужно, чтобы написать советник или индикатор для Forex Tester – вы уже знаете. Я же, не вдаваясь в детали программирования, опишу общий порядок действий для того, чтобы написать свой первый индикатор за один вечер:

  1. Открыть справку, изучить структуру программы. Впоследствии вы можете даже скопировать всю структуру прямо из справки в файл будущего проекта, чтобы не лезть лишний раз в справку для этого;
  2. Внимательно ознакомиться с основными функциями. Запоминать их не обязательно, все равно не запомните с первого раза и придется пользоваться поиском для справки. Функций немного, всего десятка четыре, поэтому они все запомнятся вам уже после пятого проекта. К тому же у большинства из них и названия, и аргументы, и типы этих аргументов практически один в один совпадают с аналогичными из mql;
  3. Установите среду разработки для предпочитаемого языка. Если вы знаете Delphi, хорошо. Если не знаете, ставьте что-то для работы с C++ – он мало чем отличается от mql (да, собственно, ничем практически не отличается – mql создавался по образу и подобию C++). Я не могу порекомендовать вам, какую среду разработки выбрать – сам пользуюсь Visual Studio и вполне доволен, но вкусы у всех разные;
  4. Заходим в папку с установленным Forex Tester/Examples/. Дальше выбираем папку в зависимости от того, что собрались создавать – скрипт, стратегию или индикатор. В каждой папке лежит API в двух вариантах для двух языков:

Вы найдете файл InterfaceUnit – это, собственно, сам интерфейс API, библиотеку технических функций TechnicalFunctions и пример написания советника или индикатора.

Открываем Dev-C++, жмем Файл->Создать-> Проект, выбираем dll:

Далее выбираем местоположение проекта:

Закрываем файлы, которые автоматически создались вместе с проектом и добавим свои:

После написания советника или индикатора идем во вкладку Выполнить – Скомпилировать или жмем Ctrl+F9. Если вы не наделали ошибок, в папке с проектом вы найдете dll файл советника/индикатора:

Именно этот файл нам нужно подключить к Forex Tester. Для этого находим в Forex Tester вкладку файл – установить:

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

Советник появится в списке советников:

Заключение

Как видите, ничего сложного нет. Язык программирования прекрасно знаком тем, кто уже программировал индикаторы или советники на mql. Сама установка и разработка стратегий и индикаторов немного замысловата, но я надеюсь, эта статья помогла вам начать самостоятельно программировать под платформу Forex Tester.

Шаблон для создания советника на любых индикаторах

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

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

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

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

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

Что вы получите:

    • Подключение любого индикатора на вход в сделку.
      • Подключение любого индикатора для STOP закрытия лота
        • Подключение любого индикатора фильтра
          • Настраиваемый SL и TP
          • Настраиваемый Breakeven /Безубыток (выводит в безубыток все открытые позиции).

          А знаете этот шаблон универсален, и на основании его сделано множество «легендарных» советников, которые вы покупали! Не нужно больше покупать, купи это и забудь про советники и сервис MQL5. Будь сам хозяином своей судьбы!

          Как это работает:

          2015-06-16_224053

          Все работает очень просто! Находим 3 индикатора:

          1. Синяя и красная стрелочки — вход в сделку
          2. Трендовый индикатор фильтра сделок
          3. Индикатор разворота для выхода из сделки

          Вот и все ваша система готова! Подключаем эти индикаторы по инструкции к шаблону — вот и готов твой советник! Далее тестируем, ставим на демо, смотрим. Не приносит прибыль? Просто замени индикаторы! Или лучше купить советник, или заплатить «специалисту»? Нет не забывай, теперь ты сам специалист! Не нужно больше платить. Просто найди другие индикаторы, экспериментируй, пробуй — и ты обязательно достигнешь успеха!

          Что вы получите:

          1. Шаблон своего будущего советника.

          2. Полное руководство, доступное да же школьникам.

          3. Индикаторы для примера.

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

          Источник https://mql.su/2017/12/lesson12-my-expert/

          Источник https://tlap.com/pishem-ea-dlya-forex-tester/

          Источник https://info-cast.ru/foreks/sovetniki/shablon-dlya-sozdaniya-sovetnika-na-lyubyx-indikatorax.html

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *