任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 557

 
GSB:

我不反对这些原则,但这个人想在测试器中运行专家顾问,所以你的选择不适合他。

使用我的变体,它在现实中和测试器中都能工作,但在他们做出自动计算夏令时的功能之前,为今年定义过渡时间,如

从2013年3月到2014年11月,将正常工作并经过测试。根据你的经纪人
,设置班次。


我不会去看哪里写着时间是在测试器中产生的,你自己知道。但在帮助中,它特别说到

 var2=StrToTime("17:35");      // возврат текущей даты с указанным временем

而对于StringToTime(),它并没有说任何具体的 内容。

唯一需要考虑的是(DC服务器的)测试人员的时间。而相应地,在测试时,你应该有一个相同类型的账户的历史,这个猫头鹰将在这个账户上工作。

 
AlexeyVik:


我不会去查哪里说时间是在测试器中产生的,你自己知道。但在帮助中,它特别说到

而对于StringToTime(),它并没有说任何具体的 内容。

唯一需要考虑的是(DC服务器的)测试者的时间。因此,在测试时,你需要有一个相同类型的账户的历史,这个猫头鹰将在这个账户上工作。


Alexey,我对StrToTime()函数没有任何疑问,问题是不同的。它将返回正确的时间,但今天的21小时是3月9日的22小时。这就是为什么我写的函数能正确考虑到经纪人的夏令时。

没有它,如果一个专家顾问按照某种时间安排工作,就不可能进行测试。所有的东西都转移了一个小时。在真实交易中没有问题,但在测试器中却有问题。我一直在要求开发人员启用计算时间转移的功能,已经有很长时间了。他们已经实现了TimeGMT(),但它与当地时间 和计算机的时区相联系。而且你必须要有一个制动装置的转变。而且他们的夏令时与我们不同。经纪人在11月的第一个星期日,3月的第二个星期日和俄罗斯(如果将......)10月的最后一个星期日,3月的最后一个星期日转变。所以你现在必须自己写函数。

 
GSB:

我不反对这些原则,但这个人想在测试器中运行专家顾问,所以你的选择不适合他。

使用我的变体,它将在实际和测试器中工作,但直到他们没有做一个功能来自动考虑到夏令时,定义过渡到今年的时间,如

从2013年3月到2014年11月将正常工作并测试正常。根据你的经纪人设置班次

好的,谢谢你,我会让你知道结果的。
 

有必要在图表上查看<h4>当前周五和3月8日之前的周五的最后一个条形图的时间。如果这些时间是一致的,那么hrd值是恒定的,不取决于冬夏时间的变化,那么一切都很简单,在测试过程中,无论冬夏时间如何变化,都会正确工作。

datetime tc=TimeCurrent();
datetime te=StrToTime("20:45");                    //   время конца сессии по котировкам брокера минус 15 минут или сколько вам надо до конца сессии
if(TimeDayOfWeek(tc)==5 && tc>te) {  CloseAll(); } //    закрытие пятницу позже указанного времени 

但如果这两个时间是不同的(相差1小时),那么正如我之前写的。

 
GSB:

我们应该在M1图表上检查当前周五和3月8日之前的周五的最后一根柱子的时间。如果这些时间重合,那么hrd值是恒定的,不取决于冬夏时间的转换,那么一切都很简单,在测试期间将正确工作,包括不考虑冬夏时间的转换

但如果这两个时间是不同的(相差1小时),那么正如我之前写的。


为什么代码中有15分钟的时间,也就是说,你想说在会议结束前15分钟,投资组合开始转移? 我当然注意到在fresch的mt4上有这样的时刻,我看到一些货币对的良好水平。
 

例如,我想在会议结束前1分钟关闭交易,因为当一个订单被留在周末时,周一的开盘价 可能会跳升100,或200,甚至更多点。

我还没有测试,今天晚些时候我会测试的。

 
如果经纪人在俄罗斯,而我在乌克兰,那么就没有夏令时或冬令时的转换,那么对我来说也没有服务器时间的转换,只有当地时间
 
GSB:

那么这在测试器中不应该工作。

这些函数是基于当前时间的,我在上面写的东西会起作用,因为TimeCurrent()和TimeDayOfWeek()工作正常。你只需要添加切换到夏季和冬季时间的功能,即参数hrd。切换通常是根据美国夏令时的时间进行的(11月的第一个星期日,3月的第二个星期日),但有些经纪公司不进行切换,所以你应该使用你的


在不涉及假设的情况下,我只是在策略测试器中运行专家顾问,并查看了它。它的工作和关闭。

 
belck:
如果我的经纪人在俄罗斯,而我在乌克兰,那么就没有夏令时或冬令时的变化,那么原来我的经纪人没有夏令时的转换,只有当地时间?

没有必要比较经纪人的时间和你的当地时间。无论你如何移动你的手表,图表上的经纪人会议的结束时间都不会改变。问题是关于在3月8日至9日过渡到经纪人的夏季 报价,有些经纪人这样做,有些则不这样做。

我写道--看看3月9日之前和之后的最后一个条形时间的图表,如果相同则使用最后一个简单的选项,如果它们相差一个小时则使用更复杂的选项。

 

伙计们,向你们致敬 :)DayOfWeek() TimeDayOfWeek(datetimedate)和类似的公式在测试器中都能正确工作。测试仪对其处理的tick时间进行建模,这就是为什么在DayOfWeek()中采用最后已知的服务器时间 也能工作。当然,更正确的做法是使用TimeDayOfWeek(dt1)。

总的来说,一切都很正确,唯一剩下的就是考虑到经纪人向冬夏两季过渡的时间,如果有的话,就像我上面写的。