Индикаторы: Предсказатель на основе самообучающейся нейронной сети - страница 4

 

gpwr! Спасибо за выложенный код. Есть багрепорт и вопрос:

1. МТ выдает "zero divide" для Predictor'a. Мои параметры:

lastbar = 70

futbars = 15

numlayers = 3

numinputs = 20

numneuronas1 = 10

numneurons2 = 1

numneurons3-5 = 0

ntr = 120

LR = 0.1

MF = 0.6

nep = 100000

maxmse = -20

2. И вопрос. Classificator с дефолтными настройками на EURUSD H1 не показывает стрелки справа от черты. На H4 тоже (история с октября 2005, профит 2000, котировки микросчета Альпари). Похоже, что на всех ТФ. МТ пишет в лог:

2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: Next predicted signal = 0.48
2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: Network trained in 3 epochs with MSE 1.151160E-001
2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: The number of training sets is set to 94
2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: Found 97 buy/sell signals
2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: initialized

 

I put BPNN.dll to experts\libraries and put libmmd.dll and msvcr90.dll to C:\WINDOWS\system32,then allow dll import,but it showed" cannot load library 'BPNN.dll' (error 126)",I feel confused,I am not quite familier with programming,anyone can help me ?thanks a lot .

 
smqllhill:

I put BPNN.dll to experts\libraries and put libmmd.dll and msvcr90.dll to C:\WINDOWS\system32,then allow dll import,but it showed" cannot load library 'BPNN.dll' (error 126)",I feel confused,I am not quite familier with programming,anyone can help me ?thanks a lot .



Your windows is 32 or 64 bit?

If 64, try to copy these dlls to system64.

A had the same probler earlier, but after rebuild of sources in my VS 2008, I got dll, that works fine without any libraries. Try to use this my build: http://files.mail.ru/E89XF3

 
Daniil:
smqllhill:

I put BPNN.dll to experts\libraries and put libmmd.dll and msvcr90.dll to C:\WINDOWS\system32,then allow dll import,but it showed" cannot load library 'BPNN.dll' (error 126)",I feel confused,I am not quite familier with programming,anyone can help me ?thanks a lot .

Your windows is 32 or 64 bit?

If 64, try to copy these dlls to system64.

A had the same probler earlier, but after rebuild of sources in my VS 2008, I got dll, that works fine without any libraries. Try to use this my build: http://files.mail.ru/E89XF3

I use win xp,it is 32 bit ;

I used u new build,but it still showed the 126 error code .a ....

anyway,thanks a lot,daniil

 
Daniil:

gpwr! Спасибо за выложенный код. Есть багрепорт и вопрос:

1. МТ выдает "zero divide" для Predictor'a. Мои параметры:

lastbar = 70

futbars = 15

numlayers = 3

numinputs = 20

numneuronas1 = 10

numneurons2 = 1

numneurons3-5 = 0

ntr = 120

LR = 0.1

MF = 0.6

nep = 100000

maxmse = -20

2. И вопрос. Classificator с дефолтными настройками на EURUSD H1 не показывает стрелки справа от черты. На H4 тоже (история с октября 2005, профит 2000, котировки микросчета Альпари). Похоже, что на всех ТФ. МТ пишет в лог:

2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: Next predicted signal = 0.48
2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: Network trained in 3 epochs with MSE 1.151160E-001
2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: The number of training sets is set to 94
2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: Found 97 buy/sell signals
2009.06.18 13:42:02 Buy-Sell Classificator EURUSD,H4: initialized

1. zero divide может только появиться в двух местах: там где рассчитываются входные данные для тренировки сети (идёт деление текущей цены на задержанную, если задержка превышает кол-во баров Bars, то будет деление на ноль) и там где рассчитываются входные данные для предсказания. Мне кажется ошибка здесь при расчёте входных данных для тренировки так как у вас 20 входов. Фибо задержка с индксом 20 это 10946 баров, а у вас котировки только с 2005 года. Мой совет уменьшите количество входов до 10 либо достаньте данные с >11000 баров.

2. Classificator часто сходится к локальному минимум. Его работа не стабильна и результаты меняются от прогона к прогону. Сделайте Threshold параметр равный 0.1, или 0.2 или в худшем случае 0.5. Стрелки должны появиьтся справа от линии.

 
smqllhill:

I used u new build,but it still showed the 126 error code .a ....

anyway,thanks a lot,daniil

Strange... You can compile dll yourself. It is not very hard

1. Download Visual Studio from microsoft.com (you can get time limited (or student?) license for free)

2. Create solution (win32 empty project, with target = "DLL") and import *.h, *.cpp in this project

3. Create empty "def" file from VS 2008 and copy text from BPNN.def into it

4. Build solution and find a dll in solution's folder (subfolder "Debug" or "Release")


PS. May be only installation of VS 2008 will help to run this DLL without recompiling

 
smqllhill:
Daniil:
smqllhill:

I put BPNN.dll to experts\libraries and put libmmd.dll and msvcr90.dll to C:\WINDOWS\system32,then allow dll import,but it showed" cannot load library 'BPNN.dll' (error 126)",I feel confused,I am not quite familier with programming,anyone can help me ?thanks a lot .

Your windows is 32 or 64 bit?

If 64, try to copy these dlls to system64.

A had the same probler earlier, but after rebuild of sources in my VS 2008, I got dll, that works fine without any libraries. Try to use this my build: http://files.mail.ru/E89XF3

I use win xp,it is 32 bit ;

I used u new build,but it still showed the 126 error code .a ....

anyway,thanks a lot,daniil

Error 126 is the operating system error. It seems your PC can not find all dependent dll's. There are 3 of them:

libmmd.dll - dll from the Intel's C++ compiler, which I used

MSVCR90.dll - dll from Microsoft Visual C++ v9

kernel32.dll - system dll

I enclosed the first two thinking that everybody should have kernel32.dll. You might not. Please, let me know if you have the above mentioned dll's in your system32 folder. If everything is there, the last fixing step is to compile the files yourself. Microsoft gives Visual C++ 2008 Express Edition for free

http://www.microsoft.com/Express/vc/

If you decide to go this route, please let me know and I will walk you through the steps. But, I would prefer you first check if you have all 3 dll's in your system folder.

 
gpwr:

1. zero divide может только появиться в двух местах

Да, все верно. Котировок не хватало. Спасибо.


gpwr:

2. Classificator часто сходится к локальному минимум. Его работа не стабильна и результаты меняются от прогона к прогону. Сделайте Threshold параметр равный 0.1, или 0.2 или в худшем случае 0.5. Стрелки должны появиьтся справа от линии.

Ага. На всех значениях, меньших 0.5, стрелки не появлялись. Как поставил 0.5, они появились на всех барах справа от черты и все на покупку. Странно как-то. Дома еще попробую. Мне казалось, что со старой версией dll и индикатора все было нормально и с дефолтными настройками. Попробую разбраться в чем дело.


А еще вопрос по коду. Сейчас разбираюсь с Предиктором. Там есть вот такой код:

	// Fill in the input arrays with data; in this example nout=1 
   for(i=ntr-1;i>=0;i--)
   {
      outTarget[i]=(Open[lb+ntr-1-i]/Open[lb+ntr-i]-1.0);

Т.е. получается, что какое бы значение nout не имела, все равно будет считаться, что у сети только один выходной нейрон?

 
Daniil:

Ага. На всех значениях, меньших 0.5, стрелки не появлялись. Как поставил 0.5, они появились на всех барах справа от черты и все на покупку. Странно как-то. Дома еще попробую. Мне казалось, что со старой версией dll и индикатора все было нормально и с дефолтными настройками. Попробую разбраться в чем дело.

А еще вопрос по коду. Сейчас разбираюсь с Предиктором. Там есть вот такой код:

	// Fill in the input arrays with data; in this example nout=1 
   for(i=ntr-1;i>=0;i--)
   {
      outTarget[i]=(Open[lb+ntr-1-i]/Open[lb+ntr-i]-1.0);

Т.е. получается, что какое бы значение nout не имела, все равно будет считаться, что у сети только один выходной нейрон?


Классификатору ещё далеко до пригодности. Работаю над ним. Кстати, если кто являтся закачивающим членом www.pudn.com, то напишите мне. Там есть код, который мне поможет усовершенствовать Classificator.

Насчёт nout. Он используется для универсальности. Приведённый вами код верен только для nout=1. Для nout>1, его нужно изменить типа

	// Fill in the input arrays with data; in this example nout=1 
   for(i=ntr-1;i>=0;i--)
   {
      for(j=0;j<nout;j++) outTarget[i*nout+j]=..;
 

Ну! У кого-нибудь, что-нибудь получилось с настройками Buy-Sell Classificator?

А то вот эти "тучки" стрелочек показанные на примере, меня например не впечатляют. Мне лично не понятно когда входить в рынок...

Или это мол, обучение, типа ждите, ща обучусь, потом буду более точно выдавать входы, а пока посидите, тихо... Не, в натуре, как тут и чё настраивать? Даже после объяснений, автора, я так и не понял в чём суть, настроек.....

А вообще, если он нейрон и самообучается, ну и пусть обучается нах..! Чё там в настройках лазить? А если он пытается обучиться по истории и так научиться входить?

Цитирую автора:

«…Чтобы пользоваться этой моделью, необходимо знать веса. Веса вычисляются путём обучения сети на прошлых данных …»

Оооо.., тогда лучше пусть не учится, это та же подгонка только автоматическая...

Тут нужно придумать что-нибудь поинтереснее, если б он смотрел за изменением цен, за волантильность рынка, за объёмы продаж в зависимости от торгового периода на данный момент, и на основе этого, делал бы какие-то заключения и выстраивал предположения о! вот это было бы интереснее.., а так... фуфляк это всё..!

Может я и не прав, тогда переубеждайте в обратном!

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