Запуск тестера с середины дня - страница 2

 
fxsaber #:
Создайте кастомный символ с нужным началом истории. И гоните на нем Тестер. Будет начинаться во столько, во сколько зададите.

Интересно посмотреть на это решение.

Время тестирования переместится на 1000 баров и будет начинаться в 0 часов 0 минут

 
Slava #:

Интересно посмотреть на это решение.

Время тестирования переместится на 1000 баров и будет начинаться в 0 часов 0 минут

input datetime inStartTime = D'2024.02.14 18:00';

void OnStart()
{ 
  MathSrand((int)TimeLocal());
  
  const string Name = "TESTER" + (string)MathRand();

  MqlRates Rates[];
  
  if ((CopyRates(_Symbol, PERIOD_M1, inStartTime - PeriodSeconds(PERIOD_MN1), TimeCurrent(), Rates) > 0) &&
      CustomSymbolCreate(Name, NULL, _Symbol))
  {
    CustomRatesReplace(Name, 0, INT_MAX, Rates);
    
    const datetime BeginTime = inStartTime / PeriodSeconds(PERIOD_D1) * PeriodSeconds(PERIOD_D1);
    
    if (BeginTime < inStartTime)
      CustomRatesDelete(Name, BeginTime, inStartTime - 1);
  }  
}


ЗЫ Вместо CustomRatesReplace+CustomRatesDelete можно использовать другую комбинацию.

CustomRatesReplace(Name, 0, BeginTime - 1, Rates);
CustomRatesReplace(Name, inStartTime, INT_MAX, Rates);
Причина обращения: