НС + индикаторы. Эксперимент.

 
Попытка предсказать High Low следующего дневного бара, с помощью рекуррентной НС, по значениям стандартных индикаторов.
структура сети: полносвязная, рекуррентная, 3 слоя. количество нейронов подобрано ГА. траектория 50 циклов.

Вход (нормированные значения):
            ,iClose(Symbol(),Period(),i+1) - iMA(NULL,0,20,0,MODE_SMA,PRICE_MEDIAN,i+1)
            ,iClose(Symbol(),Period(),i+1) - iMA(NULL,0,10,0,MODE_SMA,PRICE_MEDIAN,i+1)
            ,iClose(Symbol(),Period(),i+1) - iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i+1)            
            ,iRSI(NULL,0,14,PRICE_MEDIAN,i+1)
            ,iATR(NULL,0,12,i+1)
            ,iWPR(NULL,0,14,i+1)
            ,iMACD(NULL,0,12,26,9,PRICE_MEDIAN,MODE_MAIN,i+1)
            ,iMACD(NULL,0,12,26,9,PRICE_MEDIAN,MODE_SIGNAL,i+1)
            ,iMACD(NULL,0,12,26,9,PRICE_MEDIAN,MODE_SIGNAL,i+1) - iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i+1)
            ,iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,i+1)
            ,iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,i+1)
            ,iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,i+1) - iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,i+1)
            ,iADX(NULL,0,14,PRICE_MEDIAN,MODE_MAIN,i+1)
            ,iADX(NULL,0,14,PRICE_MEDIAN,MODE_PLUSDI,i+1)
            ,iADX(NULL,0,14,PRICE_MEDIAN,MODE_MINUSDI,i+1)
            ,iStdDev(NULL,0,10,0,MODE_EMA,PRICE_MEDIAN,i+1)
	    //www.atrlab.com
на выходе массив. формируется след. образом.
Если максимум дня >15 пунктов от закрытия преведущего, то первый элемент массива = 1, остальные 0.
Если максимум дня >30 пунктов от закрытия преведущего, то второй элемент массива = 1, остальные 0.
и т.д.

пример выходов.

s1 s2 s3 s4 s5 s6 s7 r1 r2 r3 r4 r5 r6 r7
0 1 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 0 0 0 1 1 0
0 0 0 0 1 0 0 1 0 0 0 0 0 0
0 1 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0

результат. тестовая выборка.



значения возле линий - активность нейрона, отвечающего за уровень поддержки/сопротивления.
 
Все индикаторы - производные цены. Не проще ли подавать одну только цену? Одно из правил подготовки данных для НС предполагает уменьшение размерности. Вот и уменьшайте, сводя все данные к цене. А иначе Вы подаёте избыточные взаимосвязанные данные.
 
было дело. только подавал проц. изменение цены. результаты не изменили моего взгляда на рынок.
 
njel:
было дело. только подавал проц. изменение цены. результаты не изменили моего взгляда на рынок.


Для расчета процента нужна какая то опорная величина (от чего считать процент). Можно чуть подробнее про это + Ваш взгляд на рынок, если не затруднит

 
Не буду много писать, просто прочтите  статью:  Нейросети: работа над ошибками
 
на вход давал
         double c1 = MathLog (  iHigh(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
         double c2 = MathLog (  iLow(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
и сеть была timelagged с траекторией 15 . но качество прогноза не радовало.

2Alex-Bugalter

Статью прочитал. У меня например одна нейросеть, но модульная. Может что то посоветуете?
 
njel:
на вход давал
         double c1 = MathLog (  iHigh(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
         double c2 = MathLog (  iLow(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
и сеть была timelagged с траекторией 15 . но качество прогноза не радовало.

Натуральный логарифм от соотношения двух чисел ? Это и есть процент изменения цены ?
 
Alex-Bugalter писал (а):
Не буду много писать, просто прочтите статью: Нейросети: работа над ошибками
Почитал статью, от нее больше вреда чем пользы. Написано дидактически ужасно, при этом производится манипулирование словами вероятность и прибыль. Много умных слов для придания солидности.
 
Rosh:
Alex-Bugalter писал (а):
Не буду много писать, просто прочтите статью: Нейросети: работа над ошибками
Почитал статью, от нее больше вреда чем пользы. Написано дидактически ужасно, при этом производится манипулирование словами вероятность и прибыль. Много умных слов для придания солидности.

Поддерживаю. Это не статья, а просто так, погулять вышел..
 
Prival:
njel:
на вход давал
         double c1 = MathLog (  iHigh(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
         double c2 = MathLog (  iLow(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
и сеть была timelagged с траекторией 15 . но качество прогноза не радовало.

Натуральный логарифм от соотношения двух чисел ? Это и есть процент изменения цены ?
не. раньше в % брал за 100% превед. цену. а недавно где то встретил вот такие замеры движения цены. можно было вообще в пунктах всё выражать, что кстати тоже вариант. А в данный момент думаю чем бы очередную модель НС накормить. и вообще стоит ли кормить. хммм
 
Много уважаемые Rosh & SK , если вы так хорошо разбираетесь от чего польза, а от чего вред, и где лучше гулять.
Может укажете несведущим, в каком по вашему мнению вред и что именно не верно изложено в данной статье?
А то столько людей введено в «заблуждение», так давайте укажите верный путь.
Или вы просто так погулять вышли?
Огульно хаять каждый может.
А в этой статье: "Нейросети и анализ временных рядов", тоже бред написан?

P.s.: И еще Rosh, лично для меня, если конечно не затруднит, что именно Вы имели ввиду под: «Написано дидактически ужасно»
Причина обращения: