请解释一下这个功能可能有什么问题? - 页 4 12345678 新评论 Vladimir Karputov 2016.06.24 17:55 #31 Alexey Viktorov:弗拉基米尔,这个问题在测试器中并没有出现...怎么会有这样的问题呢?还是因为测试器中只有一个专家顾问? 我还在SD中建议,唯一的变化是将第二个EA放在不同的一对上...... 测试器中的整个交易环境是事先准备好的。一切都在一个盘子里。不用担心。真实的交易环境是不同的,在非标准行为的情况下(在别人的时间框架和/或别人的符号上工作),我们不得不担心交易环境的相关性。 Alexey Viktorov 2016.06.24 17:55 #32 Karputov Vladimir: 在一个终端中(在M15时间框架上有EA),它在一个符号上不起作用--我99%确定问题在于,当使用别人的时间框架时,你需要一直 "撸 "着历史。我认为通过CopyTime()来做会更好。 而CopyRates() 则是对历史的颠覆。在结构上有时间... Dmitry Fedoseev 2016.06.24 17:56 #33 Karputov Vladimir:这不是一个错误。你在别人的时间框架内工作。在这种情况下,你必须自己照顾别人的时间框架上的数据,以确保它是最新的。我个人没有看到任何替代方案。我们不知道SERIES_LASTBAR_DATE 是如何工作的,这并不是一个事实。可能不需要更新任何东西,因为可以用指定符号的TimeCurrent()计算出最后一个棒的时间。我们需要询问开发商。但到目前为止,一个明确的不争的事实是,如果两个变量被设置为真,那么一起(当检查&&时)这些变量也会给出真。 Andrey Khatimlianskii 2016.06.24 20:25 #34 其他工具/TF缓存脱落的问题确实存在。检查错误并在循环中等待加载并不总是有帮助。我们一直在与服务台沟通,但MQ没有任何进展,只有一个提示。Support Team 2016.02.29 11:45怀疑是历史数据被超时卸载。有2种解决方案。1.访问数据的频率超过每3分钟一次2.将一些非常简单的指标放在数据上。量,例如:。没有计算,只有一个缓冲区在忙。无论访问频率如何,指标的可用性将使历史缓存保持在内存中第2条建议不起作用,指标一直被调用,但在某些时候,缓存失效,就无法获得数据了。Andrey Khatimlianskii2016.03.18 13:41我用这个拐杖解决了问题--我每隔150秒为所有涉及的仪器/FTs调用这个代码。bool CheckTimeSeries( string symbol, ENUM_TIMEFRAMES period ) { double array[]; if ( CopyClose( symbol, period, 1, 1, array ) <= 0 ) { int err = GetLastError(); Print( " * Can't refresh timeseries (", symbol, ", ", period, ")! ERROR #", err, "!!!" ); return(false); } return(true); }工作速度足够快,这次更新后,错误4806似乎消失了。 Alexey Viktorov 2016.06.24 21:23 #35 请评论一下另一个误解。Bars 返回历史上对应周期符号的条数。该函数有2种变体。只有第二个选项是值得关注的。要求在一个给定的区间内有多少个柱子int Bars( string symbol_name, // имя символа ENUM_TIMEFRAMES timeframe, // период datetime start_time, // с какой даты datetime stop_time // по какую дату );专家顾问文本 /*******************Expert initialization function*******************/ int OnInit() { return(INIT_SUCCEEDED); }/*******************************************************************/ /************************Expert tick function************************/ void OnTick() { datetime dtarr[], date = D'2016.06.22'; ArraySetAsSeries(dtarr, true); CopyTime(_Symbol, PERIOD_D1, 0, 5, dtarr); Print(dtarr[0]); Print(" ", Bars(_Symbol, PERIOD_D1, date, dtarr[0])); Print(" ", Bars(_Symbol, PERIOD_D1, date+1, dtarr[0])); }/*******************************************************************/ /******************Expert deinitialization function******************/ void OnDeinit(const int reason) { }/*******************************************************************/我理解,时间00:00:00属于一天,就像时间00:00:01一样。但是......。建议的印刷品并不同意这一点。2016.06.24 22:18:56.450 TestTime (EURUSD,M15) 2 2016.06.24 22:18:56.450 TestTime (EURUSD,M15) 3 2016.06.24 22:18:56.450 TestTime (EURUSD,M15) 2016.06.24 00:00:00 事实证明,在2016.06.22 00:00:00和2016.06.24 00:00:00之间有三个日线,在2016.06.22 00:01和2016.06.24 00:00:00之间只有两个...或者我有什么误解吗? 附加的文件: TestTime.mq5 2 kb Alexey Viktorov 2016.06.24 21:30 #36 而如果你在当前条形图的时间上增加一秒 Print(" ", Bars(_Symbol, PERIOD_D1, date, dtarr[0]+1)); Print(" ", Bars(_Symbol, PERIOD_D1, date+1, dtarr[0]+1));你会得到以下结果2016.06.24 22:26:48.602 TestTime (EURUSD,M15) 3 2016.06.24 22:26:48.602 TestTime (EURUSD,M15) 4 2016.06.24 22:26:48.602 TestTime (EURUSD,M15) 2016.06.24 00:00:00 时间2016.06.24 00:00:01似乎是属于下一栏还是什么? Dmitry Fedoseev 2016.06.24 21:52 #37 上限时间不包括在确定条数 的时间间隔内。 Alexey Viktorov 2016.06.25 07:51 #38 Dmitry Fedoseev: 上限时间不包括在确定条数 的区间内。迪米特里,这不是很奇怪吗?出现了一个新酒吧,但我们还不会计算它。听着,难道不是SeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE)的这种行为的原因?新条形图出现了,可勾选的代码被执行,但时间还没有被考虑进去? Alexey Viktorov 2016.06.27 12:59 #39 嗯,鼓手泄气了......而且他完全被忽略了......?弗拉基米尔,你至少能回答这个问题吗?Alexey Viktorov: CopyRates()是否拉动了故事的发展?在结构上有时间......? Разъясните пожалуйста что в этой функции может быть не так? www.mql5.com Форум трейдеров MQL5.community Vladimir Karputov 2016.06.27 13:02 #40 Alexey Viktorov:好吧,这个恶棍已经泄气了......而且他被完全忽略了......弗拉基米尔,你至少能回答这个问题吗? 你最好告诉我们服务台建议你做什么--你继续与他们交谈,不是吗? 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
弗拉基米尔,这个问题在测试器中并没有出现...怎么会有这样的问题呢?还是因为测试器中只有一个专家顾问?
我还在SD中建议,唯一的变化是将第二个EA放在不同的一对上......
在一个终端中(在M15时间框架上有EA),它在一个符号上不起作用--我99%确定问题在于,当使用别人的时间框架时,你需要一直 "撸 "着历史。我认为通过CopyTime()来做会更好。
这不是一个错误。你在别人的时间框架内工作。在这种情况下,你必须自己照顾别人的时间框架上的数据,以确保它是最新的。
我个人没有看到任何替代方案。
我们不知道SERIES_LASTBAR_DATE 是如何工作的,这并不是一个事实。可能不需要更新任何东西,因为可以用指定符号的TimeCurrent()计算出最后一个棒的时间。我们需要询问开发商。
但到目前为止,一个明确的不争的事实是,如果两个变量被设置为真,那么一起(当检查&&时)这些变量也会给出真。
其他工具/TF缓存脱落的问题确实存在。
检查错误并在循环中等待加载并不总是有帮助。我们一直在与服务台沟通,但MQ没有任何进展,只有一个提示。
怀疑是历史数据被超时卸载。
有2种解决方案。
1.访问数据的频率超过每3分钟一次
2.将一些非常简单的指标放在数据上。量,例如:。没有计算,只有一个缓冲区在忙。无论访问频率如何,指标的可用性将使历史缓存保持在内存中
第2条建议不起作用,指标一直被调用,但在某些时候,缓存失效,就无法获得数据了。
我用这个拐杖解决了问题--我每隔150秒为所有涉及的仪器/FTs调用这个代码。
工作速度足够快,这次更新后,错误4806似乎消失了。
请评论一下另一个误解。
Bars
返回历史上对应周期符号的条数。该函数有2种变体。
只有第二个选项是值得关注的。
专家顾问文本
我理解,时间00:00:00属于一天,就像时间00:00:01一样。
但是......。建议的印刷品并不同意这一点。
事实证明,在2016.06.22 00:00:00和2016.06.24 00:00:00之间有三个日线,在2016.06.22 00:01和2016.06.24 00:00:00之间只有两个...
或者我有什么误解吗?
而如果你在当前条形图的时间上增加一秒
你会得到以下结果
时间2016.06.24 00:00:01似乎是属于下一栏还是什么?
上限时间不包括在确定条数 的区间内。
迪米特里,这不是很奇怪吗?出现了一个新酒吧,但我们还不会计算它。
听着,难道不是SeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE)的这种行为的原因?新条形图出现了,可勾选的代码被执行,但时间还没有被考虑进去?
嗯,鼓手泄气了......而且他完全被忽略了......?
弗拉基米尔,你至少能回答这个问题吗?
CopyRates()是否拉动了故事的发展?在结构上有时间......?
好吧,这个恶棍已经泄气了......而且他被完全忽略了......
弗拉基米尔,你至少能回答这个问题吗?