![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
leonid553 |
![]()
Сообщение
#1
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Yury V. Reshetov
Нейронная сеть Что такое нейронная сеть или Perceptron? Это алгоритм использующий уравнение линейного неравенства (линейного фильтра), с помощью которого можно причислить исследуемый объект к тому или иному классу или же наоборот исключить его из этого самого класса объектов. Само неравенство выглядит так: w1 * a1 + w2 * a2 + ... wn * an > d где: 1. wi - весовой коэффициент с индексом i; 2. ai - численное значение признака с индексом i исследуемого объекта; 3. d - пороговое значение, чаще всего равное 0. Дело в том, что геометрически плоскость описывается линейным уравнением. Например, в трехмерном пространстве относительно координат X, Y и Z уравнение плоскости имеет вид: A * X + B * Y + C * Z + D = 0 Координаты всех точек, расположенных по одну сторону от плоскости, в этом самом пространстве, удовлетворяют неравенству: A * X + B * Y + C * Z + D > 0 А координаты всех точек лежащих по другую сторону от плоскости, удовлетворяют неравенству: A * X + B * Y + C * Z + D < 0 Таким образом, если нам известно уравнение некой плоскости и координаты любых точек, то мы можем разделить множество всех точек пространства на два множества точек, разделяемых этой самой плоскостью. ПОСТАНОВКА ЗАДАЧИ Если мы разделим объекты на два класса: открываемые длинные позиции и короткие позиции, а в качестве признаков возьмем значения индикаторов или осцилляторов технического анализа, то остается лишь выяснить уравнение плоскости и попытаться с ее помощью произвести идентификацию. Постановка задачи ясна. Множества точек пересекаются в пространстве и провести четкую разделительную черту между ними невозможно. Единственным и приемлемым решением здесь является линия, которая будет отделять оба множества точек таким образом, чтобы с ее помощью большинство красных объектов оказалось по одну сторону, а синих по другую. На сей раз, мы имеем дело с задачей оптимизации, то есть поиском уравнения разделяющей плоскости или линии, способной максимально разделить два класса объектов друг от друга, но с вероятностью того, что часть точек, принадлежащих одному классу, будет ошибочно идентифицировано, как принадлежащих к классу другому. Попробуем теперь определиться с постановкой задачи, которую мы собираемся решить. Элементарно, что нужно знать трейдеру для прибыльной торговли - это направление движения котировок. То есть если котировки пойдут вверх, то следует открыть длинную позицию. Если вниз, то необходимо открывать позицию короткую. Следовательно, два класса объектов у нас уже есть, а именно, направление движения котировок. Для того, чтобы принять решение, следуя техническому анализу, трейдеры прибегают к исследованию так называемых технических индикаторов или осцилляторов. Мы также будем исследовать осциллятор. Поскольку технические осцилляторы - это гистограммы, значения которых отклоняются от горизонтальной линии, то соответственно и нейронная сеть нам понадобится с линейным фильтром. В качестве признаков объекта, будем брать паттерны, то есть значения осциллятора в четырех точках, взятые с шагом в семь периодов вглубь истории, начиная от текущего момента. Эскизы прикрепленных изображений |
![]() ![]() |
NoName |
![]()
Сообщение
#2
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Цитата Поскольку индикатор ты уже "состряпал", то я вижу примерно такой сценарий: Решетов писал: "Я тоже попробовал 5-ти слойку. Первые 4 имеют по 5 входов, на каждый из которого поступают нормированные значения с отдельно взятого индикатора (на каждый слой свой индикатор). 5-й слой 4-х входовый и также обобщающий. Результаты весьма неплохие получаются. Самое главное, что вне репрезентативной выборки ведет себя очень стабильно по сравнению с однослойкой." Поэтому наш ST+ENV будет давать только сигналы на вход и сопровождать позицию, как "базовый" узел. А достоверность его сигналов будет проверяться (для начала) однослойной нейро структурой с др. индикатором. Причем работу однослойки желательно постоить на меньшем тф, чем тот на кот. работает ST+ENV!. Чтобы "не задерживаться со входом. А на счет того - как программно подать в сеть сигналы самого ST+ENV, - увы... Не могу пока сообразить. sad.gif То что я состряпал - это не для сети делалось. На счёт подачи сигналов (не только ST+Env) думаю уже не один день. Пока вижу это так: представь что в момент возникновения сигнала, когда мы совершаем сделку, на график наносится стрелочка в этом месте. Получится два вида стрелочек, вверх (при покупке) и вниз (при продаже). Мы будем иметь график, на котором будут проставлены стрелочки по всей истории (заданной). Далее нужно выгрузить в файл весь ценовой ряд, которому необходимо поставить в соответствие наши сигналы. Там где стрелка вверх мы будем ставить 1, там где вниз поставим (-1), а там где стрелочек нет - 0. И вот в таком виде эти данные нужно скормить Нейрошелу. Меня останавливает вот что. Тактика ST+ENV подразумевает работу внутри бара. Если мы будем подавать сигналы по закрытию бара, то будет упускаться значительная часть движения (или же сигнала не окажется вовсе, т.к. не редко бывает что вход и выход получаются в пределах одного бара при сильных движениях). Ну а подавать в нейросеть минутки - мне кажется что это глупость. Возможно, что хорошим выходом из этой ситуации будет использования меньшего ТФ, то есть вместо минуток подавать М5 или М15, но смотреть при этом на Н4. Скорее всего к оптимальному результату можно прийти только методом проб и ошибок. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 15.3.2025, 2:06 |