Журналы Надо смотреть. Скорее всего синхронизация символов продолжается долго.
Советник не мультивалютный. О какой синхронизации речь?
Советник не мультивалютный. О какой синхронизации речь?
Вы перекомпилировали советник после его профилировки ?
Вы перекомпилировали советник после его профилировки ?
Да.
Более того, определил один ну ооочень "тормознутый" индикатор, удалил его из сети, тест (и соответственно, ген. оптимизация) идут значительнее быстрей. Медленную пока не ставил.
Но это всё не отвечает на вопрос: почему в течение 4-х минут оптимизации активность агентов на нуле?
К стати, вот сейчас идёт оптимизация и, между делом, рисует мне такие строки:
2020.05.08 16:17:30.748 Core 3 genetic pass (7, 361) tested with error "OnInit failed" in 0:00:00.001
В OnInit() у меня везде прописана причина INIT_FAILED.
А тут никак это не отражено. Как понять что именно вызвало ошибку инициализации?
Это я к тому, что было бы здорово возвращать эту самую причину. Вместо return(INIT_FAILED); ввести функцию типа ReturnInit(INIT_FAILED, "Тут причина ошибки");
Так ведь никто не запрещает указать причину (записать ее в свой файл, т. к. Print при оптимизации ничего не выдаст в журнал).
Так ведь никто не запрещает указать причину (записать ее в свой файл, т. к. Print при оптимизации ничего не выдаст в журнал).
Так это конечно, только это же ещё время потерянное. Плюс это нужно и во всех включаемых файлах тоже прописывать запись в файл. Значит это должен быть вполне определённый файл. А это уже компот )))
Так ведь никто не запрещает указать причину (записать ее в свой файл, т. к. Print при оптимизации ничего не выдаст в журнал).
Последовал совету. Ошибка возникает в этом:
int readPeriodZZ3() { int pmZZ3 = 0; string dirNC = dir_NC+"MLP\\"; string filename = dirNC+"!NCC.net"; int h = FileOpen(filename, FILE_BIN|FILE_READ|FILE_COMMON); if(h != INVALID_HANDLE) { FileSeek(h,0,SEEK_SET); pmZZ3 = (int)FileReadInteger(h); } FileClose(h); Print("pmZZ3 = ",pmZZ3); //+--------------------- return(pmZZ3); } ------------------------------------------- int period_mZZ3 = readPeriodZZ3(); if(period_mZZ3 == 0) { Print("Ошибка определения периода индикатора myZigZag3."); writeErrorFile(program_name,program_version,"Ошибка определения периода индикатора myZigZag3."); return(INIT_FAILED); }
Только вот не понятно, почему этот инт то считывется, то нет?
Может я как то не правильно его считываю?
P.S. FILE_SHARE_READ ситуацию не исправил...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Советник с нейронной сетью.
Одиночный тест за этот период проходит за
Решил посмотреть профилировщиком
В принципе, ничего криминального. checkSignal - это получение сигнала от сети. Всё логично и правильно.
Ставлю генетическую оптимизацию. Всего параметров (у сети параметров нет, подбираются параметры безубытка и стопов)
За 10 минут агенты выполнили только 7 заданий. Грустно. Но это ещё не вопрос )))
Собственно параметров не так уж и много. Ставлю медленную оптимизацию.
Время 12:47.....
Время 12:51....
Прошло 4 минуты а агенты по нулям. Почему?
Хотя пишет, что выполнено 7 заданий....
П.С. Хотя, в принципе, 7 агентов за 4 минуты должны были бы сделать 28 заданий. Ну хорошо, накладные расходы и тыр-быр-тыр, ну хотя бы 21.... Нет?