기고글 토론 "MQL5 프로그래밍 기본: 시간" - 페이지 4

 
Dennis Kirichenko:

밀리초 단위의 정확도를 가진 TimeCurrent()의 아날로그, 즉 TimeCurrentMsс()와 같은 것이 필요합니다.

트레이딩, 자동매매 시스템, 트레이딩 전략 테스트에 관한 포럼

시장 마감

fxsaber, 2017.09.22 09:45 AM

// 마지막 문자 틱 시간
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$로 이 표시기를 어디에서 벌금을 낼 수 있나요?
 

EA를 오전 8시에서 오후 2시 사이에 실행할지, 특정 시간에 최적화할지(예: 9시간 15분 최적화 가능) 보다 간단하게 결정할 수 있는 방법이 있나요?

 
MQL5와 프로그래밍을 모두 처음 접하는 저에게 첫 Expert Advisor에서 시간과 관련된 모든 것을 관리해야 할 때 사용할 수 있는 기술에 대한 몇 가지 아이디어를 제공했습니다.