Индикатор SOMFX1

Купить индикатор SOMFX1 в магазине систем алготрейдинга

Если вы торгуете с использованием свечных фигур и хотите усовершенствовать свои методы современными технологиями, этот индикатор для вас. Фактически он является частью набора инструментов, который основывается на нейросетевом движке самоорганизующихся карт (Self-Organizing Map, SOM) для распознавания и предсказания свечных фигур, а также для исследования входных данных и результатов работы сети. Набор содержит:

  • SOMFX1Builder – скрипт для обучения нейронных сетей; он создает файл с обобщенными данными о наиболее характерных ценовых фигурах, который может использоваться для предсказания баров в фигурах либо в отдельном окне (с помощью индикатора SOMFX1), либо непосредственно на основном графике (SOMFX1Predictor);
  • SOMFX1 – данный индикатор для предсказания и визуального анализа ценовых фигур, входных и выходных данных обученной нейронной сети (в отдельном окне);
  • SOMFX1Predictor – другой индикатор для предсказания ценовых фигур непосредственно в основном окне;
Инструменты реализованы отдельно друг от друга в связи с тем, что MetaTrader 4 имеет некоторые ограничения, например, в данный момент невозможно запустить длительные вычисления в индикаторе, поскольку индикаторы исполняются в главном потоке.

Если кратко, то весь процесс анализа цен, обучения сети, распознавания фигур и их предсказания заключается в следующих шагах:

  1. Создание нейронной сети с помощью SOMFX1Builder;
  2. Анализ качества полученной сети с помощью SOMFX1; если неудовлетворительно, возврат на шаг 1 с новыми настройками; вы можете пропустить шаг 2 по желанию;
  3. Использование окончательной версии сети для предсказания фигур при помощи SOMFX1Predictor.

Все это рассматривается подробнее ниже.

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

Введение

Что такое свечные фигуры? Это отличительные последовательности баров, которые были “вычислены” много лет назад сообществом трейдеров и получили забавные названия. Нет научных доказательств того, что фигуры работают так, как это ожидается, если не во всех случаях, то хотя бы в статистически обоснованном большинстве случаев. Также не гарантируется, что все поименованные фигуры – это действительно все закономерности современного рынка, особенно принимая во внимание, что большинство из них было создано в эру старых добрых размеренных рынков. Например, если сдвинуть график на время, равное половине длительности бара (например H4 сдвинуть на 2 часа), существующие фигуры исчезнут и появятся совершенно другие фигуры. Не означает ли это, что привычные фигуры должны иметь различные представления? Но тогда “молот” перестанет походить на молот, а “звезда” – на звезду? Кажется, это сломает все искусственную красоту свечной теории, но это честно.

Фигуры (или более научно – образы) – это просто легкое для восприятия описание изменений цены, обычно разницы между ценами закрытия баров. Это, вообще говоря, не свечные, а ценовые фигуры.

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

Данный индикатор предоставляет технологию нейронных сетей, конкретно – самоорганизующихся карт (Self-Orgranizing Map, SOM). Как и любая другая нейросеть, SOM состоит из нейронов – элементарных вычислительных единиц. В SOM каждый нейрон может содержать информацию об одной ценовой фигуре. Причина, по которой сеть называется SOM, в том, что сеть автоматически сравнивает различные фигуры и размещает их на двумерной карте таким образом, что похожие образы находятся рядом, а отличные – далеко. При этом любой ход изменения цены может быть отображен на карту и попадет в некоторую ячейку (нейрон), которая больше всего походит на цену (ячейка называется best matching unit, BMU, см. далее). Имея начальную часть какой-либо фигуры, можно найти ей окончание по содержанию BMU.

Принципы работы

Интерфейс индикатора состоит из двух частей. В главном окне выводится сама карта и элементы управления. В дополнительном окне внизу показываются образы входных данных (нормализованный ряд цен) и предсказания. Образы и предсказания нормализованы к диапазону [-1, +1] и строятся как изменения цены между соседними барами. Образы отображаются зеленой линий. Предсказание – светло-голубой толстой линией (она имеет длину PredictionBars баров и может продолжаться в будущем). Справа от линии образов (iчуть дальше в будущем) можно увидеть пучок линий длиной PatternSize баров. Они представляют собой структуру текущего выигравшего нейрона, т.е. BMU. Более подробно об этом – чуть ниже.

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

В результате обучения вы получаете файл с расширением candlemap (SOMFX1Builder создает такие файлы в папке Files рабочего каталога MQL4). Вам необходимо указать имя этого файла в настройках индикатора, и индикатор выведет 2 квадратных карты на графике.

Левый квадрат показывает текущую активность нейронов: нейроны с более высоким возбуждением выводятся красным, а с меньшим – синим. Другими словами, чем краснее ячейка на карте, тем лучше нейрон соответствует текущей ценовой фигуре. Текущая ценовая фигура – это фрагмент приращений цен, взятый с PatternSize баров слева от вертикальной пунктирной линии желтого цвета с названием “FromPastToFuture”. Вы можете двигать линию на произвольную позицию, и индикатор будет считывать образец возле этого места, подавать его на вход SOM, и отображать изменения в активности карты и предсказание следующего движения цены.

Заметьте, что предсказание начинается с текущего бара, то есть текущий бар тоже предсказывается. Это сделано, потому что текущий бар обычно не закончен и требует предсказания сам по себе. Более того, если принять еще назаконченный бар во внимание, предсказание станет противоречивым (нестабильным во время формирования бара). Из-за того, что текущий бар тоже предсказывается, светло-голубая толстая линия (график) начинается на 1 бар левее вертикальной линии “FromPastToFuture” – она показывает, как цена должна меняться на текущем баре.

Второй – правый – квадрат отображает карту “плотности заселения” ячеек, то есть цвет сигнализирует о количестве образцов в исходных данных, которые попали в соответствующую ячейку и сформировали её ценовую фигуру. Красный цвет означает высокую плотность, а синий – низкую. Серые ячейки не имеют соответствующих им образцов во входных данных.

В ответ на перемещение линии “FromPastToFuture” от бара к бару, на карте выбирается ячейка, наиболее подходящая образу цен слева от линии, и помечается круглой точкой. Эта ячейка и называется “ячейкой лучшего соответствия” – best matching unit (BMU). Её веса выводятся в виде красной линии в правой части дополнительного окна. Это и есть ценовая фигура, автоматически выявленная и обобщенная нейросетью. Если ячейка имеет отображающиеся на неё образы цены (входные вектора), среднее по ним выводится оранжевой линией, а дисперсия – двумя серыми линиями над и под.

Эта информация и позволяет делать предсказания: когда новые изменения цены совпадают с началом одной из фигур в сети (скажем, с 4-мя барами из 5-баровой фигуры), окончание фигуры дает наиболее вероятное движение цены (5-й бар в данном примере).

Когда линия “FromPastToFuture” перемещена, индикатор не только показывает предсказание и BMU. Кроме того он подсвечивает ценовые образы, привязанные к этой BMU, синим цветом. Это выглядит так, что синие фрагменты перекрывают частично зеленую кривую с приращениями цен. Образы могут перекрываться. Например, если фигура имеет длину 4 бара, и один образец начинается на баре номер 10, а другой – на баре номер 12, они будут иметь 2 общих бара. В таком случае будет подсвечено 6 последовательных баров, такие образы визуально неразделимы (в этом окне, сеть же конечно их “знает” по отдельности).

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

Параметры

  • LearnStart – номер бара в истории, где начинаются обучающие данные, или точные дата и время этого бара (в формате “YYYY.MM.DD HH:MM”); данный параметр – строка, что позволяет вводить и числа, и даты; данный параметр используется здесь не для обучения, а для воссоздания обучающего набора данных (соответствующих нейросети), что важно если параметр UseAverage равен true (см. далее), а также для визуализации “плотности заселения”; по-умолчанию – 5001; если ввести автоматически сгенерированное имя в параметр NetFileName (см. далее), индикатор разделяет имя на составляющие и использует их вместо других параметров, включая и LearnStart; другими словами, данный параметр не влияет на работу, если в параметр  NetFileName введено автоматически сгенерированное имя файла нейросети;
  • LearnStop – номер бара в истории, где заканчиваются обучающие данные, или точные дата и время этого бара (в формате “YYYY.MM.DD HH:MM”); данный параметр – строка; по-умолчанию – 1; данный параметр используется здесь не для обучения, а для воссоздания обучающего набора данных (соответствующих нейросети), что важно если параметр UseAverage равен true (см. далее), а также для визуализации “плотности заселения”; данный параметр не влияет на работу, если в параметр  NetFileName введено автоматически сгенерированное имя файла нейросети;
  • PatternSize – количество баров в одной фигуре; по-умолчанию – 5; данный параметр не влияет на работу, если в параметр  NetFileName введено автоматически сгенерированное имя файла нейросети;
  • GridSize –  размер карты; это количество ячеек/нейронов по вертикали и горизонтали; допустимые значения: 3 – 50; по-умолчанию – 7; данный параметр не влияет на работу, если в параметр  NetFileName введено автоматически сгенерированное имя файла нейросети;
  • PredictionBars – количество баров предсказания; по-умолчанию – 10; обратите внимание, что каждый следующий бар предсказывается с меньшей точностью, чем предыдущий, поскольку ошибки предсказания накапливаются;
  • UseAverage – это переключатель специального режима; когда он отключен (false, по-умолчанию) предсказания делаются на основе весов выигравшего нейрона, то есть они определяются исключительно картой; когда режим включен (true), предсказания делаются на основе средней цены всех образцов, отобразившихся на выигравший нейрон; это означает, что в предсказании участвует не только карта, но и данные обучающей выборки, именно поэтому важно указание точных дат и времени для отрезка обучения; с этим параметром можно “поиграть” для получения лучших результатов: использование весов нейронов – это классических подход, но использование средних цен привносит дополнительную привязку к исходным данным – в частности, в этом случае можно принимать во внимание дисперсию и тем самым оценивать точность предсказания;
  • PriceType – тип цены; по-умолчанию – close; данный параметр не влияет на работу, если в параметр  NetFileName введено автоматически сгенерированное имя файла нейросети;
  • AddInvertedPrice –  включение/отключение режима, когда в набор образцов добавляются инвертированные ценовые движения; по-умолчанию – true; это означает, что количество образцов увеличится вдвое;
  • NetFileName – имя файла обученной нейронной сети, сгенерированного скриптом SOMFX1Builder; если имя формировалось автоматически, оно включает несколько необходимых компонентов, чтобы восстановить вышеперечисленные параметры; таким образом, пользователь может заполнить только один этот параметр; структура имени файла следующая: SOM-V-D-SYMBOL-TF-YYYYMMDDHHMM-YYYYMMDDHHMM-P.candlemap, где V – PatternSize, D – GridSize, SYMBOL – текущий символ, TF – текущий таймфрейм, YYYYMMDDHHMM – LearnStart и LearnStop соответственно; P – PriceType;
  • CellSize – размер ячейки при визуализации карты на графике; по-умолчанию – 20, что подходит для карт размером до 10; для больших карт нужно выбрать размер ячеек поменьше, иначе два представления карты будут перекрываться;
  • PrintData – включение/отключение вывода отладочных сообщений в журнал; по-умолчанию – false;

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

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

Войти с помощью: 

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

Time limit is exhausted. Please reload the CAPTCHA.