Обсуждение статьи "Основы программирования на MQL5 - Время" - страница 4

 
Dennis Kirichenko:

Нужен аналог TimeCurrent() с точностью до миллисекунды, что-то такого вида TimeCurrentMsс().

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Market closed

fxsaber, 2017.09.22 09:45

// Время последнего тика символа
long GetSymbolTime( const string Symb )
{
  MqlTick Tick;
  
  return(SymbolInfoTick(Symb, Tick) ? Tick.time_msc : 0);
}

// Время последнего тика Обзора рынка
long GetMarketWatchTime( void )
{
  long Res = 0;
  
  for (int i = SymbolsTotal(true) - 1; i >= 0; i--)
  {
    const long TmpTime = GetSymbolTime(SymbolName(i, true));
    
    if (TmpTime > Res)
      Res = TmpTime;
  }
  
  return(Res);
}

// Текущее время на торговом сервере без учета пинга
long GetCurrenTime( void )
{
  static ulong StartTime = GetMicrosecondCount();
  static long PrevTime = 0;
  
  const long TmpTime = GetMarketWatchTime();
  
  if (TmpTime > PrevTime)
  {
    PrevTime = TmpTime;
    
    StartTime = GetMicrosecondCount();
  }
  
  return(PrevTime + (long)((GetMicrosecondCount() - StartTime) / 1000));
}

void OnInit()
{
  MarketBookAdd(_Symbol);
}

void OnDeinit( const int )
{
  MarketBookRelease(_Symbol);
}

string TimeToString( const long Value )
{
  return((string)(datetime)(Value / 1000) + "." + (string)IntegerToString(Value % 1000, 3, '0'));
}

void OnBookEvent( const string& )
{
  Comment(TimeToString(GetCurrenTime()));
}

Не идеально, конечно.

 

fxsaber, спасибо! Вы как всегда по делу. Респект

 
Статья понравилась и пригодилась, спасибо!
 
где я могу получить время для свечных инкаторов для использования mt5? пожалуйста, помогите
 
Добрый день - Где можно приобрести эти индикаторы для MT$?
 

Можно ли как-то более просто определить, хочу ли я, чтобы советник работал с 8 утра до 2 часов дня, оптимизированно или в определенное время, например, оптимизированно в 9 часов 15 минут?

 
Мне, как новичку в MQL5 и программировании, это дало несколько идей по поводу техник, которые я смогу использовать, когда мне понадобится управлять чем-то, связанным со временем, в моем первом эксперте.