Perceptron, Нейронная сеть |
Здравствуйте, гость ( Вход | Регистрация )
Perceptron, Нейронная сеть |
leonid553 |
23.3.2007, 11:29
Сообщение
#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 Таким образом, если нам известно уравнение некой плоскости и координаты любых точек, то мы можем разделить множество всех точек пространства на два множества точек, разделяемых этой самой плоскостью. ПОСТАНОВКА ЗАДАЧИ Если мы разделим объекты на два класса: открываемые длинные позиции и короткие позиции, а в качестве признаков возьмем значения индикаторов или осцилляторов технического анализа, то остается лишь выяснить уравнение плоскости и попытаться с ее помощью произвести идентификацию. Постановка задачи ясна. Множества точек пересекаются в пространстве и провести четкую разделительную черту между ними невозможно. Единственным и приемлемым решением здесь является линия, которая будет отделять оба множества точек таким образом, чтобы с ее помощью большинство красных объектов оказалось по одну сторону, а синих по другую. На сей раз, мы имеем дело с задачей оптимизации, то есть поиском уравнения разделяющей плоскости или линии, способной максимально разделить два класса объектов друг от друга, но с вероятностью того, что часть точек, принадлежащих одному классу, будет ошибочно идентифицировано, как принадлежащих к классу другому. Попробуем теперь определиться с постановкой задачи, которую мы собираемся решить. Элементарно, что нужно знать трейдеру для прибыльной торговли - это направление движения котировок. То есть если котировки пойдут вверх, то следует открыть длинную позицию. Если вниз, то необходимо открывать позицию короткую. Следовательно, два класса объектов у нас уже есть, а именно, направление движения котировок. Для того, чтобы принять решение, следуя техническому анализу, трейдеры прибегают к исследованию так называемых технических индикаторов или осцилляторов. Мы также будем исследовать осциллятор. Поскольку технические осцилляторы - это гистограммы, значения которых отклоняются от горизонтальной линии, то соответственно и нейронная сеть нам понадобится с линейным фильтром. В качестве признаков объекта, будем брать паттерны, то есть значения осциллятора в четырех точках, взятые с шагом в семь периодов вглубь истории, начиная от текущего момента. Эскизы прикрепленных изображений |
leonid553 |
24.4.2007, 15:20
Сообщение
#91
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
Понял!
но пока сделана часть работы! Значительное (по визуалу) число профитных сделок закрываются "по мизеру" - потому - что цена превышает уровень отсечки - но потом отступает и закрытие бара происходит ниже! и соотв. подтяжки не происходит. Тогда мы теряем эту часть профитных сделок и более того - часть из них становятся убыточными! В перспективе - также - установка трейлинга на этот второй ордер причем так чтобы не потерять уже имеющийся профит. |
leonid553 |
25.4.2007, 12:21
Сообщение
#92
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
Никак не пойму, почему не соблюдается число сделок в пропорции контрольной версии и версии с отсечкой при равных параметрах.
Видимо, тестер чуть иначе реагирует на изменения в коде. По Фую, например, вообще прибыль не увеличивается с отсечкой! Сделал так: Прогнал контрольную версию - ------------------------------------------------------------------------------- Символ GBPJPY (Great Britan vs Japanese Yen) Период 1 Час (H1) 2005.09.26 08:00 - 2007.04.24 11:59 Начальный депозит 1000 Чистая прибыль 7446 Общая прибыль 16647 Общий убыток -9201 Относительная просадка 38.11% (1327.63) Всего сделок 234 Прибыльные сделки (% от всех) 126 (53.85%) Убыточные сделки (% от всех) 108 (46.15%) Средняя прибыльная сделка 132.13 убыточная сделка -85.20 ----------------------------------------------------------------------------- Поскольку число прибыльных сделок здесь не сильно отличается от убыточных - то версию с отсечкой решил просто оптимизировать! Вот результат: ------------------------------------------------------------------------------------------------------ Начальный депозит 1000 Чистая прибыль 12068 Общая прибыль 29177. Общий убыток -17109 Абсолютная просадка 392.70 Максимальная просадка 2212.53 Относительная просадка 720.24 Всего сделок 536 Короткие позиции (% выигравших) 293 (56.31%) Длинные позиции (% выигравших) 243 (71.19%) Прибыльные сделки (% от всех) 338 (63.06%) Убыточные сделки (% от всех) 198 (36.94%) Средняя прибыльная сделка 86.32 убыточная сделка -86.41 ----------------------------------------------------------------------------------------- Пожалуй это лучший пока результат из всех в этой ветке! Вот только просядка великовата пока! Параметры по Фую - Stochastic_period=10; slowing=2; x1=115; x2=147; x3=101; x4=43; sl=96; lots=0.1; |
NoName |
25.4.2007, 15:52
Сообщение
#93
|
Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) |
Вчера ночью игрался с разными версиями и заметил вот что.
Я заменил перекрытие ордеров простым закрытием и открытием в другом направлении. Затем сравнил тесты на одном и том же периоде этой и предыдущей версии и вот что обнаружилось: в версии где использовалось перекрытие сделок было больше почти в двое больше чем в версии где использовалось закрытие и открытие. А прибыль при этом совпадала до цента! Видимо тестер по разному интерпритирует сделки, для которых используется CloseBy, а отсюда и не совпадение с расчётами (приб.-убыт.). |
NoName |
26.4.2007, 7:54
Сообщение
#94
|
Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) |
Вот на этих отчётах наглядно видно почему происходит различие в количестве сделок. Я взял два эксперта, в первом остался первоначальный механизм закрытия ордеров (открытие двойным лотом и последующее перекрытие старой позицией), а во втором я заменил перекрытие обычным закрытием старой позиции и открытием новой. Тест проводился на одном и том же периоде.
В отчётах я выделил одни и те же действия одинаковым цветом, они происходят в одно и то же время. На периоде выделенном желтым цветом события развиваются абсолютно одинаково, позиции открываются и закрываются по стопу либо модифицируются (трейлинг). Но как только в действие вступает перекрытие позиций – появляются отличия. В этот момент в первой версии происходит открытие на одну позицию больше чем во второй версии, но самое интересное то, что конечный результат от этого не меняется. Прибыль в обоих версиях совпадает до цента. Но в первом случае было совершено 8 сделок, а во втором 6, от этого и совершенно разная статистика. Отчёты первой и второй версии соответственно |
leonid553 |
27.4.2007, 6:07
Сообщение
#95
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
Посмотрел. Вник.
Ну и ладно! С "этим делом", стало быть, разобрались! ------------------------------------------------------------------------------- Похоже с вводом "отсечки" мы уже "выжали" из алгоритма логики работы - всё что можно! Впрочем не совсем так. Вернулся к версии с "разумным" тралом. Вставил в неё стохастик. Удалось оптимизировать на трехлетней истории по фунту до +7500.! А просадка – «ты будешь смеяться» - всего -770 ! Посмотрю ещё... Следующий наш шаг - "нещадная" борьба с просадкой! Возможно, тут будет полезной именно та твоя версия, - где позиции не переворачиваются, а закрываются, и опять открываются. Решения вижу пока такие: Локирование убыточных позиций, например, начиная с заданного числа пунктов. Например, цена после старта пошла против нас ,- и, начиная с некоторого убытка (пусть=-25), должна включится локирующая - противоположная позиция со стоплоссом на уровне старта первой позиции и тейкпрофитом (а лучше тралом!) - на уровне стоплосса первой стартовой позиции. Много прибыли здесь не прибавиться, - но зато навскидку, - возможно , существенно уменьшится просадка ,- да и торговать при этом намного спокойнее будет. Можно даже и пару другую локирующую зарядить – против фунта открыть франк, но это – на любителя… Кстати, - сделал пипсовочную версию на стохастике, - настроил на фунт. Стоит сейчас на демо, - глянь(у Dimi – он там, правда , иногда вручную пошаливает!). Оч. любопытно наблюдать, - как основная, контрольная версия почти все время локируется версией пипсовочной! Причем польза здесь получается обоюдной! Смех разбирает ,- когда смотрю, - как пипсовочная версия ,- словно собачонка, крутится в противовес основной! |
leonid553 |
27.4.2007, 16:30
Сообщение
#96
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
Ещё вот соображения:
Прогнал первую версию со стохастиком по фунту по истории с июня 2004. Прибыль +9325 всего сделок 498 прибыльных - 266 убыточных - 232 Распечатал, потом подсчитал с карандашиком в руке. Сделки распределились следующим образом: С убыточными всё ясно! Прибыльных - 266 , из них - 43 сделки закрылись по "мизеру" (но с этим мы придумали уже как бороться! - в версии с отсечкой) 166 сделок закрылись на уровне отсечки (+80 в среднем) 57 сделок закрылись на следующих уровнях (от +150 до +554) Т.е. что же получается? В этих 166-и сделках цена превысила уровень отсечки на 80 пунктов? Иначе стоплосс не подтянулся бы на этот уровень! Оч. туго с этого момента мысль идет... Вот в чем дело! Часть из этих 166 сделок (в зависимости от перцептрона) закрылась переворотом (+80) на уровне отсечки if(Bid > (OrderStopLoss() + (sl * 2 + spread) * Point)), - а часть пошла дальше, и достигла следующего уровня (ещё +80), - иначе стоплосс бы не подтянулся на уровень отсечки! (Не путать эти 166 сделок с 43 по "мизеру" и 57 другими!) После чего цена развернулась и спустилась опять на уровень отсечки, где и сработал стоплосс! А вот как узнать - сколько сделок из этих 166 закрылись переворотом а сколько по стоплоссу? От ответа на этот вопрос многое зависит. |
NoName |
27.4.2007, 18:36
Сообщение
#97
|
Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) |
Так сходу не врублюсь, нужно малость обдумать.
Цитата А вот как узнать - сколько сделок из этих 166 закрылись переворотом а сколько по стоплоссу? От ответа на этот вопрос многое зависит. Это сделать возможно. Нужно в советник ввести счётчики на все интересующие варианты событий, а за тем выводить результат в журнал либо в отдельный лог-файл. Прийдется повозится, конечно, но реализовать возможно. |
leonid553 |
27.4.2007, 18:52
Сообщение
#98
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
пожалуй, не стоит пока возиться!
По "закону подлости", - большинство сделок закроется именно по стлоссу! Но это именно то, что надо в данном случ! |
leonid553 |
28.4.2007, 12:21
Сообщение
#99
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
По версии с разумным тралом.
Взял фунт - м30. Привлекает малая просадка, - а значит возможность перспективной работы с ММ. И число сделок на м30 - поболе будет, - а значит достоверность увеличивается! Оптимизировал с июня 2004г. по 1 апреля сего года. ------------------------------------------------------------------------------ Начальный депозит 10000 Чистая прибыль +7040 Абсолютная просадка 124.72 Максимальная просадка 876(5.33%) Относительная просадка 5.33% (876) Всего сделок 857 Короткие позиции (% выигравших) 445 (63.15%) Длинные позиции (% выигравших) 412 (63.11%) Прибыльные сделки (% от всех) 541 (63.13%) Убыточные сделки (% от всех) 316 (36.87%) Самая большая прибыльная сделка 484.40 убыточная сделка -76.84 Средняя прибыльная сделка 57.32 убыточная сделка -75.86 --------------------------------------------------------------------------------------- С такой малой просадкой уже можно "делать дела" ! Ну а разница между прибыльными и убыточными сделками - сама просит поскорее ввести "отсечку"! (541-316=225 - прикинь, блин..!) Далее проэкзаменовал оптимизированную версию за апрель-месяц : Чистая прибыль +322 Абсолютная просадка 92 Относительная просадка 131 Всего сделок 14 Прибыльные сделки 10 Убыточные сделки 4 |
leonid553 |
28.4.2007, 17:03
Сообщение
#100
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
Еще вот появились соображения.
По версии с лотами мы можем выстроить работу советника по типу пирамиды, - отсекая на каждом уровне часть прибыльных сделок в профитной зоне. Таким образом , у нас будет несколько уровней отсечки , - равное числу лотов! В идеале - 3-4. Прибыль возрастет, но при этом и просадка будет увеличиваться (менее заметно чем прибыль - но всё-же) И вот тут пригодится версия с ордерами! Т.К. мы не можем отсекать убыточные сделки в минусовой зоне, - поскольку не знаем заранее прибыльной или убыточной будет сделка, - как мы это заранее знали в профитной зоне. Остается вставить в код версии с лотами версию с ордерами, и залокировать убыточные (в текущий момент) сделки 0рдером с тем же числом лотов! Мысль пока оч. сырая, и есть неясности, но уже понятно что ..." правильной дорогой идете товарищи!" На форуме Игоря Кима esть любопытная веточка по реализации механизма локирования http://forum.kimiv.ru/viewtopic.php?t=114&...der=asc&start=0 Смотрю сейчас... |
Текстовая версия | Сейчас: 24.7.2024, 19:56 |