![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
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 Таким образом, если нам известно уравнение некой плоскости и координаты любых точек, то мы можем разделить множество всех точек пространства на два множества точек, разделяемых этой самой плоскостью. ПОСТАНОВКА ЗАДАЧИ Если мы разделим объекты на два класса: открываемые длинные позиции и короткие позиции, а в качестве признаков возьмем значения индикаторов или осцилляторов технического анализа, то остается лишь выяснить уравнение плоскости и попытаться с ее помощью произвести идентификацию. Постановка задачи ясна. Множества точек пересекаются в пространстве и провести четкую разделительную черту между ними невозможно. Единственным и приемлемым решением здесь является линия, которая будет отделять оба множества точек таким образом, чтобы с ее помощью большинство красных объектов оказалось по одну сторону, а синих по другую. На сей раз, мы имеем дело с задачей оптимизации, то есть поиском уравнения разделяющей плоскости или линии, способной максимально разделить два класса объектов друг от друга, но с вероятностью того, что часть точек, принадлежащих одному классу, будет ошибочно идентифицировано, как принадлежащих к классу другому. Попробуем теперь определиться с постановкой задачи, которую мы собираемся решить. Элементарно, что нужно знать трейдеру для прибыльной торговли - это направление движения котировок. То есть если котировки пойдут вверх, то следует открыть длинную позицию. Если вниз, то необходимо открывать позицию короткую. Следовательно, два класса объектов у нас уже есть, а именно, направление движения котировок. Для того, чтобы принять решение, следуя техническому анализу, трейдеры прибегают к исследованию так называемых технических индикаторов или осцилляторов. Мы также будем исследовать осциллятор. Поскольку технические осцилляторы - это гистограммы, значения которых отклоняются от горизонтальной линии, то соответственно и нейронная сеть нам понадобится с линейным фильтром. В качестве признаков объекта, будем брать паттерны, то есть значения осциллятора в четырех точках, взятые с шагом в семь периодов вглубь истории, начиная от текущего момента. Эскизы прикрепленных изображений |
![]() ![]() |
leonid553 |
![]()
Сообщение
#2
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
to NoName:
Прогнал исправленную версию с отсечкой. Работает удовлетворительно, но прибыль показалась мне меньше расчетной, - предполагаемой! Стал разбираться. Так и есть! Число сделок не соответствует пропорции с контрольной версией! - без отсечки. Вот, например, евроиена: ------дата----поз---№---лот--цена 0ткр--ст/лосс--прибыль 09.27 14:00 buy ---11-- 0.10-- 136.05-- 135.34 .09.27 14:00 buy ---12 --0.10-- 136.05-- 135.34 .10.06 02:00 close --11 -0.10--- 137.05 --135.34 +93.39 .10.06 03:00 modify-12- 0.10--- 136.05--- 136.22 .10.06 17:00 sell---- 13-- 0.20--- 137.71--- 138.42 .10.06 17:00 sell ----14-- 0.10--- 137.71--- 138.42 .10.06 17:00 close by-13--0.10---136.05--138.42--- +149.01 В 14-00 открыты два ордера в бай №12 и №11 Затем 10.06 в 2-00 ордер №11 закрылся +93.39 Но он должен был закрыться раньше!!!!! Ведь стлосс здесь по этой паре = 67 пипсов И значит примерно с таким же профитом ордер №11 и должен был закрыться - но никак не +93 !!! Далее смотрим! 10.06 в 17-00 фиксация прибыли оставшегося ордера (+149) - переворотом поз 13-14-13 Вот где нестыковка! По первому ордеру - стоплосс работает вроде бы как надо, - а по второму - отсечка запаздывает! Символ EURJPY (Euro vs Japanese Yen) Период 1 Час (H1) 2005.09.09 05:00 - 2007.04.20 22:59 Параметры Stochastic_period=8; slowing=3; x1=175; x2=89; x3=17; x4=68; sl=67; lots=0.1; MagicNumber=888; Начальный депозит 1000.00 Чистая прибыль 4195.17 Матожидание выигрыша 9.78 Абсолютная просадка 806.04 Всего сделок 429 Короткие позиции (% выигравших) 222 (52.70%) Длинные позиции (% выигравших) 207 (64.73%) Прибыльные сделки (% от всех) 251 (58.51%) Убыточные сделки (% от всех) 178 (41.4 Т.е. шаг трала в коде для отсечки заложен с ощибкой! Пож. напиши в коде комментарии, - по всем строкам ,- где ты вносил дополнения и изменения. Иначе трудновато вникать... |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 14.3.2025, 13:18 |