类似于iBarShift - 页 2 123456789...17 新评论 Vasiliy Pushkaryov 2017.06.07 23:30 #11 下面是iBarShift() 的两个变体:帖子#5 和帖子#7 Nikolai Semko 2017.06.07 23:56 #12 Denis: Bars函数 返回小节的数量 。当我们需要得到一个指数为9的柱状体的指数时(抱歉,同义词),它将返回10,因为第一个柱状体的指数是0。 对,谢谢。总而言之,这是一个很好的补充-通知。的确,我不太在意,我只知道是条数的问题。而如果程序需要一个索引,我才会减去一个。 Nikolai Semko 2017.06.08 00:00 #13 Vasiliy Pushkaryov: 下面是iBarShift() 的两个变体:帖子#5 和帖子#7 简单的变体。Bars(NULL, 0, t, 32000000000)-1;iBarShift模拟当前符号和时间框架的最短和最快的解决方案,不需要额外的功能。然而,对于非当前的,你只需要填入前两个参数,而不是空参数。 Vasiliy Pushkaryov 2017.06.08 00:29 #14 Nikolai Semko: 只是一个变体。是对应于当前符号和当前时间框架的iBarShift的最短和最快的解决方案,不需要额外的功能。只是它不会在所有情况下都正确工作。fxsaber的GetBarShift()功能更全面。 试着把TimeCurrent() 而不是t 放在你的函数中,你会看到结果的。 Nikolai Semko 2017.06.08 00:31 #15 Vasiliy Pushkaryov:只是它不会在所有情况下都正确工作。fxsaber的GetBarShift()更通用。 试着把TimeCurrent()而不是t 放在你的函数中,你会看到结果的。 其结果将是一样的。 Vasiliy Pushkaryov 2017.06.08 00:32 #16 Nikolai Semko: 其结果将是一样的。 你甚至没有检查 Nikolai Semko 2017.06.08 00:37 #17 Vasiliy Pushkaryov: 你甚至没有检查。 我以前检查过很多次,所以我就是知道。但你甚至没有亲自尝试。 Vasiliy Pushkaryov 2017.06.08 00:54 #18 Nikolai Semko: 我以前测试过很多次,所以我就是知道。但你甚至没有亲自尝试。以下是剧本。void OnStart() { int idShort = Bars(NULL, 0, TimeCurrent(), 32000000000)-1; int idUni = GetBarShift(_Symbol, 0, TimeCurrent()); Print("idShort = ", idShort, " idUni=", idUni); } //+------------------------------------------------------------------------------------------------------------------+ //| //+------------------------------------------------------------------------------------------------------------------+ int GetBarShift(const string symbol_name, const ENUM_TIMEFRAMES timeframe, const datetime time) { int res=-1; datetime last_bar; // --- время открытия последнего бара по символу, периоду if(SeriesInfoInteger(symbol_name, timeframe, SERIES_LASTBAR_DATE, last_bar)) { if(time > last_bar) res = 0; else { const int shift = Bars(symbol_name, timeframe, time, last_bar); if(shift > 0) res = shift-1; } } return res; }它只是挂起。强行将其从图表中删除,就能得到结果。所以我试了一下,这就是为什么我也建议你。但既然你用了它,而且它适合你,我不会改变你的想法。 Renat Akhtyamov 2017.06.08 01:19 #19 这也很好int iBarShift(string symbol, ENUM_TIMEFRAMES timeframe, datetime tm) { datetime tm0[1]; CopyTime(symbol,timeframe,0,1,tm0); int res=Bars(symbol,timeframe,tm0[0],tm)-1; return(res); } Alain Verleyen 2017.06.08 07:58 #20 https://www.mql5.com/ru/code/1864 iBarShift 投票: 422013.10.25Alain Verleyenwww.mql5.com Многие ищут функцию iBarShift, которая была в языке MQL4. В языке MQL5 ее нет, но есть все возможности для ее реализации в виде библиотеки. 123456789...17 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Bars函数 返回小节的数量 。当我们需要得到一个指数为9的柱状体的指数时(抱歉,同义词),它将返回10,因为第一个柱状体的指数是0。
下面是iBarShift() 的两个变体:帖子#5 和帖子#7
只是一个变体。
只是它不会在所有情况下都正确工作。fxsaber的GetBarShift()功能更全面。
试着把TimeCurrent() 而不是t 放在你的函数中,你会看到结果的。
只是它不会在所有情况下都正确工作。fxsaber的GetBarShift()更通用。
试着把TimeCurrent()而不是t 放在你的函数中,你会看到结果的。
其结果将是一样的。
你甚至没有检查。
我以前测试过很多次,所以我就是知道。但你甚至没有亲自尝试。
以下是剧本。
它只是挂起。强行将其从图表中删除,就能得到结果。
所以我试了一下,这就是为什么我也建议你。但既然你用了它,而且它适合你,我不会改变你的想法。
这也很好