Получение данных от тех индикаторов с большим периодом - страница 2

 
Karlson:

Гут ,добавим сделки.Хотя ,если есть обработчик OnTIck,то вариантов нет что это.

У меня все работает. Выдаст ошибку пишите.

Простите, а что конкретно у вас работает? И что вы называете "работой" в этом случае. 

Строкой:

if(bars<MA+100) {Print("Bars=",bars);return;}

в OnTick вы мне предлагаете тупо пропустить весь период MA + 100 баров, а потом начать тестировать (т.е. для Daily я должен пропустить больше 3-х лет, а только после этого MA будет выдавать разумные значения). А если я хочу начать тестировать именно с той даты которую указал без пропуска я получаю ошибку:

2012.05.03 02:01:28     Core 1  2011.01.07 12:41:27   Ошибка копирования Ma.

Я думаю, что здесь возникло непонимание. Вы не заметили, что баров в истории в режиме тестера значительно меньше чем в режиме торговли? Я хочу понять откуда взялась эта коллизия.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 

Работает значит работает.

Но работу я проверял на М5.В первом посте вы написали - не зависит от периода.А тут вдруг дневки..

Да,действительно на дневках проблема.

Я надеюсь вы понимаете ,что для использования МА с периодом 1000 на момент запуска робота должна быть история не менее такого же количества баров.Так же и в тестере.

Но вот проблемка образовалась.Истории да старта дает только год.260 дневных баров.Эксперт простаивает ( ошибка копировния )  пока не сформируется еще 740 баров ,чтобы запустить с 1000 средней.

Это надо к разработчикам.Может прокомментируют. 

 Если я запускаю тест с 2000 года,то история доступна для расчетов только с 1999 года. 

https://www.mql5.com/ru/forum/6637#comment_190168

int OnInit()
{  
   while(SeriesInfoInteger(_Symbol,_Period,SERIES_SYNCRONIZED)==false && tries<100)  {Sleep(300);tries++;}
   
   Print("Синхр=",SeriesInfoInteger(_Symbol,_Period,SERIES_SYNCRONIZED),"  Попыток=",tries);tries=0;
   
   while(bars<MA+1 && tries<100) { bars=Bars(_Symbol,_Period);Sleep(300);tries++;}

   Print("Баров=",bars,"  Попыток=",tries);tries=0;
   
   int copytime=CopyTime(_Symbol,_Period,0,bars,day);
   
   Print(copytime);
   
   Print("Начальная дата истории=",day[0]);
   
   ExpertRemove();

   
   if(GetLastError()>0) {Print("Ошибка OnInit",GetLastError());allerror++;return(-1);}
   
   return(0);
}

 

 На выходе начальная дата доступной истории 4.01.1999 ,260 баров.Сервер MQ,Unlimited bars,EURUSD.

Расход памяти в тестере стратегий
Расход памяти в тестере стратегий
  • www.mql5.com
Расход памяти в тестере стратегий.
 
Karlson:

Работает значит работает.

Но работу я проверял на М5.В первом посте вы написали - не зависит от периода.А тут вдруг дневки..

Да,действительно на дневках проблема.

Я надеюсь вы понимаете ,что для использования МА с периодом 1000 на момент запуска робота должна быть история не менее такого же количества баров.Так же и в тестере.

Но вот проблемка образовалась.Истории да старта дает только год.260 дневных баров.Эксперт простаивает ( ошибка копировния )  пока не сформируется еще 740 баров ,чтобы запустить с 1000 средней.

Это надо к разработчикам.Может прокомментируют. 

 Если я запускаю тест с 2000 года,то история доступна для расчетов только с 1999 года. 

https://www.mql5.com/ru/forum/6637#comment_190168

 На выходе начальная дата доступной истории 4.01.1999 ,260 баров.Сервер MQ,Unlimited bars,EURUSD.

Когда я писал что не зависит от периода, имелся ввиду период по датам "От" и "До" в тестере. Здесь возникло недопонимание, неверно описал. Признаю.

Конечно же я понимаю, что история должна быть на необходимое кол-во баров "в прошлое" от момента старта. Но, с какого периода я бы не начал тестирование у меня всегда есть только 260 баров "назад" (Daily chart). Т.о. для того чтобы получать значения MA с периодом 365, я должен пропустить 105 баров и только после этого SERIES_BARS_COUNT будет 365 и я получу внятные значения для индикатора. Но согласитесь, странноватая логика, даже если она связана с экономией памяти.

Хотелось бы услышать мнения разработчиков на этот счет. 

 
vita1y:

 Но согласитесь, странноватая логика, даже если она связана с экономией памяти.

Хотелось бы услышать мнения разработчиков на этот счет. 

Да.Я ранее такой период на дневках не использовал.Ждемс.
 
Что-нибудь решилось с этим вопросом в MT5? На дневном таймфрейме в тестере начинает считать только с бара, заданного в периоде iMA. А в реале - за любой период.