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

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

Содержание страницы:

Конструктор советников – Ensed Cor

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

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

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

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

Установка конструктора Ensed Cor

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

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

Чтобы дать правильно путь пройдите в меню файл вашей платформы и запустите каталог данных. Скопируйте верхнюю строку с адресом папок и вставьте в соответствующую строку предложенной программой. После первого запуска перед вами отобразится вот такой интерфейс программы:

Функционал программы

Как мы уже упоминали, бесплатная версия довольно урезана, поэтому на бесплатной основе вы можете создавать советники и сохранять их в необходимом формате только на основе стандартных индикаторов.

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

В левом верхнем углу находится самая главная панель на основе которой происходит построение будущего робота, а именно «Доступные индикаторы и значения». По умолчанию вам доступно 30 различных индикаторов, таких как полосы боллинджера, скользящие средние, стандартные осцилляторы.

В этом же окне вы можете переключить флажок на функции. «значения цены и объема». В этом разделе вы можете выбирать цену открытия, закрытия, объем, максимум и минимум цены. Все эти значения остро необходимы для построения без индикаторной тактики.

Под окном «Доступные индикаторы и значения» находится окно под названием «Индикаторы им значение робота». Это специальное окно отображает переменные и индикаторы, которые вы будете наносить на рабочую область в случае создания робота.

Непосредственно в верху можно увидеть пять вкладок, а именно открытие покупки, открытие продаж, закрытие покупки, закрытие продаж. В каждом из вкладок необходимо прописывать условия для открытия и закрытия сделок.

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

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

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

При включении мартингейла не забудьте задать минимальный и максимальный лот.
Также в финальном окне вы можете включить функцию трейлинг стоп и без убытка. Для того чтобы включить функцию трейлинга установите галочку напротив «Использовать» при этом укажите размер трейлинга и шаг трейлинга.

Для включения функции без убытка перейдите в соответствующую вкладку и в строке «Прибыль для установки» задайте значение профита в пунктах.

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

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

Генератор индикаторов форекс на основе цифровых фильтров

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

Однако неужели все эти индикаторы измеряют тысячи различных характеристик рынка? На самом дели, практически в любом индикаторе заложено банальное скользящее среднее, которое, как правило, давно учтено рынком.

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

Торгуй по крупному только с ведущим брокером

Собственно наличие сотен, а то тысяч различных индикаторов которые выполняют непонятные задачи и измеряют неизвестные характеристики, при построении собственной стратегии ставят в тупик практически каждого опытного трейдера, не говоря уже об начинающих.

Лучшее решение – это создание собственного индикатора на основе цифровых фильтров.

Генератор индикаторов – это специальная программа, которая позволяет создавать собственные индикаторы форекс на основе различных уникальных методов построения цифровых фильтров. Особенный интересна данная программа для валютных трейдеров, поскольку с ее помощью вы можете скомпилировать индикатор для торговой платформы МТ4, Rumus.

Установка генератора цифровых фильтров

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

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

Работа с программой. Характеристика цифровых фильтров и методов

В левой части экрана программы находится колонка Тип фильтров. В зависимости, какой вы фильтр выберите, по такому принципу и будет сформирован ваш индикатор. Первый тип цифрового фильтра является FATl и SATL.

FATL — это линия тренда, которая является быстрой и адаптивной и строится с помощью фильтра низкой частоты ФНЧ.

SATL в свою очередь является медленной адаптивной линей тренда, которая строится на основе ФНЧ, однако в процессе фильтрации подавляются более длительные циклы, нежели при FATL. Стоит понимать, что в отличие от скользящей средней (индикаторы очень схожи между собой) FATl и SATL не запаздывают.

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

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

Далее выбрав тип фильтра и его настройки, вам потребуется выбрать один из двух методов расчета цифрового фильтра. Первый метод расчета основывается на основе разработок некого Jake Janovetz в 1995 году, а второй на основе библиотеки цифровой фильтрации. Выбрав определенный тип расчета, нажмите на кнопку «Расчет Параметров».

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

Далее чтобы сохранить вашу разработку пройдите в меню «Файл» и выберите «Сохранить». Далее перед вами появится окно, в котором необходимо указать формат и сохранения и место.

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

Создание пользовательских индикаторов

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

Пользовательский индикатор — это программа, составленная на языке MQL4, основным назначением которой является графическое отображение на экране рассчитанных зависимостей.

Устройство пользовательского индикатора

Необходимость буферов

Основным принципом, заложенным в основу пользовательских индикаторов, является передача значений индикаторных массивов клиентскому терминалу (для построения индикаторных линий) через буферы обмена.

Буфер — область памяти, содержащая численные значения индикаторного массива.

Стандартом языка MQL4 предусмотрена возможность построения с помощью одного пользовательского индикатора до восьми индикаторных линий. Каждой из индикаторных линий ставится в соответствие один индикаторный массив и один буфер. Каждый из буферов имеет свой индекс. Индекс первого буфера — 0, второго — 1, и т.д., а последнего — 7. На Рис. 115 показано как информация из пользовательского индикатора через буферы передаётся клиентскому терминалу для построения индикаторных линий.

Рис. 115. Передача значений индикаторных массивов через буфер клиентскому терминалу.

Общий порядок построения индикаторных линий состоит в следующем:

1. В пользовательском индикаторе выполняются вычисления, в результате чего элементы индикаторных массивов получают некоторые численные значения.

2. Значения элементов индикаторных массивов через буферы сообщаются клиентскому терминалу.

3. На основе массивов значений, полученных из буферов, клиентский терминал воспроизводит изображение индикаторных линий.

Из чего состоит пользовательский индикатор

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

Пример простого пользовательского индикатора userindicator.mq4

Рассмотрим подробно из чего состоит этот индикатор. В любой прикладной программе, написанной на MQL4, можно указать настроечные параметры, которые позволяют клиентскому терминалу правильно обслуживать программу. В данном примере в головной части программы (см. Структура программы) имеется несколько строк, содержащих директивы #property.

Первая директива указывает клиентскому терминалу, в каком окне необходимо отображать индикаторные линии:

В MQL4 предусмотрено всего два варианта для отображения индикаторных линий: в основном окне финансового инструмента и в отдельном окне. Основное окно — это то окно, в котором отображается привычный график цены по финансовому инструменту. В данном примере параметр indicator_chart_window в директиве #property предписывает клиентскому терминалу отображать индикаторные линии в основном окне.

В следующей строке указано количество буферов, используемых в индикаторе:

В рассматриваемом примере предусматривается построение двух индикаторных линий. Каждой линии ставится в соответствие один буфер, поэтому общее количество буферов — два.

В следующих строках заданы цвета для каждой из индикаторных линий.

Параметры indicator_color1 и indicator_color2 указывают на настройку цветов для соответствующего буфера — в данном случае для буферов с индексами 0 (Blue — синий цвет) и 1 (Red — красный цвет). Обратите внимание, литеры 1 и 2 в названиях параметров indicator_color1 и indicator_color2 — это не индексы буферов. Эти литеры являются составной частью названия констант, поставленных в соответствие буферам. Для каждой из этих констант может быть установлен свой цвет по усмотрению пользователя.

В следующей строке объявлены индикаторные массивы:

Индикатор предназначен для построения двух индикаторных линий, поэтому необходимо объявить два глобальных одномерных массива, по одному на каждую линию. Названия индикаторных массивов определяются пользователем по его выбору. В данном случае использованы названия массивов Buf_0[] и Buf_1[], в других случаях возможно использование других названий, например,Line_1[],Alfa[], Integral[] и пр. Необходимость объявления массивов на глобальном уровне вызвана тем, что значения элементов массивов должны сохраняться в период между вызовами на исполнение специальной функции start().

Рассматриваемый пользовательский индикатор построен на основе двух специальных функций -init() и start(). В функции init() собрана та часть кода, которая по смыслу используется в программе один раз (см. Специальные функции).

Очень важное действие выполняется в строке:

С помощью функции SetIndexBuffer() необходимый буфер (в данном случае с индексом 0) ставится в соответствие массиву (в данном случае Buf_0). Это значит, что для построения первой индикаторной линии клиентский терминал будет принимать данные, заключённые в массиве Buf_0, используя для этого нулевой буфер.

В следующей строке определяется стиль линии:

Клиентскому терминалу предписывается для нулевого буфера (0) использовать следующие стили отображения: простая линия (DRAW_LINE), сполошная линия (STYLE_SOLID), толщина линии 2.

В последующих двух строках указаны настройки для второй индикаторной линии:

Таким образом, в соответствии с кодом специальной функции init(), обе индикаторные линии будут отображены клиентским терминалом в основном окне финансового инструмента. Первая из них будет сплошной синей линией толщиной 2, а вторая — красной пунктирной ( STYLE_DOT) линией обычной толщины. Индикаторные линии могут отображаться и другими стилями (см. Стили отображения индикаторных линий).

Вычисление значений элементов индикаторных массивов (здесь внимательно)

Вычисление значений элементов индикаторных массивов выполняется в специальной функции start(). Для того, чтобы правильно понять содержание программного кода функции start() пользовательского индикатора, необходимо обратить внимание на порядок индексирования баров. В разделе Массивы подробно рассматривался метод индексирования массивов-таймсерий. Согласно этому методу индексирование баров начинается с нуля. Нулевым баром считается текущий, ещё не сформировавшийся бар. Ближайший к нему бар имеет индекс 1, следующий — индекс 2 и т.д.

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

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

Ранее упоминалось, что индикаторные линии строятся на основе численной информации, содержащейся в индикаторных массивах. Индикаторный массив содержит информацию о координатах точек, по которым строится индикаторная линия. При этом координатой каждой точки по оси Y является значение элемента индикаторного массива, а координатой по оси Х — значение индекса элемента индикаторного массива. В рассматриваемом примере первая индикаторная линия строится по максимальным значениям баров. На Рис. 116 показана эта индикаторная линия (синего цвета) в окне финансового инструмента, построенная на основе индикаторного массива Buf_0.

Значение индекса
индикаторного
массива Buf_0
Значение элемента
индикаторного
массива Buf_0
0 1.3123
1 1.3124
2 1.3121
3 1.3121
4 1.3123
5 1.3125
6 1.3127
. .

Рис. 116. Соответствие координат индикаторной линии значениям индикаторного массива.

Значение индекса индикаторного массива ставится клиентским терминалом в соответствие индексу бара — эти значения индексов совпадают. Необходимо также принять во внимание, что процесс построения индикаторных линий происходит в режиме реального времени, в условиях, при которых время от времени в окне финансового инструмента появляются новые бары. При этом все исторические бары сдвигаются влево. Чтобы индикаторная линия отображалась правильно (каждая точка линии над своим баром) её также нужно сдвинуть одновременно с барами. Поэтому возникает (чисто техническая) необходимость переиндексации индикаторного массива.

Основополагающее отличие индикаторного массива от обычного массива состоит в том, что:

В момент образования нового бара значения индексов элементов индикаторного массива автоматически изменяются клиентским терминалом, а именно — значение каждого индекса индикаторного массива увеличивается на единицу, а размер индикаторного массива увеличивается на один элемент (с нулевым индексом).

Например, нулевой бар на Рис. 116 (таймфреймH1) имеет время открытия 6:00. В 7:00 в окне финансового инструмента появится новый бар. Бар, открытый в 6:00, автоматически получит индекс 1. Для того, чтобы индикаторная линия на этом баре была отражена правильно, клиентский терминал изменит индекс элемента индикаторного массива, соответствующего бару со временем открытия 6:00. В таблице на Рис. 116 этот элемент записан в первой строке. Одновременно с этим индексы всех элементов индикаторного массива будут увеличены клиентским терминалом на единицу. В частности, индекс элемента массива, соответствующего бару со временем открытия 6:00, получит индекс 1 (ранее он был равен 0). Индикаторный массив будет увеличен на один элемент. Индекс нового, добавленного элемента индикаторного массива будет равен 0, а значением этого элемента должно быть новое значение, отражающее координату индикаторной линии на нулевом баре. Это значение и рассчитывается в специальной функции start() на каждом тике.

Расчёты в специальной функции start() должны быть построены таким образом, чтобы не выполнялись лишние действия. До того, как пользовательский индикатор прикреплён к окну финансового инструмента, в нём не отображено никаких индикаторных линий (т.к. не определены значения индикаторных массивов). Поэтому при самом первом запуске функции start() пользовательского индикатора необходимо выполнить расчёты значений индикаторного массива для всех баров, на которых должна быть построена индикаторная линия. В рассматриваемом примере это вообще все бары, имеющиеся в окне финансового инструмента (первоначальный расчёт можно производить не для всех имеющихся баров, а лишь для некоторой части последней истории; как это сделать рассматривается в последующих примерах). При всех следующих запусках специальной функции start() нет необходимости вновь рассчитывать значения индикаторного массива для всех баров. Эти значения уже рассчитаны и содержатся в индикаторном массиве. Необходимость рассчитывать текущее значение индикаторной линии возникает лишь на каждом новом тике нулевого бара.

Для реализации указанной технологии в языке MQL4 имеется очень полезная стандартная функция — IndicatorCounted().

Функция IndicatorCounted()

Функция возвращает количество баров, не измененных после последнего вызова индикатора.

Если раньше индикатор никогда не присоединялся к окну финансового инструмента, то при первом исполнении функции start() значение переменной Counted_bars будет равно нулю:

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

Предположим, что в момент запуска в окне финансового инструмента имеется 300 баров. Эта величина является значением предопределённой переменной Bars. Ранее определённое значение Counted_bars равно 0. В результате получится, что индекс i первого не посчитанного бара (самого старого бара, начиная с которого необходимо начать расчёт) равен 299.

Вычисление значений элементов индикаторных массивов выполняется в цикле while():

До тех пор, пока значение переменной i находится в пределах значений индексов первого непосчитанного (299) и текущего (0) баров включительно, выполняется расчёт значений элементов индикаторных массивов для обеих индикаторных линий. Обратите внимание, расчёт недостающих значений элементов индикаторных массивов производится в рамках одного (первого) запуска специальной функции start(). По ходу вычислений клиентский терминал запоминает, для каких элементов был произведен расчёт. Последняя итерация в цикле while() выполняется, когда значение переменной i равно нулю, т.е. рассчитываются значения индикаторных массивов для нулевого бара. По окончании цикла специальная функция start() заканчивает своё исполнение и передаёт управление клиентскому терминалу. Клиентский терминал, в свою очередь, отобразит все (в данном случае две) индикаторные линии в соответствии с рассчитанными значениями элементов индикаторных массивов.

На следующем тике специальная функция start() будет снова запущена клиентским терминалом на исполнение. Дальнейшие события будут развиваться в зависимости от ситуации (продолжим рассмотрение примера для 300 баров).

Вариант 1. Новый тик поступил во время развития текущего нулевого бара (наиболее распространённая ситуация).

Рис. 117. Обрабатываемый тик принадлежит текущему бару.

На Рис. 117 показано два тика, поступивших в клиентский терминал в момент времени t 1 и t 2. Рассматриваемая ситуация будет одинаковой для обоих этих тиков. Для примера проследим, как будет исполняться функция start(), запущенная в момент t 2. Во время выполнения функции start() будет исполнена строка:

Функция IndicatorCounted() вернёт значение 299, т.е. с момента последнего вызова функции start() не изменялись предыдущие 299 баров. В результате этого вычисленное значение индекса i будет равно 0 (300-299-1):

Это значит, что в последующем цикле while() будут рассчитаны значения элементов индикаторных массивов, имеющие нулевой индекс. Иными словами, будет рассчитано новое положение индикаторной линии на нулевом баре. По окончании цикла функция start() закончит работу и передаст управление клиентскому терминалу.

Вариант 2. Новый тик является первым тиком нового нулевого бара (систематически встречающаяся ситуация).

Рис. 118. Обрабатываемый тик является первым тиком нового нулевого бара.

В данном случае большое значение имеет факт образования нового бара. До того, как управление будет передано специальной функции start() пользовательского индикатора, клиентский терминал перерисует все бары, имеющиеся в окне финансового инструмента, и произведёт переиндексацию всех объявленных индикаторных массивов (поставленных в соответствие буферам). Кроме того, клиентский терминал будет помнить, что в окне финансового инструмента имеется уже не 300 баров, а 301 бар.

На Рис. 118 показана ситуация, при которой на последнем тике предыдущего бара (в момент t 2 ) была запущена и благополучно исполнена функция start(). Поэтому, хотя теперь уже первый (с индексом 1) бар, закончившийся в момент t 2, был посчитан индикатором, функция IndicatorCounted() вернет значение, которое было на предыдущем баре, то есть 299:

В следующей строке будет вычислен индекс i, в данном случае для первого тика нового он окажется равным 1 (301-299-1):

Это значит, что вычисление значений индикаторных массивов в цикле while() при появлении нового бара будет выполняться для последнего бара и для вновь образовавшегося нулевого бара. Несколько раньше, во время переиндексации индикаторных массивов, клиентский терминал также увеличил размеры этих массивов. Значения элементов массивов с нулевыми индексами перед вычислениями в цикле были не определены. Во время вычислений в цикле эти элементы получают некоторые значения. По окончании вычислений в функции start() управление возвращается клиентскому терминалу. После этого клиентский терминал отобразит индикаторные линии на нулевом баре на основе только что вычисленных значений элементов индикаторных массивов с нулевыми индексами.

Вариант 3. Новый тик является первым тиком нового нулевого бара, но при этом предпоследний тик не обработан (редкая ситуация).

Рис. 119. Не все тики на предыдущем баре были обработаны.

На Рис. 119 показана ситуация, когда специальная функция start() запущена на первом тике нового бара, в момент t 5. Предыдущий раз функция start() запускалась в момент t 2. Тик, поступивший в клиентский терминал в момент t 3 (красная стрелка) не был обработан индикатором. Это произошло потому, что период исполнения функции start() t 2 -t 4 оказался больше интервала времени между тиками t 2 -t 3. Этот факт будет отмечен клиентским терминалом — при исполнении функции start(), запущенной в момент t 5. При вычислении в строке:

функция IndicatorCounted() вернёт значение 299 (!). Это значение соответствует истине — с момента последнего вызова индикатора не было изменено 299 баров из (теперь уже) 301. Поэтому вычисленный индекс первого (самого левого) бара, с которого необходимо начать расчёт значения элементов индикаторных массивов, будет равен 1 (301-299-1):

Это значит, что при исполнении оператора цикла while() будет выполнено две итерации. На первой из них будут посчитаны значения элементов индикаторных массивов с индексом i =1, а именно, Buf_0[1] и Buf_1[1]. Обратите внимание, к моменту начала вычислений бары и индикаторные массивы уже переиндексированы клиентским терминалом (по причине начала нового бара, в период между запусками на исполнение функции start()). Поэтому вычисления для элементов массивов с индексами 1 будут производиться на основе массивов-таймсерий (максимальных и минимальных значений цены бара) также с индексом 1:

На второй итерации цикла while() вычисляются значения для элементов индикаторных массивов с нулевыми индексами, т.е. для нулевого бара, на основе последних известных значений массивов-таймсерий.

Использование указанной технологии для вычислений в пользовательских индикаторах позволяет, во-первых, гарантировать расчёт значений всех без исключения элементов индикаторных массивов независимо от специфики тиковой истории, и во-вторых, выполнять расчёты только для непосчитанных баров, т.е. экономно расходовать вычислительные ресурсы.

Обратите внимание, бар считается непосчитанным, если расчёт значений элементов индикаторного массива не выполнен хотя бы для одного последнего тика на этом баре.

Запустив на исполнение пользовательский индикатор userindicator.mq4, в окне финансового инструмента можно наблюдать две линии — жирную синюю линию, построенную по максимумам баров, и красную пунктирную линию, построенную по минимумам (Рис. 120).

Рис. 120. Две индикаторные линии в окне финансового инструмента, построенные индикатором userindicator.mq4.

Следует заметить, что можно построить пользовательский индикатор, индикаторные линии которого будут совпадать с линиями аналогичного технического индикатора. Это легко выполнить, если в качестве расчётных формул в пользовательском индикаторе будут использоваться те же формулы, что и в техническом. Чтобы это продемонстрировать несколько усовершенствуем программный код, рассмотренный в предыдущем примере. Пусть следующий пользовательский индикатор строит индикаторные линии по средним значениям максимумов и минимумов нескольких последних баров. Выполнить необходимые для этого вычисления очень просто: достаточно найти средние значения элементов массивов-таймсерий. Например, значение индикаторного массива с индексом 3 (т.е. координату индикаторной линии для третьего бара) на основе пяти последних максимумов, вычисляется так:

Buf_0[3] = ( High[3] + High[4] + High[5] + High[6] + High[7] ) / 5

Аналогичные вычисления можно выполнить и для индикаторной линии, которая строится по средним минимумам.

Пример простого пользовательского индикатора averagevalue.mq4. Индикаторные линии построены по средним максимальным и минимальным значениям N баров.

В представленном примере имеется внешняя переменная Aver_Bars. С помощью этой переменной пользователь может указать количество баров, для которых вычисляется среднее значение. В функции start() это значение используется для вычисления средних значений. В цикле for вычисляется сумма максимальных и минимальных значений для того количества баров, которое соответствует значению переменной Aver_Bars. В последующих двух строках программы рассчитываются значения элементов индикаторных массивов для индикаторных линий, соответствующих максимальным и минимальным значениям.

Используемый здесь метод усреднения применяется также для расчётов в техническом индикаторе Moving Average. Если к окну финансового инструмента прикрепить рассматриваемый пользовательский индикатор averagevalue.mq4 и технический индикатор Moving Average, то можно наблюдать три индикаторных линии. Если для обоих индикаторов установить одинаковый период усреднения, то индикаторная линия технического индикатора совпадёт с одной из линий пользовательского индикатора (для этого также необходимо в настройке технического индикатора указать параметры, представленные на Рис. 121.)

Рис. 121. Совпадение линий технического и пользовательского индикаторов (красная линия).

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

Возможности пользовательских индикаторов

Отображение индикаторных линий в разных окнах

MQL4 предоставляет большой сервис для построения пользовательских индикаторов, что делает их применение очень удобным. В частности, возможно отображение индикаторных линий в отдельном окне. Это бывает полезно в тех случаях, когда абсолютные значения амплитуды индикаторной линии существенно меньше (или больше) значений цены по финансовому инструменту. Например, если мы поинтересуемся разницей между средними значениями максимумов и минимумов баров на некотором историческом промежутке, то (в зависимости от таймфрейма) обнаружится, что эта величина составляет приблизительно 0 — 50 пунктов (например, для М15). Построить индикаторную линию по этим значениям несложно, но в окне финансового инструмента она будет отображена в диапазоне от 0 до 50 пунктов цены по финансовому инструменту, т.е. значительно ниже отображаемой на экране области графика цен, что очень не удобно.

Для отображения индикаторных линий в отдельном окне (которое располагается в нижней части окна финансового инструмента) в директиве #property (в начале программы) необходимо указать параметр indicator_separate_window:

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

Ограничение расчётной истории

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

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

Дальнейшие вычисления в цикле while() будут выполняться для того количества баров последней истории, которое не больше указанного значения History. Обратите внимание, рассматриваемый способ ограничения расчётной истории касается только той части вычислений, которые выполняются в период первого запуска специальной функции start(). В дальнейшем, с появлением новых баров, в правой части индикаторных линий будут добавляться новые участки, в то время, как в левой части изображение будет сохраняться. Таким образом, длина индикаторной линии будет расти в течение всего времени работы пользовательского индикатора. Обычным для параметра History можно считать значение около 5000 баров.

Пример простого пользовательского индикатора separatewindow.mq4. Индикаторные линии отображаются в отдельном окне.

Аналогичный расчёт индикаторной линии выполняется и в техническом индикаторе AverageTrue Range. На Рис. 122 можно наблюдать индикаторную линию, построенную пользовательским индикатором separatewindow.mq4 в одном отдельном окне и индикаторную линию, построенную техническим индикатором ATR в другом окне. В данном случае наблюдается полное совпадение линий благодаря тому, что для обоих индикаторов выбран один и тот же период усреднения, равный 5. Если в каком-нибудь индикаторе изменить этот параметр, то рисунок соответствующей индикаторной линии изменится.

Рис. 122. Отображение линии пользовательского индикатора в отдельном окне.
Совпадение рисунков линий технического (ATR) и пользовательского (separatewindow.mq4) индикаторов.

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

На Рис. 123 показано окно финансового инструмента, в котором индикаторная линия отражается другим стилем — в виде гистограммы. Для получения такого результата в программном коде separatewindow.mq4 была изменена одна строка — указаны иные значения стиля линии:

Весь остальной код программы оставлен без изменения.

Рис. 123. Отображение линии пользовательского индикатора в отдельном окне (гистограмма).
Совпадение рисунков линий технического (ATR) и пользовательского (separatewindow.mq4) индикаторов.

Cмещение индикаторных линий по вертикали и горизонтали

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

Пример простого пользовательского индикатора displacement.mq4. Смещение индикаторных линий по горизонтали и вертикали.

Для того, чтобы пользователь мог настроить смещение линий по графику цен в индикаторе предусмотрены две внешние переменные — Left_Right для смещения всех индикаторных линий по горизонтали, а также Up_Down для смещения двух (пунктирных) линий по вертикали.

Алгоритм, используемый для вычисления значений соответствующих элементов индикаторных массивов, основан на простых положениях:

  • для смещения линии по горизонтали необходимо присвоить вычисленное значение элементу массива, индекс которого на величину Left_Right больше (для сдвига влево и меньше для сдвига вправо), чем индекс бара, для которого выполнены вычисления;
  • для смещения линии по вертикали необходимо прибавить (для смещения вверх или вычесть для смещения вниз) значение Up_Down*Point к каждому значению индикаторного массива, характеризующего исходное положение линии;

В рассматриваемом примере вычисление индексов выполняется в строке:

Здесь i — индекс бара, для которого выполняются вычисления, а k — индекс элемента индикаторного массива. Красная индикаторная линия, отображаемая клиентским терминалом на основе индикаторного массива Line_0[], сдвинута влево на 5 баров (в соответствии с настройками пользователя, см. Рис. 124) относительно того места точек, по которым была бы построена исходная линия. Исходная линия в данном случае представляет среднюю МА с периодом усреднения 5, рассчитанную по формуле (High[i]+Low[i])/2.

В данном примере положение красной индикаторной линии является основой для расчёта значений индикаторных массивов двух других индикаторных линий, т.е. их положения на графике цен. Пунктирные линии рассчитываются так:

Использование здесь индекса k для элементов всех индикаторных массивов позволило выполнить расчёт для элементов массивов Line_1[], Line_2[] на том же баре, для которого имеется соответствующее значение опорного массива Line_0[]. В результате пунктирные линии оказались сдвинутыми относительно красной линии на то значение, которое указано пользователем в окне настроек индикатора, в данном случае, на 30 пунктов (Рис. 124).

Рис. 124. Красная индикаторная линия сдвинута влево на 5 баров.
Пунктирные индикаторные линии отстоят от красной линии на 30 пунктов.

Ограничения пользовательских индикаторов

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

Существует группа функций, которые можно использовать только в пользовательских индикаторах, и запрещено использовать в экспертах и скриптах: IndicatorBuffers(), IndicatorCounted (), IndicatorDigits(), IndicatorShortName(), SetIndexArrow(), SetIndexBuffer(), SetIndexDrawBegin(), SetIndexEmptyValue(), SetIndexLabel(), SetIndexShift(), SetIndexStyle(), SetLevelStyle(), SetLevelValue().

С другой стороны, в индикаторах запрещено использование торговых функций: OrderSend(), OrderClose(), OrderCloseBy(), OrderDelete() и OrderModify(). Это связано с тем, что индикаторы работают в интерфейсном потоке (в отличие от экспертов и скриптов, работающих в собственном потоке).

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

Общая сравнительная характеристика экспертов, скриптов и индикаторов приведена в Таблице 2.

Создание индикатора Форекс

Создание индикатора Форекс становится актуальным, как правило, для опытных трейдеров, которые хотят получить технический инструмент с конкретными настройками и параметрами, что позволит автоматизировать торговлю на валютном рынке. Для создания индикатора, в первую очередь, необходима идея в виде математической формулы и некоторых условий, в соответствии с которыми будут рассчитываться значения индикатора, обеспечивающие конкретный результат.

Для написания индикаторов используется язык MQL4. Но многие трейдеры поступают иным способом – берут уже готовые, к примеру, индикатор WolfeWavesFind, а потом переделывают под собственные требования и условия. Хотя, данный индикатор в корректировке не нуждается, но есть довольно простые программы, которые легко можно сделать более сложными и подходящими под конкретный стиль торговли.

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

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

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

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

Forex Strategy Builder – создание стратегий форекс

Forex Strategy Builder — программа для создания и тестирования стратегий торговли на онлайн бирже Forex. Forex Strategy Builder создает реальные условия для проведения тестовой торговли, оперируя настоящими рыночными данными.

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

Программа не требует установки и содержит примеры стратегий.

С помощью Forex Strategy Builder вы можете выработать торговую стратегию, комбинируя технические индикаторы. Все необходимые параметры и логику вы можете задать без написания формул или программного кода.

Для тестирования стратегии вы можете использовать исторические данные различных валютных пар и временных периодов.

В вашем распоряжении подробные графики, статистика, и журналы, которые отображают все сделки и позиции, а также изменения вашего демо-счета.

Forex Strategy Builder — полезный инструмент для обретения навыков технического анализа.

Особенности Forex Strategy Builder:

  • Большое количество технических индикаторов, методик и параметров
  • Различные методы интерполяции значений каждого бара
  • Возможность сравнения результатов применения различных методик
  • Автоматический генератор форекс стратегий
  • Оптимизатор параметров и технических индикаторов
  • Исчерпывающая информация о всех ордерах и транзакциях
  • Подробная статистика результатов торговли

Демо стратегии
Демо стратегии идут в комплекте с программой и демонстрируют использование индикаторов технического анализа в торговых системах.

  • Demo optimizer — полезна при тестировании оптимизатора (Optimizer). Откройте Optimizer, отметьте все чекбоксы и нажмите «Optimize». Может выявить до 6500 пипсов профита.
  • Demo scanner — сканер и сравнение методик
  • Jar Jar EURUSD 1H — пользовательская стратегия
  • MACD reversal — демонстрация стратегии закрытия и разворота (Close and Reverse)
  • New — стратегия по умолчанию при запуске программы

Программа требует наличия .NET Framework 4.0.

Рекомендуемые:
4-ядерный процессор, оперативная память 8 Гб и выше.

Минимальные:
2-ядерный процессор, оперативная память 2 Гб.

Операционные системы:
Supported OS: Windows XP, Vista, 7, 8, 8.1, 10.
Microsoft .NET 4.0 или новее. MetaTrader 4 или MetaTrader 5.

Создание советника форекс

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

System Creator: создаем автоматическую торговую систему без знания кода

  • Заказать написание кода (или написать самому) по заданному торговому алгоритму. При знании MQL 4 или 5 это идеальный вариант. Но если знаний языка нет, будет непросто: сможет ли исполнитель правильно воплотить идею торговой системы? Как потом оптимизировать робота? И таких вопросов возникает много.
  • Создать роботов с помощью специальных программ, ведь навыков кодирования для этого не требуется. Пусть этот вариант немного ограничивает трейдера в возможностях (все-таки выше того, что заложено в программе, не прыгнешь), но он остается оптимальным вариантом для тех, кто хочет создать своего уникального советника.
  • Советники создаются под МТ4.
  • Программа бесплатная (это плюс) и найти ее в интернете можно за 5 минут.
  • Установка программы занимает 2-3 минуты, но есть некоторые проблемы с совместимостью операционных систем. Я считаю, что причина в Windows. Точно утверждать, что это так, не берусь, но на одном из компьютеров ни одна из версий System Creator так и не запустилась.

System Creator: обзор функционала и возможностей конструктора

  • Загрузка данных FSB Demo Data. Загрузка котировок с сервера разработчиков. Качество котировок здесь не лучшее. Для тренировки может быть и подойдет, но для создания реального работающего советника лучше рассмотреть другие варианты.
  • JForex. Платформа, разработанная компанией-брокером Dukascopy. По заверению разработчиков, это многофункциональная платформа для автоматической торговли с визуализацией стратегий и поддержкой интегрированной среды для разработки Java IDE. Упор здесь сделан на детализированные исторические данные, которые и предлагается подгрузить в System Creator. С сайта брокера котировки скачиваются в отдельную папку, к которой в конструкторе указывается путь.
  • МТ4. Предусматривает загрузку котировок с терминала. Теоретически этот вариант самый лучший, так как предполагает, что трейдер уже ответственно подошел к выбору котировок, загрузив их в свою платформу. Кроме того, все лучше делать с привязкой к одному брокеру: чьи торговые условия, у кого будет запускаться советник, того и котировки.
  • Предусмотрена возможность корректировки открытого кода. То есть, если есть знания языка MQL, созданный советник можно доработать, добавив свои уникальные методы риск-менеджмента, трейлинг-стопы и т.д. (то, чего нельзя скомпоновать в конструкторе).
  • В System Creator предусмотрены журналы. В самой стратегии (на скрине выше в левом подменю в «Обзоре») журнал — это статистика записей сделок по готовой стратегии: транзакция, направление, цена лота, маржа и т.д. В нижней части журнал — это статистика действий трейдера, выходной лог, где отражается информация о том, что делает пользователь, ошибках и т.д. Подобный аналог есть и в МТ4.
  • Бэктестер. Предусматривает возможность автоматического закрытия сделки по маржин-коллу, чтобы наиболее приблизить тестирование к реальным условиям. Второй пункт позволяет работать на укороченных периодах. То есть если стратегия рассчитана на часовые периоды, для тестирования используются и периоды М1-М15. Рекомендую включить обе эти опции.
  • График Баланс/Капитал. Обе опции дополнительные и относятся к информационным. Первая, кроме основной линии прироста, выводит аналогичную статистику отдельно по длинным и коротким сделкам. Чтобы понимать, работает ли вообще стратегия, этого не нужно. Но для оптимизации этот момент важен: для стабильной торговой системы не важно, в какую сторону открыта сделка. То есть прибыль и по коротким, и по длинным позициям должна быть приблизительно одинакова. Во втором поле поставить галочку будет не лишним.
  • Программа. Это также вспомогательные функции, суть которых ясна из названия. Нужно ли их включать — решать вам.
  • Сетевые. Настройки прокси, которые каждый устанавливает индивидуально.
  • Code. Здесь хранятся все дополнения к конструктору. В первоначальной версии здесь только один файл по статистике счета, который при знании программирования можно подкорректировать. Тем, кто только начинает учиться создавать советники, здесь ничего трогать не нужно.
  • Data. Сюда копируются исторические данные, по которым будет строиться стратегия. Если вы уже нажимали кнопку обновления котировок, то они окажутся как раз в этой папке.
  • Indicators. Папка с индикаторами.
  • Libraries. Здесь хранятся уже скомпилированные индикаторы.
  • Logs. Здесь хранятся те же данные, которые отображаются в журнале конструктора, то есть история действий.
  • MT4 Files. Здесь находится подпрограмма (вспомогательная программа), устанавливающая связь между System Creator и МТ4. С ее помощью можно работать с советником на реальном счете через МТ4 непосредственно с System Creator. Запустить ее можно в System Creator в верхнем меню: «Торговля/Запуск установки Bridge».
  • Strategies. Сюда попадают стратегии, которые вы взяли (если захотели) с сайта разработчиков, ваши стратегии, демо-стратегии конструктора.
  • System. Системная папка, где можно добавить язык, которого нет в списке конструктора, или добавить какие-то свои уникальные слова. Здесь можно корректировать модули конструктора, их визуальное отображение и т.д. Правда, если есть знания кода и понимание того, как работает программа.
  • В первом блоке указывается размер лота и максимальный объем позиции.
  • Во втором блоке можно выставить дополнительные условия на вход. Например, открыть еще одну позицию, если основная сделка в плюсе. Или наоборот в минусе (построение сетки, сеточная стратегия). Можно уменьшать текущую позицию, закрывать ее при наступлении определенных событий полностью.
  • В третьем блоке можно указать фиксированные стоп-лосс и тейк-профит, указать множитель Мартингейла (коэффициент умножения размера следующей позиции при заданных условиях, например, закрытия предыдущей сделки в плюс).
  • Общие параметры. Настройки генератора. Тем, кто создает советника впервые, настройки ордеров лучше оставить по умолчанию. Важным здесь являются позиции «Максимум логических слотов открытия/закрытия», то есть условий, при совпадении которых осуществляется вход в рынок.
  • Настройки. Здесь задаются вводные условия в отношении того, какую стратегию в результате хочет видеть трейдер: отношение прибыли к риску, минимальная просадка депозита и т.д. Важный здесь параметр — время на генерацию стратегии. Чем он больше, тем точнее результат. Например, по отзывам пользователей, для дневного таймфрейма подходит количество минут 360-400.
  • Индикаторы. Здесь представлен весь набор индикаторов конструктора. Если снять галочку, то программа не будет использовать данный индикатор в стратегии. Снимать галочки или не снимать — личное предпочтение каждого, но хотя бы поверхностно, что они из себя представляют, придется разобраться.
  • Вне обработки. Здесь указывается количество котировок исторического периода от общего числа котировок, на котором будет проводиться форвардное тестирование. Форвард тест — это вид тестирования, который больше используется для оптимизации. Рынок переменчив и его поведение на данный момент может кардинально отличаться от того, что было 2-3 года назад даже при относительно похожих ситуациях. Потому считается, что оптимизировать советник нужно только по последнему периоду (не менее 3 месяцев). Это и называется форвард тестирование.
  • Обзор. Текстовое описание стратегии с логикой входа и выхода с рынка, детальным описанием работы индикаторов и т.д. Основной язык — английский. Если вы будете работать, например, с русским языком, то описание здесь все равно будет на 50% на английском (то есть на русском будут отдельные фразы, заголовки и статистика, на английском — описательная часть).
  • График баланса. Тот же самый график, который отображается в правом нижнем углу окна, только в увеличенном виде. Кроме основного окна графика, в верхней панели инструментов есть еще две вкладки, но информативности в них я не заметил.
  • Основной график. Здесь можно увидеть данные каждого используемого индикатора, цену открытия и закрытия по каждой позиции, уровни стопа (красная горизонтальная линия) и тейк-профита (зеленая линия). Вверху есть панель инструментов из 10-ти кнопок: наводите на кнопку и тут же видите, что она означает. Описывать каждую нет смысла.
  • Журнал. Представляет собой полный список всех сделок с результатами и статистикой. Можно выгрузить в Excel (в редакторе удобнее сортировать и фильтровать данные).
  • Проводник бара. Более детальная статистика работы советника внутри каждого бара.
  • Неплохая «обучалка». Создавая торговую систему, трейдер глубже разбирается в ее структуре, учится оптимизировать параметры, видит визуальное отображение своих действий. В работе с советниками это все равно пригодится, а с System Creator это еще и в разы удобнее.
  • Помощник. Несмотря на критику сгенерированных стратегий, кое-что с его помощью создать получается. Правда, времени это занимает немало.
  • Дополнительный заработок. Полностью разобравшись в программе, можно пустить производство советников на конвейер, продавая их заинтересованным лицам.
  • Многофункциональность. System Creator — это конструктор, оптимизатор и тестировщик в одном лице. Аналогов, которые бы совмещали все эти функции в одной программе и были настолько удобны, я пока не видел.
  • Большой процент брака. Конструктор работает по заложенному алгоритму, потому логично, что при заданных критериях он выдает советники, которые даже на демо счете оказываются недееспособны. Не все, но многие. Стоит ли тратить время на оптимизацию и тестирование — вопрос риторический.
  • Неудобный поиск сгенерированных стратегий. Я не нашел возможности присваивать созданной системе имя и сортировать их, например, по алфавиту или дате создания.
  • Интересная программа, которая создает иллюзию простоты генерации прибыли.System Creator — это всего лишь программа, которая работает по заданному алгоритму.
  • Торговлю с проверенным брокером рекомендую попробовать тут. Система позволяет торговать самостоятельно или копировать сделки успешных трейдеров со всего мира.
  • Воспользуйтесь моим промокодом BLOG для получения бонуса 50% на депозит от LiteForex. Промокод нужно просто ввести в соответствующее поле при пополнении счета в платформе LiteForex и бонус зачислится одновременно с депозитом.
  • Чат трейдеров в телеграм: https://t.me/marketanalysischat. Делимся сигналами и опытом.
  • Канал в телеграм с отличной аналитикой, форекс обзорами, обучающими статьями и прочими полезностями для трейдеров: https://t.me/forexandcryptoanalysis

Содержание данной статьи является исключительно частным мнением автора и может не совпадать с официальной позицией LiteForex. Материалы, публикуемые на данной странице, предоставлены исключительно в информационных целях и не могут рассматриваться как инвестиционный совет или консультация для целей Директивы 2004/39 /EC.

Нет возможности читать нас каждый день? Получайте свежие статьи на вашу электронную почту.

Написал

Я попробую применить полученные знания на демо-счете, доступном без регистрации

Покажите мне графики валют и как цена на рынке двигается в реальном времени

Я хочу начать копировать сделки профессиональных трейдеров на мой счет

Я готов начать зарабатывать на финансовых рынках и хочу открыть торговый счет

    LiteForex в ВКонтакте

Предупреждение о рисках: Торговля на финансовых рынках сопряжена с риском. Контракты на разницу («CFDs») являются сложными финансовыми инструментами, используемыми для маржинальной торговли. Торговля CFD имеет высокий уровень риска, так как кредитное плечо может работать как в Вашу пользу, так и против Вас. Вследствие этого торговля CFD подходит не всем инвесторам из-за высокого риска потери инвестированного капитала. Вы не должны рисковать большими средствами, чем Вы готовы потерять. Перед началом торговли Вы должны убедиться, что Вы понимаете все риски и учитываете их в совокупности с уровнем Вашего опыта при постановке Ваших инвестиционных целей. Перейти к полному документу «Предупреждение о рисках».

Данный веб-сайт является собственностью группы компаний LiteForex.

LiteFinance Global LLC зарегистрирована в государстве Сент-Винсент и Гренадины как общество с ограниченной ответственностью под номером 931 LLC 2022. Юридический адрес: First Floor, First St Vincent Bank Ltd Building, James Street, Kingstown, St. Vincent and the Grenadines. Email:

LiteFinance Global LLC не предоставляет сервис резидентам стран Европейской Экономической Зоны (ЕЭЗ), США, Израиля и Японии.

Visual Strategy Builder – создаем советников для MT4 без программирования

Все мы знаем, что основное достоинство терминала Metatrader 4 – это возможность создания роботов и торговля с их помощью.

Далеко не все трейдеры владеют программированием на mql4/5. Разработчики программы Forex Tester смогли решить эту проблему. Теперь можно создать робота или реализовать торговую идею в виде индикатора на ресурсе «Визуальный конструктор стратегий» (Visual Strategy Builder). Без навыков программирования.

Как это сделать, плюсы и минусы бесплатного (на текущий момент) конструктора роботов – в нашем материале.

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

Сконструированные с помощью готовых модулей команд скрипты также совместимы с Metatrader 4, их создание на период бета-тестирования полностью бесплатно. Так что спешим читать статью и воплощаем в жизнь все идеи индикаторов и советников, которые были отложены до лучших времен.

Сервис Visual Strategy Builder расположен по адресу: https://tools.forextester.com/

Зачем нужен Visual Strategy Builder?

Visual Strategy Builder (VSB) представляет собой программную оболочку с набором инструментов теханализа, которые хорошо знакомы пользователям Metatrader 4. В отличие от этой торговой платформы VSB позволяет задавать в индикаторах правила открытия позиции и установки ордеров тейк-профит и стоп-лосс.

Любой новичок может выбрать сигнал на открытие позиции из набора готовых опций (кроссоверы, пересечения уровней, больше/меньше и т. д.). Эти настройки открывают недоступную для Metatrader 4 возможность протестировать работу одного или нескольких индикаторов.

Например, можно получить реальный торговый результат по стратегии пересечений скользящих средних линий. Такой советник создается в VSB за 5 минут, потом его можно экспортировать в Metatrader 4 или Forex Tester.

Разобравшись с созданием одного индикатора в Visual Strategy Builder, трейдер может в несколько кликов создать рабочую автоматизированную стратегию и тоже проверить ее в тестере. Если советник показывает положительные результаты, то по его сигналам можно торговать на реальном счете через Metatrader 4.

Кстати, тестировать стратегию однозначно лучше через Forex Tester – там точнее котировки и можно быстро эмулировать сессию за любой торговый день. Например, выбрав какой-нибудь «черный вторник», чтобы воочию понять, как аномальная волатильность повлияет на настройки мани менеджмента.

Профессиональные трейдеры могут экспортировать код советников прямо в VSB, соединять его с созданными там программами или редактировать в Metaeditor и отправлять обратно в Metatrader 4.

Visual Strategy Builder будет полезен тем, кто ищет новые идеи – программа поддерживает библиотеку стратегий пользователей. Любой желающий без навыков программирования сразу поймет «внутренности алгоритма» по составу индикаторов и описанным правилам торговых сигналов. Тут же можно самостоятельно убедиться в результативности торговой системы.

Как работать на платформе Visual Strategy Builder

Сервис Visual Strategy Builder расположен по адресу: https://tools.forextester.com/

Использование VSB требует регистрации – это быстрая и несложная процедура. Введите адрес электронной почты и придумайте пароль для входа. Он должен быть не менее 8 символов, содержать буквы разного регистра, почтовый ящик лучше указать gmail.

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

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

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

После шага «Создать стратегию» обратной дороги нет. Впрочем, совсем не обязательно бросаться мастерить сложные торговые системы. Программа, например, способна сильно упростить жизнь внутридневным трейдерам, автоматизировав некоторые индикаторы. Они расположены списком на панели слева под опцией «Элементы». Выше этого списка указаны различные целевые ориентиры для применения в стратегиях:

    (Ценность);
  • Конкретная цена;
  • Диапазон (цены открытия, закрытия, максимумы и минимумы свечей);
  • Открытие по дням недели, месяца (опция время);
  • По конкретному объему или его абстрактному критерию; .

Перечисленные опции можно объединять друг с другом, накладывая различные условия выполнения сделки, например, пробой уровня только до американской сессии и т. д. Определитесь с главным инструментом своей стратегии и перетащите его в окно «Состояние 1».

Как только он там отобразится, можно приступать к редактированию параметров. Наведите курсор на поле присоединенного Bollinger Bands (BB), чтобы увидеть эту опцию.

После ее нажатия появится таблица со стандартными настройками линий BB. Стоит отметить одну особенность: для каждой из них сигналы на открытие позиций прописываются отдельно.

Набор правил входа в позицию доступен после нажатия рядом окна «Операции», вместе с которым активируется аналогичная опция слева со списком шаблонов. Учитывая, что работа идет с верхней линией, а вход в рынок планируется по контртренду, выбираем кроссовер сверху вниз.

Теперь конкретизируем тип позиции и условия мани менеджмента с помощью пункта меню на левой панели «Действия». Перетаскиваем в поле ордер на продажу и редактируем его параметры.

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

Надежные Форекс брокеры:

Остальные опции понятны, следует только внимательно отнестись к пунктам: 25 – это для четырехзначной системы котировок. При пяти знаках умножайте значения пунктов на 10.

Для нижней линии Боллинджера потребуется создать второе правило, опцию можно выбрать слева вверху, повторив все вышеописанные операции со следующими изменениями:

  • В настройках индикатора выбираем нижнюю линию;
  • Кроссовер – снизу вверх;
  • Тип ордера, открываемого по рынку – «Покупка».

Полученную стратегию можно сохранить и экспортировать в ForexTester или Metatrader 4. В последнем случае используйте латинские буквы в названии файла. Стратегия сохраняется в файл ex4 в папку, выбранную трейдером.

Запустить написанный советник можно сразу после его установки в Metatrader 4. Это делается обычным способом, описанным на нашем сайте.

Заключение

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

Любителей сеток особо порадует наличие опции «Мартингейл», а также команд на закрытие всех ордеров по условию. Среди минусов VSB следует отметить баги бета-версии и будущую запланированную плату за опцию. Так что спешим писать и экспортировать советников, пока платформа имеет открытую лицензию.

Лучшие Форекс площадки:

На ней можно попробовать создать прототип своей торговой идеи и, если она окажется прибыльной, обратиться к программистам для полноценной ее реализации.

Брокеры Форекса, дающие бонусы:
ПРОГРАММА ДЛЯ СОЗДАНИЯ СОЗДАНИЕ ИНДИКАТОРОВ ФОРЕКС