• Обзор
  • Отзывы (1)
  • Обсуждение (5)
  • Что нового

SOMFX1Predictor

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

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

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

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

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

Подробности о шагах 1 и 2 - обучении нейросети и визуальном анализе данных - рассматриваются на страницах соответствующих инструментов - SOMFX1Builder and SOMFX1. В этом документе описывается использование SOMFX1Predictor.

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


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

Этот индикатор - наиболее простая часть данного нейросетевого инструментария. Он берет имя файла с обученной нейронной сетью и показывает прогноз на основном ценовом графике. Прогноз изображается красной линией, которая может быть частично толстой, а частично тонкой. Толстые фрагменты означают места, где сеть более уверена в прогнозе. Предсказание начинается от вертикальной пунктирной линии желтого цвета под названием "FromPastToFuture".  Вы можете двигать линию на произвольную позицию, и индикатор будет считывать образец цены возле этого места, подавать его на вход SOM, и отображать предсказание следующего движения цены. Текущий образец цены - это фрагмент приращений цен, взятый с PatternSize баров слева от  линии "FromPastToFuture". Когда вы открываете индикатор в первый раз, линия помещается на бар LearnStop. Если вы передвинете линию на 0-ой бар, индикатор будет автоматически смещать её на каждый новый 0-ой бар по мере их появления, то есть линия "приклеивается" к последнему бару.

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

Индикатор может опционально выводить саму нейронную сеть (карту), если ShowMap равно true. В этом случае на графике появляются две квадратных карты.

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

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


Параметры

  • 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 - размер ячейки при визуализации карты на графике (если ShowMap равно true); по-умолчанию - 20, что подходит для карт размером до 10; для больших карт нужно выбрать размер ячеек поменьше, иначе два представления карты будут перекрываться;
  • PrintData - включение/отключение вывода отладочных сообщений в журнал; по-умолчанию - false;
  • ShowMap - опция показа карты на графике аналогично тому, как это делается в индикаторе SOMFX1; по-умолчанию - false;

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

jrc74
378
2015.11.17 15:56   

Hi,

I bought your product now. I had trained the network with SOMFX1Builder, I put the name file in the parameter box of SOMFX1Predictor but after this I see as red line forecast only horizontal line and not up or down red line. I show you by picture

Версия 1.2 - 2015.06.29
При включенном режиме UseAverage=true рассчитывается среднеквадратическое отклонение образцов на каждом баре и выводится в виде серых границ сверху и снизу от предсказания.

Сделано возможным тестирование инидкатора в тестере с некоторыми ограничениями: режим UseAverage недоступен, вывод карты ShowMap недоступен. Полноценное тестирование невозможно в связи с ограничениями тестера на диапазон предоставляемых данных.