КАК НАПИСАТЬ ПРОГРАММУ ДЛЯ СОВЕТНИКА ФОРЕКС

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

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

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

MQL4 — Как написать робота для Бинарных опционов

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

Прежде всего вам нужно установить программу 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:

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

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

Visual Strategy Builder — Автоматизируем Стратегии без программирования

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

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

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

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

Заключение

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

Как написать форекс скрипт на MQL

Как написать форекс советника не изучая MQL

Теперь с помощью специализированных программ можно создавать советников не углубляясь в дебри программирования MQL. Доступным такую возможность делают ряд программ созданных для программирования в среде MQL при это избегаю сложноуровневого интерфейса. Одной из таких программ является Gordago Forex Optimizer.

Программ оптимизирует стратегию и сама создаст эксперта для МТ4. Кроме того, программа вполне может подключится к MetaTrader 4 для работы он-лайн.

Преимуществом программы является то, что в Gordago Forex Optimizer не нужно программировать — стратегия задается с помощью мыши.

Например, нужно оптимизировать стратегию:

«Покупаем, если цена пересекла скользящую среднюю снизу вверх, причем нужно подобрать наилучший период МА в диапазоне от 13 до 24».

Изучаем MQL — Реконнект для форекс советника

Для этого необходимо:

Кликнуть на Moving Average, задать перебрать от 13 до 24 (можно также задать и оптимизировать тип, к чему применить и т.д.). Берем мышью настроенный индикатор и перетаскиваем его в Таблицу условий. Аналогичным образом вставляем сюда же цену закрытия и знак «меньше» (<)

Получаем:

Все, условие введено! Никакого программирования. Оптимизирует, подает сигналы вплоть до управления счетом. Не нужно искать котировки — они возьмутся из MetaTrader.

Forex Optimizer TT Версия 2.7
Установочный пакет Forex Optimizer 2.7 — автоматически определит все необходимые компоненты для работы программы, произведет их закачку и установит их на компьютер.

Обзор программы System Creator — создаем советники без программирования

Ключ к полнофункциональной версии:

  • 1) Зайдите в пункт меню «Сервис»->»Обновление программы»
  • 2) Появится окно, в котором нужно поставить галочку «Полная версия»
  • 3) Введите логин и пароль:
    • Логин: free
    • Пароль: free

    Примечание:

    Для работы программы Forex Optimizer 2.7 необходимо наличие установленного компонента Microsoft .NET Framework 2.0 на Вашем компьютере. Если Microsoft .NET Framework 2.0 не установлен на Вашем компьютере, то установочный пакет Forex Optimizer в процессе установки предложит скачать (

    23 Mb) и установить этот компонент автоматически.

    Более подробно об этом можно прочитать на нашем форуме в теме Microsoft Framework 2.0 необходим для работы программы.

    MQL4: Управление компьютером из советника

    Иногда бывает необходимо программно нажать кнопку в стороннем приложении, считать текст с определенного компонента, запустить другой терминал, любую другую программу, открыть текстовый файл, выключить компьютер в определенное время, произвести еще какие-либо операции. Здесь нам поможет функция WinAPI — ShellExecute, которая находится в библиотеке shell32.dll и библиотека WinUser32.mqh. Как можно автоматизировать весь этот процесс – узнаем из нашего нового урока по программированию форекс роботов. Тема необычная, сильно расширит ваши навыки как программиста.

    Более подробную информацию о функции ShellExecute вы можете получить в справке MSDN. Там же можно получить подробную информацию обо всех функциях, доступных из библиотеки WinUser32.mqh. Я же приведу краткое описание каждой из них:

    • ShellExecute – выполняет операцию с указанным файлом;
    • SendMessage – Отправляет указанное сообщение окну или окнам, ожидает ответа;
    • SendNotifyMessage – то же самое, но не ждет ответа;
    • PostMessage – помещает сообщение в поток, не дожидаясь ответа;
    • keybd_event – синтезирует нажатие заданной клавиши на клавиатуре;
    • mouse_event – синтезирует движение мыши и нажатия кнопок;
    • FindWindow – извлекает дескриптор окна верхнего уровня;
    • SetWindowText – помещает текст в название окна;
    • GetWindowText – считывает текст из названия окна;
    • GetWindowTextLength – считывает количество символов в названии окна;
    • GetWindow – извлекает дескриптор окна, которое имеет отношение к указанному окну;
    • GetParent – извлекает дескриптор указанного или родительского окна;
    • UpdateWindow – обновляет окно программы;
    • EnableWindow – включает или отключает ввод с клавиатуры и мыши в указанное окно или элемент управления;
    • DestroyWindow – деактивирует окно или убирает с него фокус клавиатуры;
    • ShowWindow – устанавливает состояние показа указанного окна;
    • SetActiveWindow – активирует окно;
    • AnimateWindow – позволяет создавать специальные эффекты при отображении или скрытии окон;
    • FlashWindow – заставляет мигнуть указанное окно один раз;
    • CloseWindow – минимизирует (но не закрывает) указанное окно;
    • MoveWindow – изменяет положение и размеры указанного окна;
    • SetWindowPos – изменяет размер и положение дочернего, всплывающего окна или окна верхнего уровня;
    • IsWindowVisible – определяет состояние видимости указанного окна;
    • IsIconic – определяет, является ли указанное окно свернутым;
    • IsZoomed – определяет, развернуто ли окно;
    • SetFocus – устанавливает фокус клавиатуры на указанное окно;
    • GetFocus – извлекает дескриптор окна, которое имеет фокус клавиатуры;
    • GetActiveWindow – получает дескриптор активного окна;
    • IsWindowEnabled – определяет, включено ли указанное окно для ввода с клавиатуры и мыши;
    • MessageBox – отображает модальное диалоговое окно, которое содержит системный значок, набор кнопок и краткое сообщение для конкретного приложения, такое, как информация о состоянии или об ошибке;
    • MessageBeep – воспроизводит звук с помощью системного динамика;
    • GetSystemMetrics – извлекает указанную метрику системы или параметр конфигурации системы;
    • ExitWindows – выход из системы интерактивного пользователя, выключение системы или выключение и перезагрузка системы;
    • SwapMouseButton – меняет или восстанавливает значение левой и правой кнопок мыши.

    Что мы будем сегодня делать?

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

    • выключение или перезагрузка компьютера;
    • запуск другой программы из терминала (например, google chrome);
    • замена названия окна программы.

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

    Запуск приложения

    Первое, что нужно сделать – объявить функцию ShellExecuteW:

    Затем в методе onStart() запустим нужную программу:

    Бросим скрипт на любой график и у нас откроется указанная программа.
    Теперь включим в наш скрипт библиотеку терминала WinUser32.mqh:

    Теперь нам нужно найти хэндл окна запущенной программы. Это можно осуществить с помощью функции WinApi — FindWindowW.
    В библиотеке терминала функция описана следующим образом:

    Это означает, что в параметр string lpClassName необходимо ввести имя класса нашего приложения, а вместо параметра string lpWindowName имя окна программы — «Новая вкладка». Имя класса приложения можно узнать с помощью таких утилит как: Spy++, WinSight, WinInspector и другие. Скачаем и установим программу Spy++.

    Утилита очень проста в использовании. Достаточно запустить программу, нажать кнопку с изображением бинокля и перетащить прицел на нужное нам окно, и мы сразу увидим его имя, класс и прочую информацию. В функции FindWindowW можно указывать и имя класса, и имя окна (или по отдельности). Нам достаточно будет указать только имя окна:

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

    Добавим в наш код еще одну простую функцию SetWindowTextW. Она изменит текст окна на любой другой:

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

    Как написать советник для Metatrader 5

    Чтобы выключить компьютер, введите следующую строку:

    Чтобы перезагрузить компьютер, введите следующую строку:

    Чтобы посмотреть параметры для различных версий Windows – пройдите по этой ссылке.

    Заключение

    В библиотеке WinUser32.mqh вы сможете также найти и много других интересных функций, которые позволят вам управлять сторонней программой прямо из советника, написанного на MQL4. Полный список функций WinApi вы можете найти на сайте MSDN.

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

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

    Честные Форекс-брокеры:

About : Money