Здравствуйте, друзья форекс программисты !
Как вы знаете — в специализированной программе 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 — вы уже знаете. Я же, не вдаваясь в детали программирования, опишу общий порядок действий для того, чтобы написать свой первый индикатор за один вечер:
- Открыть справку, изучить структуру программы. Впоследствии вы можете даже скопировать всю структуру прямо из справки в файл будущего проекта, чтобы не лезть лишний раз в справку для этого;
- Внимательно ознакомиться с основными функциями. Запоминать их не обязательно, все равно не запомните с первого раза и придется пользоваться поиском для справки. Функций немного, всего десятка четыре, поэтому они все запомнятся вам уже после пятого проекта. К тому же у большинства из них и названия, и аргументы, и типы этих аргументов практически один в один совпадают с аналогичными из mql;
- Установите среду разработки для предпочитаемого языка. Если вы знаете Delphi, хорошо. Если не знаете, ставьте что-то для работы с C++ — он мало чем отличается от mql (да, собственно, ничем практически не отличается – mql создавался по образу и подобию C++). Я не могу порекомендовать вам, какую среду разработки выбрать – сам пользуюсь Visual Studio и вполне доволен, но вкусы у всех разные;
- Заходим в папку с установленным Forex Tester/Examples/. Дальше выбираем папку в зависимости от того, что собрались создавать – скрипт, стратегию или индикатор. В каждой папке лежит API в двух вариантах для двух языков:
Вы найдете файл InterfaceUnit – это, собственно, сам интерфейс API, библиотеку технических функций TechnicalFunctions и пример написания советника или индикатора.
Открываем Dev-C++, жмем Файл->Создать-> Проект, выбираем dll:
Далее выбираем местоположение проекта:
Закрываем файлы, которые автоматически создались вместе с проектом и добавим свои:
После написания советника или индикатора идем во вкладку Выполнить – Скомпилировать или жмем Ctrl+F9. Если вы не наделали ошибок, в папке с проектом вы найдете dll файл советника/индикатора:
Именно этот файл нам нужно подключить к Forex Tester. Для этого находим в Forex Tester вкладку файл – установить:
Выбираем наш созданный файлик и жмем установить. После этого ваш индикатор вы найдете тут:
Советник появится в списке советников:
Заключение
Как видите, ничего сложного нет. Язык программирования прекрасно знаком тем, кто уже программировал индикаторы или советники на mql. Сама установка и разработка стратегий и индикаторов немного замысловата, но я надеюсь, эта статья помогла вам начать самостоятельно программировать под платформу Forex Tester.
Успехов и до новых встреч!
С уважением, Дмитрий аkа Silentspec
TradeLikeaPro.ru