Статистическое преимущество нейронной сети

 

Для тех кто интересуется этой темой. Я взял свой индикатор BPNN Predictor.mq4 (https://www.mql5.com/ru/code/8976) и прогнал его на последних 200 барах EURUSD 1H используя 12-4-1 сетку обучающуюся на 100 примерах. Потом сравнил результат с однослойкой (линейной авторегриссионной моделью) и со статистикой движений цены в том же направлении что и предыдущее. Вот % правильно предсказзаных направлений движения цены:

Нейронная сеть с одним скрытым слоем: 58.5%

Линейная авторегрессионная модель: 52.5%

% движений в том же направлении что и предыдущее: 53%

Итак, линейная АР модель даёт такую же точность как и предсказание "если за предыдущий час цена пошла вверх/вниз, то и за следующий час цена пойдёт вверх/вниз". Нейронная сеть даёт преимущество в 5.5%.

 
gpwr >>:


Для тех кто интересуется этой темой. Я взял свой индикатор BPNN Predictor.mq4 (https://www.mql5.com/ru/code/8976) и прогнал его на последних 200 барах EURUSD 1H используя 12-4-1 сетку обучающуюся на 100 примерах. Потом сравнил результат с однослойкой (линейной авторегриссионной моделью) и со статистикой движений цены в том же направлении что и предыдущее. Вот % правильно предсказзаных направлений движения цены:

Нейронная сеть с одним скрытым слоем: 58.5%

Линейная авторегрессионная модель: 52.5%

% движений в том же направлении что и предыдущее: 53%

Итак, линейная АР модель даёт такую же точность как и предсказание "если за предыдущий час цена пошла вверх/вниз, то и за следующий час цена пойдёт вверх/вниз". Нейронная сеть даёт преимущество в 5.5%.

Это ничего не значит. Считать нужно в пипсах.

 
gpwr:
Valio:
GVladimir:
Valio:

МТ тупо не не грузит эту dll-ку .. не нравитцо ему )) вечером разберусь

у нее зависимость от libmmd.dll и MSVCR90.dll

Спасибо, но просто перекомпеллил проект. Кстати - локальные переопределения переменных (в циклах типа for(int i= ..) ) это новая фича VC9 или другая какая среда ?

Предложение к автору: может топик откроете по NN на длл-ках С++, а то здесь не очень удобно общаться, сам еще никак не доведу до ума код Алексея,

а там методы чуть по-прогрессивнее будут, опть же ИМХО .. ну в общем есть что обсудить. На счет тиков zigan ес-сно прав, ни к чему, абшипка, см IndicatorCounted();

и еще не понятно - простую двухслойную BP сетку очень долго считает - издержки реализации кода ?


Не могли бы вы обьяснить что за код Алексея. Я пропустил его. Насчёт долгих вычислений, уменьшите количество эпох nep=10. Должно убыстриться.

Я изменил код BPNN.cpp добавкой проверки на скорость уменьшения ошибки. Теперь вычисления в 30000 раз быстрее. Новый код будет доступен когда его пропустят модераторы. Смотрите историю версий.

Код из предыдущей статьи по сеткам, отсюда 'Рецепты нейросетей'. Ваш код качественнее в плане синтаксиса языка и аккуратности конструкций (я про это *** и некоторые ляпы в работе с пулом ;-) но такая красота дает большой минус в производительности (нужно вникать в какой код оптимизируется данная конструкция по асм-листингу). А вообще - почитайте его статью, гляньте на скелет кода, много чего можно идейно-техническом плане для вашего варианта перенять. Так взяв за основу, леплю свое, к примеру щас масштабируемый 2-д чарт со скроллингом из кодгуру для мониторинга оптимизации прикручиваю. Найду подходящий 3д - его прикручу, - динамическую ошибки по слоевым нейронам смотреть, как альтернатива градиентной карты. В общем планов много ))

 
gpwr >>:


% движений в том же направлении что и предыдущее: ....

А что вы считаете направлением?
 

Open[i]>=Open[i+1] - вверх или флэт

Open[i] < Open[i+1] - вниз

 
gpwr >>:

Для тех кто интересуется этой темой. Я взял свой индикатор BPNN Predictor.mq4 (https://www.mql5.com/ru/code/8976) и прогнал его на последних 200 барах EURUSD 1H используя 12-4-1 сетку обучающуюся на 100 примерах. Потом сравнил результат с однослойкой (линейной авторегриссионной моделью) и со статистикой движений цены в том же направлении что и предыдущее. Вот % правильно предсказзаных направлений движения цены:

Нейронная сеть с одним скрытым слоем: 58.5%

Линейная авторегрессионная модель: 52.5%

% движений в том же направлении что и предыдущее: 53%

Итак, линейная АР модель даёт такую же точность как и предсказание "если за предыдущий час цена пошла вверх/вниз, то и за следующий час цена пойдёт вверх/вниз". Нейронная сеть даёт преимущество в 5.5%.

Писал неоднократно (возможно уже надоел), но на всякий случай напомню. Есть две тонкости (как мне каца):

(1) В AR моделях и им подобных многое (да почти все) зависит от корректной идентификации. Непосредственно на ценовых рядах корректно идентификацию практически невозможно выполнить.

(2) Ни AR ни тем более НС никогда не будут прогнозировать устойчиво, если нет "статистического феномена". Никогда!!! Такое "сродство природы" этих методов. Чудес не бывает.


Так, что у Вас совершенно нормальные результаты,50/50. Идентификация может немного улучшить результат, но принципиально не изменит очевидных выводов. Так. что мне кажется, нужно уделять больше времени поиску закономерностей :о)

 

grasn
писал(а) >>

.. Ни AR ни тем более НС никогда не будут прогнозировать устойчиво, если нет "статистического феномена" .. нужно уделять больше времени поиску закономерностей

Кто бы спорил, данная сетка используя алгоритм bp тупо ищет экструмумы негого нелинейного уравнения в неявной форме - несогласные есть ? ;) Чудес не бывает как было сказано, посему для данных перед слоем bp обязательно нужно а) вводить алгоритмы предвыборки б) группировки с ранжированием. Нужн еще и постпроцессинг результата, я уже где-то излагал свои мелкие мыслишки.

PS: Вот насчет теоремы Колмогорова, gpwr - передергивать классиков не надо. В классическом изложении она утвержает, что любая непрерывная функция , определенная на n-мерном единичном кубе, может быть пpедставлена в виде сyммы 2n+1 cупеpпозиций нeпpepывныx и монотонных отобpажeниий eдиничных отpeзков, применительно к ценовым рядам n уже не с кандачка, кстати:


где x = ( x1, ..., x n ), 0 ≤ x i
1

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

 
grasn >>:

Писал неоднократно (возможно уже надоел), но на всякий случай напомню. Есть две тонкости (как мне каца):

(1) В AR моделях и им подобных многое (да почти все) зависит от корректной идентификации. Непосредственно на ценовых рядах корректно идентификацию практически невозможно выполнить.

(2) Ни AR ни тем более НС никогда не будут прогнозировать устойчиво, если нет "статистического феномена". Никогда!!! Такое "сродство природы" этих методов. Чудес не бывает.


Так, что у Вас совершенно нормальные результаты,50/50. Идентификация может немного улучшить результат, но принципиально не изменит очевидных выводов. Так. что мне кажется, нужно уделять больше времени поиску закономерностей :о)





Итак, Аксиома (1) и Аксиома (2).
И следствие: 0,585=0.5.

Нда-а....

 
Choomazik >>:

Итак, Аксиома (1) и Аксиома (2).
И следствие: 0,585=0.5.

Нда-а....

ровно так. :о), Вы можете применить навороченные модели идентификации, которые например используются в самоорганизующихся стохастических системах управления (НС тут ни причем) и получите для AR величины, ну типа 0.6. Но поймите главное, что в данном случае, 0.5, 0.585, 0.6 будут ФАКТИЧЕСКИ ОДИНАКОВЫМИ величинами. Это всего лишь частоты результатов какого то эксперимента (частоты, а не доказанные вероятности). А если обратите внимание на количество этих экспериментов, и отсутствие статкритериев, то вроде должно быть понятно, что это весьма прикидочная проверка. Но даже если Вы и запузырите все как надо, то все равно, скорее всего получите такой же результат 50/50


Я настоятельно не рекомендую выходить с 0.585, это мягко говоря - фигня, а не преимущество. Эта не та цифра, с которой "форекс будет считаться". К тому же 0.585 совершенно не гарантирует прибыльной торговли, надо еще смотреть на кучу других факторов.

 
grasn >>:

ровно так. :о), Вы можете применить навороченные модели идентификации, которые например используются в самоорганизующихся стохастических системах управления (НС тут ни причем) и получите для AR величины, ну типа 0.6. Но поймите главное, что в данном случае, 0.5, 0.585, 0.6 будут ФАКТИЧЕСКИ ОДИНАКОВЫМИ величинами. Это всего лишь частоты результатов какого то эксперимента (частоты, а не доказанные вероятности). А если обратите внимание на количество этих экспериментов, и отсутствие статкритериев, то вроде должно быть понятно, что это весьма прикидочная проверка. Но даже если Вы и запузырите все как надо, то все равно, скорее всего получите такой же результат 50/50


Я настоятельно не рекомендую выходить с 0.585, это мягко говоря - фигня, а не преимущество. Эта не та цифра, с которой "форекс будет считаться". К тому же 0.585 совершенно не гарантирует прибыльной торговли, надо еще смотреть на кучу других факторов.



grasn, если я вас правильно понял, то вообще-то ни мне ни вам не известна цифра, с которой форекс будет считаться, как вы говорите. Гарантии у вас НИКОГДА не будет, несмотря на все вам доступные факторы. Разве что Бернанки позвонит, и то - не гарантия ....

 
Choomazik >>:

grasn, если я вас правильно понял, то вообще-то ни мне ни вам не известна цифра, с которой форекс будет считаться, как вы говорите.

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

Гарантии у вас НИКОГДА не будет, несмотря на все вам доступные факторы.

забыли дописать через запятую СЕБЯ и всех остальных :о). Choomazik, если вы в философском плане - то да, задача сложная (я же с вами не спорю, даю дружеские советы). Но такую оценку устойчивости стратегии (хотя бы оценку, с "гарантией" вообще все сложно) нужно иметь. Этому направлению исследований посвящено несколько конкретных и интересных тем на форуме. И в том числе, ровно по этой причине нет большого смысла использоать НС, если не найден статфеномен на рынке.

Разве что Бернанки позвонит, и то - не гарантия ....

Зачем Вам какой то форекс, когда такие знакомые есть... :о)

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