mql5语言的特点、微妙之处以及技巧 - 页 106

 
Alain Verleyen:
它不起作用,因为全局变量是用MT5 Tester模拟的。他们也使用TimeCurrent()。

对不起,与MT4混淆了。在MT4中工作,但不在MT5中。

 
fxsaber:


应用


HH 有没有一种更简单的方法来获取测试器中个人电脑的当地时间?

这样做是不合理的,你只需要获得一次实时时间,然后通过GetTickCount或GetMicrosecondCount 计算出差值。

 
阿列克谢-纳沃伊科夫

你只需要获得一次实时时间,然后用GetTickCount或GetMicrosecondCount来计算差异。

是的,我同意。

 
代码呢?
 
阿列克谢-塔拉巴诺夫
代码呢?
 
阿列克谢-纳沃伊科夫

你只需要获得一次实时时间,然后用GetTickCount或GetMicrosecondCount来计算差异。

测试器中的时间密度是相当不同的。这是不可能的。

 
阿列克谢-塔拉巴诺夫
代码呢?

已更新。

 
fxsaber:

已更新。

GetTickCount应考虑溢出
 
TheXpert
GetTickCount应该能够考虑到溢出的情况

如果一个UINT减去另一个UINT,结果总是正确的,即使有溢出。

插图

void OnStart()
  {
//---
   uint first=UINT_MAX-5;
   uint second=first+100;
   PrintFormat("%u - %u = %u",second,first,second-first);
  }

原木

2018.10.18 10:48:12.775 TestUint (EURUSD,M1)    94 - 4294967290 = 100
 
Slava:
如果你从UINT中减去另一个UINT,结果总是正确的,甚至在溢出的情况下。

也许,它的意思是,一个通道可能会持续超过~50天(然后GetTickCount 会经历整个周期)。但这已经超出了实践的范畴。