mql5语言的特点、微妙之处以及技巧 - 页 75 1...686970717273747576777879808182...247 新评论 Ihor Herasko 2018.03.29 09:51 #741 Vitaly Muzichenko: 我把EA放在周六的图表上,但EA可以得到最后一个刻度的时间,例如在Market Watch中是23:58,而我的当地时间是04:45。服务器的时间我不知道。我的问题是:从最后一个刻度到服务器时间(终端时间)已经过去了多少时间?思考了一阵子。事实证明,当EA被附加到图表上时,并没有什么区别。在没有真正的滴答声之前,我们不能执行程序算法中使用服务器 实时的那一部分。 如果在滴答声到来之前需要进行计算,那么就要求提供ServerGMTOffset。 所以,即使没有ServerTradeTime(),这个问题也可以解决。 Vitaly Muzichenko 2018.03.29 11:31 #742 Ihor Herasko: 我已经考虑过这个问题了。事实证明,当EA连接到图表上时,没有任何区别。只要没有真正的勾选,我们就不能执行程序算法中使用真实服务器时间的那部分。如果在滴答声到来之前需要进行计算,那么就要求提供ServerGMTOffset。因此,即使没有ServerTradeTime(),这个问题也可以解决。用户不知道服务器的Offset,他不知道。 只有两个值是已知的,这些数据不足以计算出"从最后一次打勾到服务器(终端)的 时间,已经过去了多少时间"。 这是一个非常奇特的任务,我没有看到解决办法,就像你一样。 Alexey Viktorov 2018.03.29 12:03 #743 维塔利-穆齐琴科。我把EA放在周六的图表上,但EA可以得到最后一个刻度的时间,例如在Market Watch中是23:58,而我的当地时间是04:45。服务器的时间我不知道。 问题是,从最后一个刻度到服务器时间(终端时间)过去了多少时间?两者都不只是时间,而是日期时间。即日期和时间。因此,用这个数据进行算术运算,将得到秒的差值,这不难转化为日、时、分、秒。 另外,你需要检查TimeTradeServer 在周末会显示什么。 2018.03.29 15:00:03.640 00 (EURUSD,H1) TimeCurrent() = 2018.03.29 14:59:54 2018.03.29 15:00:03.640 00 (EURUSD,H1) TimeLocal() = 2018.03.29 15:00:03 2018.03.29 15:00:03.640 00 (EURUSD,H1) TimeGMT() = 2018.03.29 12:00:03 2018.03.29 15:00:03.640 00 (EURUSD,H1) TimeGMTOffset() = -10800 2018.03.29 15:00:03.640 00 (EURUSD,H1) TimeTradeServer() = 2018.03.29 15:00:03 注意服务器时间和当地时间之间的差异,然后注意当地时间和估计的服务器时间之间的精确匹配。 fxsaber 2018.03.29 12:33 #744 对于外汇,你可以从四方面重新制作这个代码 关于交易、自动交易系统和交易策略测试的论坛 mql4语言的特点、微妙之处以及技巧 fxsaber, 2018.03.29 14:32 #property strict #define HOUR 3600 #define DAY (24 * HOUR) #define WEEK 7 datetime GetBarTime( const datetime time, const bool NextBar = false, string Symb = NULL, const ENUM_TIMEFRAMES TimeFrame = PERIOD_M1 ) { if (Symb == NULL) Symb = _Symbol; return(iTime(Symb, TimeFrame, iBarShift(Symb, TimeFrame, time) - (NextBar ? 1 : 0))); } datetime GetTimeDayOfWeek( const int Shift = 0, const ENUM_DAY_OF_WEEK Day = SUNDAY ) { const datetime Res = TimeCurrent() / DAY * DAY; return(Res - (((WEEK + (TimeDayOfWeek(Res) - Day)) % WEEK) + Shift * WEEK) * DAY); } // Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset // Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю int TimeServerGMTOffset( void ) { const datetime Sunday = GetTimeDayOfWeek(); return(((int)MathRound((double)MathMin(Sunday - DAY - GetBarTime(Sunday), Sunday + DAY - GetBarTime(Sunday, true)) / HOUR) - 3) * HOUR); } // Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmt // Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю datetime TimeServerGMT( void ) { return(TimeCurrent() + TimeServerGMTOffset()); } Vitaly Muzichenko 2018.03.29 12:50 #745 fxsaber: 你可以为外汇重新制作这段代码谢谢,我会看看的。但话说回来,也有非外汇符号。 不方便的是,你不能在任何时间点上简单而简要地获得当前的服务器时间。 阿列克谢-维克多罗夫。两者都不只是时间,它们是日期时间。换句话说,它既是日期又是时间。因此,对这些数据进行算术运算,将得到秒的差值,这不难转化为日、时、分、秒。 此外,我们需要在周末检查TimeTradeServer 显示的内容。 注意服务器时间秒数和当地时间之间的差异,然后注意当地时间和服务器时间计算之间的精确匹配。 我以同样的方式打印了它,但它不能在周末使用。一般来说,应该对信息进行测试。 任务是最小的:"从最后一次打勾到服务器(终端)的时间过去了多少时间"。 if( TimeCurrent()<TimeServer()-60 ) Alert( "нет котировок более 1-й минуты" ); fxsaber 2018.03.29 12:57 #746 维塔利-穆齐琴科。谢谢,我会看看的。但话说回来,也有非外汇交易的符号。 如果该经纪商至少有一个外汇符号,它将对其他的人起作用。 如果经纪人没有一个外汇符号,就会出现合理性问题。 Alexey Viktorov 2018.03.29 13:02 #747 Vitaly Muzichenko: 谢谢,我会看看的。但话说回来,也有非外汇符号。你不能在任何时间点简单而简要地获得当前的服务器时间,这是不方便的。我也印好了,但周末时怎么用呢。一般来说,你需要轮流提供信息。任务是最小的:"从最后一次打勾到服务器(终端)时间已经过去多少时间"。当然我们需要检查,但从TimeCurrent和TimeTradeServer 之间的差异来看,我们可以认为差异会越来越大。 请告诉我MQ-demo服务器 的时间 与莫斯科的时间 是否相同。 Vitaly Muzichenko 2018.03.29 13:14 #748 阿列克谢-维克多罗夫。这值得检查,但从TimeCurrent和TimeTradeServer 之间的差异来看,差异会扩大。 请告诉我,我的MQ-demo服务器时间是否与我的莫斯科时间一致,如果服务器时间与我的本地时间不一致,会显示什么?ロボル 我的当地时间是17:17:13 fxsaber 2018.03.29 13:16 #749 关于交易、自动交易系统和交易策略测试的论坛 虫子,虫子,问题 fxsaber, 2017.05.19 22:35 TimeTradeServer 可以返回各种胡言乱语。例如,一个小于TimeCurrent的值。这使其实际应用完全无效。如果我的理解正确的话,TimeTradeServer必须在接收到TimeCurrent后计算出经过的时间,并加上这个差值,有点像模拟未来的TimeCurrent值。现在,在运行专家顾问后#define TOSTRING(A) #A + " = " + (string)(A) + "\n" void OnInit() { EventSetTimer(1); } void OnTimer() { Comment(TOSTRING(TimeTradeServer()) + TOSTRING(TimeCurrent())); }你可以看到任何胡言乱语。注意日期。 Vitaly Muzichenko 2018.03.29 13:19 #750 fxsaber: 这又该怪谁呢,是终端,还是设置歪曲的DC? 1...686970717273747576777879808182...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我把EA放在周六的图表上,但EA可以得到最后一个刻度的时间,例如在Market Watch中是23:58,而我的当地时间是04:45。服务器的时间我不知道。
我的问题是:从最后一个刻度到服务器时间(终端时间)已经过去了多少时间?
思考了一阵子。事实证明,当EA被附加到图表上时,并没有什么区别。在没有真正的滴答声之前,我们不能执行程序算法中使用服务器 实时的那一部分。
如果在滴答声到来之前需要进行计算,那么就要求提供ServerGMTOffset。
所以,即使没有ServerTradeTime(),这个问题也可以解决。
我已经考虑过这个问题了。事实证明,当EA连接到图表上时,没有任何区别。只要没有真正的勾选,我们就不能执行程序算法中使用真实服务器时间的那部分。
如果在滴答声到来之前需要进行计算,那么就要求提供ServerGMTOffset。
因此,即使没有ServerTradeTime(),这个问题也可以解决。
用户不知道服务器的Offset,他不知道。
只有两个值是已知的,这些数据不足以计算出"从最后一次打勾到服务器(终端)的 时间,已经过去了多少时间"。
这是一个非常奇特的任务,我没有看到解决办法,就像你一样。
我把EA放在周六的图表上,但EA可以得到最后一个刻度的时间,例如在Market Watch中是23:58,而我的当地时间是04:45。服务器的时间我不知道。
问题是,从最后一个刻度到服务器时间(终端时间)过去了多少时间?
两者都不只是时间,而是日期时间。即日期和时间。因此,用这个数据进行算术运算,将得到秒的差值,这不难转化为日、时、分、秒。
另外,你需要检查TimeTradeServer 在周末会显示什么。
注意服务器时间和当地时间之间的差异,然后注意当地时间和估计的服务器时间之间的精确匹配。关于交易、自动交易系统和交易策略测试的论坛
mql4语言的特点、微妙之处以及技巧
fxsaber, 2018.03.29 14:32
你可以为外汇重新制作这段代码
谢谢,我会看看的。但话说回来,也有非外汇符号。
不方便的是,你不能在任何时间点上简单而简要地获得当前的服务器时间。
两者都不只是时间,它们是日期时间。换句话说,它既是日期又是时间。因此,对这些数据进行算术运算,将得到秒的差值,这不难转化为日、时、分、秒。
此外,我们需要在周末检查TimeTradeServer 显示的内容。
注意服务器时间秒数和当地时间之间的差异,然后注意当地时间和服务器时间计算之间的精确匹配。我以同样的方式打印了它,但它不能在周末使用。一般来说,应该对信息进行测试。
任务是最小的:"从最后一次打勾到服务器(终端)的时间过去了多少时间"。
谢谢,我会看看的。但话说回来,也有非外汇交易的符号。
如果该经纪商至少有一个外汇符号,它将对其他的人起作用。
如果经纪人没有一个外汇符号,就会出现合理性问题。
谢谢,我会看看的。但话说回来,也有非外汇符号。
你不能在任何时间点简单而简要地获得当前的服务器时间,这是不方便的。
我也印好了,但周末时怎么用呢。一般来说,你需要轮流提供信息。
任务是最小的:"从最后一次打勾到服务器(终端)时间已经过去多少时间"。
当然我们需要检查,但从TimeCurrent和TimeTradeServer 之间的差异来看,我们可以认为差异会越来越大。
请告诉我MQ-demo服务器 的时间 与莫斯科的时间 是否相同。
这值得检查,但从TimeCurrent和TimeTradeServer 之间的差异来看,差异会扩大。
请告诉我,我的MQ-demo服务器时间是否与我的莫斯科时间一致,如果服务器时间与我的本地时间不一致,会显示什么?
ロボル
我的当地时间是17:17:13
关于交易、自动交易系统和交易策略测试的论坛
虫子,虫子,问题
fxsaber, 2017.05.19 22:35
TimeTradeServer 可以返回各种胡言乱语。例如,一个小于TimeCurrent的值。这使其实际应用完全无效。
如果我的理解正确的话,TimeTradeServer必须在接收到TimeCurrent后计算出经过的时间,并加上这个差值,有点像模拟未来的TimeCurrent值。
现在,在运行专家顾问后
你可以看到任何胡言乱语。
注意日期。
这又该怪谁呢,是终端,还是设置歪曲的DC?