错误、漏洞、问题 - 页 3030 1...302330243025302630273028302930303031303230333034303530363037...3184 新评论 mktr8591 2021.05.28 15:31 #30291 Andrey Dik:我们返回0,从而说明我们还没有计算过任何东西,并且在下一个柱状图上不会增量1。也就是说,我们将在我们开始请求老因素的数据的那一栏,直到我们返回(rate_total)。 从帮助中可以看出:"函数调用中的prev_calculated参数包含 OnCalculate() 在前一次 调用 中返回的值 "。 Andrey Dik 2021.05.28 15:35 #30292 mktr8591: 来自帮助:"函数调用时的prev_calculated参数包含了 OnCalculate() 在前一次 调用 时 返回的值 。" 是的,帮助中写了很多,但并不总是很清楚,不幸的是(不是为了报复开发者),你必须学习、学习、学习。 但这个分支的存在是因为有时会发现一些既不符合帮助也不符合常识的东西,A100是我们的英雄,因为它甚至可以去到没有人愿意自己爬的地方))。 Andrey Dik 2021.05.28 15:38 #30293 Сергей Таболин:1.谢谢大家--我对指标有了更多的了解 ))))安德鲁,如果有人不理解你的想法(包括我),这只意味着一件事:你没有正确地画出这幅画!这就是你的想法。或者说,你以这样一种方式来做,使许多人不理解......。 真相更重要。不幸的是,并不是每个人都清楚。 mktr8591 2021.05.28 15:41 #30294 Andrey Dik: 返回0,从而说明我们还没有计算过任何东西,而且prev_calc在下一个交易日不会被增加1。 那么return(rate_total)应该使prev_calc增加到rate_total? Andrei Trukhanovich 2021.05.28 15:43 #30295 Andrey Dik:返回0,从而说明我们还没有计算出任何东西,而且在下一个交易日,前一个kalk将不会增加1。 他自己在计算中归零,并抱怨他归零 ) Igor Makanu 2021.05.28 15:48 #30296 Andrey Dik:我们可以只计算一次新的条形图,而不是在每个tick上计算。 我们负担不起,因为终端不会在线生成 "较高TF "的历史数据。 一般来说,这里需要一些假设。 - 要么我们自己在指标内构建OHLC - 或者终端自己建立了OHLC 如果是后者,那么我们应该考虑,终端根本不知道TFs是如何互动的,谁是什么的倍数,以及在"新栏"事件中会发生什么。但我们应该让终端建立必要的TF 在你的第二个指标中试试这个代码。 int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { double buff []; if(prev_calculated == 0) { if (iBars (Symbol (), OldTF) != BarsCalculated (Handle)) { Print ("Индикатор на периоде ", OldTF, " ещё не рассчитан"); return 0; } } else { if (rates_total == prev_calculated) { if(CopyBuffer (Handle, 0, 0, 1, buff)<0) return 0; return rates_total; } } ulong t = GetMicrosecondCount (); ...... далее без изменений Andrey Dik 2021.05.28 15:49 #30297 Andrei Trukhanovich:本身重置了计算,并抱怨说它正在重置 ) 安德烈,运行代码,请...但你不要开始,我不能和你打。 Andrey Dik 2021.05.28 15:52 #30298 Igor Makanu:我们负担不起,因为终端不会在线生成 "旧TF "的历史数据。一般来说,这里需要一些假设。- 要么我们自己在指标内构建OHLC- 或者终端自己建立了OHLC如果是后者,那么我们需要考虑,终端不知道TF是如何互动的,谁是什么的倍数,以及在"新酒吧"事件中会发生什么。在你的第二个指标中试试这个代码。 你的代码会在每一个刻度上进行计算,这对我来说毫无意义,我甚至不打算运行它。我需要在每个柱子上对所有使用的指标只做一次计算,而不是在所有使用的指标的每个刻度上。 Igor Makanu 2021.05.28 16:00 #30299 Andrey Dik:你的代码要在每个刻度上敲出计算结果,我不感兴趣,我甚至不会运行它。我需要在每个柱子上只做一次计算,对所有使用的指标进行计算,而不是对所有使用的指标的每个刻度进行计算。 我的代码只对你的指标#1进行 "tick-by-tick",其中你写的是: if (rates_total == prev_calculated) return rates_total; 它将允许终端自己建立 "更高的时间框架"。 对我来说,这比对指标№1进行完全的重新计算要 "便宜",在你的代码中,当在 "旧TF "上同步历史时,会发生这种情况。 Andrei Trukhanovich 2021.05.28 16:07 #30300 Andrey Dik:安德烈,你能不能运行代码,请...但你不要开始,我不能和你打。 替换 if (SeriesInfoInteger (Symbol (), OldTF, SERIES_SYNCHRONIZED)) { if (iBars (Symbol (), OldTF) != BarsCalculated (Handle)) { Print ("Индикатор на периоде ", OldTF, " ещё не рассчитан"); return 0; } } else { Print ("Период ", OldTF, " не синхронизирован."); return 0; } 至 if (SeriesInfoInteger (Symbol (), OldTF, SERIES_SYNCHRONIZED)) { if (iBars (Symbol (), OldTF) != BarsCalculated (Handle)) { Print ("Индикатор на периоде ", OldTF, " ещё не рассчитан"); return prev_calculated; } } else { Print ("Период ", OldTF, " не синхронизирован."); return prev_calculated; } 并测试它。 1...302330243025302630273028302930303031303230333034303530363037...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我们返回0,从而说明我们还没有计算过任何东西,并且在下一个柱状图上不会增量1。
也就是说,我们将在我们开始请求老因素的数据的那一栏,直到我们返回(rate_total)。
来自帮助:"函数调用时的prev_calculated参数包含了 OnCalculate() 在前一次 调用 时 返回的值 。"
是的,帮助中写了很多,但并不总是很清楚,不幸的是(不是为了报复开发者),你必须学习、学习、学习。 但这个分支的存在是因为有时会发现一些既不符合帮助也不符合常识的东西,A100是我们的英雄,因为它甚至可以去到没有人愿意自己爬的地方))。
1.谢谢大家--我对指标有了更多的了解 ))))
安德鲁,如果有人不理解你的想法(包括我),这只意味着一件事:你没有正确地画出这幅画!这就是你的想法。或者说,你以这样一种方式来做,使许多人不理解......。
真相更重要。不幸的是,并不是每个人都清楚。
Andrey Dik:
返回0,从而说明我们还没有计算过任何东西,而且prev_calc在下一个交易日不会被增加1。
那么return(rate_total)应该使prev_calc增加到rate_total?
返回0,从而说明我们还没有计算出任何东西,而且在下一个交易日,前一个kalk将不会增加1。
他自己在计算中归零,并抱怨他归零 )
我们可以只计算一次新的条形图,而不是在每个tick上计算。
我们负担不起,因为终端不会在线生成 "较高TF "的历史数据。
一般来说,这里需要一些假设。
- 要么我们自己在指标内构建OHLC
- 或者终端自己建立了OHLC
如果是后者,那么我们应该考虑,终端根本不知道TFs是如何互动的,谁是什么的倍数,以及在"新栏"事件中会发生什么。但我们应该让终端建立必要的TF
在你的第二个指标中试试这个代码。
本身重置了计算,并抱怨说它正在重置 )
安德烈,运行代码,请...但你不要开始,我不能和你打。
我们负担不起,因为终端不会在线生成 "旧TF "的历史数据。
一般来说,这里需要一些假设。
- 要么我们自己在指标内构建OHLC
- 或者终端自己建立了OHLC
如果是后者,那么我们需要考虑,终端不知道TF是如何互动的,谁是什么的倍数,以及在"新酒吧"事件中会发生什么。
在你的第二个指标中试试这个代码。
你的代码会在每一个刻度上进行计算,这对我来说毫无意义,我甚至不打算运行它。我需要在每个柱子上对所有使用的指标只做一次计算,而不是在所有使用的指标的每个刻度上。
你的代码要在每个刻度上敲出计算结果,我不感兴趣,我甚至不会运行它。我需要在每个柱子上只做一次计算,对所有使用的指标进行计算,而不是对所有使用的指标的每个刻度进行计算。
我的代码只对你的指标#1进行 "tick-by-tick",其中你写的是:
它将允许终端自己建立 "更高的时间框架"。
对我来说,这比对指标№1进行完全的重新计算要 "便宜",在你的代码中,当在 "旧TF "上同步历史时,会发生这种情况。
安德烈,你能不能运行代码,请...但你不要开始,我不能和你打。
替换
至
并测试它。