Ошибки, баги, вопросы - страница 775

 
Neofit:

Спасибо что откликнулись.

Пишу индикатор...к сожалению концепция индикатора предполагает - что на момент когда мы доберемся до  OnCalculate будет выбрана оптимальная пара, звучит подозреваю мутно.

В общем, в функции  OnCalculate уже необходимо использовать результаты расчетов и анализов которые производились в On Init.

Перенести эти вычисления в OnCalculate возможности не имеется, потому как  за время между приходами двух соседних тиков все расчеты выполнить не успеваем...

Все получается нормально и легко.

Перенесите анализ в отдельную функцию и вызывается ее из OnCalculate. Если нет данных, то выходите из OnCalculate и ждете следующего тика.

От того, что индикатор реально стартанет через 1-2 секунды ничего страшного. По другому работать с сильно зависимыми и асинхронными процессами нельзя, только lazy/ondemand инициализация.

 
Renat:

Все получается нормально и легко.

Перенесите анализ в отдельную функцию и вызывается ее из OnCalculate. Если нет данных, то выходите из OnCalculate и ждете следующего тика.

От того, что индикатор реально стартанет через 1-2 секунды ничего страшного. По другому работать с сильно зависимыми и асинхронными процессами нельзя, только lazy/ondemand инициализация.

Спасибо за совет. Мне почему-то это в голову не пришло. Буду пробовать писать свой "псевдоинит" хотя надежды мало. Я в OnInit пробовал подождать, ничего не получилось выдает LastError 4007

ERR_ARRAY_RESIZE_ERROR

4007

Недостаточно памяти для перераспределения массива либо попытка изменения размера статического массива

 Массив динамический, т. е. 2-я часть определения ошибки про "попытка изменения размера статического массива" отпадает, а что такое "недостаточно памяти для перераспределения массива" представляю себе с трудом.

for(int i=0;i<100;i++)
        {int p99=CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1);
         if(CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1)>0)       break;
         else  
         {
           Print("Getting MA is failed! Error",GetLastError()); 
           int err=GetLastError(); 
             Sleep(500);    
           //return(0);
         } 
         
        }
  
 
papaklass:
 А сделать индикатор на основе другого индикатора пробовали. Первый индикатор выбирает пару, второй работает по этой паре.

Совет Рената очень помог, у меня были проблемы с перегоном значений іMA в пользовательские буфера, перенес код из OnInit в другую ф-ю и с дополнительными проверками все заработало...теперь работаю дальше.

ЗЫ Подскажите пожалуйста наиболее удобный способ следить за собственными сообщениями на форуме. Где можно посмотреть все сообщения адресованные мне(ответы на мои посты)? 

 

Давно не следил за нововведениями МТ5, а потому наверно задам  совсем глупый вопрос.

Запускаю оптимизацию стандартного советника, медленная  (полный перебор параметров) а он мне ограничивает этот полный перебор какими-то 10490....

Лог забит какими-то: 2012.07.13 21:48:10 Core 5 genetic pass (494, 256000000) tested with error "cannot initialize expert"

Потом 2012.07.13 21:49:26 Tester genetic optimization finished on pass 9353 (of 81631000000)
 


Какой-такой генетик пас? Какая генетик оптимизатион? Полный перебор же?

 Ставлю метод оптимизации Быстрая (генетический алгоритм) и вижу все тоже самое.

 

ЧЯДНТ короче? Какую статью прочитать?)

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
Figar0:

Давно не следил за нововведениями МТ5, а потому наверно задам  совсем глупый вопрос.

Запускаю оптимизацию стандартного советника, медленная  (полный перебор параметров) а он мне ограничивает этот полный перебор какими-то 10490....


Какой-такой генетик пас? Какая генетик оптимизатион? Полный перебор же?

В 32 битной версии при превышении количества проходов более 1 000 000, включается режим генетики. У 64 битной версии лимит на полный перебор - 100 000 000. Это описано в справке.

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


Лог забит какими-то: 2012.07.13 21:48:10 Core 5 genetic pass (494, 256000000) tested with error "cannot initialize expert"

Тут надо смотреть на код - или памяти не хватило или еще что-то во время инициализации эксперта.

 
Renat:

В 32 битной версии при превышении количества проходов более 1 000 000, включается режим генетики. У 64 битной версии лимит на полный перебор - 100 000 000. Это описано в справке.

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

Ох уж это забота о трейдере) Спасибо за ответ, мне 100000000 хватит.

Renat:

Тут надо смотреть на код - или памяти не хватило или еще что-то во время инициализации эксперта.

ExpertMACD стандартный.... 

 

https://www.mql5.com/ru/forum/1111/page775#comment_234266

 От пользователей с низким рейтингом, видимо, ошибки не актуальны). В новом билде таже фигня.

 

  OrderCalcProfit(ORDER_TYPE_BUY,"USDJPY", 0.01,    0.01,     0.02, profit_USDJPY_1 );

  OrderCalcProfit(ORDER_TYPE_BUY,"USDJPY", 0.01, 200.01, 200.02, profit_USDJPY_2 );

   
Print("profit_USDJPY_1=", profit_USDJPY_1 ," profit_USDJPY_2=", profit_USDJPY_2 ); 

 

 (EURUSD,M15) profit_USDJPY_1=500.0 profit_USDJPY_2=0.05

В кроссовом варианте работает нормально.

 

Содержимое каких папок нужно почистить (убрать накопившиеся логи, ...т.д. - естественно оставить скрипты, индикаторы, совы), дабы освободить место в каталоге терминала? В процессе тестирования и оптимизации советников папка терминала стала 80 Гиг... Пора чистить. 

В идеале изобразить нечто подобное, как в четвёрке - файл clear.bat (убирает всё наносное, включая историю котиров по инструментам, чистит логи, приводит в соответствие с установочным вариантом, естественно, оставляя скрипты, индикаторы и советники). 

Если что, то просто ссыль может какую-нибудь дадите на описание папок МТ5.

В принципе, и сам в состоянии и поискать, и содержимое папок вручную  почистить, да и батничек по аналогии прописать для МТ5 - просто, мало ли - может уже есть что-нибудь подобное...

Благодарю.

Файлы:
clear.zip  1 kb
 
R0MAN:

Содержимое каких папок нужно почистить (убрать накопившиеся логи, ...т.д. - естественно оставить скрипты, индикаторы, совы), дабы освободить место в каталоге терминала? В процессе тестирования и оптимизации советников папка терминала стала 80 Гиг... Пора чистить. 

В идеале изобразить нечто подобное, как в четвёрке - файл clear.bat (убирает всё наносное, включая историю котиров по инструментам, чистит логи, приводит в соответствие с установочным вариантом, естественно, оставляя скрипты, индикаторы и советники). 

Если что, то просто ссыль может какую-нибудь дадите на описание папок МТ5.

В принципе, и сам в состоянии и поискать, и содержимое папок вручную  почистить, да и батничек по аналогии прописать для МТ5 - просто, мало ли - может уже есть что-нибудь подобное...

Благодарю.

 


Справка по MetaTrader 5 → Начало работы → Структура каталогов и файлов

 
WWer:

Справка по MetaTrader 5 → Начало работы → Структура каталогов и файлов

Благодарю. Почитаю...
Причина обращения: