文章 "MQL5 编程基础:时间" - 页 4

 
Dennis Kirichenko:

需要一个类似 TimeCurrentMsс(),精度为毫秒级的 TimeCurrent()。

关于交易、自动交易系统和测试交易策略的论坛

市场关闭

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);
}

// 在不考虑 ping 的情况下,交易服务器上的当前时间
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 和编程的新手,这给了我一些技术思路,当我需要在我的第一个智能交易系统中管理任何与时间相关的东西时,我可以使用这些技术。