В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
谢谢,这很有道理。在通过iTime访问未更新的时间序列后,终端是否真的会出现4066错误?我遇到过iClose给出未更新的信息而不是零。
这就是问题所在,这就是导致你搭车的关键点。
Error 4066 - 当这个TF没有历史记录时,它还没有准备好,你需要联系服务器。
而当你已经有了它,但它只有在你访问它时才被更新,即不给出错误,只是给你现在是什么,并与请求同时开始更新时间序列。
如果你不经常和不定期地 访问它,有时你会得到旧的东西。如果你定期要求每个必要的TF,直到每个勾--那么一切都没问题。
如果该TF的图表是开放的,它将定期在图表上更新。顺便说一下,如果不是定期访问,可能有可能从EA中打开所有必要的TF的图表,但这是不可靠的,因为他们可以手动关闭/改变TFs。
为什么要在[i + 0]上加0?
我用1和2,1或2代替了零。我留下了0,也就是1巴。我没有清理代码,这对逻辑并不重要。
这就是重点,这就是导致你被卡住的关键点。
错误4066是当这个TF没有历史记录时,它还没有准备好,你需要联系服务器。
而当你已经有了它,但它只在你访问它时才被更新,即不给出错误,只给你现在是什么,并与请求同时开始更新时间序列。
如果你不经常和不定期地 访问它,有时你会得到垃圾。如果你定期要求每个必要的TF,直到每个勾--那么一切都没问题。
如果该TF的图表是开放的,它将定期在图表上更新。顺便说一下,如果不是定期访问,可能有可能从EA中打开所有必要的TFs图表,但这并不可靠,因为他们可以手动关闭/更改TFs。
当应该出现错误时,它又给出了旧的数据,太好了。这也是经纪人喜欢MT4而不转到MT5的原因之一))。
即在每一次打勾或睡眠时要求正确的时间框架,直到出现错误4066。我说对了吗?
当它应该得到一个错误时,它又给出了旧的数据,太好了。这也是经纪人喜欢MT4而不转到MT5的原因之一))。
即在每一次打勾或睡眠时要求正确的时间框架,直到出现错误4066。我说对了吗?
几乎。这里有一个现成的功能。
在OnTick()中插入它,如果它返回真,则可以访问eTF时间框架,数据有效。当它应该得到一个错误时,它又给出了旧的数据,太好了。这也是经纪人喜欢MT4而不转到MT5的原因之一))。
即在每一次打勾或睡眠时 要求正确的时间框架,直到出现错误4066。我说对了吗?
当然,最好只在OnInit中使用sleep,而且只有在指标中才有必要。在其他情况下,正如Igor上面提到的,OnTick已经足够了。
根据不同的任务,你可以操纵你的方式来选择最佳方案。通常情况下,当检查是否有一个新的条形图时,iTime已经在所有使用的时间段的每一个刻度 上被访问,这足以使它们保持最新。
如果你不是在每次打勾时都使用伊戈尔的函数,而是在某些罕见的情况下使用,也会有滞后现象。当然,sleep最好只在OnInit中使用,而且只在指标中需要它。在 其他情况下,使用OnTick就可以了,正如Igor上面提到的。
根据不同的任务,你可以操纵你的方式来选择最佳方案。通常情况下,当检查是否有新的条形图时,iTime在所有使用的时间段的每一个点 都被调用,这足以使它们保持最新。
s.e.而如果伊戈尔的函数不是在每个tick上使用,而是在一些罕见的情况下使用,也会出现不同步的情况。睡眠在指标中不起作用
几乎。这里有一个现成的函数。
在OnTick()中插入它,如果它返回真,你就可以访问eTF时间框架,数据是有效的。这是非常简单的。谢谢你。为什么开发人员不在iClose功能 等的手册中描述这一点?或者纠正MT4报价更新的逻辑, 以免产生阴谋论。
当应该出现错误时,它又给出了旧的数据,太好了。这也是经纪人喜欢MT4而不转到MT5的原因之一))。
即在每一次打勾或睡眠时要求正确的时间框架,直到出现错误4066。我说对了吗?
在MT5中,这要困难得多。
在F4中,只需每2分钟向所有使用的TF请求iTime,所有的数据都将是实际的。
一切都简单得令人惊叹。谢谢你。为什么开发人员不在iClose功能 等手册中描述一下?或者纠正MT4报价更新的逻辑, 以免造成阴谋论。
因为实际上所有的EA都会在每一个tick上对正确的条件进行检查,并且一切都会自行更新。
睡眠在指标中不起作用
如果你真的需要它,它是有效的:)
在MT5中,情况要复杂得多。
在4中,每2分钟向所有使用的TF请求iTime 就足够了,所有的数据将是实际的。
正是如此