MT4的TimeTradeServer类似物 - 页 4

 

这是一个很好的观点,你需要知道周末的服务器时间。因为服务器的时间停止了,总是在周五发出。
需要一种方法来识别,周末的复印机,而不使用dll

TimeTradeServer 在MT5中完美运行,把它添加到MT4中,这样就能一下子解决时间分析的问题。

 
Alexandr Gavrilin:

这是一个很好的观点,你需要知道周末的服务器时间。因为服务器的时间停止了,总是在周五发出。
我们需要一种方法来识别复印机的周末,而不使用dll

TimeTradeServer 在MT5中完美运行,把它添加到MT4中,就能一下子解决时间分析的问题。

当OrderSend()函数遇到 "市场已关闭 "的错误时(有一些这样的事情),停止所有的交易尝试,等待价格变化,这将意味着市场已经开放。

 
Dmitry Fedoseev:

由于OrderSend()函数遇到了 "市场关闭 "的错误(有一些这样的事情),我们停止所有的交易尝试,等待价格的变化,这将意味着市场已经打开。

和 "如未遇到",整个历史记录中都有待定的订单)

 
fxsaber:

维塔利给了这个功能的一个链接。我不记得这个想法的基础是什么。但我在写作时一定检查过了。试一试吧。

这个想法是基于寻找最常见的符号(在这种情况下是欧元兑美元)的最后一分钟的报价,并计算服务器时间与格林尼治标准时间的偏移。但这里有太多的 "如果",不幸的是,这并不是解决问题的办法。

在Alpari上检查了一下,它没有用。


 
Ihor Herasko:

在Alpari上检查了,它没有工作。

那么会不会有回放数据?

 
fxsaber:

所以会有数据可以重现?

我给了一张照片。也许你看不到它?

 
Taras Slobodyanik:

和 "因为我没有遇到",整个故事中充满了停顿)

你能说得更具体些吗?

 
Ihor Herasko:

我给了一张图纸。

你如何根据图纸进行复制?

 
Ihor Herasko:

这个想法是基于找到最常见的符号(在这种情况下是欧元兑美元)的最后一分钟报价,并以此计算出服务器时间与格林尼治标准时间的偏移。但这里有太多的 "如果",不幸的是,这并不是解决问题的办法。

在Alpari上检查了一下,它没有用。


你不应该在欧元兑美元上寻找最后(23:59)分钟,而应该在黄金上寻找晚上。黄金交易严格按阿姆斯特丹时间 进行,货币按服务器时间 进行。从这里找到服务器的GMT偏移量
 

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

mql4的特殊性,技巧和窍门

Ivan Titov, 2019.08.12 16:19

你是说,如果非外汇角色有历史记录,那么它将无法工作?

这里还有一个在Alpari-Demo EURUSD,H1测试器上的外汇例子。

对于2019.02.19 14:00:00 返回 2019.02.19 11:00:00

为2019.06.19 14:00:00-返回2019.06.19 11:00:00

虽然在冬季应该是GMT+2,夏季是GMT+3(欧洲东部时间)。

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
int TimeServerGMTOffset( const bool SummerTime = false )
{
  const datetime Sunday = GetTimeDayOfWeek();
  
  return(((int)MathRound((double)MathMin(Sunday - DAY - GetBarTime(Sunday), Sunday + DAY - GetBarTime(Sunday, true)) / HOUR) - SummerTime - 2) * HOUR);
}

作出这样的改变,就会成功。没有做夏季和冬季的定义,有人会做。