伦敦突围赛 - 页 3

 
gchrmt4:
仅仅使用MT4提供的信息,你怎么知道经纪人上周是GMT+2?


因为今天,与格林威治标准时间的偏移量是+3,加上夏令时的调整,所以上周,当经纪人在标准时间时,偏移量是+2。

唯一的区别是夏令时

 
SDC:

按照常理,MT4服务器应该一直使用GMT,但你知道他们不会这么做。


我认为MT4应该在其时间结构中编码时区 和夏令时调整。这将使历史时间得到准确使用。)
 
Thirteen:


因为今天,在夏令时调整下,对格林威治标准时间的偏移是+3,所以上周,当经纪人在标准时间时,偏移是+2。

唯一的区别是日光节约时间。

我换个说法:只用MT4提供的信息,你怎么知道经纪人是按美国时间表而不是按欧洲时间表(或根本不按时间表)改成夏令时的?你怎么知道他们目前不是在冬令时,而是将在3月30日转移?
 

gchrmt4:
[1] how . . . do you know that the broker moved to DST on the US schedule rather than the European schedule (or not at all)?

[2] 你怎么知道他们目前不是在冬季时间,并将在3月30日移动?或者他们不是在使用恒定的GMTZ?
  1. 正如我在第一篇文章中所说,经纪人说它在美国的时间表上移动到DST,而不是欧盟的时间表。
  2. 经纪人说它在标准时间内是GMT+2。 另外,通过使用新的TimeGMT(),现在可以很容易地计算出服务器与GMT的偏移。
 
Thirteen:
  1. 正如我在第一篇文章中所说,经纪人说它在美国的时间表上移动到DST,而不是欧盟的时间表。
  2. 经纪人说它在标准时间内是GMT+2。 另外,通过使用新的TimeGMT(),现在可以很容易地计算出服务器与GMT的偏移。
这不是MT4提供的信息。这是 提供的信息,因为 知道 使用的是哪个经纪商。你不能给其他人一段代码,让他们在一个未知的经纪商服务器上运行,然后可靠地将历史时间转换为GMT(或通过GMT转换为另一个时区,如伦敦)。
 
gchrmt4:
这不是MT4所提供的信息。这是 提供的信息,因为 知道 在使用哪个经纪商。你不能给其他人一段代码,让他们在一个未知的经纪商服务器上运行,然后可靠地将历史时间转换为格林威治时间(或通过格林威治时间转换为另一个时区,如伦敦)。

...回到OP,你打算如何给他们一个代码样本,使其能够在他/她使用的任何经纪商服务器上可靠地运行,以确定伦敦时间和伦敦价格?

我一直想说的是,是的,如果你知道原点偏移,你可以做转换到GMT或其他时区,但MT4没有提供可靠的替代方案,而是要求用户输入某种关于经纪人时间设置的信息。

 

你可以从Windows获得本地的GMT偏移量。简单的比较会给你经纪人的偏移量,而不要求用户输入。

 
非常感谢所有的评论当我的EA准备好的时候,我会给大家一个更新!以我对MQL4的 学习曲线,我希望在今年年底之前;-)
 
Nour:
非常感谢所有的评论!当我的EA准备好时,我会给大家一个更新!根据我对MQL4的学习曲线,我希望在今年年底前完成;-)
给你的链接https://docs.mql4.com/series/ibarshift

例子。

datetime some_time=D'2004.03.21 12:00';
int shift=iBarShift("EURUSD",PERIOD_M1,some_time)。
Print("shift of bar with open time ",TimeToStr(some_time)," is ",shift)。

伦敦什么时候开盘,什么时区?

今天伦敦开盘时的经纪商时间是多少?some_time= .................

你的经纪人那一刻是什么时间....

 
请注意,对于任何GMT的计算,回溯测试 往往要与正向测试的处理方式不同。