Вопрос по программированию нейросети нейросети - страница 5

 
Ну и, потом, такая конфигурация сети способна решать любые задачи, в т.ч. и "исключающее или" :)
 
Ok. Но всё-таки хотелось бы о практике ещё немного: что подаём на вход, какую размерность N задать и т.д.? Если, конечно, не секрет :) Я в этом деле чайник, но готов приобщиться.
 
rsi:
Ok. Но всё-таки хотелось бы о практике ещё немного: что подаём на вход, какую размерность N задать и т.д.? Если, конечно, не секрет :) Я в этом деле чайник, но готов приобщиться.

Я выше индикатор выложил. На вход подаётся угол наклона лин. регрессии. Попробуйте его на Евре 1 час запустить
 
Спасибо, пойду посмотрю :)
 
rsi:
Спасибо, пойду посмотрю :)

Вот еще к этой шняге Z-счет прикрутить и, имхо, буде хорошо :)
 

Да. Забавная вещица. Ещё раз спасибо, klot, на выходные мне хватит! :)

 
Это нейро от metaquotes .Взгляните может чем-то поможет. Хорошо предсказывает развороты .Направление предсказывает терпимо только на короткие периуды 2-5бар.
 
AAAksakal , взглянуть-то на что?
 
klot:


А вообще, любую НС можно легко программировать сразу в MQL4. Так же можно подобрать веса НС с помощью ГА МТ4 или своего собственного. Пессимизм определяется только не хваткой воображения и фантазии. В принципе, пределов нет...

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

Сегодня наконец-то завершил сборку нейросети, написанной полностью на MQL4 c архитектурой 3:3:1 (три нейрона на входе, три входа скрытого, один на выходе). Все слои настраиваются с помощью тестерного ГА. Но трабла в том, что для 1 слоя нужно минимум 12 входных параметров, хотя бы со значениями от -1 до 1 с шагом 1 (как у Розенблата). А оптимизатор столько уже не тянет. Пришлось изголяться и упрощать первый слой.

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

Сигналы на входах весьма примитивны:

   static  int  p = 12;
   ...
   double       z1 = Close[0] - iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, 0);
   double       z2 = Open[p] - iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, p);
   double       z3 = Open[p * 2] - iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, p * 2);

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

Овчинка выделки стоила, хотя все мозги наизнанку вывернула:

Это результаты теста. С 1 по 273 сделку - оптимизация, дальше форвардный тест.

А вот форвардный тест:

Вот результаты форвардного теста:

Strategy Tester Report
RNN
Alpari-Demo (Build 409)

СимволEURUSD (Euro vs US Dollar)
Период1 Час (H1) 2011.10.24 00:00 - 2012.01.13 23:59 (2011.10.24 - 2012.01.14)
МодельПо ценам открытия (только для советников с явным контролем открытия баров)
Параметрыt1=54; t2=4; t3=48; x1=194; x2=128; x3=68; y1=1; y2=1; y3=-1; t4=136; sl=900; lots=1; mn=888;

Баров в истории2431Смоделировано тиков3862Качество моделированияn/a
Ошибки рассогласования графиков0




Начальный депозит10000.00



Чистая прибыль14713.00Общая прибыль40711.60Общий убыток-25998.60
Прибыльность1.57Матожидание выигрыша88.10

Абсолютная просадка2721.60Максимальная просадка4800.00 (39.74%)Относительная просадка39.74% (4800.00)

Всего сделок167Короткие позиции (% выигравших)101 (67.33%)Длинные позиции (% выигравших)66 (92.42%)

Прибыльные сделки (% от всех)129 (77.25%)Убыточные сделки (% от всех)38 (22.75%)
Самая большаяприбыльная сделка900.00убыточная сделка-907.20
Средняяприбыльная сделка315.59убыточная сделка-684.17
Максимальное количествонепрерывных выигрышей (прибыль)13 (2557.00)непрерывных проигрышей (убыток)4 (-3605.40)
Максимальнаянепрерывная прибыль (число выигрышей)3511.60 (11)непрерывный убыток (число проигрышей)-3605.40 (4)
Среднийнепрерывный выигрыш4непрерывный проигрыш1





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

 
Reshetov:

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

Сегодня наконец-то завершил сборку нейросети, написанной полностью на MQL4 c архитектурой 3:3:1 (три нейрона на входе, три входа скрытого, один на выходе). Все слои настраиваются с помощью тестерного ГА. Но трабла в том, что для 1 слоя нужно минимум 12 входных параметров, хотя бы со значениями от -1 до 1 с шагом 1 (как у Розенблата). А оптимизатор столько уже не тянет. Пришлось изголяться и упрощать первый слой.

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

Сигналы на входах весьма примитивны:

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

Овчинка выделки стоила, хотя все мозги наизнанку вывернула:



Я делал нормальную сетку 256 входов, один скрытый слой на 256 нейронов. Ну и выходной слой из одного нейрона. И все это прекрасно обучал в МТ4

Правда был вариант с тремя скрытыми слоями, но они были излишними

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