Не все из 68 параметров оптимизируются. Почему?

 

Здравствуйте, Господа и Девушки!

Написал простого нейронного эксперта по мотивам https://www.mql5.com/ru/articles/497, в который добавил 2 нейрона в первый слой и 1 выходной. При тестировании оптимизируются лишь первые 10 параметров. Почему?

Нейронные сети - от теории к практике
Нейронные сети - от теории к практике
  • 2012.10.06
  • Dmitriy Parfenovich
  • www.mql5.com
В наше время, наверное, каждый трейдер слышал о нейронных сетях и знает, как это круто. В представлении большинства те, которые в них разбираются, это какие-то чуть ли не сверхчеловеки. В этой статье я постараюсь рассказать, как устроена нейросеть, что с ней можно делать и покажу практические примеры её использования.
Файлы:
NNv2.mq5  13 kb
 
Может ограничение тестера, не более десяти параметров.
 
sandex:
Может ограничение тестера, не более десяти параметров.
А это ограничение изменить можно?
 

На вашем месте копирование из хэндлов индикаторов я бы делал так (см. ниже). Сначала надо скопировать данные в массив (CopyBuffer), а потом поменять индексацию задом на перёд (ArraySetAsSeries).

void OnTick()
  {
//---
   if(CopyBuffer(iRSI_handle,0,1,10,iRSI_buf)<0)
     {
      Print("Не удалось скопировать данные из индикаторного буфера для RSI14");
      return;
     }
   ArraySetAsSeries(iRSI_buf,true);
//---
   if(CopyBuffer(iStdDev_handle,0,1,10,iStdDev_buf)<0)
     {
      Print("Не удалось скопировать данные из индикаторного буфера для RSI28");
      return;
     }
   ArraySetAsSeries(iStdDev_buf,true);
//...
  }
 
Zhigool:
А это ограничение изменить можно?

Мне не приходилось оптимизировать с таким количеством параметров, я предположил.

Ограничение должно быть, но его величину не знаю. 

 
sandex:

Мне не приходилось оптимизировать с таким количеством параметров, я предположил.

Ограничение должно быть, но его величину не знаю. 

Максимально количество оптимизируемых параметров — 1024. Инфо тут.
 
Тогда проблема в коде.
 
paladin800:

На вашем месте копирование из хэндлов индикаторов я бы делал так (см. ниже). Сначала надо скопировать данные в массив (CopyBuffer), а потом поменять индексацию задом на перёд (ArraySetAsSeries).

Поправил, всё заработало... хз... 
Спасибо большое!
 

Господа! Не занимайтесь самообманом. Перед тем как писать нейронную сеть поинтересуйтесь что вообще это такое, в какой то из 100500 умных книжек по этой тематике вроде Ф. Уоссермен  «Нейрокомпьютерная техника», а лучше сразу «Нейронные сети  полный курс» Саймона Хайкина.

НЕЙРОННАЯ СЕТЬ НЕ ОБУЧАЕТСЯ ОПТИМИЗАТОРОМ!!!!  Это бред полнейший. Вы получите не обобщение а случайную подгонку с вашими 68-ю весами.

Если уж на то пошло, то сделайте её в специализированной софтине, вроде матлаба или статистики, которая обучает и выплёвывает весовой вектор или *.dll готовой сети. В mql делать нейросеть это жестоко. Простейшую обратное распространение ошибки замутить дело довольно геморное, всё привязано к данным какгото ДЦ, нельзя запустить отдельное приложение, как то поработать с данными напрямую и тп. Нужно это будет делать скриптом и много всего предстоит гадкого.

Я не говорю что нейросеть нельзя прикрутить к мететрейдеру, это можно и нужно. Но лучше прикручивать только сам «черный ящик» в виде dll-ки или через вектор весов полученных в другой софтине.

 

Обучается. Погуглите ИСПОЛЬЗОВАНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ В ОБУЧЕНИИ НЕЙРОННЫХ СЕТЕЙ 

 

Это похоже на "случайную подгонку"? 

 

 
gunia:

Господа! Не занимайтесь самообманом. Перед тем как писать нейронную сеть поинтересуйтесь что вообще это такое, в какой то из 100500 умных книжек по этой тематике вроде Ф. Уоссермен  «Нейрокомпьютерная техника», а лучше сразу «Нейронные сети  полный курс» Саймона Хайкина.

НЕЙРОННАЯ СЕТЬ НЕ ОБУЧАЕТСЯ ОПТИМИЗАТОРОМ!!!!  Это бред полнейший. Вы получите не обобщение а случайную подгонку с вашими 68-ю весами.

Если уж на то пошло, то сделайте её в специализированной софтине, вроде матлаба или статистики, которая обучает и выплёвывает весовой вектор или *.dll готовой сети. В mql делать нейросеть это жестоко. Простейшую обратное распространение ошибки замутить дело довольно геморное, всё привязано к данным какгото ДЦ, нельзя запустить отдельное приложение, как то поработать с данными напрямую и тп. Нужно это будет делать скриптом и много всего предстоит гадкого.

Я не говорю что нейросеть нельзя прикрутить к мететрейдеру, это можно и нужно. Но лучше прикручивать только сам «черный ящик» в виде dll-ки или через вектор весов полученных в другой софтине.

Я  просто экспериментирую..
Файлы: