SOM: способы приготовления - страница 4

 
alexeymosc:

Спасибище!

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

Вот так работает SOM:

В кратце: задается размер сети, например, всегда будем делать ее квадратной формы, 5 на 5. Каждый элемент - это по сути вектор значений, первоначальные значения лучше выбирать случайно из массива примеров (векторов размера 40) которые предварительно сформированы по вашему скрипту и сохранены. То есть берем 25 случайных примеров из массива (который имеет размер скажем 5000 примеров). И далее алгоритм такой: опять случайно выбираем пример из нашего обучающего массива и сравниваем с каждым вектором-элементом сети (используя евклидову меру расстояния? точно не знаю даже, может что то еще) У самого близкого вектора корректируются значения по нижеприведенной формуле. При этом эта коррекция распространяется на соседние векторы тоже, по гауссовой функции.

Короче, сложновато.. я строю НС в стат. пакете.

https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D0%BC%D0%BE%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D1%83%D1%8E%D1%89%D0%B0%D1%8F%D1%81%D1%8F_%D0%BA%D0%B0%D1%80%D1%82%D0%B0_%D0%9A%D0%BE%D1%85%D0%BE%D0%BD%D0%B5%D0%BD%D0%B0

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

alexeymosc , почему Вы привязываетесь к цене Open? имхо, Open и Close величины случайные, и то, что Ваша НС показала относительно неплохие результаты на Д1 и худшие результаты на младших ТФ тому подтверждение, для торговли достаточно иметь прогноз High и Low бара. Вы можете сделать НС только с использованием High и Low ?

И если не сложно, объясните - возможно ли спроектировать НС, которая имела бы на входе, скажем, матрицу 3х5 - 3 ТФ и 5 баров, к примеру?

alexeymosc:

Короче, сложновато.. я строю НС в стат. пакете.

какой пакет? у меня под рукой NeuroSolutions 6 и STATISTICA 6, где-то есть еще дистрибудивы, вроде маткад - нужно поискать
 

--- alexeymosc , почему Вы привязываетесь к цене Open? имхо, Open и Close величины случайные, и то, что Ваша НС показала относительно неплохие результаты на Д1 и худшие результаты на младших ТФ тому подтверждение, для торговли достаточно иметь прогноз High и Low бара. Вы можете сделать НС только с использованием High и Low ?

Не спорю, сам придерживаюсь мнения, что обрубание ценового сигнала ценами открытия (закрытия) - внесение шума и случайности, но просто удобно по ценам открытия модель строить - робастная система и быстро делает обсчеты в Метатрейдере. Можно и на ценах High сделать анализ. Я даже щас сделаю для интереса, выложу. Буду работать на часовых барах, историю возьму из терминала МТ5, сколько там доступно для скачивания.

--- И если не сложно, объясните - возможно ли спроектировать НС, которая имела бы на входе, скажем, матрицу 3х5 - 3 ТФ и 5 баров, к примеру?

Можно, конечно. Простор фантазии не ограничен, только вход это всегда вектор а не двумерный массив. Точнее, всякий двумерный, трехмерный и так далее массивы превращаются в одномерный вектор, например: первые 5 значений - цены открытия на дневных барах, вторые 5 значений - цены открытия на 4-х часовых барах, и еще 5 значений - цены открытия на часовках. Ну и так далее... Для НС неважно, в какой последовательности ей давать данные. (Исключение - распознавание образов, где это имеет значение и смещения данных ухудшают результат).

--- какой пакет? у меня под рукой NeuroSolutions 6 и STATISTICA 6, где-то есть еще дистрибудивы, вроде маткад - нужно поискать

Статистика - рулит. Я его использую сам, только на домашнем компе стоит версия 8. Там есть возможность выгрузки файла НС в виде C кода, который комилируется в dll и в советнике прописывается подача данных в dll и принятие сигнала.

 
alexeymosc:
Точнее, всякий двумерный, трехмерный и так далее массивы превращаются в одномерный вектор, например: первые 5 значений - цены открытия на дневных барах, вторые 5 значений - цены открытия на 4-х часовых барах, и еще 5 значений - цены открытия на часовках. Ну и так далее... Для НС неважно, в какой последовательности ей давать данные. (Исключение - распознавание образов, где это имеет значение и смещения данных ухудшают результат).

Вы проверяли насколько важен порядок входных данных? хотелось бы быть уверенным на все 100, т.к. я считаю, что строить НС на одном ТФ - значит нужно увеличивать количество входных данных, что в свою очередь приведет к аксиоме ТА:"история повторяется", но увы - не повторяется история, самообман еще тот ;), а вот если создавать стратегию для работы внутри дня, возможно использование нескольких ТФ для обучения НС и даст некую прогнозную модель с вероятностью более 50 %

ЗЫ: надеюсь, что у Вас получится создать и показать НС с использованием High и Low

 

Посмотрим, уже начал обучение SOM на часовых барах по ценам High за 9 лет, с 2001 года по апрель 2010 год. с мая 2010 по май 2011 будет период OOS. вектор входных данных увеличил до 72 (т.е. 3 дня). размер SOM сделал 10 на 10 нейронов. долго будет обучаться, зараза.

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

По поводу мульти-ТФ стратегии, думаю, потенциал у этой идеи есть.

может установите Statistica 8 чтобы быть на одной волне?

 

поищу статистику 8, 6 версия уже стоит, если несложно, то подробнее пишите необходимые действия для Statistica 8 при создании НС, совершенно нет времени во всех программах самостоятельно учиться работать

как нормализуете входные данные High и Low?

 

Действия такие же как везде, как и в Статистике 6.

Нормализую так же, по приведенной формуле.

 

Проверил EURUSD H1 как и обещал. Модель строил по High. Не удачно - слив на периоде OOS.

Проверил на часовых барах на акциях Gazprom - OOS в плюсе, довольно приличный график.

Еще проверил на EURUSD Day1 идею с закрытием позиций также по сигналу (при переходе из одного состояния в другое, то есть, при смене нейрона). Сделал эксперта, подобрал нейроны открытия и закрытия с помощью тестера, много прибыльных прогонов на периоде оптимизации. На OOS - также плюс.

Причина обращения: