Ошибки, баги, вопросы - страница 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 → Начало работы → Структура каталогов и файлов

Благодарю. Почитаю...